/// <summary>
        /// Set values for codons around change.
        /// </summary>
        /// <param name="codonsLeft"></param>
        /// <param name="codonsRight"></param>
        public void SetCodonsAround(string codonsLeft, string codonsRight)
        {
            CodonsAroundOld = codonsLeft.ToLower(CultureInfo.InvariantCulture) + CodonsRef.ToUpper(CultureInfo.InvariantCulture) + codonsRight.ToLower(CultureInfo.InvariantCulture);
            CodonsAroundNew = codonsLeft.ToLower(CultureInfo.InvariantCulture) + CodonsAlt.ToUpper(CultureInfo.InvariantCulture) + codonsRight.ToLower(CultureInfo.InvariantCulture);

            // Amino acids surrounding the ones changed
            string aasLeft = Translation.TranslateDnaCodon(codonsLeft, out byte aa1) ?
                             new string(new char[] { (char)aa1 }) :
                             "";
            string aasRigt = Translation.TranslateDnaCodon(codonsRight, out byte aa2) ?
                             new string(new char[] { (char)aa2 }) :
                             "";

            AroundOldAAs = aasLeft.ToLower(CultureInfo.InvariantCulture) + ReferenceAA.ToUpper(CultureInfo.InvariantCulture) + aasRigt.ToLower(CultureInfo.InvariantCulture);
            AroundNewAAs = aasLeft.ToLower(CultureInfo.InvariantCulture) + AlternateAA.ToUpper(CultureInfo.InvariantCulture) + aasRigt.ToLower(CultureInfo.InvariantCulture);
        }
        /// <summary>
        /// Return functional class of this effect (i.e.  NONSENSE, MISSENSE, SILENT or NONE)
        /// </summary>
        /// <returns></returns>
        public FunctionalClass GetFunctionalClass()
        {
            if (Variant.isSnv())
            {
                if (!AlternateAA.Equals(ReferenceAA))
                {
                    Translation.TranslateDnaCodon(CodonsAlt, out byte aa);
                    return(aa == Alphabets.Protein.Ter ?
                           FunctionalClass.NONSENSE :
                           FunctionalClass.MISSENSE);
                }
                if (!CodonsAlt.Equals(CodonsRef))
                {
                    return(FunctionalClass.SILENT);
                }
            }

            return(FunctionalClass.NONE);
        }