skbio.table.Table.partition#
- Table.partition(f, axis='sample', remove_empty=False, ignore_none=False)[source]#
Yields partitions
- Parameters:
- ffunction, dict
f is given the ID and metadata of the vector and must return what partition the vector is part of. If dict, a mapping of either ID -> group, or group -> [list, of, ID] must be provided.
- axis{‘sample’, ‘observation’}, optional
The axis to iterate over
- remove_emptybool, optional
If True, remove empty vectors from a partition. Default is False.
- ignore_nonebool, optional
If True, ignore partitions with the label None. Default is False.
- Returns:
- GeneratorType
A generator that yields (partition, Table)
Examples
>>> import numpy as np >>> from biom.table import Table >>> from biom.util import unzip
Create a 2x3 BIOM table, with observation metadata and sample metadata:
>>> data = np.asarray([[0, 0, 1], [1, 3, 42]]) >>> table = Table(data, ['O1', 'O2'], ['S1', 'S2', 'S3'], ... [{'full_genome_available': True}, ... {'full_genome_available': False}], ... [{'sample_type': 'a'}, {'sample_type': 'a'}, ... {'sample_type': 'b'}])
Define a function to bin by sample_type
>>> f = lambda id_, md: md['sample_type']
Partition the table and view results
>>> bins, tables = table.partition(f) >>> print(bins[1]) # Constructed from biom file #OTU ID S1 S2 O1 0.0 0.0 O2 1.0 3.0 >>> print(tables[1]) # Constructed from biom file #OTU ID S3 O1 1.0 O2 42.0