Exemplo n.º 1
0
    def test_metainformation_merging__FIO00665(self):
        # Apply merge function to a single spectrum
        mb_fn = os.path.join(os.path.dirname(__file__), "example_massbank_records", "FIO00665.txt")
        spec = MBSpectrum(mb_fn)
        spectra = [spec]
        acc_ref = [os.path.basename(mb_fn).split(".")[0]]
        rt_ref = spec.get("retention_time")
        precmz_ref = spec.get("precursor_mz")
        recordtitle_ref = spec.get("record_title")
        ce_ref = spec.get("collision_energy")

        # -------------------
        # WITH RT AGGREGATION
        # -------------------
        merged_spectrum = MBSpectrum.merge_spectra(spectra, rt_agg_fun=np.min)  # type: MBSpectrum

        self.assertEqual("FBZONXHGGPHHIY-UHFFFAOYSA-N", merged_spectrum.get("inchikey"))
        self.assertEqual(acc_ref, merged_spectrum.get("original_accessions"))
        self.assertEqual("FIO", merged_spectrum.get("accession")[:3])
        self.assertEqual(MBSpectrum._get_new_accession_id(merged_spectrum.get("original_accessions")),
                         merged_spectrum.get("accession"))
        self.assertEqual(rt_ref, merged_spectrum.get("retention_time"))
        self.assertEqual(precmz_ref, merged_spectrum.get("precursor_mz"))
        self.assertEqual(recordtitle_ref, merged_spectrum.get("record_title"))
        self.assertEqual([ce_ref], merged_spectrum.get("collision_energy"))
Exemplo n.º 2
0
    def test_metainformation_merging__EAX000401(self):
        # Load the list of spectra to merge: EA0004[01][0-9].txt --> EAX000401.txt
        spectra = []
        acc_ref = []
        rt_ref = []
        precmz_ref = []
        recordtitle_ref = []
        ce_ref = []
        for mb_fn in glob.iglob(os.path.join(os.path.dirname(__file__), "example_massbank_records", "EA0004[01][0-9].txt")):
            spectra.append(MBSpectrum(mb_fn))

            # collect some reference meta-information
            acc_ref.append(os.path.basename(mb_fn).split(".")[0])
            rt_ref.append(spectra[-1].get("retention_time"))
            precmz_ref.append(spectra[-1].get("precursor_mz"))
            recordtitle_ref.append(spectra[-1].get("record_title"))
            ce_ref.append(spectra[-1].get("collision_energy"))

        # -------------------
        # WITH RT AGGREGATION
        # -------------------
        merged_spectrum = MBSpectrum.merge_spectra(spectra, rt_agg_fun=np.mean)  # type: MBSpectrum

        self.assertEqual("OUSYWCQYMPDAEO-UHFFFAOYSA-N", merged_spectrum.get("inchikey"))
        self.assertEqual(acc_ref, merged_spectrum.get("original_accessions"))
        self.assertEqual("EA", merged_spectrum.get("accession")[:2])
        self.assertEqual(MBSpectrum._get_new_accession_id(merged_spectrum.get("original_accessions")),
                         merged_spectrum.get("accession"))
        self.assertEqual("min", merged_spectrum.get("retention_time_unit"))
        self.assertEqual(np.mean(rt_ref), merged_spectrum.get("retention_time"))
        self.assertEqual(precmz_ref[0], merged_spectrum.get("precursor_mz"))
        self.assertEqual(recordtitle_ref, merged_spectrum.get("record_title"))
        self.assertEqual(ce_ref, merged_spectrum.get("collision_energy"))

        # ----------------------
        # WITHOUT RT AGGREGATION
        # ----------------------
        merged_spectrum = MBSpectrum.merge_spectra(spectra, rt_agg_fun=None)  # type: MBSpectrum

        self.assertEqual("min", merged_spectrum.get("retention_time_unit"))
        self.assertEqual(rt_ref, merged_spectrum.get("retention_time"))