Source code for capalyzer.packet_builder.sub_factories.microbe_directory

from .subfactory import SubFactory
import pandas as pd
from json import loads
from numpy import percentile


[docs]def jloads(fname): return loads(open(fname).read())
[docs]class MicrobeDirectoryFactory(SubFactory):
[docs] def raw(self): mdfs = self.factory.get_results(module='microbe_directory_annotate', result='json') tbl = {sname: jloads(fname) for sname, fname in mdfs} return tbl
[docs] def raw_table(self): tbl = [] for sname, raw_vals in self.raw().items(): for facet, facet_vals in raw_vals.items(): for facet_val, val in facet_vals.items(): val = float(val) tbl.append({ 'sample_name': sname, 'category': facet, 'value': facet_val, 'proportion': val, }) tbl = {i: el for i, el in enumerate(tbl)} tbl = pd.DataFrame.from_dict(tbl, orient='index') return tbl