docs: def _splitGenoSlidingWindow(self,size=5e4,step=None,minSnps=1.,maxSnps=SP.inf):
          """
          split into windows using a slide criterion
          Args:
              size:       window size
              step:       moving step (default: 0.5*size)
              minSnps:    only windows with nSnps>=minSnps are considered
              maxSnps:    only windows with nSnps>=maxSnps are considered
          """
          if step is None:    step = 0.5*size
          chroms  = SP.unique(self.chrom)
          wnd_pos       = []
          idx_wnd_start = []
          nSnps         = []
          wnd_i = 0
  
          nSnps = []
          for chrom_i in chroms:
              start = 0
              Ichrom = self.chrom==chrom_i
              idx_chrom_start = SP.where(Ichrom)[0][0]
              pos_chr = self.pos[Ichrom]
              pos_chr_max = pos_chr.max()
              while 1:
                  if start>pos_chr_max: break
                  end = start+size
                  Ir = (self.pos>=start)*(self.pos<end)
                  _nSnps = Ir.sum()
                  if _nSnps>minSnps and _nSnps<maxSnps:
                      wnd_pos.append([chrom_i,start,start+size])
                      nSnps.append(_nSnps)
                      idx_wnd_start.append(idx_chrom_start+SP.where(Ir)[0][0])
                      wnd_i+=1
                  start += step
          self._wnd_pos = SP.array(wnd_pos)
          self._idx_wnd_start = SP.array(idx_wnd_start)
          self._nSnps = SP.array(nSnps)