public static void main(String[] args) throws Exception
	{
		HashMap<String, HashMap<Long, ContextCount>> outerMap = new HashMap<String, HashMap<Long, ContextCount>>();
		List<PairedReads> pairedList = getAllBurkholderiaPairs();
		
		for(int x=0; x < pairedList.size(); x++)
		{
			PairedReads pr = pairedList.get(x);
			
			File countFile1 = FileUtils.getCountsFile(pr.getFirstFileName());
			File countFile2 = FileUtils.getCountsFile(pr.getSecondFileName());
			
			if( countFile1.exists() && countFile2.exists())
			{
				System.out.println("MATCH: " + countFile1.getName());
				HashMap<Long, ContextCount> map1 = getFromCache(countFile1, outerMap);
				HashMap<Long, ContextCount> map2 = getFromCache(countFile2, outerMap);
				
				ApplyWeightedChiSquare.writePValues(B_VALUE, map1, map2, FileUtils.getSNPResultsFile(countFile1, countFile2));
				
				for( int y=x+1; y < pairedList.size(); y++)
				{
					PairedReads pr2 = pairedList.get(y);
					File countFile2_1 = FileUtils.getCountsFile(pr2.getFirstFileName());
					File countFile2_2 = FileUtils.getCountsFile(pr2.getSecondFileName());
					
					if( countFile2_1.exists() && countFile2_2.exists())
					{
						HashMap<Long, ContextCount> map2_1 = getFromCache(countFile2_1, outerMap);
						HashMap<Long, ContextCount> map2_2 = getFromCache(countFile2_2, outerMap);
						
						ApplyWeightedChiSquare.writePValues(B_VALUE, map1, map2_1, FileUtils.getSNPResultsFile(countFile1, countFile2_1));
						ApplyWeightedChiSquare.writePValues(B_VALUE, map1, map2_2, FileUtils.getSNPResultsFile(countFile1, countFile2_2));
						ApplyWeightedChiSquare.writePValues(B_VALUE, map2, map2_1, FileUtils.getSNPResultsFile(countFile2, countFile2_1));
						ApplyWeightedChiSquare.writePValues(B_VALUE, map2, map2_2, FileUtils.getSNPResultsFile(countFile2, countFile2_2));
					}
				}
			}
				
		}
	}