Esempio n. 1
0
    def test_peak_parsing(self):
        # Spectrum 1
        peaks = [(65.0388, 454422.7),
                 (105.0703, 3594629.8),
                 (115.0544, 916283.5),
                 (121.0287, 482029.8),
                 (139.0544, 904286),
                 (163.0549, 764499.2),
                 (164.0627, 2677649.4),
                 (165.0706, 293933491.2),
                 (166.0782, 235412982.7),
                 (183.0812, 3256920.2),
                 (193.0767, 1661789.6),
                 (199.0315, 5538869.4),
                 (201.0474, 7384944.1)]
        spec = MBSpectrum(os.path.join(os.path.dirname(__file__), "example_massbank_records", "EQ308406.txt"))
        self.assertEqual(peaks, spec.get_peaks())

        # Spectrum 2
        peaks = [
            (116.050500, 2998.000000),
            (117.054700, 236.000000),
            (118.029100, 170.000000),
            (131.037600, 1.23552e13),
            (132.045500, 1241.000000),
            (133.048300, 116.000000),
            (159.032400, 1732.000000),
            (160.040200, 10392.000000),
            (161.043200, 1399.000000)]
        spec = MBSpectrum(os.path.join(os.path.dirname(__file__), "example_massbank_records", "FIO00665.txt"))
        self.assertEqual(peaks, spec.get_peaks())
Esempio n. 2
0
    def test_to_sirius(self):
        # Spectrum 1 -------------------
        spec = MBSpectrum(os.path.join(os.path.dirname(__file__), "example_massbank_records", "FIO00665.txt"))
        out = spec.to_sirius_format()
        self.assertIn("FIO00665.ms", out)
        self.assertIn("FIO00665.tsv", out)
        self.assertIsNone(out["FIO00665.tsv"])
        self.assertIn(">profile qtof", out["FIO00665.ms"])

        # check fragmentation peaks
        tmp = out["FIO00665.ms"].split("\n")
        for idx, _peak in enumerate(spec.get_peaks(), start=tmp.index(">ms2merged") + 1):
            _mz, _int = tmp[idx].split(" ")
            self.assertEqual(_peak, (float(_mz), float(_int)))

        # Spectrum 2 -------------------
        spec = MBSpectrum(os.path.join(os.path.dirname(__file__), "example_massbank_records", "EQ308406.txt"))
        out = spec.to_sirius_format()
        self.assertIn("EQ308406.ms", out)
        self.assertIn("EQ308406.tsv", out)
        self.assertIsNone(out["EQ308406.tsv"])
        self.assertIn(">profile orbitrap", out["EQ308406.ms"])

        # check fragmentation peaks
        tmp = out["EQ308406.ms"].split("\n")
        for idx, _peak in enumerate(spec.get_peaks(), start=tmp.index(">ms2merged") + 1):
            _mz, _int = tmp[idx].split(" ")
            self.assertEqual(_peak, (float(_mz), float(_int)))

        # Spectrum 3 --------------------
        spectra = []
        acc = []
        spec_cnt = 0
        original_accessions = [
            'EA000412', 'EA000414', 'EA000401', 'EA000413', 'EA000408', 'EA000409', 'EA000405', 'EA000402', 'EA000406',
            'EA000404', 'EA000411', 'EA000403', 'EA000407', 'EA000410'
        ]
        for oacc in original_accessions:
            mb_fn = os.path.join(os.path.dirname(__file__), "example_massbank_records", "%s.txt" % oacc)
            spectra.append(MBSpectrum(mb_fn))
            acc.append(spectra[-1].get("accession"))
            spec_cnt += 1

        self.assertIn(
            ">ms2merged",
            MBSpectrum.merge_spectra(spectra, merge_peak_lists=True).to_sirius_format()["EA33002987.ms"]
        )

        self.assertEqual(
            spec_cnt,
            MBSpectrum.merge_spectra(spectra, merge_peak_lists=False).to_sirius_format()["EA33002987.ms"].count(">ms2peaks")
        )