Source code for dabeplech.parsers.kegg.orthology

"""Parsers for KEGG orthologies."""
import logging

from dabeplech.models.kegg import KeggOrthologyModel
from dabeplech.parsers.kegg.base import BaseKeggParser

logging.basicConfig()
logger = logging.getLogger()


[docs]class KeggOrthologyParser(BaseKeggParser): """Parser for KEGG KO `plain text` result from KEGG API.""" model = KeggOrthologyModel def _handle_definition(self, line: str, **kwargs): def_and_ec_numbers = line.split(maxsplit=1)[-1] if "EC:" in def_and_ec_numbers: elements = def_and_ec_numbers.split("[") self.entry.definition = elements[0].strip() self.entry.ec_numbers = ( elements[1].replace("]", "").replace("EC:", "").strip().split() ) else: self.entry.definition = def_and_ec_numbers