/// <summary> /// Add variants to relevant genomic regions and annotate them if on transcripts /// </summary> /// <param name="variants"></param> public void AddVariantAnnotations(List <Variant> variants) { Parallel.ForEach(variants.OrderByDescending(v => v.OneBasedStart).ToList(), v => { if (GenomeForest.Forest.TryGetValue(Chromosome.GetFriendlyChromosomeName(v.ChromosomeID), out var intervalTree)) { foreach (Interval i in intervalTree.Stab(v.OneBasedStart)) { lock (i) { i.Variants.Add(v); Transcript t = i as Transcript; if (t != null) { t.AnnotateWithVariant(v); } } } } }); PreviouslyAddedVariants = variants; }