def METHOD_NAME(self, f):
    """Parses a Malt log file"""
    reading = False
    keys = [
        "Total reads",
        "Assig. Taxonomy",
        "Num. of queries",
        "Aligned queries",
        "Num. alignments",
    ]
    for line in f["f"]:
        line = line.rstrip()
        if line.startswith("+++++ Aligning file:") and reading == False:
            reading = True
            s_name = line.split()[-1]
            s_name = self.clean_s_name(s_name, f)
            if s_name in self.malt_data:
                log.debug("Duplicate sample name found! Overwriting: {}".format(s_name))
            self.add_data_source(f, s_name=s_name)
            self.malt_data[s_name] = {}
        elif reading:
            for k in keys:
                if line.startswith(k):
                    self.malt_data[s_name][k] = int(line.split()[-1].replace(",", ""))
                    if k == "Num. alignments":
                        try:
                            self.malt_data[s_name]["Non mapped"] = (
                                self.malt_data[s_name]["Num. of queries"] - self.malt_data[s_name]["Total reads"]
                            )
                            self.malt_data[s_name]["No Assig. Taxonomy"] = (
                                self.malt_data[s_name]["Total reads"] - self.malt_data[s_name]["Assig. Taxonomy"]
                            )
                            try:
                                self.malt_data[s_name]["Mappability"] = (
                                    float(self.malt_data[s_name]["Total reads"])
                                    / float(self.malt_data[s_name]["Num. of queries"])
                                ) * 100.0
                            except ZeroDivisionError:
                                self.malt_data[s_name]["Mappability"] = 0
                            try:
                                self.malt_data[s_name]["Taxonomic assignment success"] = (
                                    float(self.malt_data[s_name]["Assig. Taxonomy"])
                                    / float(self.malt_data[s_name]["Total reads"])
                                ) * 100.0
                            except ZeroDivisionError:
                                self.malt_data[s_name]["Taxonomic assignment success"] = 0
                        except KeyError:
                            pass
                        reading = False