public static HashMap<String, Double> getOneWayAnovaPValues(ENode root) throws Exception { HashMap<String, Double> returnMap = new HashMap<String, Double>(); HashMap<Float, List<ENode>> map = ReadCluster.getMapByLevel(root); System.out.println(map.size()); for (Float f : map.keySet()) { File outFile = new File( ConfigReader.getETreeTestDir() + File.separator + "Mel74ColumnsAsTaxaFor" + f + ".txt"); System.out.println(outFile.getAbsolutePath()); PivotOut.pivotOut(map.get(f), outFile.getAbsolutePath()); OtuWrapper wrapper = new OtuWrapper(outFile); List<List<Double>> list = wrapper.getDataPointsNormalizedThenLogged(); for (int x = 0; x < wrapper.getOtuNames().size(); x++) { double pValue = 1; if (!wrapper.getOtuNames().get(x).equals(ETree.ROOT_NAME)) { List<Number> data = new ArrayList<Number>(); List<String> factors = new ArrayList<String>(); for (int y = 0; y < wrapper.getSampleNames().size(); y++) { if (!wrapper.getSampleNames().get(y).equals(ETree.ROOT_NAME)) { data.add(list.get(y).get(x)); factors.add("" + stripSuffix(wrapper.getSampleNames().get(y))); } } OneWayAnova owa = new OneWayAnova(data, factors); if (map.containsKey(wrapper.getOtuNames().get(x))) throw new Exception("Duplicate"); pValue = owa.getPValue(); } returnMap.put(wrapper.getOtuNames().get(x), pValue); } } return returnMap; }