Parse genotypes from the file and iteration with relevant marker \
            details.

        :param iteration: ParseLocus object which is returned per iteration
        :return: True indicates current locus is valid.

        StopIteration is thrown if the marker reaches the end of the file or
        the valid genomic region for analysis.

def populate_iteration(self, iteration):
        """Parse genotypes from the file and iteration with relevant marker \
            details.

        :param iteration: ParseLocus object which is returned per iteration
        :return: True indicates current locus is valid.

        StopIteration is thrown if the marker reaches the end of the file or
        the valid genomic region for analysis.
        """

        cur_idx = iteration.cur_idx
        if cur_idx < self.locus_count:
            iteration.chr = self.markers[cur_idx][0]
            iteration.pos = self.markers[cur_idx][1]
            iteration.rsid = self.rsids[cur_idx]
            iteration.major_allele = self.alleles[cur_idx][0]
            iteration.minor_allele = self.alleles[cur_idx][1]
            iteration.allele_count2 = self.allele_count2s[cur_idx]
            iteration.genotype_data = self.genotypes[cur_idx, :]
            hetero = numpy.sum(iteration.genotype_data==1)
            iteration.min_allele_count = numpy.sum(
                iteration.genotype_data==2)*2 + hetero
            iteration.maj_allele_count = numpy.sum(
                iteration.genotype_data==0)*2 + hetero
            return True
        else:
            raise StopIteration