Ejemplo n.º 1
0
class DeltaExtractor(object):
    def __init__(self, path):
        self.path = path
        self.masterSpectrum = MasterSpectrum()

    def createDeltaMasterSpectrum(self,
                                  min_rel_intensity,
                                  delta_func=calculate_Delta_by_ppm(20)):
        up = 0
        with mgf.read(self.path) as spectra:
            for spectrum in spectra:
                print(up)
                up += 1
                int_dic = spectrum['intensity array']
                mz_dic = spectrum['m/z array']

                rel_int = calculateRelativeIntensity(int_dic)
                smallerArea = [(i, j) for i, j in zip(mz_dic, rel_int)
                               if j >= min_rel_intensity]
                mz_dic = [i for i, j in smallerArea]
                rel_int = [j for i, j in smallerArea]
                for i in range(len(mz_dic) - 1, -1, -1):
                    for j in range(i - 1, -1, -1):
                        diff = mz_dic[i] - mz_dic[j]
                        p = Peak(diff, rel_int[j],
                                 delta_func)  # intensities are from lower peak
                        self.masterSpectrum.add(p, 0)

    def exportCsv(self, output_path):
        self.masterSpectrum.export_to_csv(output_path)
class PrecursorDeltaPeaksExtractor(object):
    def __init__(self, path):
        self.path = path
        self.masterSpectrum = MasterSpectrum()

    def createDeltaPrecursorMasterSpectrum(
        self, delta_func=calculate_Delta_by_ppm(20)):
        with mgf.read(self.path) as spectra:
            for spectrum in spectra:
                int_dic = spectrum['intensity array']
                mz_dic = spectrum['m/z array']
                chrg_spec = spectrum['params']['charge'][0]
                precursor = calculatePrecursor(
                    mz=spectrum['params']['pepmass'][0], charge=chrg_spec)

                rel_int = calculateRelativeIntensity(int_dic)
                for m, i in zip(mz_dic, rel_int):
                    p = Peak(precursor - float(m), float(i), delta_func)
                    self.masterSpectrum.add(p, 0)

    def exportCsv(self, output_path):
        self.masterSpectrum.export_to_csv(output_path)