private static double getPValue( String tissue, int axisNum ) throws Exception
	{
		BufferedReader reader = new BufferedReader(new FileReader(new File( 
			ConfigReader.getSaccharineRatDir() + File.separator 
			+ "mergedUnweightedUnifrac.txt")));
			//+ "mergedMapBrayCurtisPCOA.txt"	)));
		
		HashMap<String, List<Double>> highCages = new HashMap<String, List<Double>>();
		HashMap<String, List<Double>> lowCages = new HashMap<String, List<Double>>();
		
		reader.readLine();
		
		for( String s= reader.readLine(); s != null ; s= reader.readLine())
		{
			String[] splits = s.split("\t");
			
			if(splits[3].equals(tissue))
			{
				double val = Double.parseDouble(splits[23+axisNum]);
				
				String cage = splits[8];
				
				if( splits[7].equals("Low"))
					addToMap(val, cage, lowCages);
				else if( splits[7].equals("High"))
					addToMap(val, cage, highCages);
				else throw new Exception("No");
			}
		}
		
		List<Number> lowVals = new ArrayList<Number>();
		List<Number> highVals = new ArrayList<Number>();
		
		for( String s : lowCages.keySet() )
			lowVals.add(MedianOfCage.getMedian(lowCages.get(s)));
		
		for( String s : highCages.keySet())
			highVals.add(MedianOfCage.getMedian(highCages.get(s)));
		
		double pValue = 1;
		
		try
		{
			pValue = TTest.ttestFromNumber(lowVals, highVals).getPValue();
		}
		catch(Exception ex)
		{
			
		}
		
		return pValue;
	}