public void TestMissenseMutation()
        {
            // Make a transcript
            Sequence seq = new Sequence(Alphabets.DNA, "AAA".Select(cc => (byte)cc).ToArray(), false);

            seq.ID = "1";
            Chromosome c = new Chromosome(seq, null);
            Gene       g = new Gene("", c, "", "+", 1, 3, null);
            Transcript t = new Transcript("", g, "", "+", 1, 3, "", null, null);
            Exon       x = new Exon(t, seq, "", 1, 3, seq.ID, "+", null, null);

            t.Exons = new List <Exon> {
                x
            };
            CDS cds = new CDS(t, seq.ID, "", "+", 1, 3, null, 0);

            t.CodingDomainSequences = new List <CDS> {
                cds
            };

            // Make a missense mutation
            // ugh.vcf has a homozygous variation that should change the codon from AAA to AGA, which code for K and R
            // # CHROM	POS	ID	REF	ALT	QUAL	FILTER	INFO	FORMAT	sample
            // 1   2 .   A   G   64.77 . info   GT:AD:DP:GQ:PL  1/1:2,3:5:69:93,0,69
            List <Variant> variants = new VCFParser(Path.Combine(TestContext.CurrentContext.TestDirectory, "TestVcfs", "ugh.vcf")).Select(v => new Variant(null, v, new Chromosome(seq, null))).ToList();

            // Make sure it makes it into the DNA sequence
            t.Variants = new HashSet <Variant>(variants);
            List <Transcript> variantTranscripts = GeneModel.ApplyVariantsCombinitorially(t);

            Assert.AreEqual("AAA", SequenceExtensions.ConvertToString(t.Exons[0].Sequence));
            Assert.AreEqual("K", t.Protein().BaseSequence);
            Assert.AreEqual("AGA", SequenceExtensions.ConvertToString(variantTranscripts[0].Exons[0].Sequence));
            Assert.AreEqual("R", variantTranscripts[0].Protein().BaseSequence);

            // Make sure it gets annotated as a missense mutation
            Assert.IsTrue(variantTranscripts[0].VariantAnnotations.Any(str => str.Contains(FunctionalClass.MISSENSE.ToString())));
        }