private static HashMap<String, HashMap<Integer, double[]>> 
		getCountMap() throws Exception
	{
		HashMap<String, GffParser> gffMap = 
			FindGeneForMappedSequence.getGeneFileMap();
		
		// the outer key is the gff file name
		// the inner key is the sampleID
		// the float[] is the number of covered nucleotides
		HashMap<String, HashMap<Integer, double[]>> countMap = 
				new HashMap<String, HashMap<Integer,double[]>>();
		
		List<File> outputFiles = FindGeneForMappedSequence.getOutputFiles();
		
		for(File f : outputFiles) if ( ! f.getName().startsWith("11MM"))
		{
			System.out.println(f.getAbsolutePath());
			Integer key = Integer.parseInt(new StringTokenizer(f.getName(), "MM").nextToken());
			
			BufferedReader reader = new BufferedReader( new InputStreamReader( 
					new GZIPInputStream( new FileInputStream(f))));
			
			reader.readLine();
			
			for(String s= reader.readLine(); 
			s != null;
				s= reader.readLine())
				{
					String[] splits= s.split("\t");
					
					StringTokenizer sToken = new StringTokenizer(splits[1], "|");
					
					sToken.nextToken();sToken.nextToken();sToken.nextToken();
					String targetName = sToken.nextToken().replace(".1", "");
					
					GffParser gffParser = gffMap.get(targetName);
					
					if( gffParser == null)
						throw new Exception("No");
					
					HashMap<Integer, double[]> innerMap = 
						countMap.get(targetName);
					
					if(innerMap == null)
					{
						innerMap = new HashMap<Integer, double[]>();
						countMap.put(targetName, innerMap);
					}
					
					double[] array = innerMap.get(key);
					
					if( array == null)
					{
						array = new double[gffParser.getRegionEnd() + 1];
						innerMap.put(key, array);
					}
					
					int startPosition = Integer.parseInt(splits[2]);
					int endPos = Math.min(array.length -1, startPosition + 100);
					
					for( int x=startPosition; x <= endPos; x++)
						array[x]++;
					
				}
			
			reader.close();
		}
		
		return countMap;
	}