Changeset 48


Ignore:
Timestamp:
Feb 2, 2012, 4:13:29 PM (5 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 deleted
3 edited

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        }
Note: See TracChangeset for help on using the changeset viewer.