code: def populate_iteration(self, iteration):
          
  
          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
docs: 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.