code: def populate_iteration(self, iteration):
          
          global encoding
  
          # We never have to worry about iteration exceptions...that is taken
          # care of in load_genotypes
          cur_idx = iteration.cur_idx
          if cur_idx < 0 or cur_idx >= self.marker_count:
              self.load_genotypes()
              iteration.cur_idx = 0
              cur_idx = 0
  
          if self.chrpos_encoding:
              iteration.chr, iteration.pos = self.markers[cur_idx]
          else:
              iteration.chr = "NA"
              iteration.pos = "NA"
              iteration.rsid = self.rsids[cur_idx]
  
          if cur_idx < len(self.markers) and DataParser.boundary.TestBoundary(iteration.chr, iteration.pos, iteration.rsid) and self.rsquared[cur_idx] >= Parser.min_rsquared:
              iteration.major_allele, iteration.minor_allele = self.alleles[cur_idx]
              iteration.genotype_data = numpy.ma.masked_array(self.dosages[cur_idx].astype(numpy.float), self.ind_mask).compressed()
              iteration._maf = numpy.mean(iteration.genotype_data/2)
              iteration.allele_count2 = (iteration.genotype_data.shape[0] * 4.0 - numpy.sum(iteration.genotype_data))
  
              return iteration.maf >= DataParser.min_maf and iteration.maf <= DataParser.max_maf
          return False
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.
  
          This function will force a load of the next chunk when necessary.