def METHOD_NAME(args, assign=False):
    # Read values from DB
    try:
        if assign:
            db_prefix = args.db
        else:
            db_prefix = args.ref_db
        n_samples = str(len(getSeqsInDb(db_prefix + "/" + os.path.basename(db_prefix) + ".h5")))
        kmers, sketch_size, codon_phased = readDBParams(db_prefix)
        kmin = str(min(kmers))
        kmax = str(max(kmers))
        sketch_size = str(sketch_size * 64)
        seed_phasing = "codon-phased" if codon_phased else "dense"
    except:
        n_samples = "X"
        kmin = "X"
        kmax = "X"
        sketch_size = "X"
        seed_phasing = "X"
    try:
        pp_sketchlib_version = pp_sketchlib.version
        sketch_version = pp_sketchlib.version
    except AttributeError:
        pp_sketchlib_version = "X"
        sketch_version = "X"
    if assign:
        print(assign_methods % {"number_samples" : n_samples,
                                 "sketchlib_version" : pp_sketchlib_version,
                                 "sketchlib_doi" : "10.5281/zenodo.4531418",
                                 "sketchlib_hash" : sketch_version,
                                 "kmin" : kmin,
                                 "kmax" : kmax,
                                 "sketch_size" : sketch_size,
                                 "seed_type" : seed_phasing,
                                 "poppunk_version" : __version__,
                                 "poppunk_doi" : "10.1101/gr.241455.118"})
    else:
        if args.fit_model == "bgmm":
            model_mode = "BGMM"
            model_options = str(args.K) + " components"
            cluster_type = "strains"
        elif args.fit_model == "dbscan":
            model_mode = "HDBSCAN"
            model_options = str(args.D) + " maximum clusters and a minimum of "  + \
                    str(round((n_samples * (n_samples + 1))/(2 * args.min_cluster_prop))) + \
                    " points per cluster"
            cluster_type = "strains"
        elif args.fit_model == "refine":
            model_mode = "refined"
            model_options = "score " + str(args.score_idx) + " used to optimise the VLKCs"
            cluster_type = "strains"
        elif args.fit_model == "threshold":
            model_mode = "simple threshold"
            model_options = "a core-distance cutoff distance of " + args.threshold
            cluster_type = "partitions"
        elif args.fit_model == "lineage":
            model_mode = "lineage"
            model_options = "ranks of " + args.ranks
            cluster_type = "lineages"
        else:
            model_mode = "UNKNOWN"
            model_options = "UNKNOWN"
            cluster_type = "UNKNOWN"
        print(poppunk_methods % {"number_samples" : n_samples,
                                 "sketchlib_version" : pp_sketchlib_version,
                                 "sketchlib_doi" : "10.5281/zenodo.4531418",
                                 "sketchlib_hash" : sketch_version,
                                 "kmin" : kmin,
                                 "kmax" : kmax,
                                 "sketch_size" : sketch_size,
                                 "seed_type" : seed_phasing,
                                 "cluster_type": cluster_type,
                                 "poppunk_version" : __version__,
                                 "poppunk_doi" : "10.1101/gr.241455.118",
                                 "model_mode" : model_mode,
                                 "model_options" : model_options})
    print(citation)
    print(sketchlib_citation)