Changeset 4523


Ignore:
Timestamp:
Sep 12, 2013, 10:08:26 AM (10 years ago)
Author:
Fredrik Levander
Message:

Fix for merged spectrum titles with MGF input in X!tandem results parsing. Some optimisation of X!Tandem import (Refs #755).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugin/src/org/proteios/plugins/TandemImportPlugin.java

    r4352 r4523  
    7373import java.util.ArrayList;
    7474import java.util.Arrays;
     75import java.util.HashMap;
    7576import java.util.Iterator;
    7677import java.util.List;
     78import java.util.Map;
    7779
    7880import javax.xml.XMLConstants;
     
    456458      TandemHitHandler pmh = new TandemHitHandler();
    457459      pmh.inputSpectrumFileName = inputFile;
     460      if (inputFile.toUpperCase().endsWith("MGF"))
     461      {
     462        pmh.inputMGF=true;
     463      }
     464      else if (inputFile.toUpperCase().endsWith("MZML"))
     465      {
     466        pmh.inputMzML=true;
     467      }
    458468      pmh.progress = progress;
    459469      // parse the file and also register this class for call backs
     
    846856    private List<String> protein_uids = new ArrayList<String>();
    847857    private String param_name;
     858    private Map<Integer,String> spectrumIdMap = new HashMap<Integer,String>();
    848859    String inputSpectrumFileName = null;
     860    boolean inputMGF = false;
     861    boolean inputMzML = false;
    849862
    850863
     
    10221035        {
    10231036          // Will equal MGF title if file is MGF
    1024           if (inputSpectrumFileName.toUpperCase().endsWith("MGF") || inputSpectrumFileName
    1025             .toUpperCase().endsWith("MZML"))
    1026           {
    1027             for (AHit pep : peptide_results)
     1037          if (inputMGF || inputMzML)
     1038          {
     1039            String spectrumID = buffer.toString();
     1040            // Sometimes the MGF title has been merged with RT, and needs to be split
     1041            if (inputMGF && spectrumID.contains("RTINSECONDS"))
    10281042            {
    1029               if (pep.getSpectrumId() == current_spectrum_id)
    1030               {
    1031                 pep.setSpectrumStringId(buffer.toString());
    1032               }
     1043              spectrumID = spectrumID.substring(0,spectrumID.indexOf("RTINSECO")-1);
    10331044            }
     1045            spectrumIdMap.put(new Integer(current_spectrum_id), spectrumID);
    10341046          }
    10351047        }
     
    10511063      else if (qName.equals("bioml"))
    10521064      {
     1065        if (inputMGF || inputMzML)
     1066        for (AHit pep : peptide_results)
     1067        {
     1068          if (spectrumIdMap.containsKey(pep.getSpectrumId()))
     1069          {
     1070            pep.setSpectrumStringId(spectrumIdMap.get(pep.getSpectrumId()));
     1071          }
     1072        }
     1073
    10531074        if (progress != null)
    10541075          progress.display(100, "Tandem import done\n");
Note: See TracChangeset for help on using the changeset viewer.