Beispiel #1
0
        private static string GetPositionAnnotation(IPosition position, IAnnotationResources resources, string[] sampleNames, bool preloadRequired)
        {
            if (preloadRequired)
            {
                resources.SingleVariantPreLoad(position);
            }
            IAnnotatedPosition annotatedPosition = resources.Annotator.Annotate(position);
            string             json = annotatedPosition?.GetJsonString();

            if (json == null)
            {
                throw new UserErrorException("No variant is provided for annotation");
            }

            var outputJsonStream = new MemoryStream();

            using (var jsonWriter = new JsonWriter(outputJsonStream, null, resources, Date.CurrentTimeStamp, sampleNames, true))
            {
                WriteAnnotatedPosition(annotatedPosition, jsonWriter, json);
                jsonWriter.WriteGenes(resources.Annotator.GetGeneAnnotations());
            }

            outputJsonStream.Position = 0;
            return(Encoding.UTF8.GetString(outputJsonStream.ToArray()));
        }
Beispiel #2
0
 private static void CheckGenomeAssembly(IAnnotationResources annotationResources, VcfReader vcfReader)
 {
     if (vcfReader.InferredGenomeAssembly != GenomeAssembly.Unknown && vcfReader.InferredGenomeAssembly != annotationResources.Annotator.Assembly)
     {
         throw new UserErrorException($"A mismatch between genome assemblies was found. The input VCF uses {vcfReader.InferredGenomeAssembly} whereas annotation was configured for {annotationResources.Annotator.Assembly}.");
     }
 }
Beispiel #3
0
 private static void SetMitochondrialAnnotationBehavior(IAnnotationResources annotationResources, IVcfReader vcfReader)
 {
     if (vcfReader.IsRcrsMitochondrion && annotationResources.Annotator.Assembly == GenomeAssembly.GRCh37 ||
         annotationResources.Annotator.Assembly == GenomeAssembly.GRCh38 ||
         annotationResources.ForceMitochondrialAnnotation)
     {
         annotationResources.Annotator.EnableMitochondrialAnnotation();
     }
 }
Beispiel #4
0
        private static VcfReader GetVcfReader(Stream headerStream, Stream vcfStream, IAnnotationResources annotationResources,
                                              IVcfFilter vcfFilter, IMitoHeteroplasmyProvider mitoHeteroplasmyProvider)
        {
            var vcfReader = FileUtilities.GetStreamReader(vcfStream);

            StreamReader headerReader;

            if (headerStream == null)
            {
                headerReader = vcfReader;
            }
            else
            {
                headerReader       = FileUtilities.GetStreamReader(headerStream);
                vcfStream.Position = Tabix.VirtualPosition.From(annotationResources.InputStartVirtualPosition).BlockOffset;
            }

            return(VcfReader.Create(headerReader, vcfReader, annotationResources.SequenceProvider,
                                    annotationResources.RefMinorProvider, annotationResources.Recomposer, vcfFilter, annotationResources.VidCreator, mitoHeteroplasmyProvider));
        }
Beispiel #5
0
 public JsonWriter(Stream jsonStream, Stream indexStream, IAnnotationResources annotationResources, string creationTime, string[] sampleNames, bool leaveOpen) : this(jsonStream, indexStream, annotationResources.AnnotatorVersionTag, creationTime, annotationResources.VepDataVersion, annotationResources.DataSourceVersions, annotationResources.SequenceProvider.Assembly.ToString(), sampleNames, leaveOpen)
 {
 }