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;
	}