public List<List<Double>> getRankNormalizedDataPoints()
	{
		List<List<Double>> rankList = new ArrayList<List<Double>>();
		
		for( int x=0; x < getSampleNames().size(); x++)
		{
			List<RankHolder> innerRanks = new ArrayList<RankHolder>();
			
			for( int y=0; y < getOtuNames().size(); y++ )
			{
				RankHolder rh = new RankHolder();
				rh.originalData = getDataPointsNormalized().get(x).get(y);
				rh.originalIndex = y;
				innerRanks.add(rh);
			}
			
			Collections.sort(innerRanks, new Comparator<RankHolder>()
					{@Override
					public int compare(RankHolder o1, RankHolder o2)
					{
						return Double.compare(o1.originalData, o2.originalData);
					}});
			
			List<Double> crankedList = new ArrayList<Double>();
			
			for( RankHolder rh : innerRanks)
				crankedList.add(rh.originalData);
			crank(crankedList);
			
			for( int y=0; y < innerRanks.size(); y++)
				innerRanks.get(y).rank = crankedList.get(y);
			
			double[] ranks = new double[innerRanks.size()];
			
			for( int y=0; y < innerRanks.size(); y++)
			{
				RankHolder rh = innerRanks.get(y);
				ranks[rh.originalIndex] = rh.rank;
			}
			
			List<Double> newList = new ArrayList<Double>();
			
			for( Double d : ranks)
				newList.add(d);
			
			rankList.add(newList);
		}
		
		return rankList;
	}