def METHOD_NAME():
    parser = argparse.ArgumentParser( description='Put a description of your script here')
    ## output file to be written
    parser.add_argument('-v', '--vcf_file', type=str, required=True, help='Input VCFannotated file' )
    args = parser.parse_args()
    file = args.vcf_file
    file_is_encoded = False
    fh = None
    if file.endswith(".gz"):
        fh = gzip.GzipFile(file, "r")
        file_is_encoded = True
    else:
        fh = open(file)
    total_snp_c = 0
    cds_snp_c = 0
    intron_snp_c = 0
    intergenic_snp_c = 0
    p3UTR_snp_c = 0
    p5UTR_snp_c = 0
    ## these are each subcategories of SNPs within a CDS
    syn_c = 0
    nonsyn_c = 0
    readthru_c = 0
    nonsense_c = 0
    other_c = 0
    for line in fh:
        if file_is_encoded:
            line = line.decode().rstrip()
        else:
            line = line.rstrip()
        cols = line.split("\t")
        if line.startswith("#"):
            continue
        cols = line.split("\t")
        ## VCF annotated files should all have 10 columns.
        if len(cols) < 10:
            raise Exception("ERROR: expected all non-comment lines to have 10 columns")
        annot_col = cols[10]
        snp_loc = None
        snp_type = None
        alt = cols[4]
        if alt != ".":
            total_snp_c += 1
            if annot_col.startswith("intergenic"):
                intergenic_snp_c += 1
            elif annot_col.startswith("intron"):
                intron_snp_c += 1
            elif annot_col.startswith("p5UTR"):
                p5UTR_snp_c += 1
            elif annot_col.startswith("p3UTR"):
                p3UTR_snp_c += 1
            elif annot_col.startswith("CDS"):
                cds_snp_c += 1
                cds_type = annot_col.split(",")[-1]
                if cds_type == "(SYN)":
                    syn_c += 1
                elif cds_type == "(NSY)":
                    nonsyn_c += 1
                elif cds_type == "(RTH)":
                    readthru_c += 1
                elif cds_type == "(STP)":
                    nonsense_c += 1
                else:
                    other_c += 1
            else:
                raise Exception("ERROR: Unexpected SNP type at beginning of column: {0}".format(annot_col) )
    print("Total SNPs: {}".format(total_snp_c) )
    print("Intergenic: {}".format(intergenic_snp_c) )
    print("Intronic  : {}".format(intron_snp_c) )
    print("p5UTR  : {}".format(p5UTR_snp_c) )
    print("p3UTR  : {}".format(p3UTR_snp_c) )
    print("Within CDS: {}".format(cds_snp_c) )
    print("\tSynonymous    : {}".format(syn_c) )
    print("\tNon-synonymous: {}".format(nonsyn_c) )
    print("\tRead-through  : {}".format(readthru_c) )
    print("\tNonsense      : {}".format(nonsense_c) )