private static double getAPearson(int sample1ID, int sample2ID, List<String> samples, 
							 HashMap<String, HashMap<String, Holder>>  dataMap, boolean compareSame16S)
	{
		List<Double> list1 = new ArrayList<Double>();
		List<Double> list2 = new ArrayList<Double>();
		
		HashMap<String, Holder> firstMap= dataMap.get(samples.get(sample1ID));
		HashMap<String, Holder> secondMap= dataMap.get(samples.get(sample2ID));
		
		HashSet<String> taxaSet = new HashSet<String>();
		taxaSet.addAll(firstMap.keySet());
		taxaSet.addAll(secondMap.keySet());
		
		for(String s : taxaSet)
		{
			Holder h1 = firstMap.get(s);
			Holder h2 = secondMap.get(s);
			
			if( h1 != null && h2 != null &&  ( (compareSame16S? h2.rdpLevel: h2.krakenLevel))> 0
					&& (h2.kraken16SLevel) >0 )
			{
				list1.add( compareSame16S? h2.rdpLevel: h2.krakenLevel);
				list2.add(  h2.kraken16SLevel);
			}
		}
		
		if( list1.size() <= 2 )
			return 0;
		
		return Pearson.getPearsonR(list1, list2);
		
	}