public string TranscriptAnnotation()
 {
     return("effect:" + GetFunctionalClass().ToString() + " " +
            GetEffectType().ToString() + " " +
            ReferenceAA + (CodonNum + 1).ToString() + AlternateAA + " " +
            CodonsRef.ToLower(CultureInfo.InvariantCulture) + CodonNum.ToString() + CodonsAlt);
 }
        /// <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);
        }