def METHOD_NAME(self, inputs, outputs):
    """Run analysis."""
    annotated_vcf = "snp_annotated.vcf"
    annotated_vcf_gz = annotated_vcf + ".gz"
    annotated_vcf_index = annotated_vcf_gz + ".tbi"
    summary_html = annotated_vcf + "_summary.html"
    if inputs.vcf.output.species != inputs.cache.output.species:
        self.error(
            "Species information for the input VCF file and cache don't match."
        )
    elif inputs.vcf.output.build != inputs.cache.output.build:
        self.error(
            "Build information for the input VCF file and cache don't match."
        )
    _, stdout, _ = Cmd["vep"]["--help"] & TEE(retcode=None)
    vep_version = check_version(stdout=stdout)
    if inputs.cache.output.release != vep_version:
        self.warning(
            f"The current version of Ensembl-VEP is {vep_version}. "
            f"It is recommended that cache version is also {vep_version}."
        )
    args = [
        "--cache",
        "--dir",
        inputs.cache.output.cache.path,
        "-v",
        "--format",
        "vcf",
        "--everything",
        "-i",
        inputs.vcf.output.vcf.path,
        "-o",
        annotated_vcf,
        "--fork",
        min(inputs.n_forks, self.requirements.resources.cores),
        "--offline",
        "--fasta",
        inputs.ref_seq.output.fasta.path,
    ]
    return_code, stdout, stderr = Cmd["vep"][args] & TEE(retcode=None)
    if return_code:
        print(stdout, stderr)
        self.error("Ensembl-VEP failed.")
    (Cmd["bgzip"]["-c", annotated_vcf] > annotated_vcf_gz)()
    Cmd["tabix"]["-p", "vcf", annotated_vcf_gz]()
    outputs.vcf = annotated_vcf_gz
    outputs.tbi = annotated_vcf_index
    outputs.summary = summary_html
    outputs.species = inputs.vcf.output.species
    outputs.build = inputs.vcf.output.build