public void AddVariantData(VariantFeature variant) { //add CytoGenetic band CytogeneticBand = variant.CytogeneticBand; // populating supplementary interval specific fields PopulateSuppIntervalFields(variant.GetSupplementaryIntervals()); foreach (var altAllele in variant.AlternateAlleles) { var jsonVariant = new JsonVariant(altAllele, variant); AnnotatedAlternateAlleles.Add(jsonVariant); // custom intervals are not part of SA as they are a separate data structure AddCustomIntervals(altAllele, jsonVariant); if (altAllele.SupplementaryAnnotationPosition == null) { continue; } var sa = altAllele.SupplementaryAnnotationPosition; sa.AddSaPositionToVariant(jsonVariant); } }
private static void AddCustomIntervals(VariantAlternateAllele altAllele, JsonVariant jsonVariant) { // adding the custom intervals if (altAllele.CustomIntervals == null) { return; } jsonVariant.CustomIntervals.Clear(); foreach (var custInterval in altAllele.CustomIntervals) { jsonVariant.CustomIntervals.Add(custInterval); } }
private void FindCorrespondingJsonVariant(VariantAlternateAllele altAllele) { _currJsonVariant = null; foreach (var annotatedAllele in AnnotatedAlternateAlleles) { var jsonVariant = annotatedAllele as JsonVariant; if (jsonVariant?.ReferenceBegin != altAllele.Start) { continue; } if (jsonVariant.SaAltAllele != altAllele.SuppAltAllele) { continue; } _currJsonVariant = jsonVariant; } }