private void saveCluster(File file, Experiment experiment, IData data, int[] rows) throws Exception { PrintWriter out = new PrintWriter(new FileOutputStream(file)); String[] fieldNames = data.getFieldNames(); out.print("Original row"); out.print("\t"); for (int i = 0; i < fieldNames.length; i++) { out.print(fieldNames[i]); // if (i < fieldNames.length - 1) { out.print("\t"); // } } for (int i = 0; i < geneGroupMeans[0].length; i++) { out.print("Group" + (i + 1) + " mean\t"); out.print("Group" + (i + 1) + " std.dev.\t"); } // out.print("\t"); out.print("F ratio"); out.print("\t"); out.print("SS(Groups)\t"); out.print("SS(Error)\t"); out.print("df (Groups)\t"); out.print("df (Error)\t"); out.print("raw p value\t"); out.print("adj p value"); // out.print("UniqueID\tName"); for (int i = 0; i < experiment.getNumberOfSamples(); i++) { out.print("\t"); out.print(data.getFullSampleName(experiment.getSampleIndex(i))); } out.print("\n"); for (int i = 0; i < rows.length; i++) { out.print(Integer.toString(experiment.getGeneIndexMappedToData(rows[i]) + 1)); // out.print(data.getUniqueId(rows[i])); out.print("\t"); // out.print(data.getGeneName(rows[i])); for (int k = 0; k < fieldNames.length; k++) { out.print(data.getElementAttribute(experiment.getGeneIndexMappedToData(rows[i]), k)); // if (k < fieldNames.length - 1) { out.print("\t"); // } } for (int j = 0; j < geneGroupMeans[rows[i]].length; j++) { out.print(geneGroupMeans[rows[i]][j] + "\t"); out.print(geneGroupSDs[rows[i]][j] + "\t"); } // out.print("\t"); out.print("" + ((Float) fValues.get(rows[i])).floatValue()); out.print("\t"); out.print("" + ((Float) ssGroups.get(rows[i])).floatValue()); out.print("\t"); out.print("" + ((Float) ssError.get(rows[i])).floatValue()); out.print("\t"); out.print("" + ((Float) dfNumValues.get(rows[i])).floatValue()); out.print("\t"); out.print("" + ((Float) dfDenomValues.get(rows[i])).floatValue()); out.print("\t"); out.print("" + ((Float) rawPValues.get(rows[i])).floatValue()); out.print("\t"); out.print("" + ((Float) adjPValues.get(rows[i])).floatValue()); for (int j = 0; j < experiment.getNumberOfSamples(); j++) { out.print("\t"); out.print(Float.toString(experiment.get(rows[i], j))); } out.print("\n"); } out.flush(); out.close(); }