docs: def main(argString=None):
      """The main function of the module.
  
      :param argString: the options.
  
      :type argString: list
  
      These are the steps:
  
      1. Prints the options.
      2. Compute frequency using Plink.
      3. Runs bafRegress.
  
      """
      # Getting and checking the options
      args = parseArgs(argString)
      checkArgs(args)
  
      logger.info("Options used:")
      for key, value in vars(args).iteritems():
          logger.info("  --{} {}".format(key.replace("_", "-"), value))
  
      # Checks the sample raw data
      logger.info("Checking the raw data files")
      sample_files = check_sample_files(args.bfile + ".fam", args.raw_dir)
  
      # Finds the markers to extract
      logger.info("Creating extraction list (autosome only)")
      create_extraction_file(args.bfile + ".bim", args.out)
  
      # Run plink
      logger.info("Computing frequency using Plink")
      run_plink(args.bfile, args.out, args.out + ".to_extract")
  
      # Run bafRegress
      logger.info("Running bafRegress")
      if args.sge:
          run_bafRegress_sge(sample_files, args.out, args.out + ".to_extract",
                             args.out + ".frq", args)
      else:
          run_bafRegress(sample_files, args.out, args.out + ".to_extract",
                         args.out + ".frq", args)