docs: def checkArgs(args):
      """Checks the arguments and options.
  
      :param args: an object containing the options of the program.
  
      :type args: argparse.Namespace
  
      :returns: ``True`` if everything was OK.
  
      If there is a problem with an option, an exception is raised using the
      :py:class:`ProgramError` class, a message is printed to the
      :py:class:`sys.stderr` and the program exists with code 1.
  
      """
      # Check if we have the tped and the tfam files
      prefixes_to_check = [args.bfile]
      if not args.skip_ref_pops:
          for pop in ("ceu", "yri", "jpt_chb"):
              if vars(args)["{}_bfile".format(pop)] is None:
                  raise ProgramError("argument --{}-bfile is "
                                     "required".format(pop.replace("_", "-")))
          prefixes_to_check += [
              args.ceu_bfile,
              args.yri_bfile,
              args.jpt_chb_bfile,
          ]
      for prefix in prefixes_to_check:
          if prefix is None:
              msg = "no input file"
              raise ProgramError(msg)
          for fileName in [prefix + i for i in [".bed", ".bim", ".fam"]]:
              if not os.path.isfile(fileName):
                  msg = "%(fileName)s: no such file" % locals()
                  raise ProgramError(msg)
  
      # Check the indep-pairwise option
      # The two first must be int, the last one float
      try:
          for i in xrange(2):
              tmp = int(args.indep_pairwise[i])
          tmp = float(args.indep_pairwise[2])
      except ValueError:
          msg = "indep-pairwise: need INT INT FLOAT"
          raise ProgramError(msg)
  
      # Check the maf value
      tmpMAF = None
      try:
          tmpMAF = float(args.maf)
      except ValueError:
          msg = "maf: must be a float, not %s" % args.maf
          raise ProgramError(msg)
      if (tmpMAF > 0.5) or (tmpMAF < 0.0):
          msg = "maf: must be between 0.0 and 0.5, not %s" % args.maf
          raise ProgramError(msg)
  
      # Check the number of line per file
      if args.line_per_file_for_sge < 1:
          msg = "line-per-file-for-sge: must be above 0, not " \
                "%d" % args.line_per_file_for_sge
          raise ProgramError(msg)
  
      # Check the number of component to compute
      if args.nb_components < 2 or args.nb_components > 10:
          msg = ("nb-components: must be between 2 and 10 (inclusive), "
                 "not {}".format(args.nb_components))
          raise ProgramError(msg)
  
      # Check the minimum number of SNPs
      if args.min_nb_snp < 1:
          msg = "min-nb-snp: must be above 1"
          raise ProgramError(msg)
  
      return True