docs: def split_chrom_jobs(args, chrom_file):
      """Split up GWAS jobs based on portions of a chromosome
  
      :param args: arguments from parseargs
      :param chrom_file: marker info file
      :return dictionary name=>job_details
  
      """
      max_snp_count = args.snps_per_job
  
      poscol = 3
      if args.map3:
          poscol = 2
  
      job_list = {}
      cur = None
      last_pos = None
      job_string = ""
      job_name = ""
  
      for line in sys_call("cut -f 1,%d %s" % (poscol, chrom_file)):
          pos = -1
  
          values = line.split()
          if len(values) > 0:
              chrom, pos = [int(x) for x in values]
  
          if cur is None:     # First line observed
              cur = chrom
              job_string = "--chr %d --from-bp %d" % (chrom, pos)
              job_name = "Chr%d_%d-" % (chrom, pos)
              snp_count = 0
          elif cur != cur:    # Changed chromosome
              job_string += " --to-bp %d" % (last_pos)
              job_name += str(last_pos)
              job_list[job_name] = job_string
              cur = chrom
              job_string = "--chr %d --from-bp %d" % (chrom, pos)
              job_name = "Chr%d_%d-" % (chrom, pos)
              snp_count = 0
                              # create new job based on snp count
          elif snp_count < max_snp_count:
              snp_count += 1
          else:
              job_string += " --to-bp %d" % (last_pos)
              job_name += str(last_pos)
              job_list[job_name] = job_string
              job_string = "--chr %d --from-bp" % (chrom, pos)
              job_name = "Chr%d_%d-" % (chrom, pos)
              snp_count = 0
  
          last_pos = pos
      if job_string != "":
          job_string += " --to-bp %d" % (last_pos)
          job_name += str(last_pos)
          job_list[job_name] = job_string
  
      return job_list