public static void writeALevel(String level) throws Exception
	{
		System.out.println(level);
		BufferedReader reader = new BufferedReader(new FileReader(new File(ConfigReader.getMicrboesVsMetabolitesDir() + File.separator + 
				"toFodor05182015_PL_shucha_bothLanes_wTaxa.txt")));
		
		List<String> sampleNames = new ArrayList<String>();
		
		String[] splits = reader.readLine().split("\t");
		
		for( int x=1; x < splits.length - 1; x++)
			sampleNames.add(splits[x]);
		
		HashMap<String, List<Double>> map = new HashMap<String, List<Double>>();
		
		for(String s = reader.readLine(); s != null; s= reader.readLine())
		{
			splits = s.split("\t");
			List<Double> thisList = new ArrayList<Double>();
			
			for( int x=1; x < splits.length -1; x++)
				thisList.add(Double.parseDouble(splits[x]));
			
			String taxaString = splits[splits.length-1];
			
			if( level.equals("otu"))
				taxaString = splits[0];
			else
				taxaString = getAssignment(taxaString, level);
			
			List<Double> oldList = map.get(taxaString);
			
			if( oldList != null)
			{
				if( oldList.size() != thisList.size() ) 
					throw new Exception("Logic error");
				
				for( int x=0; x < oldList.size(); x++)
				{
					double newSum = oldList.get(x) + thisList.get(x);
					thisList.set(x, newSum);
				}
			}
			
			map.put(taxaString, thisList);
 		}
		
		writeResults(sampleNames, map, level);
	}