Source code for mgkit.mappings.taxon
"""
Module used to map taxon_id to different levels in the taxonomy.
"""
[docs]def map_taxon_by_id_list(taxon_id, map_ids, func):
"""
Maps a taxon_id to a list of taxon IDs, using the function supplied.
Arguments:
taxon_id (int): taxon ID to map
map_ids (iterable): list of taxon IDs to which the taxon_id will be
mapped.
func (func): function used to map the IDs, accepts two taxon IDs
Results:
generator: generator expression of all IDs in map_ids to which taxon_id
can be mapped.
Example:
If mapping a taxon (Prevotella ruminicola) to Prevotella or
Clostridium, using as `func` :func:`mgkit.taxon.is_ancestor` and
taxonomy is an instance of :class:`mgkit.taxon.Taxonomy`.
>>> import functools
>>> from mgkit.taxon import is_ancestor
>>> func = functools.partial(is_ancestor, taxonomy)
>>> list(map_taxon_by_id_list(839, [838, 1485], func))
[838]
"""
taxon_ids = (
map_id
for map_id in map_ids
if func(taxon_id, map_id)
)
return taxon_ids