コード例 #1
0
        private void AddTranscripts(IAnnotatedPosition annotatedPosition)
        {
            var overlappingTranscripts = _transcriptCache.GetOverlappingFlankingTranscripts(annotatedPosition.Position);

            if (overlappingTranscripts == null)
            {
                // todo: handle intergenic variants
                return;
            }

            foreach (var annotatedVariant in annotatedPosition.AnnotatedVariants)
            {
                var annotatedTranscripts = new List <IAnnotatedTranscript>();

                PianoAnnotationUtils.GetAnnotatedTranscripts(annotatedVariant.Variant, overlappingTranscripts,
                                                             _sequence, annotatedTranscripts);

                if (annotatedTranscripts.Count == 0)
                {
                    continue;
                }

                foreach (var annotatedTranscript in annotatedTranscripts)
                {
                    if (annotatedTranscript.Transcript.Source == Source.Ensembl)
                    {
                        annotatedVariant.EnsemblTranscripts.Add(annotatedTranscript);
                    }
                    else
                    {
                        annotatedVariant.RefSeqTranscripts.Add(annotatedTranscript);
                    }
                }
            }
        }