def METHOD_NAME():
    baseDir, workflowDir, defaults = cf.setDefaults(os.path.basename(__file__))
    # get command line arguments
    parser = parse_args(defaults)
    args = parser.parse_args()
    args, defaults = cf.handleUserArgs(args, defaults, parse_args)
    # we also add these paths to config, although we don't use them in the Snakefile
    args.baseDir = baseDir
    # Common arguments
    cf.checkCommonArguments(args, baseDir, outDir=True)
    ## Begin workflow-specific checks
    modeTemp = args.mode.split(",")
    validModes = set(["alignment", "deepTools_qc"])
    for mode in modeTemp:
        if mode not in validModes:
            sys.exit("{} is not a valid mode!\n".format(mode))
    if "alignment" not in modeTemp and args.UMIDedup:
        sys.exit("UMIDedup is only valid for \"alignment\" mode!\n")
    if args.fromBAM:
        args.aligner = "EXTERNAL_BAM"
    ## End workflow-specific checks
    # Handle YAML and log files
    snakemake_cmd = cf.commonYAMLandLogs(baseDir, workflowDir, defaults, args, __file__)
    logfile_name = cf.logAndExport(args, os.path.basename(__file__))
    # Run everything
    cf.runAndCleanup(args, snakemake_cmd, logfile_name)
    #CreateDAG
    cf.print_DAG(args,snakemake_cmd, __file__,defaults)