Source code for compare_spectra

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os

import pymzml


[docs] def main(): """ Compare multiple spectra and return the cosine distance between them. The returned value is between 0 and 1, a returned value of 1 represents highest similarity. usage: ./compare_spectra.py """ example_file = os.path.join( os.path.dirname(__file__), os.pardir, "tests", "data", "example.mzML" ) print( """ Comparing spectra """ ) # print(example_file) run = pymzml.run.Reader(example_file) tmp = [] for spec in run: if spec.ms_level == 1: print("Parsing spectrum lvl 1 has id {0}".format(spec.ID)) tmp.append(spec) if len(tmp) >= 3: break print("Print total number of specs collected {0}".format(len(tmp))) for compare_tuples in [(0, 1), (0, 2), (1, 2)]: print( "Cosine between spectra {0} & {1} is {2:1.4f}".format( compare_tuples[0] + 1, compare_tuples[1] + 1, tmp[compare_tuples[0]].similarity_to(tmp[compare_tuples[1]]), ) ) print( "Cosine score between first spectrum against itself: {0:1.4f}".format( tmp[0].similarity_to(tmp[0]) ) )
if __name__ == "__main__": main()