# Source code for highest_peaks

    #!/usr/bin/env python

    import pymzml
    from collections import defaultdict as ddict
    import os

    def main():
        """
        Testscript to isolate the n-highest peaks from an example file.

        Usage:

            ./highest_peaks.py

        Parses the file '../tests/data/example.mzML' and extracts the 2 highest
        intensities from each spectrum.

        """
        example_file = os.path.join(
            os.path.dirname(__file__), os.pardir, "tests", "data", "example.mzML"
        )
        run = pymzml.run.Reader(example_file)
        highest_i_dict = ddict(list)

        number_of_peaks_to_extract = 2

        for spectrum in run:
            # print( spectrum.ID )
            if spectrum.ms_level == 1:
                for mz, i in spectrum.highest_peaks(number_of_peaks_to_extract):
                    highest_i_dict[spectrum.ID].append(i)
        for spectrum_id, highest_peak_list in highest_i_dict.items():
            assert len(highest_peak_list) == number_of_peaks_to_extract
            print(
                "Spectrum {0}; highest intensities: {1}".format(
                    spectrum_id, highest_peak_list
                )
            )

    if __name__ == "__main__":
        main()