cross-posted from: mander.xyz/post/54891525

Interactive map: podbrushkin.github.io/col-tree-of-life.html

Images: Phylums, Classes, Orders.

It’s a full Eukaryota domain (2,631,744 taxa) from Catalogue of Life database. Taxonomic hierarchy represented as a set of nested polygons generated by Voronoi Treemap algorithm written by Arlind Nocaj. At each zoom level polygons of certain rank (e.g. phylum) are filled with glass pebble effect and black labels are applied to them.

Dataset overview

Catalogue of Life - is a taxonomy database, you can download it’s data here.

ColDP Base release is a 1gb ZIP archive. Among other files it contains NameUsage.tsv text file, which is 1.7gb uncompressed, here are first lines of it:

col:ID	col:alternativeID	col:nameAlternativeID	col:sourceID	col:parentID	col:basionymID	col:status	col:scientificName	col:authorship	col:rank	col:notho	col:originalSpelling	col:uninomial	col:genericName	col:infragenericEpithet	col:specificEpithet	col:infraspecificEpithet	col:cultivarEpithet	col:combinationAuthorship	col:combinationAuthorshipID	col:combinationExAuthorship	col:combinationExAuthorshipID	col:combinationAuthorshipYear	col:basionymAuthorship	col:basionymAuthorshipID	col:basionymExAuthorship	col:basionymExAuthorshipID	col:basionymAuthorshipYear	col:namePhrase	col:nameReferenceID	col:namePublishedInYear	col:namePublishedInPage	col:namePublishedInPageLink	col:gender	col:genderAgreement	col:etymology	col:code	col:nameStatus	col:accordingToID	col:accordingToPage	col:accordingToPageLink	col:referenceID	col:scrutinizer	col:scrutinizerID	col:scrutinizerDate	col:extinct	col:temporalRangeStart	col:temporalRangeEnd	col:environment	col:species	col:section	col:subgenus	col:genus	col:subtribe	col:tribe	col:subfamily	col:family	col:superfamily	col:suborder	col:order	col:subclass	col:class	col:subphylum	col:phylum	col:kingdom	col:ordinal	col:branchLength	col:link	col:nameRemarks	col:remarks	col:modified	col:modifiedBy	clb:merged
8JM4K			2317	8HRST		synonym	Taberinha	Linnavuori, 1959	genus			Taberinha						Linnavuori				1959							c89b49d1-9f78-45ad-b78a-494c571dbf6a		9					zoological																																				false
8L3XD			1146	8LJHX	8LF38	synonym	Bembidion littorale	(Olivier, 1795)	species				Bembidion		littorale								Olivier				1795	junior homonym								zoological	established																																			false

Well, it’s a table of 73 columns and 5,382,966 rows. Happily, we don’t need all columns and all rows.

This is a Canis lupus (wolf) record without unnecessary properties:

col:ID             : QLXL
col:parentID       : 3GTH
col:status         : accepted
col:scientificName : Canis lupus
col:genericName    : Canis
col:authorship     : Linnaeus, 1758
col:rank           : species
col:code           : zoological
col:extinct        : false

We are interested in ID and parentID columns. Each taxon has a link to it’s parent. By these links we can build entire tree while importing it to database.

After discarding records with status “synonym” or “misapplied” we are left with 2,686,187 nodes. Now we can make several queries to database to better understand it’s structure.

Here are nodes which do not have a parent:

n.id  n.scientificName n.depth n.rank   n.descendants
----  ---------------- ------- ------   -------------
CS5HF Eukaryota              0 domain         2631744
CRLT8 Archaea                0 domain            1045
L2TCC Viruses                0 unranked         20845
CRRY6 Bacteria               0 domain           32549

Each of them is a root of it’s own tree. Depth of a node is a count of nodes between it and a root node. For Voronoi TreeMap visualization I’ve took only Eukaryota domain.

Let’s count how many nodes there are at each depth level:

depth  count
-----  -----
    0      4
    1     52
    2    237
    3   3266
    4   8835
    5  14203
    6  43211
    7 233669
    8 321627
    9 339333
   10 456165
   11 485906
   12 264157
   13 276720
   14 168828
   15  55316
   16  10931
   17   2452
   18    987
   19    263
   20     25

Most populated depth is 11 with 485906 nodes.

And how many ranks there are? Here is a count of taxa for each rank:

rank                 count
----                 -----
realm                    7
domain                   3
kingdom                 24
subkingdom               2
phylum                 147
subphylum               35
infraphylum              5
parvphylum               2
superclass               9
gigaclass                2
megaclass                1
class                  491
subclass               107
infraclass              25
subterclass             13
superorder              45
order                 1889
suborder               448
infraorder             171
parvorder               36
nanorder                 4
superfamily           1507
epifamily                6
family               14956
subfamily             7260
supertribe              23
tribe                 5461
subtribe              1552
infratribe              53
genus               217802
subgenus             13529
section botany          11
section zoology         17
subsection zoology       2
series                   8
species            2245825
subspecies          148451
variety              25083
form                  1146
natio                    1
unranked                27
other                    1

Alternatives

Last four are also made by me.