Source code for capalyzer.packet_builder.sub_factories.amr_factory
from .subfactory import SubFactory
from ..utils import parse_key_val_file
from pandas import DataFrame
from .utils import parse_gene_table
[docs]class AMRFactory(SubFactory):
[docs] def generic_megares(self, result, rpkmg=False):
classfs = self.factory.get_results(module='resistome_amrs',
result=result + '_normalized')
classfs = [el for el in classfs]
val_col = 2
if rpkmg:
val_col = 3
tbl = {sname: parse_key_val_file(fname,
key_column=0,
val_column=val_col,
sep=',',
kind=float,
skip=1)
for sname, fname in classfs}
tbl = DataFrame(tbl).fillna(0).transpose()
return tbl
[docs] def gene(self, rpkmg=False):
return self.generic_megares('gene', rpkmg=rpkmg)
[docs] def group(self, rpkmg=False):
return self.generic_megares('group', rpkmg=rpkmg)
[docs] def classus(self, rpkmg=False):
return self.generic_megares('classus', rpkmg=rpkmg)
[docs] def mech(self, rpkmg=False):
return self.generic_megares('mech', rpkmg=rpkmg)
[docs] def generic_card(self, metric):
genefs = self.factory.get_results(module='align_to_amr_genes',
result='table')
tbl = {sname: parse_gene_table(fname, metric)
for sname, fname in genefs}
tbl = DataFrame(tbl).fillna(0).transpose()
return tbl
[docs] def card_rpkm(self):
return self.generic_card('rpkm')
[docs] def card_rpkmg(self):
return self.generic_card('rpkmg')