The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.
taxo_distance(), mrca(),
distance_matrix(), closest_relative(),
compare_lineages(), shared_clades(),
is_member(), filter_clade(),
lineage_depth(), check_coverage(),
clear_cache()taxo_cluster(): hierarchical clustering of taxa by
taxonomic distance.taxo_ordinate(): ordination (PCoA) of taxa in taxonomic
distance space.save_cache(): serialises the session lineage cache to
an .rds file.load_cache(): restores a previously saved cache,
avoiding redundant network requests.taxo_path(): returns the full node-by-node path between
two taxa as a tidy data frame, ascending from taxon A to their MRCA and
descending to taxon B.Statistical Applications of taxodist) demonstrating the
integration of taxodist with ape (tree
plotting) and vegan (taxonomic distinctness, Mantel tests,
and PERMANOVA).vegan to Suggests in
DESCRIPTION.distance_matrix()
output with vegan functions (taxondive(),
mantel(), adonis2()).taxo_cluster() results
into phylo objects using ape::as.phylo().[crown]) being matched across different lineages as if
they were the same ancestor.Cohort,
Subcohort, Magnorder, Grandorder,
Parvorder, Legion) that were being retained as
bare rank names instead of the actual clade names (e.g.,
Placentalia, Boreoeutheria,
Galloanserae).taxo_search(): Added a new interactive search function
that queries The Taxonomicon and returns a tidy data frame of all
available IDs, ranks, and authors for a given taxon name.get_lineage() and all distance
functions (e.g., taxo_distance(),
distance_matrix()) now accept Taxonomicon numeric IDs. This
provides a fallback for computing distances when homonyms or historical
ranks cannot be disambiguated by name alone.Subgenus, Section, Division,
Subdivision, Supercohort,
Infracohort, Subsection,
Candidatus, Parvphylum, Branch,
and Go to (a navigation artefact from The Taxonomicon page
layout).Uropygi appearing twice in Thelyphonida,
Myxomycetes appearing twice in Physarum) are now collapsed
to a single occurrence. A warning is emitted when deduplication occurs
so the user is aware of the upstream data issue.get_taxonomicon_id() now collects all biological
matches for a taxon name before returning, and emits a warning when
multiple valid biological entries are found in The Taxonomicon. This
surfaces homonym ambiguity (e.g. Nereis matching both a
polychaete worm and a butterfly genus) that was previously silent.get_taxonomicon_id() now properly follows taxonomic
redirects and removes interface noise (N|T|P...) from
warnings.Bacteria), the warning now lists all available
numeric IDs without duplicates, allowing users to make an informed
choice.organisms) appearing
before Biota.get_lineage_by_id() to silently
return NULL for non-numeric strings, preventing upstream
server fallback errors.Genus
was erroneously truncated from species-level queries. Distances and Most
Recent Common Ancestors (MRCAs) between congeneric species are now
computed accurately."Redtenbacher, 1906") were evading the
lineage cleaning pipeline and being erroneously retained as part of the
clade name.cache_info(): inspects the current session cache,
reporting the number of cached lineages and IDs, total memory used, and
the names of all taxa whose lineages are stored. Returns a named list
invisibly for programmatic use.focal_distances(): computes taxonomic distances from a
single focal taxon to all members of a community vector. Returns a
sorted data frame with columns taxon,
distance, mrca, and mrca_depth,
making it easy to identify the closest and most distant relatives of a
focal species in a community context.Subphylum
and Infraphylum rank prefixes (e.g., Craniata, Vertebrata)
were being incorrectly discarded. The dagger symbol (†) is
now stripped before rank prefixes are removed, ensuring that prefixed
names like Subphylum † Craniata are correctly parsed to
Craniata rather than falling through as bare rank tokens.
Subphylum and Infraphylum have been removed
from bare_ranks accordingly.auct. author annotations (e.g.,
Subphylum Craniata auct.) that were preventing
rank-prefixed names from being correctly cleaned.Romeriida Gauthier,). The author removal pipeline now
handles these patterns correctly.†)
appearing between a rank prefix and a taxon name (e.g.,
Family † Dromaeosauridae) caused the taxon to be lost
entirely. Dagger removal now precedes all other cleaning steps.taxobase: Added a built-in reference dataset containing
50 taxonomic clades. The dataset includes pre-computed distance
matrices, lineage paths, search outputs, and coverage vectors. It acts
as a complete offline fallback, allowing package examples, vignettes,
and unit tests to run instantly without requiring a network connection
to The Taxonomicon.get_taxonomicon_id() and
taxo_search(). The filter now uses word boundaries
(\bplanet\b) so that genus names containing “planet” as an
infix are no longer mistakenly treated as non-biological entries."Epifamily" to the bare rank token filter so that
unprefixed rank labels are not retained as spurious lineage nodes.ᵀ (U+1D40) immediately following a taxon name prevented
word-boundary matching in the cutoff search, causing the lineage to
overshoot the target node and incorrectly include descendant taxa as
ancestors. This silently affected any type genus or type species
(i.e. the majority of genera), and was particularly visible in deep
clades such as Dinosauria where several child clades were being
parsed as ancestor nodes. Higher-rank taxa (clades, orders, families —
anything above genus level) were disproportionately affected.#divPageContent block could contain the target taxon
name (e.g. in a cited reference title), causing the lineage cutoff to
land in the junk header rather than the actual taxonomic tree. Affected
taxa received a garbage two- or three-line lineage and were silently
discarded by the "Biota" membership check in
get_taxonomicon_id(). Drosophila (the fly genus,
ID 28940) was one such case.1 / depth(MRCA) instead of zero. Use
is_member() or taxo_path() when the question
concerns clade membership or containment rather than distance between
nodes.taxobase is now distributed as a single documented list
with provenance metadata, a compact reference distance matrix, and an
offline matrix used to build the statistical applications vignette
reproducibly.is_member() now performs exact, case-insensitive
matching and treats regular expression characters literally.taxo_path() now correctly handles identical taxa,
ancestor-descendant pairs, path direction, lineage depths, and pairs
with no common ancestor.k when
required by sample size.NA and
infinite distances and return informative fallback objects instead of
failing downstream.load_cache() validates cache structure, names, and
value types before modifying the active cache.distance_matrix() to fill the compact
lower-triangular dist representation directly instead of
allocating a full square matrix.distance_matrix(), avoiding repeated filtering and
regular-expression work in warm matrix construction.taxo_resolve() for batch name resolution with
explicit resolved, ambiguous,
unresolved, and retrieval_error statuses. A
missing name is therefore distinguishable from a failed network request
or lineage fetch. The result preserves all candidates considered, the
selected Taxonomicon ID, the retrieved lineage, and lineage depth for
every input.distance_matrix() now accepts a
taxodist_resolution object directly, reuses its stored
lineages without additional network requests, and keeps the original
queried names as matrix labels.taxo_from_lineages() for curated, unpublished,
frozen, or fully offline classifications. User-supplied lineages receive
deterministic identifiers and flow through the same matrix and bundle
APIs as online resolutions.taxo_bundle() to combine resolution records,
retrieved lineages, the distance matrix, metric definition, source
details, and software metadata in one self-contained object.write_taxodist_bundle() and
read_taxodist_bundle() for a documented JSON format
designed for exchange among the R, Python, and Julia
implementations.null, while disconnected
infinite distances use the explicit strings "Infinity" and
"-Infinity".distance_matrix() now also accepts a
taxodist_bundle and returns its stored matrix without
network access or recomputation.taxo_resolve() are now retrieved only
once while their original order and repetition are preserved in the
audit table.taxobase instead of requiring it to equal
the current development version.taxo_resolve() now truncates each selected lineage at
the queried taxon exactly as get_lineage() does. Previously
it stored the raw lineage of the Taxonomicon page, so for genera whose
page does not list the genus itself (e.g. Periplaneta) the
lineage stopped at the family, resolved_name reported the
family, and distance_matrix(taxo_resolve(x)) could differ
from distance_matrix(x). Bundles built from such
resolutions inherited the difference.get_lineage_by_id(id, clean = FALSE)
was cached under the same key as the cleaned lineage, so later calls
with clean = TRUE returned nodes above Biota
for the rest of the session. A single request now fills both
entries.get_lineage("tyrannosaurus") or
get_lineage("Tyrannosaurus ") appended a spurious extra
node, inflating the lineage depth, and the distance between
"Tyrannosaurus" and "tyrannosaurus" was
positive.taxo_heatmap() no longer forwards ... to
both distance_matrix() and stats::heatmap().
Graphical arguments such as col previously caused an
“unused argument” error when taxon names were supplied, and
progress produced a graphical-parameter warning.
verbose and progress are now explicit
arguments.cache_info() now reports the names of cached taxa,
together with their Taxonomicon IDs in a new ids element.
It previously listed only the IDs under taxa.get_lineage_by_id() now gives an informative error for
a vector of several IDs instead of a low-level coercion error, accepts
IDs supplied as numbers, and ignores surrounding whitespace.
get_lineage() likewise requires a single name.&.focal_distances() reports the terminal lineage node as
the MRCA of a community member identical to the focal taxon,
consistently with taxo_distance(), rather than echoing the
input name.closest_relative() returns consecutive row names after
sorting.check_coverage() returns NA when the
answer is unknown because The Taxonomicon could not be reached or a
candidate lineage could not be retrieved. Previously such names were
reported as FALSE, i.e. as absent from the database.distance_matrix() no longer recomputes every distance from
the stored lineages; this full integrity check is performed by
write_taxodist_bundle() and
read_taxodist_bundle(). Printing a bundle of 800 taxa went
from about 5 s to under 0.2 s.distance_matrix() now computes distances in vectorized
form. Every lineage node is mapped to an integer identifying its
complete path from the root, so the MRCA depth of two taxa is the number
of depths at which these identifiers agree. For 800 taxa the computation
dropped from about 14 s (with the default progress bar) to 0.3 s, with
identical results.distance_matrix() is updated once
per column instead of once per pair; previously it tripled the running
time.taxodist.max_tries option (default 3).taxo_tree() builds an ape-compatible phylo
object directly from lineages. Its internal nodes are the named clades
at which the taxa diverge, and its branch lengths make the tree
ultrametric with patristic distances equal to
distance_matrix().cross_distances() computes the rectangular matrix of
distances between two sets of taxa without computing the full square
matrix.compare_bundles() reports which taxa changed status,
identifier, or lineage between two bundles, and which pairwise distances
changed, e.g. when an analysis is repeated after The Taxonomicon is
updated. Bundle files can be passed directly by path.taxo_resolve() and taxo_bundle() gain a
within argument that restricts candidates to a clade (for
example within = "Animalia"), resolving many cross-kingdom
homonyms automatically.save_cache() and load_cache() default to a
persistent per-user file in
tools::R_user_dir("taxodist", "cache").
save_cache() now returns the written path invisibly.distance_matrix(), cross_distances(), and
taxo_tree() accept a taxodist_bundle or
taxodist_resolution wherever lineages are needed.html_nodes(), html_node()) with
html_elements() and html_element(). The unused
suggested package webmockr was also removed.get_taxonomicon_id(), taxo_search(), and
taxo_resolve().These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.