Changeset 48

Show
Ignore:
Timestamp:
02-02-12 16:13:29 (2 years ago)
Author:
b.hoekman@…
Message:

Removed code for OpenMS version 1.1 and 1.4
Removed code for all but FeatureQuantitation? using OpenMS v1.2

Updated OpenMS module for usage of mzML as inputFileType

Location:
trunk/msCompare/src/runProgram/programParts/openMS
Files:
2 removed
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/msCompare/src/runProgram/programParts/openMS/RunOpenMSV12.java

    r43 r48  
    1919import javax.xml.stream.XMLStreamWriter; 
    2020 
     21import lcSpectra.LCMSSpectra; 
    2122import loadData.LoadTransformationXML; 
     23import loadData.lcMSData.LoadMZMLFile; 
    2224import loadData.peakList.LoadOpenMSPeakListV12; 
    23 import loadData.peakList.LoadPeakGeneralList; 
    2425import loadData.peakList.PeakListLoader; 
    25 import loadData.peakMatrix.LoadOpenMSPeakMatrixV12; 
    26 import loadData.peakMatrix.PeakMatrixLoader; 
    2726import runProgram.AbstractRunProgram; 
    28 import runProgram.programParts.openMS.mzXML.IndexFixer; 
    29 import saveData.peakList.PeakListSaver; 
    30 import saveData.peakList.SaveAsOpenMSPeakListV12; 
    3127import saveData.peakList.SavePeakGeneralList; 
    32 import saveData.peakMatrix.AbstractSavePeakMatrix; 
    33 import saveData.peakMatrix.SavePeakMatrixXML; 
    34 import dataStructures.peakMatrix.PeakMatrix; 
    3528import dataStructures.misc.parameters.Parameters; 
    3629import dataStructures.misc.parameters.helpers.parameterInterfaces.FileType; 
    3730import dataStructures.misc.parameters.helpers.parameterTypes.PeakListGeneralFileType; 
    38 import dataStructures.misc.parameters.helpers.parameterTypes.PeakMatrixFileType; 
    39 import dataStructures.misc.parameters.helpers.parameterTypes.mzXMLFileType; 
    4031import dataStructures.peaklist.PeakGeneralList; 
    4132import dataTransformation.peakList.CompletePeakHullPoints; 
    4233import dataTransformation.peakList.GenericConversion; 
    4334import dataTransformation.peakList.general.attributeTransformations.AttributeTransformation; 
    44  
     35import export.mzXML.ExportLCMSSpectraToMzXML; 
     36 
     37/** 
     38 * Class to run OpenMSV12 FeatureQuantitation 
     39 *  
     40 * @author bhoekman 
     41 * 
     42 */ 
    4543public class RunOpenMSV12 extends AbstractRunProgram { 
    4644         
     
    9290                if(methodName.equalsIgnoreCase(programPeakPicking)) { 
    9391                        result = false; 
    94                 } else if(methodName.equalsIgnoreCase(programConsensusMap)) { 
    95                         result = true; 
    96                 } else if(methodName.equalsIgnoreCase(programNoiseFilter)) { 
    97                         result = false; 
    98                 } else if(methodName.equalsIgnoreCase(programBaseLineFilter)) { 
    99                         result = false; 
    100                 } else if (methodName.equalsIgnoreCase(programFileFilter)) { 
    101                         result = false; 
    10292                } 
    10393                 
     
    111101                if(methodName.equalsIgnoreCase(programPeakPicking)) { 
    112102                        result = ".xml"; 
    113                 } else if(methodName.equalsIgnoreCase(programConsensusMap)) { 
    114                         result = ".xml"; 
    115                 } else if(methodName.equalsIgnoreCase(programNoiseFilter)) { 
    116                         result = ""; 
    117                 } else if(methodName.equalsIgnoreCase(programBaseLineFilter)) { 
    118                         result = ""; 
    119                 } else if (methodName.equalsIgnoreCase(programFileFilter)) { 
    120                         result = ""; 
    121103                } 
    122104                 
     
    130112                if(methodName.equalsIgnoreCase(programPeakPicking)) { 
    131113                        result = new PeakListGeneralFileType(); 
    132                 } else if(methodName.equalsIgnoreCase(programConsensusMap)) { 
    133                         result = new PeakMatrixFileType(); 
    134                 } else if(methodName.equalsIgnoreCase(programNoiseFilter)) { 
    135                         result = new mzXMLFileType(); 
    136                 } else if(methodName.equalsIgnoreCase(programBaseLineFilter)) { 
    137                         result = new mzXMLFileType(); 
    138                 } else if (methodName.equalsIgnoreCase(programFileFilter)) { 
    139                         result = new mzXMLFileType(); 
    140114                } 
    141115         
     
    156130                        } 
    157131                        System.out.println("Finished PeakPicking"); 
    158                 } else if (param.getMethodName().equalsIgnoreCase(programConsensusMap)) { 
    159                         try { 
    160                                 runConsensusMap(param); 
    161                         } catch (IOException e) { 
    162                                 e.printStackTrace(); 
    163                         } catch (XMLStreamException e) { 
    164                                 e.printStackTrace(); 
    165                         } catch (InterruptedException e) { 
    166                                 e.printStackTrace(); 
    167                         } 
    168                 } else if (param.getMethodName().equalsIgnoreCase(programNoiseFilter)) { 
    169                         try { 
    170                                 runNoiseFilter(param); 
    171                         } catch (IOException e) { 
    172                                 e.printStackTrace(); 
    173                         } catch (InterruptedException e) { 
    174                                 e.printStackTrace(); 
    175                         } 
    176                 } else if (param.getMethodName().equalsIgnoreCase(programBaseLineFilter)) { 
    177                         try { 
    178                                 runBaseLineFilter(param); 
    179                         } catch (IOException e) { 
    180                                 e.printStackTrace(); 
    181                         } catch (InterruptedException e) { 
    182                                 e.printStackTrace(); 
    183                         } 
    184                 } else if (param.getMethodName().equalsIgnoreCase(programFileFilter)) { 
    185                         try { 
    186                                 runFileFilter(param); 
    187                         } catch (IOException e) { 
    188                                 e.printStackTrace(); 
    189                         } catch (InterruptedException e) { 
    190                                 e.printStackTrace(); 
    191                         } 
    192                 } 
    193                  
     132                } 
    194133        } 
    195134 
     
    217156                System.out.println("Done, exiting!!"); 
    218157                System.exit(0); // not the nicest exit but it seems to work. 
    219         } 
    220          
    221         private void runBaseLineFilter(Parameters param) throws IOException, InterruptedException { 
    222  
    223                 String tmpBaseDir                        = param.getParameters().getAttributeValue(tmpDir); 
    224                 String[] openMSENVP              = new String[]{param.getParameters().getAttributeValue(openMSENVPSettings)}; 
    225                 String openMSProgramLocation = param.getParameters().getAttributeValue(openMSLocation); 
    226                  
    227                 String uniqueNumber = ((Long)System.currentTimeMillis()).toString(); 
    228                 String tmpDir = tmpBaseDir + "/" + "openMS_"+uniqueNumber+"/"; 
    229                 boolean success = (new File(tmpDir)).mkdir(); 
    230                 if(!success) { 
    231                         throw new IOException("Could not create directory"+tmpDir); 
    232                 } 
    233                  
    234                 Double strucElemLength  = param.getParameters().getAttributeDoubleValue("struc_elem_length"); 
    235                 Double resampling               = param.getParameters().getAttributeDoubleValue("resampling"); 
    236                  
    237                  
    238                 if(strucElemLength == null) { 
    239                         strucElemLength = 2.5D; 
    240                         System.out.println("Did not find: struc_elem_length Using default: "+strucElemLength); 
    241                 } 
    242                 if(resampling == null) { 
    243                         resampling = 0D; 
    244                         System.out.println("Did not find: resampling Using default: "+resampling); 
    245                 } 
    246                                  
    247                 Iterator<String> inputIt = param.getInputFiles().getInputFiles().iterator(); 
    248                 while(inputIt.hasNext()) { 
    249                          
    250                         String input = inputIt.next(); 
    251                         String fileName = (new File(input)).getName(); 
    252                          
    253                         String mzDataFileName = fileName.replaceFirst("mzXML", "mzData"); 
    254                         convertFile(input,tmpDir+"/"+mzDataFileName, param); 
    255                          
    256                         String outputFileName = param.getInputFiles().getOutputFileForInputFile(input); 
    257                         fileName = (new File(outputFileName)).getName(); 
    258 //                      String outputMZDataFileName = fileName.replaceFirst("mzXML", "mzData"); 
    259                         String outputMZDataFileName = "temp.mzData"; 
    260                          
    261                         String[] commands = new String[] { 
    262                                         openMSProgramLocation+"/BaseLineFilter", 
    263                                         "-in",tmpDir+"/"+mzDataFileName, "-out", tmpDir+"/"+outputMZDataFileName, 
    264                                         "-struc_elem_length", strucElemLength.toString(), "-resampling", resampling.toString() 
    265                                 }; 
    266                          
    267                         System.out.println(); 
    268                         for(int a = 0; a < commands.length; a++) { 
    269                                 System.out.print(commands[a]+" "); 
    270                         } 
    271                         System.out.println(); 
    272                         System.out.println(); 
    273                          
    274                         Process p = Runtime.getRuntime().exec(commands,openMSENVP,new File(tmpDir)); 
    275                         BufferedReader brIn = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    276                          
    277                         ThreadedReader trIn = new ThreadedReader(); 
    278                         trIn.ratio = 100; 
    279                         trIn.buffReader = brIn; 
    280                         trIn.start(); 
    281                          
    282                         BufferedReader brErr = new BufferedReader(new InputStreamReader(p.getErrorStream())); 
    283                          
    284                         ThreadedReader trErr = new ThreadedReader(); 
    285                         trErr.buffReader = brErr; 
    286                         trErr.stdOut = false; 
    287                         trErr.start(); 
    288  
    289                         //This should pause this thread until the external process is finished. 
    290                         p.waitFor(); 
    291                          
    292                         trIn.join(10000); 
    293                         trErr.join(10000); 
    294                                                  
    295                         convertFile(tmpDir+File.separator+outputMZDataFileName,tmpDir+File.separator+"incorrectMzXML.mzXML", param); 
    296                         IndexFixer indxFix = new IndexFixer(); 
    297                         indxFix.fixIndex(tmpDir+File.separator+"incorrectMzXML.mzXML", outputFileName); 
    298                 } 
    299         } 
    300          
    301         private void runNoiseFilter(Parameters param) throws IOException, InterruptedException { 
    302  
    303                 String tmpBaseDir                        = param.getParameters().getAttributeValue(tmpDir); 
    304                 String[] openMSENVP              = new String[]{param.getParameters().getAttributeValue(openMSENVPSettings)}; 
    305                 String openMSProgramLocation = param.getParameters().getAttributeValue(openMSLocation); 
    306                  
    307                 String uniqueNumber = ((Long)System.currentTimeMillis()).toString(); 
    308                 String tmpDir = tmpBaseDir + "/" + "openMS_"+uniqueNumber+"/"; 
    309                 boolean success = (new File(tmpDir)).mkdir(); 
    310                 if(!success) { 
    311                         throw new IOException("Could not create directory"+tmpDir); 
    312                 } 
    313                  
    314                 String iniFile = param.getParameters().getAttributeValue("iniFile"); 
    315                 String type = param.getParameters().getAttributeValue("smoothingType"); 
    316                  
    317                 Iterator<String> inputIt = param.getInputFiles().getInputFiles().iterator(); 
    318                 while(inputIt.hasNext()) { 
    319                          
    320                         String input = inputIt.next(); 
    321                         String fileName = (new File(input)).getName(); 
    322                          
    323                         String mzDataFileName = fileName.replaceFirst("mzXML", "mzData"); 
    324                         convertFile(input,tmpDir+"/"+mzDataFileName, param); 
    325                          
    326                         String outputFileName = param.getInputFiles().getOutputFileForInputFile(input); 
    327                         fileName = (new File(outputFileName)).getName(); 
    328 //                      String outputMZDataFileName = fileName.replaceFirst("mzXML", "mzData"); 
    329                         String outputMZDataFileName = "temp.mzData"; 
    330                          
    331                         String[] commands = new String[] { 
    332                                         openMSProgramLocation+"/NoiseFilter", 
    333                                         "-in",tmpDir+"/"+mzDataFileName, "-out", tmpDir+"/"+outputMZDataFileName, 
    334                                         "-ini", iniFile, "-type", type 
    335                                 }; 
    336                          
    337                         System.out.println(); 
    338                         for(int a = 0; a < commands.length; a++) { 
    339                                 System.out.print(commands[a]+" "); 
    340                         } 
    341                         System.out.println(); 
    342                         System.out.println(); 
    343                          
    344                         Process p = Runtime.getRuntime().exec(commands,openMSENVP,new File(tmpDir)); 
    345                         BufferedReader brIn = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    346                          
    347                         ThreadedReader trIn = new ThreadedReader(); 
    348                         trIn.ratio = 100; 
    349                         trIn.buffReader = brIn; 
    350                         trIn.start(); 
    351                          
    352                         BufferedReader brErr = new BufferedReader(new InputStreamReader(p.getErrorStream())); 
    353                          
    354                         ThreadedReader trErr = new ThreadedReader(); 
    355                         trErr.buffReader = brErr; 
    356                         trErr.stdOut = false; 
    357                         trErr.start(); 
    358  
    359                         //This should pause this thread until the external process is finished. 
    360                         p.waitFor(); 
    361                          
    362                         trIn.join(10000); 
    363                         trErr.join(10000); 
    364                          
    365                         convertFile(tmpDir+File.separator+outputMZDataFileName,tmpDir+File.separator+"incorrectMzXML.mzXML", param); 
    366                         IndexFixer indxFix = new IndexFixer(); 
    367                         indxFix.fixIndex(tmpDir+File.separator+"incorrectMzXML.mzXML", outputFileName);                  
    368                 }                
    369         } 
    370          
    371         private void runFileFilter(Parameters param) throws IOException, InterruptedException { 
    372                  
    373                 String tmpBaseDir                        = param.getParameters().getAttributeValue(tmpDir); 
    374                 String[] openMSENVP              = new String[]{param.getParameters().getAttributeValue(openMSENVPSettings)}; 
    375                 String openMSProgramLocation = param.getParameters().getAttributeValue(openMSLocation); 
    376                  
    377                 String uniqueNumber = ((Long)System.currentTimeMillis()).toString(); 
    378                 String tmpDir = tmpBaseDir + "/" + "openMS_"+uniqueNumber+"/"; 
    379                 boolean success = (new File(tmpDir)).mkdir(); 
    380                 if(!success) { 
    381                         throw new IOException("Could not create directory"+tmpDir); 
    382                 } 
    383                  
    384                 Double mzMin = param.getParameters().getAttributeDoubleValue("mzMin"); 
    385                 Double mzMax = param.getParameters().getAttributeDoubleValue("mzMax"); 
    386                 Double rtMin = param.getParameters().getAttributeDoubleValue("rtMin"); 
    387                 Double rtMax = param.getParameters().getAttributeDoubleValue("rtMax"); 
    388                 Integer intMin = param.getParameters().getAttributeIntegerValue("intMin"); 
    389                 Integer intMax = param.getParameters().getAttributeIntegerValue("intMax"); 
    390                  
    391                 String mzFilter = ":"; 
    392                 if(mzMin != null && mzMax != null) { 
    393                         mzFilter = mzMin + ":" + mzMax; 
    394                 } 
    395                  
    396                 String rtFilter = ":"; 
    397                 if(rtMin != null && rtMax != null) { 
    398                         rtFilter = rtMin + ":" + rtMax; 
    399                 } 
    400                  
    401                 String intFilter = ":"; 
    402                 if(intMin != null && intMax != null) { 
    403                         intFilter = intMin + ":" + intMax; 
    404                 } 
    405                  
    406                 Iterator<String> inputIt = param.getInputFiles().getInputFiles().iterator(); 
    407                 while(inputIt.hasNext()) { 
    408                          
    409                         String input = inputIt.next(); 
    410                         String fileName = (new File(input)).getName(); 
    411                          
    412                         String mzDataFileName = fileName.replaceFirst("mzXML", "mzData"); 
    413                         convertFile(input,tmpDir+"/"+mzDataFileName, param); 
    414                          
    415                         String outputFileName = param.getInputFiles().getOutputFileForInputFile(input); 
    416                         fileName = (new File(outputFileName)).getName(); 
    417                         //String outputMZDataFileName = fileName.replaceFirst("mzXML", "mzData"); 
    418                         String outputMZDataFileName = "temp.mzData"; 
    419                          
    420                          
    421                         String[] commands = new String[] { 
    422                                         openMSProgramLocation+"/FileFilter", 
    423                                         "-in",tmpDir+"/"+mzDataFileName, "-out", tmpDir+"/"+outputMZDataFileName, 
    424                                         "-mz", mzFilter, "-rt", rtFilter, "-int", intFilter 
    425                                 }; 
    426                          
    427                         System.out.println(); 
    428                         for(int a = 0; a < commands.length; a++) { 
    429                                 System.out.print(commands[a]+" "); 
    430                         } 
    431                         System.out.println(); 
    432                         System.out.println(); 
    433                          
    434                         Process p = Runtime.getRuntime().exec(commands,openMSENVP,new File(tmpDir)); 
    435                         BufferedReader brIn = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    436                          
    437                         ThreadedReader trIn = new ThreadedReader(); 
    438                         trIn.ratio = 1000; 
    439                         trIn.buffReader = brIn; 
    440                         trIn.start(); 
    441                          
    442                         BufferedReader brErr = new BufferedReader(new InputStreamReader(p.getErrorStream())); 
    443                          
    444                         ThreadedReader trErr = new ThreadedReader(); 
    445                         trErr.buffReader = brErr; 
    446                         trErr.stdOut = false; 
    447                         trErr.start(); 
    448  
    449                         //This should pause this thread until the external process is finished. 
    450                         p.waitFor(); 
    451                          
    452                         trIn.join(10000); 
    453                         trErr.join(10000); 
    454                                                  
    455                         convertFile(tmpDir+File.separator+outputMZDataFileName,tmpDir+File.separator+"incorrectMzXML.mzXML", param); 
    456                         IndexFixer indxFix = new IndexFixer(); 
    457                         indxFix.fixIndex(tmpDir+File.separator+"incorrectMzXML.mzXML", outputFileName); 
    458                 } 
    459158        } 
    460159         
     
    498197                         
    499198                        String copyInputFile = tmpDir + File.separator + fileName; 
    500                         copyFile(input,copyInputFile); 
     199                         
     200                        // Loads the input mzML file and writes down mzXML in the copyInputFileLocation 
     201                        LCMSSpectra lcMS = LoadMZMLFile.loadFile(input); 
     202                        ExportLCMSSpectraToMzXML export = new ExportLCMSSpectraToMzXML(); 
     203                        export.setLCMSSpectra(lcMS); 
     204                        export.writeMZXMLToFile(copyInputFile); 
    501205                         
    502206                         
     
    693397                outStream.flush(); 
    694398                outStream.close(); 
    695         } 
    696          
    697         private void runConsensusMap(Parameters param) throws IOException, XMLStreamException, InterruptedException { 
    698                  
    699                 String tmpBaseDir                        = param.getParameters().getAttributeValue(tmpDir); 
    700                 String[] openMSENVP              = new String[]{param.getParameters().getAttributeValue(openMSENVPSettings)}; 
    701                 String openMSProgramLocation = param.getParameters().getAttributeValue(openMSLocation); 
    702                  
    703                 String uniqueNumber = ((Long)System.currentTimeMillis()).toString(); 
    704                 String tmpDir = tmpBaseDir + File.separator +"openMS_"+uniqueNumber+File.separator; 
    705                 String openMSResultFile = tmpDir + File.separator + "openMS_result_"+uniqueNumber+".xml"; 
    706                  
    707                 boolean success = (new File(tmpDir)).mkdir(); 
    708                 if(!success) { 
    709                         throw new IOException("Could not create directory"+tmpDir); 
    710                 } 
    711                  
    712                 int nonFiles = param.getInputFiles().getInputFiles().size(); 
    713                 String[] inputFiles = new String[nonFiles]; 
    714                 int count = 0; 
    715                 Iterator<String> inputFileIt = param.getInputFiles().getInputFiles().iterator(); 
    716                 while(inputFileIt.hasNext()) { 
    717                         LoadPeakGeneralList pll = new LoadPeakGeneralList(); 
    718                         String inputFile = inputFileIt.next(); 
    719                         PeakGeneralList peakList = pll.loadPeakList(inputFile, "OpenMSGenerated", new File(tmpBaseDir)); 
    720  
    721                         File temp = new File(inputFile); 
    722                         String outputFile = tmpDir + File.separator + temp.getName(); 
    723                          
    724                         PeakListSaver pls = new SaveAsOpenMSPeakListV12(); 
    725                         pls.savePeakList(outputFile, peakList); 
    726                          
    727                         inputFiles[count] = outputFile; 
    728                         count++; 
    729                 } 
    730                  
    731                 String mapAlingerIN = ""; 
    732                 String mapAlingerOUT = ""; 
    733                 for(int a = 0; a < inputFiles.length; a++) { 
    734                         String inputFile = inputFiles[a]; 
    735                          
    736                         mapAlingerIN += inputFile; 
    737                          
    738                          
    739                         File temp = new File(inputFile); 
    740                         mapAlingerOUT += tmpDir + File.separator + temp.getName() + ".featureXML"; 
    741                          
    742                          
    743                          
    744                         if(a < (inputFiles.length-1)) { 
    745                                 mapAlingerIN  += ","; 
    746                                 mapAlingerOUT += ","; 
    747                         } 
    748                 } 
    749                          
    750                 String iniFileMapAligner        = tmpDir + File.separator + "mapAlign.ini"; 
    751                 String logFileMapAligner        = tmpDir + File.separator + "OpenMSLog_MapAlinger.txt"; 
    752                 String type                             = param.getParameters().getAttributeValue("AlignmentTypeUsed"); 
    753                  
    754                 copyFile(param.getParameters().getAttributeValue("settingsFileMapAlinger"),iniFileMapAligner); 
    755                  
    756                 String[] commands = new String[] { 
    757                                 openMSProgramLocation+File.separator+"MapAligner", 
    758                                 "-ini", iniFileMapAligner, "-log", logFileMapAligner,  
    759                                 "-type", type, "-in", mapAlingerIN, "-out", mapAlingerOUT 
    760                         }; 
    761                  
    762                 System.out.println(); 
    763                 for(int a = 0; a < commands.length; a++) { 
    764                         System.out.print(commands[a]+" "); 
    765                 } 
    766                 System.out.println(); 
    767                 System.out.println(); 
    768  
    769                 Process p = Runtime.getRuntime().exec(commands,openMSENVP); 
    770                  
    771                 BufferedReader brErr = new BufferedReader(new InputStreamReader(p.getErrorStream())); 
    772                 ThreadedReader trErr = new ThreadedReader(); 
    773                 trErr.buffReader = brErr; 
    774                 trErr.stdOut = false; 
    775                 trErr.run(); 
    776                  
    777                 BufferedReader brIn = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    778                 String line = ""; 
    779                 while ((line = brIn.readLine()) != null) { 
    780                         System.out.println("openMS returns: " + line); 
    781                 } 
    782                 brIn.close(); 
    783  
    784                 //This should pause this thread until the external process is finished. 
    785                 p.waitFor(); 
    786                  
    787                 trErr.join(10000); 
    788                  
    789                 /* 
    790                  * Run now the Feature Linker 
    791                  *   
    792                  */ 
    793                  
    794                 String iniFileFeatureLinker = tmpDir + File.separator + "featureLinker.ini"; 
    795                 String logFileFeatureLinker     = tmpDir + File.separator + "OpenMSLog_FeatureLinker.txt"; 
    796                 type                                            = param.getParameters().getAttributeValue("FeatureLinkerType"); 
    797                  
    798                 copyFile(param.getParameters().getAttributeValue("settingsFileFeatureLinker"),iniFileFeatureLinker); 
    799          
    800                 commands = new String[] { 
    801                         openMSProgramLocation+File.separator+"FeatureLinker", 
    802                         "-ini", iniFileFeatureLinker, "-log", logFileFeatureLinker,  
    803                         "-type", type, "-in", mapAlingerOUT, "-out", openMSResultFile 
    804                 }; 
    805                  
    806                 System.out.println(); 
    807                 for(int a = 0; a < commands.length; a++) { 
    808                         System.out.print(commands[a]+" "); 
    809                 } 
    810                 System.out.println(); 
    811                 System.out.println(); 
    812  
    813                 p = Runtime.getRuntime().exec(commands,openMSENVP); 
    814                  
    815                 brErr = new BufferedReader(new InputStreamReader(p.getErrorStream())); 
    816                 trErr = new ThreadedReader(); 
    817                 trErr.buffReader = brErr; 
    818                 trErr.stdOut = false; 
    819                 trErr.run(); 
    820                  
    821                 brIn = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    822                 line = ""; 
    823                 while ((line = brIn.readLine()) != null) { 
    824                         System.out.println("openMS returns: " + line); 
    825                 } 
    826                 brIn.close(); 
    827  
    828                 //This should pause this thread until the external process is finished. 
    829                 p.waitFor(); 
    830                 trErr.join(10000); 
    831                  
    832                 PeakMatrixLoader pml = new LoadOpenMSPeakMatrixV12(); 
    833                 PeakMatrix pm = pml.loadPeakMatrix(openMSResultFile); 
    834                  
    835                 Iterator<String> itInput = param.getInputFiles().getInputFiles().iterator(); 
    836                 while(itInput.hasNext()) { 
    837                         String inputFile = itInput.next(); 
    838                         Integer classNum = param.getInputFiles().getClassNumberForInputFile(inputFile); 
    839                          
    840                         pm.addFileClassPair(inputFile, classNum); 
    841                 } 
    842                          
    843                 String outputFileName = param.getInputFiles().getOutputFileForInputFile(param.getInputFiles().getInputFiles().iterator().next()); 
    844                 AbstractSavePeakMatrix aspm = new SavePeakMatrixXML(); 
    845                 aspm.savePeakMatrix(outputFileName, pm, null); 
    846399        } 
    847400                         
  • trunk/msCompare/src/runProgram/programParts/openMS/RunOpenMSV15.java

    r43 r48  
    2828import runProgram.AbstractRunProgram; 
    2929import runProgram.programParts.openMS.helper.ThreadedReader; 
    30 import runProgram.programParts.openMS.mzXML.IndexFixer; 
    3130import saveData.peakList.PeakListSaver; 
    3231import saveData.peakList.SaveAsOpenMSPeakListV12; 
     
    277276                        String fileName = (new File(input)).getName(); 
    278277                         
    279                         String mzDataFileName = fileName.replaceFirst("mzXML", "mzML"); 
    280                         convertFile(input,"mzXML",tmpDir+File.separator+mzDataFileName,"mzML", param); 
     278                        String mzDataFileName = fileName; 
    281279                         
    282280                        String outputFileName = param.getInputFiles().getOutputFileForInputFile(input); 
     
    333331                        trIn.join(10000); 
    334332                        trErr.join(10000); 
    335                                                  
    336                         convertFile(tmpDir+File.separator+outputMZDataFileName,"mzML",tmpDir+File.separator+"incorrectMzXML.mzXML","mzXML", param); 
    337                         IndexFixer indxFix = new IndexFixer(); 
    338                         indxFix.fixIndex(tmpDir+File.separator+"incorrectMzXML.mzXML", outputFileName); 
     333                         
     334                        FileUtils.copyFile(new File(outputMZDataFileName), new File(outputFileName)); 
    339335                } 
    340336        } 
     
    362358                        String fileName = (new File(input)).getName(); 
    363359                         
    364                         String mzDataFileName = fileName.replaceFirst("mzXML", "mzML"); 
    365                         convertFile(input,"mzXML",tmpDir+File.separator+mzDataFileName,"mzML", param); 
     360                        String mzDataFileName = fileName; 
    366361                         
    367362                        String outputFileName = param.getInputFiles().getOutputFileForInputFile(input); 
     
    417412                        trErr.join(10000); 
    418413                         
    419                         convertFile(tmpDir+File.separator+outputMZDataFileName,"mzML",tmpDir+File.separator+"incorrectMzXML.mzXML","mzXML", param); 
    420                         IndexFixer indxFix = new IndexFixer(); 
    421                         indxFix.fixIndex(tmpDir+File.separator+"incorrectMzXML.mzXML", outputFileName);                  
     414                        FileUtils.copyFile(new File(outputMZDataFileName), new File(outputFileName));                    
    422415                }                
    423416        } 
     
    464457                        String fileName = (new File(input)).getName(); 
    465458                         
    466                         String mzDataFileName = fileName.replaceFirst("mzXML", "mzML"); 
    467                         convertFile(input,"mzXML",tmpDir+File.separator+mzDataFileName,"mzML", param); 
     459                        String mzDataFileName = fileName; 
    468460                         
    469461                        String outputFileName = param.getInputFiles().getOutputFileForInputFile(input); 
     
    520512                        trErr.join(10000); 
    521513                                                 
    522                         convertFile(tmpDir+File.separator+outputMZDataFileName,"mzML",tmpDir+File.separator+"incorrectMzXML.mzXML","mzXML", param); 
    523                         IndexFixer indxFix = new IndexFixer(); 
    524                         indxFix.fixIndex(tmpDir+File.separator+"incorrectMzXML.mzXML", outputFileName); 
     514                        FileUtils.copyFile(new File(outputMZDataFileName), new File(outputFileName)); 
    525515                } 
    526516        } 
     
    559549                        String input = inputIt.next(); 
    560550                        String fileName = (new File(input)).getName(); 
    561                         if(!fileName.endsWith("mzXML")) { 
    562                                 fileName = fileName + ".mzXML"; 
     551                        if(!fileName.endsWith("mzML")) { 
     552                                fileName = fileName + ".mzML"; 
    563553                        } 
    564554                         
    565555                        String copyInputFile = tmpDir + File.separator + fileName; 
    566556                        FileUtils.copyFile(new File(input), new File(copyInputFile)); 
    567 //                      copyFile(input,copyInputFile); 
    568                          
    569                          
    570                         String mzDataFileName = fileName.replaceFirst("mzXML", "mzML"); 
    571                         convertFile(copyInputFile,"mzXML",tmpDir+File.separator+mzDataFileName,"mzML", param); 
    572                          
    573                         String featureFileName = fileName.replaceFirst("mzXML", "xml"); 
     557                         
     558                         
     559                        String mzDataFileName = fileName; 
     560                         
     561                        String featureFileName = fileName.replaceFirst("mzML", "xml"); 
    574562                        String[] commands = null; 
    575563                        if(openMSProgramLocation == null) { 
     
    644632                        pls.savePeakList(outputFile, peakList); 
    645633                } 
    646         } 
    647          
    648         public static void convertFile(String inFile, String typeIn, String outFile, String typeOut, Parameters param) throws IOException, InterruptedException { 
    649                  
    650                 String tmpBaseDir                        = param.getParameters().getAttributeValue(tmpDir); 
    651                 String[] openMSENVP              = new String[]{param.getParameters().getAttributeValue(openMSENVPSettings)}; 
    652                 String openMSProgramLocation = param.getParameters().getAttributeValue(openMSLocation); 
    653                  
    654                 String[] commands = null; 
    655                 if(openMSProgramLocation == null) { 
    656                         commands = new String[] {"FileConverter","-in",inFile, "-out", outFile,"-in_type",typeIn,"-out_type",typeOut}; 
    657                 } else { 
    658                         commands = new String[] { 
    659                                 openMSProgramLocation + File.separator + "FileConverter", 
    660                                 "-in",inFile, "-out", outFile, "-in_type", typeIn, "-out_type", typeOut 
    661                         }; 
    662                 } 
    663                  
    664                 //Print command!! 
    665                 for(int a = 0; a < commands.length; a++) { 
    666                         System.out.print(commands[a] + " ");                     
    667                 } 
    668                 System.out.println(); 
    669                  
    670                  
    671                  
    672                 Process p = null; 
    673  
    674                 if(param.getParameters().getAttributeValue(openMSENVPSettings) == null) { 
    675                         p = Runtime.getRuntime().exec(commands,null,new File(tmpBaseDir));                       
    676                 } else { 
    677                         p = Runtime.getRuntime().exec(commands,openMSENVP,new File(tmpBaseDir));         
    678                 } 
    679                                  
    680                 BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); 
    681                 String line = ""; 
    682                 while ((line = input.readLine()) != null) { 
    683                          
    684                         if(line.contains("%")) { 
    685                                 line = line.replace('%', ' '); 
    686                                 try { 
    687                                         double perc = Double.parseDouble(line); 
    688                                         if(perc % 5 == 0) { 
    689                                                 System.out.println("openMS returns: " + line + " %"); 
    690                                         } 
    691                                 } catch(NumberFormatException e) { 
    692                                         System.out.println("openMS returns: " + line); 
    693                                 } 
    694                         } else { 
    695                                 System.out.println("openMS returns: " + line); 
    696                         } 
    697                 } 
    698                 input.close(); 
    699  
    700                 //This should pause this thread until the external process is finished. 
    701                 p.waitFor(); 
    702634        } 
    703635         
  • trunk/msCompare/src/runProgram/programParts/openMS/RunOpenMSV17.java

    r18 r48  
    1010import javax.xml.stream.XMLStreamException; 
    1111 
     12import org.apache.commons.io.FileUtils; 
     13 
    1214import runProgram.AbstractRunProgram; 
    1315import runProgram.programParts.openMS.helper.ThreadedReader; 
    14 import runProgram.programParts.openMS.mzXML.IndexFixer; 
    1516import dataStructures.misc.parameters.Parameters; 
    1617import dataStructures.misc.parameters.helpers.parameterInterfaces.FileType; 
     
    227228                        String outputFile = param.getInputFiles().getOutputFileForInputFile(inputFile); 
    228229                         
    229                         RunOpenMSV15.convertFile(inputFile, typeIn, outputFile, typeOut, param); 
    230                 } 
     230                        convertFile(inputFile, typeIn, outputFile, typeOut, param); 
     231                } 
     232        } 
     233         
     234        private static void convertFile(String inFile, String typeIn, String outFile, String typeOut, Parameters param) throws IOException, InterruptedException { 
     235                 
     236                String tmpBaseDir                        = param.getParameters().getAttributeValue(tmpDir); 
     237                String[] openMSENVP              = new String[]{param.getParameters().getAttributeValue(openMSENVPSettings)}; 
     238                String openMSProgramLocation = param.getParameters().getAttributeValue(openMSLocation); 
     239                 
     240                String[] commands = null; 
     241                if(openMSProgramLocation == null) { 
     242                        commands = new String[] {"FileConverter","-in",inFile, "-out", outFile,"-in_type",typeIn,"-out_type",typeOut}; 
     243                } else { 
     244                        commands = new String[] { 
     245                                openMSProgramLocation + File.separator + "FileConverter", 
     246                                "-in",inFile, "-out", outFile, "-in_type", typeIn, "-out_type", typeOut 
     247                        }; 
     248                } 
     249                 
     250                //Print command!! 
     251                for(int a = 0; a < commands.length; a++) { 
     252                        System.out.print(commands[a] + " ");                     
     253                } 
     254                System.out.println(); 
     255                 
     256                 
     257                 
     258                Process p = null; 
     259 
     260                if(param.getParameters().getAttributeValue(openMSENVPSettings) == null) { 
     261                        p = Runtime.getRuntime().exec(commands,null,new File(tmpBaseDir));                       
     262                } else { 
     263                        p = Runtime.getRuntime().exec(commands,openMSENVP,new File(tmpBaseDir));         
     264                } 
     265                                 
     266                BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream())); 
     267                String line = ""; 
     268                while ((line = input.readLine()) != null) { 
     269                         
     270                        if(line.contains("%")) { 
     271                                line = line.replace('%', ' '); 
     272                                try { 
     273                                        double perc = Double.parseDouble(line); 
     274                                        if(perc % 5 == 0) { 
     275                                                System.out.println("openMS returns: " + line + " %"); 
     276                                        } 
     277                                } catch(NumberFormatException e) { 
     278                                        System.out.println("openMS returns: " + line); 
     279                                } 
     280                        } else { 
     281                                System.out.println("openMS returns: " + line); 
     282                        } 
     283                } 
     284                input.close(); 
     285 
     286                //This should pause this thread until the external process is finished. 
     287                p.waitFor(); 
    231288        } 
    232289 
     
    253310                        String fileName = (new File(input)).getName(); 
    254311                         
    255                         String mzDataFileName = fileName.replaceFirst("mzXML", "mzML"); 
    256                         RunOpenMSV15.convertFile(input,"mzXML",tmpDir+File.separator+mzDataFileName,"mzML", param); 
     312                        String mzDataFileName = fileName; 
    257313                         
    258314                        String outputFileName = param.getInputFiles().getOutputFileForInputFile(input); 
     
    309365                        trErr.join(10000); 
    310366                         
    311                         RunOpenMSV15.convertFile(tmpDir+File.separator+outputMZDataFileName,"mzML",tmpDir+File.separator+"incorrectMzXML.mzXML","mzXML", param); 
    312                         IndexFixer indxFix = new IndexFixer(); 
    313                         indxFix.fixIndex(tmpDir+File.separator+"incorrectMzXML.mzXML", outputFileName);                  
     367                        FileUtils.copyFile(new File(mzDataFileName), new File(outputFileName)); 
    314368                }                
    315369        }