/// <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); }