Exemplo n.º 1
0
 /// <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;
 }