public void executeFoldChange() { int[] cols = dataset.getColumnIndexesByVariableValue(className, classValues.get(0)); DoubleMatrix sample1 = dataset.getSubMatrixByColumns(cols); cols = dataset.getColumnIndexesByVariableValue(className, classValues.get(1)); DoubleMatrix sample2 = dataset.getSubMatrixByColumns(cols); try { Dataset subDataset = dataset.getSubDataset(className, classValues); FoldChangeTest foldChange = new FoldChangeTest(); double[] logRes = foldChange.logFoldChange(sample1, sample2); double[] diffRes = foldChange.diffFoldChange(sample1, sample2); updateJobStatus("80", "saving results"); setFoldChangeResults(subDataset, "log", "Log", logRes, className); setFoldChangeResults(subDataset, "diff", "Diff", diffRes, className); // String test, testLabel; // DataFrame dataFrame; // FeatureData featureData; // File file; // // int[] columnOrder; // int[] rowOrder; // Canvas heatmap; // String heatmapFilename; // // // log fold change // // // test = "log"; // testLabel = "Log"; // // columnOrder = // ListUtils.order(subDataset.getVariables().getByName(className).getValues()); // rowOrder = ListUtils.order(ArrayUtils.toList(logRes), true); // // dataFrame = new DataFrame(subDataset.getFeatureNames().size(), 0); // dataFrame.addColumn(test, ListUtils.ordered(ArrayUtils.toStringList(logRes), rowOrder)); // dataFrame.setRowNames(ListUtils.ordered(subDataset.getFeatureNames(), rowOrder)); // featureData = new FeatureData(dataFrame); // file = new File(outdir + "/" + test + "_foldchange.txt"); // IOUtils.write(file, dataFrame.toString(true, true)); // //featureData.save(file); // if ( file.exists() ) { // result.addOutputItem(new Item(test + "_foldchange", file.getName(), testLabel + " // fold-change output file", TYPE.FILE, StringUtils.toList("TABLE," + test.toUpperCase() + // "_FOLD_CHANGE_TABLE", ","), new HashMap<String, String>(2), testLabel + " // fold-change.Output files")); // } // // // generating heatmap // // // heatmap = DiffExpressionUtils.generateHeatmap(subDataset, className, columnOrder, // rowOrder, test + " fold-change", logRes, null, null); // heatmapFilename = getOutdir() + "/" + test + "_heatmap.png"; // try { // heatmap.save(heatmapFilename); // if ( new File(heatmapFilename).exists() ) { // result.addOutputItem(new Item(test + "_heatmap", test + "_heatmap.png", testLabel + ". // fold-change heatmap with all terms", TYPE.IMAGE, new ArrayList<String>(2), new // HashMap<String, String>(2), testLabel + " fold-change.Heatmap image")); // } // } catch (IOException e) { // printError("ioexception_executet_classcomparison", "error generating heatmap", // e.toString(), e); // } // // // test = "diff"; // testLabel = "Diff"; // // columnOrder = // ListUtils.order(subDataset.getVariables().getByName(className).getValues()); // rowOrder = ListUtils.order(ArrayUtils.toList(logRes), true); // // dataFrame = new DataFrame(subDataset.getFeatureNames().size(), 0); // dataFrame.addColumn(test, ListUtils.ordered(ArrayUtils.toStringList(diffRes), rowOrder)); // dataFrame.setRowNames(ListUtils.ordered(subDataset.getFeatureNames(), rowOrder)); // featureData = new FeatureData(dataFrame); // file = new File(outdir + "/" + test + "_foldchange.txt"); // IOUtils.write(file, dataFrame.toString(true, true)); // //featureData.save(file); // if ( file.exists() ) { // result.addOutputItem(new Item(test + "_foldchange", file.getName(), testLabel + " // fold-change output file", TYPE.FILE, StringUtils.toList("TABLE," + test.toUpperCase() + // "_FOLD_CHANGE_TABLE", ","), new HashMap<String, String>(2), testLabel + " // fold-change.Output files")); // } // // // generating heatmap // // // heatmap = DiffExpressionUtils.generateHeatmap(subDataset, className, columnOrder, // rowOrder, test + " fold-change", diffRes, null, null); // heatmapFilename = getOutdir() + "/" + test + "_heatmap.png"; // try { // heatmap.save(heatmapFilename); // if ( new File(heatmapFilename).exists() ) { // result.addOutputItem(new Item(test + "_heatmap", test + "_heatmap.png", testLabel + ". // fold-change heatmap with all terms", TYPE.IMAGE, new ArrayList<String>(2), new // HashMap<String, String>(2), testLabel + " fold-change.Heatmap image")); // } // } catch (IOException e) { // printError("ioexception_executet_classcomparison", "error generating heatmap", // e.toString(), e); // } } catch (Exception e) { e.printStackTrace(); abort( "exception_executefoldchange_classcomparison", "error running fold-change", "error running fold-change: " + e.getMessage(), "error running fold-change: " + e.getMessage()); } }
public void executeT() { int[] cols = dataset.getColumnIndexesByVariableValue(className, classValues.get(0)); DoubleMatrix sample1 = dataset.getSubMatrixByColumns(cols); cols = dataset.getColumnIndexesByVariableValue(className, classValues.get(1)); DoubleMatrix sample2 = dataset.getSubMatrixByColumns(cols); try { Dataset subDataset = dataset.getSubDataset(className, classValues); // apply test and multiple test correction according // TTest tTest = new TTest(); TestResultList<TTestResult> res = tTest.tTest(sample1, sample2); DiffExpressionUtils.multipleTestCorrection(res, correction); // create output file // int[] columnOrder = ListUtils.order(subDataset.getVariables().getByName(className).getValues()); int[] rowOrder = ListUtils.order(ArrayUtils.toList(res.getStatistics()), true); DataFrame dataFrame = new DataFrame(subDataset.getFeatureNames().size(), 0); dataFrame.addColumn( "statistic", ListUtils.toStringList( ListUtils.ordered(ArrayUtils.toList(res.getStatistics()), rowOrder))); dataFrame.addColumn( "p-value", ListUtils.toStringList(ListUtils.ordered(ArrayUtils.toList(res.getPValues()), rowOrder))); dataFrame.addColumn( "adj. p-value", ListUtils.toStringList( ListUtils.ordered(ArrayUtils.toList(res.getAdjPValues()), rowOrder))); dataFrame.setRowNames(ListUtils.ordered(subDataset.getFeatureNames(), rowOrder)); FeatureData featureData = new FeatureData(dataFrame); File file = new File(outdir + "/t.txt"); featureData.save(file); if (file.exists()) { result.addOutputItem( new Item( "tfile", file.getName(), "T-test output file", TYPE.FILE, new ArrayList<String>(), new HashMap<String, String>(), "T-test output files")); } // getting significative genes // DiffExpressionUtils.addSignificativeResults( subDataset, test, "statistic", res.getStatistics(), "adj. p-value", res.getAdjPValues(), "p-value", res.getPValues(), null, null, null, null, className, columnOrder, pValue, maxDisplay, this); DiffExpressionUtils.createFatiScanRedirection(dataFrame, test, "statistic", result, outdir); } catch (Exception e) { e.printStackTrace(); abort("exception_executet_classcomparison", "ERROR", "Error running t-test", ""); } }