docs: def splitGenoSlidingWindow(pos,out_file,size=5e4,step=None):
      """
      split into windows using a slide criterion
      Args:
          size:       window size
          step:       moving step (default: 0.5*size)
      Returns:
          wnd_i:      number of windows
          nSnps:      vector of per-window number of SNPs
      """
      if step is None:    step = 0.5*size
      chroms = SP.unique(pos[:,0])
  
      RV = []
      wnd_i = 0
      wnd_file = csv.writer(open(out_file,'w'),delimiter='\t')
      nSnps = [] 
      for chrom_i in chroms:
          Ichrom = pos[:,0]==chrom_i
          idx_chrom_start = SP.where(Ichrom)[0][0]
          pos_chr = pos[Ichrom,1]
          start = pos_chr.min()
          pos_chr_max = pos_chr.max()
          while 1:
              if start>pos_chr_max: break
              end = start+size
              Ir = (pos_chr>=start)*(pos_chr<end)
              _nSnps = Ir.sum()
              if _nSnps>0:
                  idx_wnd_start = idx_chrom_start+SP.where(Ir)[0][0]
                  nSnps.append(_nSnps)
                  line = SP.array([wnd_i,chrom_i,start,end,idx_wnd_start,_nSnps],dtype=int)
                  wnd_file.writerow(line)
                  wnd_i+=1
              start += step
      nSnps = SP.array(nSnps)
      return wnd_i,nSnps