def write_taxonomic_profile(self, community_abundance, stream_output, metadata_table, sample_id=''):
    '\n        Stream a taxonomic profile by list of relative abundances\n\n        @param community_abundance: list of relative abundances\n        @type community_abundance: generator[ dict[int|long|str|unicode, str|unicode] ]\n        @param stream_output: Output of taxonomic profile\n        @type stream_output: file | FileIO | StringIO\n        @param metadata_table: Contains metadata of all communities\n        @type metadata_table: MetadataTable\n        @param sample_id: Identifier of a sample\n        @type sample_id: str | unicode\n        '
    assert isinstance(metadata_table, MetadataTable)
    genome_abundance = {}
    total_abundance = 0.0
    for (genome_id, abundance) in community_abundance:
        if (genome_id in genome_abundance):
            raise IOError("genome id '{}' is not unique!".format(genome_id))
        genome_abundance[genome_id] = float(abundance)
        total_abundance += genome_abundance[genome_id]
    for (key, value) in genome_abundance.items():
        genome_abundance[key] = (value / total_abundance)
    self._stream_taxonomic_profile(stream_output, genome_abundance, metadata_table, sample_id)
Stream a taxonomic profile by list of relative abundances

@param community_abundance: list of relative abundances
@type community_abundance: generator[ dict[int|long|str|unicode, str|unicode] ]
@param stream_output: Output of taxonomic profile
@type stream_output: file | FileIO | StringIO
@param metadata_table: Contains metadata of all communities
@type metadata_table: MetadataTable
@param sample_id: Identifier of a sample
@type sample_id: str | unicode
def write_taxonomic_profile(self, community_abundance, stream_output, metadata_table, sample_id=):
    '\n        Stream a taxonomic profile by list of relative abundances\n\n        @param community_abundance: list of relative abundances\n        @type community_abundance: generator[ dict[int|long|str|unicode, str|unicode] ]\n        @param stream_output: Output of taxonomic profile\n        @type stream_output: file | FileIO | StringIO\n        @param metadata_table: Contains metadata of all communities\n        @type metadata_table: MetadataTable\n        @param sample_id: Identifier of a sample\n        @type sample_id: str | unicode\n        '
    assert isinstance(metadata_table, MetadataTable)
    genome_abundance = {}
    total_abundance = 0.0
    for (genome_id, abundance) in community_abundance:
        if (genome_id in genome_abundance):
            raise IOError("genome id '{}' is not unique!".format(genome_id))
        genome_abundance[genome_id] = float(abundance)
        total_abundance += genome_abundance[genome_id]
    for (key, value) in genome_abundance.items():
        genome_abundance[key] = (value / total_abundance)
    self._stream_taxonomic_profile(stream_output, genome_abundance, metadata_table, sample_id)