parser.add_argument(
        "--null-information-scale",
        type=float,
        default=1e-12,
        dest="null_inf_factor",
        help=
        "Factor for generating the null hypothesis information matrix, default: 1e-12"
    )

    args = parser.parse_args()

    if args.do_bfs and args.do_seq:
        print("ERROR: specify either --seq-init or --bfs-init, not both")
        exit(1)

    g = G.readg2o(args.input)

    g.readExtraOutliers(args.outliers)

    if args.all_hyper:
        g.makeAllLoopsHaveNullHypothesis()

    if args.do_bfs:
        g.setNonfixedPosesToZero()
        g.intializePosesBFS(args.do_bfs_with_null)

    if args.do_seq:
        g.setNonfixedPosesToZero()
        g.initializePosesSequential()

    g.writeg2o(args.output,
        help="Output file to append the errors to. Default: stdout")
    parser.add_argument(
        "--5-summary",
        dest="summary",
        default=False,
        action='store_true',
        help=
        "If given, calculate min,lower quartile,median,upper quartile,max instead of printing all error values."
    )

    args = parser.parse_args()

    if not args.output:
        args.output = sys.stdout

    G_ref = G.readg2o(args.reference)

    errs = error_calc(G_ref)

    tr = []
    rot = []

    for pattern in args.graphs:
        for graphfile in glob.glob(pattern):
            if not os.path.exists(graphfile):
                print("ERROR: graph file '",
                      graphfile,
                      "does not exist!",
                      file=sys.stderr)
                continue