From a3262e0e16a13cd47d41815b586c9de33c50cd8f Mon Sep 17 00:00:00 2001 From: Fengchao Date: Mon, 5 Feb 2018 21:14:27 +0800 Subject: [PATCH] Fix a bug triggered by empty spectrum. --- src/main/java/proteomics/Search/SearchWrap.java | 5 +++++ src/main/java/proteomics/Spectrum/PreSpectra.java | 4 ++++ src/main/java/proteomics/Spectrum/PreSpectrum.java | 4 ++++ 3 files changed, 13 insertions(+) diff --git a/src/main/java/proteomics/Search/SearchWrap.java b/src/main/java/proteomics/Search/SearchWrap.java index b729105..6cc3ded 100644 --- a/src/main/java/proteomics/Search/SearchWrap.java +++ b/src/main/java/proteomics/Search/SearchWrap.java @@ -60,6 +60,11 @@ public Entry call() throws IOException, JMzReaderException, SQLException { } SparseVector xcorrPL = preSpectrumObj.preSpectrum(rawPLMap, precursorMass, scanId); + + if (xcorrPL == null) { + return null; + } + if (ECL2.debug) { BufferedWriter writer = new BufferedWriter(new FileWriter(scanId + ".xcorr.spectrum.csv")); writer.write("bin_idx,intensity\n"); diff --git a/src/main/java/proteomics/Spectrum/PreSpectra.java b/src/main/java/proteomics/Spectrum/PreSpectra.java index ceb6c46..db8ca8d 100644 --- a/src/main/java/proteomics/Spectrum/PreSpectra.java +++ b/src/main/java/proteomics/Spectrum/PreSpectra.java @@ -79,6 +79,10 @@ public PreSpectra(JMzReader spectra_parser, double ms1Tolerance, double leftInve Map raw_mz_intensity_map = spectrum.getPeakList(); + if (raw_mz_intensity_map.size() < 5) { + continue; + } + if (ECL2.debug) { BufferedWriter writer = new BufferedWriter(new FileWriter(Integer.valueOf(spectrum.getId()) + ".raw.spectrum.csv")); writer.write("mz,intensity\n"); diff --git a/src/main/java/proteomics/Spectrum/PreSpectrum.java b/src/main/java/proteomics/Spectrum/PreSpectrum.java index 6669ffe..ef09298 100644 --- a/src/main/java/proteomics/Spectrum/PreSpectrum.java +++ b/src/main/java/proteomics/Spectrum/PreSpectrum.java @@ -30,6 +30,10 @@ public SparseVector preSpectrum (Map peaks_map, double precursor } } + if (sqrt_pl_map.isEmpty()) { + return null; + } + // digitize the spectrum double[] pl_array = digitizeSpec(sqrt_pl_map);