def main():
    args = parse_args()

    phenotypes = _create_genetest_phenotypes(
        args.grs_filename, args.phenotypes_filename,
        args.phenotypes_sample_column, args.phenotypes_separator
    )

    if args.outcome_type == "continuous":
        y_g_test = "linear"
    elif args.outcome_type == "discrete":
        y_g_test = "logistic"
    else:
        raise ValueError(
            "Expected outcome type to be 'discrete' or 'continuous'."
        )

    if args.exposure_type == "continuous":
        x_g_test = "linear"
    elif args.exposure_type == "discrete":
        x_g_test = "logistic"
    else:
        raise ValueError(
            "Expected exposure type to be 'discrete' or 'continuous'."
        )

    n_iter = 1000
    logger.info(
        "Computing MR estimates using the ratio method. Bootstrapping "
        "standard errors can take some time."
    )
    beta, low, high = mr_effect_estimate(
        phenotypes, args.outcome, args.exposure, n_iter, y_g_test, x_g_test
    )

    print("The estimated beta of the exposure on the outcome and its 95% CI "
          "(computed using the empirical " "bootstrap) are:\n")
    print("{:.4g} ({:.4g}, {:.4g})".format(beta, low, high))