public void normalize() {
	ListIterator<List<List<Double>>> acItr = dataMatrix.listIterator();
	while (acItr.hasNext()) {
	    ListIterator<List<Double>> mItr = acItr.next().listIterator();
			
	    while (mItr.hasNext()) {
                double sum = 0.0;
                boolean allMissing = true;

		List<Double> alleles = mItr.next();
		ListIterator<Double> alItr = alleles.listIterator();
		while (alItr.hasNext()) {
		    Double allele = alItr.next();
		    if (allele != null) {
			sum += allele;
			allMissing = false;
		    }
		}
				
		if (!allMissing) {
		    alItr = alleles.listIterator();
		    while (alItr.hasNext()) {
			Double allele = alItr.next();
			Double v = (allele == null) ? 0.0 : allele;
			alItr.set((sum == 0.0) ? 0.0 : (v / sum));
		    }
		}
	    }
			
	}
    }