Changeset 76


Ignore:
Timestamp:
Mar 5, 2012, 9:46:22 AM (7 years ago)
Author:
b.hoekman@…
Message:

fixed mzML issue in galaxy.

Location:
trunk/msCompare/src/runProgram
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/msCompare/src/runProgram/ProgramList.java

    r65 r76  
    2525import runProgram.programParts.peakListExporter.RunPeakListExporter;
    2626import runProgram.programParts.peakListFilter.RunPeakListFilter;
     27import runProgram.programParts.peakMatrixAnalysis.GenerateReport;
    2728import runProgram.programParts.peakMatrixAnalysis.MakeROC;
    2829import runProgram.programParts.peakMatrixAnalysis.MergePeakMatrices;
     
    124125                } else if (programName.equalsIgnoreCase(CombineSplitPeaks2DLC.program)) {
    125126                        program = new CombineSplitPeaks2DLC();
     127                } else if (programName.equalsIgnoreCase(GenerateReport.program)) {
     128                        program = new GenerateReport();
    126129                }
    127130               
  • trunk/msCompare/src/runProgram/miscTools/generateGalaxyStuff/RunGalaxyTool.java

    r60 r76  
    3737import dataStructures.misc.parameters.helpers.parameterTypes.UnknownType;
    3838import dataStructures.misc.parameters.helpers.parameterTypes.ZippedFilesType;
     39import dataStructures.misc.parameters.helpers.parameterTypes.mzMLFileType;
    3940import dataStructures.misc.parameters.helpers.parameterTypes.mzXMLFileType;
    4041import dataStructures.peaklist.PeakGeneralList;
     
    617618
    618619                                if (arp.getOutputFileType(param.getMethodName()) instanceof PeakListGeneralFileType
    619                                                 && param.getInputFiles().getFileTypeForInputFile(input) instanceof mzXMLFileType) {
     620                                                && ( param.getInputFiles().getFileTypeForInputFile(input) instanceof mzXMLFileType
     621                                                                || param.getInputFiles().getFileTypeForInputFile(input) instanceof mzMLFileType)) {
    620622
    621623                                        // System.err.println("Rewriting PeakGeneralList");
  • trunk/msCompare/src/runProgram/programParts/peakMatrixAnalysis/GenerateReport.java

    r74 r76  
    44import java.io.FileWriter;
    55import java.util.ArrayList;
     6import java.util.Iterator;
    67import java.util.List;
     8import java.util.Set;
     9
     10import loadData.peakMatrix.LoadPeakMatrix;
    711
    812import dataStructures.misc.parameters.Parameters;
    913import dataStructures.misc.parameters.helpers.parameterInterfaces.FileType;
     14import dataStructures.misc.parameters.helpers.parameterTypes.PeakMatrixFileType;
     15import dataStructures.peakMatrix.MatchedPeak;
     16import dataStructures.peakMatrix.PeakMatrix;
     17import dataStructures.peaklist.PeakGeneral;
     18import dataStructures.peaklist.general.PeakAttribute;
     19import export.svg.ExportNumberSerieToSVG;
    1020import runProgram.AbstractRunProgram;
     21import statistics.basic.NumberSerie;
     22import statistics.basic.StatsNormal;
    1123
    1224public class GenerateReport extends AbstractRunProgram {
     25       
     26        public static final String program = "GenerateReport";
    1327
    1428        private static final String galaxyDatasetId = "GalaxyDatasetId";
    1529        private static final String galaxyRoot          = "GalaxyRoot";
    1630       
     31        private static final String rtAttribute = "coordinateAlign:rt";
     32        private static final String intAttribute = "coordinateAlign:intensity";
     33        private static final String programName = "APMLGenerated";
     34       
    1735        @Override
    1836        public ArrayList<String> getAdditionResultFiles() {
     
    3654        public void runTheProgram(Parameters param) {
    3755       
    38                 String galRoot = param.getParameters().getAttributeValue(galaxyRoot);
    39                 String galID = param.getParameters().getAttributeValue(galaxyDatasetId);
    40                
    41                 String outputDir = galRoot + File.separator + "static/msCompare/reports/" + galID + "/";
    42                
    43                
    44                 File outputFolderStructure = new File(outputDir);       
    45         if (! outputFolderStructure.exists())
    46         {
    47             if (! outputFolderStructure.mkdirs())
    48             {
    49                throw new IllegalArgumentException("Unable to create the output folder. Check the user rigths to this folder.");
    50             }
    51         }
    52                
    53                 File outputFile = new File(outputDir + "msCompare_report.html");
     56                Set<String> inputFiles = param.getInputFiles().getInputFiles();
     57                String inputFile = inputFiles.iterator().next();
     58               
     59                if(inputFiles.size() == 1) {
     60                       
     61                        FileType ft = param.getInputFiles().getFileTypeForInputFile(inputFile);
     62                        if(ft instanceof PeakMatrixFileType) {
     63                                analyzeFeatureMatrix(param);
     64                        } else {
     65                                System.out.println("Trying to analyze input file as PeakMatrix");
     66                                analyzeFeatureMatrix(param);
     67                        }
     68                }
     69        }
     70
     71        private void analyzeFeatureMatrix(Parameters param) {
     72                String inputFile = param.getInputFiles().getInputFiles().iterator().next();
     73                String outputFile = param.getInputFiles().getOutputFileForInputFile(inputFile);
     74               
     75//              String galRoot = param.getParameters().getAttributeValue(galaxyRoot);
     76//              String galID = param.getParameters().getAttributeValue(galaxyDatasetId);
     77//             
     78//              String outputDir = galRoot + File.separator + "static/msCompare/reports/" + galID + "/";
     79//             
     80//             
     81//              File outputFolderStructure = new File(outputDir);       
     82//        if (! outputFolderStructure.exists())
     83//        {
     84//            if (! outputFolderStructure.mkdirs())
     85//            {
     86//               throw new IllegalArgumentException("Unable to create the output folder. Check the user rigths to this folder.");
     87//            }
     88//        }
     89               
     90                LoadPeakMatrix lpm = new LoadPeakMatrix();
     91                PeakMatrix pm = lpm.loadPeakMatrix(inputFile);
     92               
     93                List<String> fileNames = pm.getFileNames();
     94                Iterator<MatchedPeak> itMP = pm.getMatchedPeaks().iterator();
     95               
     96                StatsNormal snRt = new StatsNormal();
     97                NumberSerie nsRSD = new NumberSerie();
     98                NumberSerie nsInclude = new NumberSerie();
     99               
     100                while(itMP.hasNext()) {
     101                        MatchedPeak mp = itMP.next();
     102                       
     103                        double includeCount = 0;
     104                        StatsNormal snInt = new StatsNormal();
     105                       
     106                       
     107                        Iterator<String> itFN = fileNames.iterator();
     108                       
     109                        while(itFN.hasNext()) {
     110                                String fileName = itFN.next();
     111                               
     112                                List<PeakGeneral> listPG = mp.getPeakGeneral(fileName);
     113                               
     114                                if(listPG.size() > 0) {
     115                                        includeCount = includeCount + 1;
     116                                       
     117                                        Iterator<PeakGeneral> itPG = listPG.iterator();
     118                                        while(itPG.hasNext()) {
     119                                                PeakGeneral pg = itPG.next();
     120                                               
     121                                                PeakAttribute paRt = pg.getAttribute(rtAttribute, programName);
     122                                                PeakAttribute paInt = pg.getAttribute(intAttribute, programName);
     123                                               
     124                                                if(paRt != null) {
     125                                                        snRt.setValue(paRt.getDoubleValue());
     126                                                }
     127                                               
     128                                                if(paInt != null) {
     129                                                        snInt.setValue(paInt.getDoubleValue());
     130                                                }
     131                                        }
     132                                       
     133                                }
     134                        }
     135                        snInt.compute();
     136                        nsInclude.addValue(includeCount);
     137                        double rsd = ( snInt.getStdev() / snInt.getMean() ) * 100;
     138                        nsRSD.addValue(rsd);                   
     139                }
     140               
     141                param.getBaseOutputDir();
     142               
     143                PeakMatrixProperties pmp = new PeakMatrixProperties();
     144                pmp.beginRt = snRt.getMin();
     145                pmp.endRt = snRt.getMax();
     146                pmp.nsInclude = nsInclude;
     147                pmp.nsRSD = nsRSD;
     148                pmp.noFiles = fileNames.size();
     149               
     150                File outputFileF = new File(outputFile);
    54151
    55152                try {
    56                         writeReport(outputFile);
     153                        writeReport(outputFileF, pmp);
    57154                } catch (Exception e) {
    58155                        e.printStackTrace();
     
    78175         * @throws Exception
    79176         */
    80         public void writeReport(File outputFile) throws Exception
     177        public void writeReport(File outputFile, PeakMatrixProperties pmp) throws Exception
    81178        {               
    82179                List<String> plotFiles = new ArrayList<String>();
     180                plotFiles.add(getMatchedGraph(outputFile.getPath(),pmp));
     181               
    83182               
    84183                FileWriter writerHtml = new FileWriter(outputFile);
     
    87186                                        "<h3>Summary</h3>" +
    88187                                        "<table style='border=0;'>\n" +
    89                                                 "<tr><td>Nr MS peaks: </td><td>" + 100 + "</td></tr>\n" +
    90                                                 "<tr><td>Nr source annotation peaks: </td><td>" + 200 + "</td></tr>\n" +
    91                                                 "<tr><td>Nr MS matched and annotated peaks: </td><td>" + 300 + "</td></tr>\n" +
    92                                                 "<tr><td>Total nr of matches: </td><td>" + 400 + "</td></tr>\n" +
     188                                                "<tr><td>Nr MS peaks: </td><td>" + pmp.nsInclude.getSize() + "</td></tr>\n" +
     189                                                "<tr><td>number of files: </td><td>" + pmp.noFiles + "</td></tr>\n" +
     190                                                "<tr><td>lowest retentionTime: </td><td>" + pmp.beginRt + "</td></tr>\n" +
     191                                                "<tr><td>highest retentionTime: </td><td>" + pmp.endRt + "</td></tr>\n" +
    93192                                                //TODO divbyzero problem here..."<tr><td>Average nr of matches per MS peak: </td><td>" + matcher.getTotalNrMatches()/matcher.getNrMatchedMsPeaks() + "</td></tr>" +
    94193                                        "</table></br>\n"+
    95194                                        //Ven diagram of summary:
    96195                                        //TODO
    97                                         "<h3>Match map</h3></br>\n" +
    98                                         //"<iframe frameborder='1' style='width: 200px; height: 200px;' src='" + getHtmlPathWorkingDir() + matchesNetFile + "'></iframe>" +
    99 //                                      "<img style='border:1px solid #021a40; width: 300px; height: 300px;' src='" + getHtmlPathWorkingDir() + totalNetFile + "'></img>\n" +
    100 //                                      "<img style='border:1px solid #021a40; width: 300px; height: 300px;' src='" + getHtmlPathWorkingDir() + matchesNetFile + "'></img>\n" +
    101                                         "<h3>Retention time Plots</h3></br>\n";
     196                                        "<h3>Number of matched peaks with X files Included</h3></br>\n" +
     197                                        "<table style='border=0;'>\n";
     198                                        for(int a = 0; a < pmp.noFiles; a++) {                         
     199                                                html = html + "<tr><td>Matched peaks with: "+a+" </td><td>" + pmp.nsInclude.getOccurence((double)a) + "</td></tr>\n";
     200                                        }
     201            html = html + "<h3>Plots</h3></br>\n";
    102202               
    103203                //TODO: add matchProfiles (nr matches per ms2 file on each ms1 file: the nr of matches of ms21 on ms11 should be similar to ms21 to ms12)
     
    121221               
    122222        }
    123 
     223       
     224        private String getMatchedGraph(String outputFile, PeakMatrixProperties pmp) {
     225               
     226                String fileName = outputFile + File.separator +"Occurence.png";
     227               
     228                ExportNumberSerieToSVG exportNS = new ExportNumberSerieToSVG();
     229                exportNS.writeOccurencePlot(fileName, pmp.nsInclude);
     230               
     231                //Return only the last name
     232                String resultFileName = (new File(fileName)).getName();
     233               
     234                return resultFileName;
     235        }
     236       
     237        private class PeakMatrixProperties {
     238               
     239                public int noFiles;
     240                private double beginRt = 0;
     241                private double endRt = 0;
     242
     243               
     244                private NumberSerie nsRSD = new NumberSerie();
     245                private NumberSerie nsInclude = new NumberSerie();
     246               
     247        }
    124248}
Note: See TracChangeset for help on using the changeset viewer.