Source code for wub.parsers.mummer

# -*- coding: utf-8 -*-
""" Parser functions for mummer. """


def _parse_coord_line(line):
    """ Parse a line from a mummer coordinate file. """
    fields = line.replace("|", "").split()
    aln_record = {
        'ref_start': int(fields[0]),
        'ref_end': int(fields[1]),
        'query_start': int(fields[2]),
        'query_end': int(fields[3]),
        'ref_len': int(fields[4]),
        'query_len': int(fields[5]),
        'identity': float(fields[6]),
        'ref': fields[7],
        'query': fields[8],
    }
    return aln_record


[docs]def parse_coords(input_object): """ Parse coordinates file produced by mummer. :param input_object: Input path or file hanlder. :returns: List of dictionaries with parsed records. :rtype: list """ if type(input_object) == str: input_object = open(input_object, 'r') records = [] for line in input_object: line = line.strip() if line.count('/') > 0: continue if line.count('NUCMER') > 0: continue if line.count('[') > 0: continue if line.count('=') > 0: continue if len(line) == 0: continue records.append(_parse_coord_line(line)) return records