code: def run_main(workdir, config_file=None, fc_dir=None, run_info_yaml=None,
               parallel=None, workflow=None):
      
      # Set environment to standard to use periods for decimals and avoid localization
      os.environ["LC_ALL"] = "C"
      os.environ["LC"] = "C"
      os.environ["LANG"] = "C"
      workdir = utils.safe_makedir(os.path.abspath(workdir))
      os.chdir(workdir)
      config, config_file = config_utils.load_system_config(config_file, workdir)
      if config.get("log_dir", None) is None:
          config["log_dir"] = os.path.join(workdir, DEFAULT_LOG_DIR)
      if parallel["type"] in ["local", "clusterk"]:
          _setup_resources()
          _run_toplevel(config, config_file, workdir, parallel,
                        fc_dir, run_info_yaml)
      elif parallel["type"] == "ipython":
          assert parallel["scheduler"] is not None, "IPython parallel requires a specified scheduler (-s)"
          if parallel["scheduler"] != "sge":
              assert parallel["queue"] is not None, "IPython parallel requires a specified queue (-q)"
          elif not parallel["queue"]:
              parallel["queue"] = ""
          _run_toplevel(config, config_file, workdir, parallel,
                        fc_dir, run_info_yaml)
      else:
          raise ValueError("Unexpected type of parallel run: %s" % parallel["type"])
docs: Run variant analysis, handling command line options.