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())); }
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}."); } }
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(); } }
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)); }
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) { }