private IVariant GetVariant(IChromosome chromosome, int start, int end, string refAllele, string altAllele, IInfoData infoData, VariantCategory category, bool isDecomposed, bool isRecomposed, string[] linkedVids) { string vid = _vidCreator.Create(_sequence, category, infoData.SvType, chromosome, start, end, refAllele, altAllele, infoData.RepeatUnit); int svEnd = infoData.End ?? start; // ReSharper disable once SwitchStatementMissingSomeCases switch (category) { case VariantCategory.SmallVariant: return(SmallVariantCreator.Create(chromosome, start, end, refAllele, altAllele, isDecomposed, isRecomposed, linkedVids, vid, false)); case VariantCategory.ROH: return(RohVariantCreator.Create(chromosome, start, svEnd, refAllele, altAllele, vid)); case VariantCategory.SV: return(StructuralVariantCreator.Create(chromosome, start, svEnd, refAllele, altAllele, infoData.SvType, vid)); case VariantCategory.CNV: return(CnvCreator.Create(chromosome, start, svEnd, refAllele, altAllele, vid)); case VariantCategory.RepeatExpansion: return(RepeatExpansionCreator.Create(chromosome, start, svEnd, refAllele, altAllele, infoData.RefRepeatCount, vid)); default: throw new NotImplementedException($"Unrecognized variant category: {category}"); } }
private IVariant GetVariant(IChromosome chromosome, int start, int end, string refAllele, string altAllele, IInfoData infoData, VariantCategory category, bool isDecomposedVar, bool isRecomposed, string[] linkedVids, string globalMajorAllele) { switch (category) { case VariantCategory.Reference: return(ReferenceVariantCreator.Create(chromosome, start, end, refAllele, altAllele, globalMajorAllele)); case VariantCategory.SmallVariant: return(SmallVariantCreator.Create(chromosome, start, refAllele, altAllele, isDecomposedVar, isRecomposed, linkedVids)); case VariantCategory.ROH: return(RohVariantCreator.Create(chromosome, start, refAllele, altAllele, infoData)); case VariantCategory.SV: var svBreakEnds = infoData.SvType == VariantType.translocation_breakend ? GetTranslocationBreakends(chromosome, refAllele, altAllele, start) : GetSvBreakEnds(chromosome.EnsemblName, start, infoData.SvType, infoData.End); return(StructuralVariantCreator.Create(chromosome, start, refAllele, altAllele, svBreakEnds, infoData)); case VariantCategory.CNV: return(CnvCreator.Create(chromosome, start, refAllele, altAllele, infoData)); case VariantCategory.RepeatExpansion: return(RepeatExpansionCreator.Create(chromosome, start, refAllele, altAllele, infoData)); default: throw new NotImplementedException("Unrecognized variant category."); } }
public void Create_StructuralVariants_ReturnVid(int start, int end, string altAllele, string repeatUnit, string svType, VariantCategory category, string expectedVid) { string observedVid = _vidCreator.Create(null, category, svType, ChromosomeUtilities.Chr1, start, end, "", altAllele, repeatUnit); Assert.Equal(expectedVid, observedVid); }
public string Create(ISequence sequence, VariantCategory category, string svType, IChromosome chromosome, int start, int end, string refAllele, string altAllele, string repeatUnit) { if (altAllele == ".") { altAllele = refAllele; } // fix N reference if (refAllele == "N") { refAllele = sequence.Substring(start - 1, 1); } // add padding bases if (string.IsNullOrEmpty(refAllele) || string.IsNullOrEmpty(altAllele)) { start--; string paddingBase = sequence.Substring(start - 1, 1); refAllele = paddingBase + refAllele; altAllele = paddingBase + altAllele; } if (category == VariantCategory.SmallVariant || category == VariantCategory.Reference || svType == "BND") { return(GetVid(chromosome.EnsemblName, start, refAllele, altAllele)); } if (category == VariantCategory.RepeatExpansion) { svType = "STR"; } return(GetLongVid(chromosome.EnsemblName, start, end, refAllele, altAllele, svType)); }
public void Create_StructuralVariants_RecoverRefAllele_ReturnLongVid(int position, int endPosition, string refAllele, string altAllele, string svType, VariantCategory category, string expectedVid) { string observedVid = _vidCreator.Create(_sequence, category, svType, ChromosomeUtilities.Chr1, position, endPosition, refAllele, altAllele, null); Assert.Equal(expectedVid, observedVid); }
private IVariant GetVariant(IChromosome chromosome, string id, int start, int end, string refAllele, string altAllele, IInfoData infoData, VariantCategory category, bool isDecomposedVar, bool isRecomposed) { switch (category) { case VariantCategory.Reference: var refMinorGlobalMajorAllele = _refMinorProvider?.GetGlobalMajorAlleleForRefMinor(chromosome, start); return(ReferenceVariantCreator.Create(chromosome, start, end, refAllele, altAllele, refMinorGlobalMajorAllele)); case VariantCategory.SmallVariant: return(SmallVariantCreator.Create(chromosome, start, refAllele, altAllele, isDecomposedVar, isRecomposed)); case VariantCategory.SV: var svBreakEnds = infoData.SvType == VariantType.translocation_breakend ? GetTranslocationBreakends(chromosome, refAllele, altAllele, start) : GetSvBreakEnds(chromosome.EnsemblName, start, infoData.SvType, infoData.End, infoData.IsInv3, infoData.IsInv5); return(StructuralVariantCreator.Create(chromosome, start, refAllele, altAllele, svBreakEnds, infoData, _enableVerboseTranscript)); case VariantCategory.CNV: return(CnvCreator.Create(chromosome, id, start, refAllele, altAllele, infoData, _enableVerboseTranscript)); case VariantCategory.RepeatExpansion: return(RepeatExpansionCreator.Create(chromosome, start, refAllele, altAllele, infoData)); default: throw new NotImplementedException("Unrecognized variant category."); } }