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