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") )
def test_to_sirius__custom_candidate_db(self): # Spectrum 1 ------------------- spec = MBSpectrum(os.path.join(os.path.dirname(__file__), "example_massbank_records", "FIO00665.txt")) out = spec.to_sirius_format( molecular_candidates=pd.read_csv( os.path.join(os.path.dirname(__file__), "example_massbank_records", "FIO00665.tsv"), sep="\t" ) ) self.assertIn("FIO00665.ms", out) self.assertIn("FIO00665.tsv", out) self.assertIsNotNone(out["FIO00665.tsv"])