public void Preload() { var version = new DataSourceVersion("source1", "v1", DateTime.Now.Ticks, "description"); using (var saStream = new MemoryStream()) using (var indexStream = new MemoryStream()) { using (var extWriter = new ExtendedBinaryWriter(saStream, Encoding.UTF8, true)) using (var indexExtWriter = new ExtendedBinaryWriter(indexStream, Encoding.UTF8, true)) { var saWriter = new NsaWriter(extWriter, indexExtWriter, version, GetAllASequenceProvider(), "dbsnp", true, true, SaCommon.SchemaVersion, false, true, false, 1024); saWriter.Write(GetDbsnpItems(1000)); } saStream.Position = 0; indexStream.Position = 0; using (var saReader = new NsaReader(saStream, indexStream, 1024)) { saReader.PreLoad(_chrom1, GetPositions(50, 1000)); Assert.Null(saReader.GetAnnotation(90)); //before any SA existed Assert.NotNull(saReader.GetAnnotation(100)); //first entry of first block Assert.NotNull(saReader.GetAnnotation(480)); //last query of first block Assert.Null(saReader.GetAnnotation(488)); //between first and second block Assert.NotNull(saReader.GetAnnotation(490)); //first entry of second block } } }
private static ExitCodes ProgramExecution() { var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); var version = DataSourceVersionReader.GetSourceVersion(_inputFile + ".version"); string outFileName = $"{version.Name}_{version.Version}"; TranscriptCacheData transcriptData; using (var transcriptCacheReader = new TranscriptCacheReader(FileUtilities.GetReadStream(CacheConstants.TranscriptPath(_transcriptCachePrefix)))) { transcriptData = transcriptCacheReader.Read(referenceProvider.RefIndexToChromosome); } var(entrezToHgnc, ensemblToHgnc) = PrimateAiUtilities.GetIdToSymbols(transcriptData); using (var primateAiParser = new PrimateAiParser(GZipUtilities.GetAppropriateReadStream(_inputFile), referenceProvider, entrezToHgnc, ensemblToHgnc)) using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var nsaWriter = new NsaWriter(nsaStream, indexStream, version, referenceProvider, SaCommon.PrimateAiTag, true, true, SaCommon.SchemaVersion, false)) { nsaWriter.Write(primateAiParser.GetItems()); } return(ExitCodes.Success); }
private static ExitCodes ProgramExecution() { var rootDirectory = new FileInfo(MitoMapFileNames[0]).Directory; if (rootDirectory == null) { return(ExitCodes.PathNotFound); } var version = DataSourceVersionReader.GetSourceVersion(Path.Combine(rootDirectory.ToString(), "mitoMapVar")); var sequenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); var chrom = sequenceProvider.RefNameToChromosome["chrM"]; sequenceProvider.LoadChromosome(chrom); var mitoMapVarReaders = MitoMapFileNames.Select(mitoMapFileName => new MitoMapVariantReader(new FileInfo(mitoMapFileName), sequenceProvider)).ToList(); var mergedMitoMapVarItems = MitoMapVariantReader.MergeAndSort(mitoMapVarReaders); string outFileName = $"{version.Name}_{version.Version}"; using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) { var nsaWriter = new NsaWriter(new ExtendedBinaryWriter(nsaStream), new ExtendedBinaryWriter(indexStream), version, sequenceProvider, SaCommon.MitoMapTag, false, true, SaCommon.SchemaVersion, false); nsaWriter.Write(mergedMitoMapVarItems); } return(ExitCodes.Success); }
public static void ConcatenateNsaFiles(IEnumerable <string> filePaths, string outFilePrefix) { if (filePaths == null || !filePaths.Any()) { return; } var nsaReaders = new List <NsaReader>(); foreach (var fileName in filePaths) { nsaReaders.Add(new NsaReader(FileUtilities.GetReadStream(fileName), FileUtilities.GetReadStream(fileName + SaCommon.IndexSufix))); } Console.WriteLine($"Merging {nsaReaders.Count} NSA files..."); var(version, jsonKey, matchByAllele, isArray, isPositional, assembly) = GetIndexFields(nsaReaders); using (var nsaStream = FileUtilities.GetCreateStream(outFilePrefix + SaCommon.SaFileSuffix)) using (var indexStream = FileUtilities.GetCreateStream(outFilePrefix + SaCommon.SaFileSuffix + SaCommon.IndexSufix)) using (var nsaWriter = new NsaWriter(nsaStream, indexStream, version, null, jsonKey, matchByAllele, isArray, SaCommon.SchemaVersion, isPositional, true, false, SaCommon.DefaultBlockSize, assembly)) { var chromIndices = GetChromIndices(nsaReaders); foreach (var chromIndex in chromIndices) { Console.WriteLine($"Working on chromosome index: {chromIndex}"); nsaWriter.Write(chromIndex, GetNsaReader(chromIndex, nsaReaders)); } } }
public void RemoveConflictinItems() { var version = new DataSourceVersion("source1", "v1", DateTime.Now.Ticks, "description"); using (var saStream = new MemoryStream()) using (var indexStream = new MemoryStream()) using (var saWriter = new NsaWriter(saStream, indexStream, version, GetAllASequenceProvider(), "gnomad", true, true, SaCommon.SchemaVersion, false, true, false, 1024)) { Assert.Equal(0, saWriter.Write(GetConflictingGnomadItems())); } }
private void WriteCustomSaItem(CustomItem customItem) { using (var saStream = new MemoryStream()) using (var indexStream = new MemoryStream()) using (var saWriter = new NsaWriter( new ExtendedBinaryWriter(saStream), new ExtendedBinaryWriter(indexStream), new DataSourceVersion("customeSa", "test", DateTime.Now.Ticks), GetSequenceProvider(), "customeSa", false, true, SaCommon.SchemaVersion, false, false)) { saWriter.Write(new[] { customItem }); } }
public void Write_clinvar_basic() { var version = new DataSourceVersion("source1", "v1", DateTime.Now.Ticks, "description"); using (var saStream = new MemoryStream()) using (var indexStream = new MemoryStream()) { using (var saWriter = new NsaWriter(saStream, indexStream, version, GetSequenceProvider(), "clinvar", false, true, SaCommon.SchemaVersion, false, true, false, 1024, GenomeAssembly.GRCh37, true)) { saWriter.Write(GetClinvarItems()); } saStream.Position = 0; indexStream.Position = 0; using (var saReader = new NsaReader(saStream, indexStream, 1024)) { Assert.Equal(GenomeAssembly.GRCh37, saReader.Assembly); Assert.Equal(version.ToString(), saReader.Version.ToString()); saReader.PreLoad(ChromosomeUtilities.Chr1, new List <int> { 100, 101, 106 }); var annotations = saReader.GetAnnotation(100).ToList(); Assert.Equal("T", annotations[0].refAllele); Assert.Equal("A", annotations[0].altAllele); Assert.Equal( "\"id\":\"RCV0001\",\"reviewStatus\":\"no assertion provided\",\"alleleOrigins\":[\"origin1\"],\"refAllele\":\"T\",\"altAllele\":\"A\",\"phenotypes\":[\"phenotype1\"],\"medGenIds\":[\"medgen1\"],\"omimIds\":[\"omim1\"],\"orphanetIds\":[\"orpha1\"],\"significance\":[\"significance\"],\"lastUpdatedDate\":\"0001-01-01\",\"pubMedIds\":[\"10024875684920\"]", annotations[0].annotation); annotations = saReader.GetAnnotation(101).ToList(); Assert.Equal("A", annotations[0].refAllele); Assert.Equal("", annotations[0].altAllele); Assert.Equal( "\"id\":\"RCV00011\",\"variationId\":101,\"reviewStatus\":\"no assertion provided\",\"alleleOrigins\":[\"origin1\"],\"refAllele\":\"A\",\"altAllele\":\"-\",\"phenotypes\":[\"phenotype1\"],\"medGenIds\":[\"medgen1\"],\"omimIds\":[\"omim1\"],\"orphanetIds\":[\"orpha1\"],\"significance\":[\"significance\"],\"lastUpdatedDate\":\"0001-01-01\",\"pubMedIds\":[\"10024875684920\"]", annotations[0].annotation); saReader.PreLoad(ChromosomeUtilities.Chr2, new List <int> { 200, 205 }); var(refAllele, altAllele, annotation) = saReader.GetAnnotation(200).First(); Assert.Equal("G", refAllele); Assert.Equal("A", altAllele); Assert.NotNull(annotation); } } }
private static ExitCodes ProgramExecution() { var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); var version = DataSourceVersionReader.GetSourceVersion(_inputFile + ".version"); string outFileName = $"{version.Name}_{version.Version}"; using (var primateAiParser = new MitoHeteroplasmyParser(GZipUtilities.GetAppropriateReadStream(_inputFile), referenceProvider)) using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var nsaWriter = new NsaWriter(nsaStream, indexStream, version, referenceProvider, SaCommon.MitoHeteroplasmyTag, true, false, SaCommon.SchemaVersion, false)) { nsaWriter.Write(primateAiParser.GetItems()); } return(ExitCodes.Success); }
private static ExitCodes ProgramExecution() { var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); var version = DataSourceVersionReader.GetSourceVersion(_inputFile + ".version"); string outFileName = $"{version.Name}_{version.Version}_ancestralAlleles".Replace(' ', '_'); using (var ancestralAlleleReader = new AncestralAlleleReader(GZipUtilities.GetAppropriateStreamReader(_inputFile), referenceProvider)) using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var writer = new NsaWriter(new ExtendedBinaryWriter(nsaStream), new ExtendedBinaryWriter(indexStream), version, referenceProvider, SaCommon.AncestralAlleleTag, true, false, SaCommon.SchemaVersion, true)) { writer.Write(ancestralAlleleReader.GetItems()); } return(ExitCodes.Success); }
private static ExitCodes ProgramExecution() { var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); var cosmicReader = new MergedCosmicReader(_vcfFile, _tsvFile, referenceProvider); var version = DataSourceVersionReader.GetSourceVersion(_vcfFile + ".version"); string outFileName = $"{version.Name}_{version.Version}"; using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var nsaWriter = new NsaWriter(new ExtendedBinaryWriter(nsaStream), new ExtendedBinaryWriter(indexStream), version, referenceProvider, SaCommon.CosmicTag, false, true, SaCommon.SchemaVersion, false)) { nsaWriter.Write(cosmicReader.GetItems()); } return(ExitCodes.Success); }
private static void CreateNsa(string[] exomeFiles, string genomeFile, DataSourceVersion version) { Console.WriteLine($"Processing file: {genomeFile}"); var outName = Path.GetFileNameWithoutExtension(genomeFile); using (var exomeReader = GetExomeReader(exomeFiles, genomeFile)) using (var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference))) using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_tempDirectory, outName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_tempDirectory, outName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var nsaWriter = new NsaWriter(nsaStream, indexStream, version, referenceProvider, SaCommon.GnomadTag, true, false, SaCommon.SchemaVersion, false)) using (var reader = GZipUtilities.GetAppropriateStreamReader(genomeFile)) { var gnomadReader = new GnomadSnvReader(reader, exomeReader, referenceProvider); var count = nsaWriter.Write(gnomadReader.GetCombinedItems()); Console.WriteLine($"Wrote {count} items to NSA file."); } }
private static ExitCodes ProgramExecution() { var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); var globalMinorReader = new GlobalMinorReader(GZipUtilities.GetAppropriateReadStream(_inputFile), referenceProvider.RefNameToChromosome); var version = DataSourceVersionReader.GetSourceVersion(_inputFile + ".version"); string outFileName = $"{version.Name}_{version.Version}_globalMinor"; using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var nsaWriter = new NsaWriter(nsaStream, indexStream, version, referenceProvider, SaCommon.GlobalAlleleTag, true, false, SaCommon.SchemaVersion, true)) { nsaWriter.Write(globalMinorReader.GetItems()); } return(ExitCodes.Success); }
private static ExitCodes ProgramExecution() { var version = DataSourceVersionReader.GetSourceVersion(_rcvFile + ".version"); string outFileName = $"{version.Name}_{version.Version}"; using (var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference))) using (var clinvarReader = new ClinVarReader(GZipUtilities.GetAppropriateReadStream(_rcvFile), GZipUtilities.GetAppropriateReadStream(_vcvFile), referenceProvider)) using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var nsaWriter = new NsaWriter(nsaStream, indexStream, version, referenceProvider, SaCommon.ClinvarTag, false, true, SaCommon.SchemaVersion, false)) using (var schemaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.JsonSchemaSuffix))) using (var schemaWriter = new StreamWriter(schemaStream)) { nsaWriter.Write(clinvarReader.GetItems()); schemaWriter.Write(clinvarReader.JsonSchema); } return(ExitCodes.Success); }
private ExitCodes ProgramExecution() { if (!_supportedSequencingDataType.Contains(_sequencingDataType)) { throw new ArgumentException($"Only the following sequencing data types are supported: {string.Join(_supportedSequencingDataType.ToString(), ", ")}"); } var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); var inputFiles = Directory.GetFiles(_inputDirectory, "*.vcf.bgz"); if (inputFiles.Length == 0) { inputFiles = Directory.GetFiles(_inputDirectory, "*.vcf.gz"); } if (inputFiles.Length == 0) { throw new UserErrorException("input directory does not contain any .vcf.bgz files"); } var versionFiles = Directory.GetFiles(_inputDirectory, "*.version"); if (versionFiles.Length != 1) { throw new InvalidDataException("more than one .version file found in input directory"); } var version = DataSourceVersionReader.GetSourceVersion(versionFiles[0]); Console.WriteLine($"Creating gnomAD TSV file from {inputFiles.Length} input files"); string outFileName = $"{version.Name}_{version.Version}"; var jsonTag = _sequencingDataType == "genome" ? SaCommon.GnomadTag : SaCommon.GnomadExomeTag; using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var nsaWriter = new NsaWriter(new ExtendedBinaryWriter(nsaStream), new ExtendedBinaryWriter(indexStream), version, referenceProvider, jsonTag, true, false, SaCommon.SchemaVersion, false)) { nsaWriter.Write(GetItems(inputFiles, referenceProvider)); } return(ExitCodes.Success); }
private static ExitCodes ProgramExecution() { var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); TranscriptCacheData transcriptData; using (var transcriptCacheReader = new TranscriptCacheReader(FileUtilities.GetReadStream(CacheConstants.TranscriptPath(_transcriptCachePrefix)))) { transcriptData = transcriptCacheReader.Read(referenceProvider.RefIndexToChromosome); } var spliceIntervals = SpliceUtilities.GetSpliceIntervals(referenceProvider, transcriptData); var nirEnstToGeneSymbols = SpliceUtilities.GetEnstToGeneSymbols(referenceProvider, transcriptData); Dictionary <string, string> spliceAiEnstToGeneSymbols; using (var reader = new StreamReader(GZipUtilities.GetAppropriateReadStream(_geneInfoFile))) { spliceAiEnstToGeneSymbols = SpliceUtilities.GetSpliceAiGeneSymbols(reader); } var spliceAiToNirvanaGeneSymbols = SpliceUtilities.GetSymbolMapping(spliceAiEnstToGeneSymbols, nirEnstToGeneSymbols); Console.WriteLine($"Mapped {spliceAiToNirvanaGeneSymbols.Count} spliceAI gene symbols to Nirvana gene symbols (out of {spliceAiEnstToGeneSymbols.Count})"); var version = DataSourceVersionReader.GetSourceVersion(_inputFile + ".version"); string outFileName = $"{version.Name}_{version.Version}"; using (var spliceAiParser = new SpliceAiParser( GZipUtilities.GetAppropriateReadStream(_inputFile), referenceProvider, spliceIntervals, spliceAiToNirvanaGeneSymbols)) using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) using (var nsaWriter = new NsaWriter(nsaStream, indexStream, version, referenceProvider, SaCommon.SpliceAiTag, true, true, SaCommon.SchemaVersion, false)) { nsaWriter.Write(spliceAiParser.GetItems()); } Console.WriteLine($"Total number of entries from Splice AI: {SpliceAiParser.Count}"); return(ExitCodes.Success); }
private static ExitCodes ProgramExecution() { var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); TranscriptCacheData transcriptData; using (var transcriptCacheReader = new TranscriptCacheReader(FileUtilities.GetReadStream(CacheConstants.TranscriptPath(_transcriptCachePrefix)))) { transcriptData = transcriptCacheReader.Read(referenceProvider.RefIndexToChromosome); } var spliceIntervals = SpliceUtilities.GetSpliceIntervals(referenceProvider, transcriptData); var nirvanaGeneForest = SpliceUtilities.GetGeneForest(transcriptData); Console.WriteLine("Loaded transcripts and generated splice intervals."); Dictionary <string, List <string> > geneSymbolSynonyms; using (var geneInfoParser = new GeneInfoParser(GZipUtilities.GetAppropriateStreamReader(_geneInfoFile))) { geneSymbolSynonyms = geneInfoParser.GetGeneSymbolSynonyms(); } Console.WriteLine("Loaded gene symbol synonyms"); var version = DataSourceVersionReader.GetSourceVersion(_inputFile + ".version"); string outFileName = $"{version.Name}_{version.Version}"; using (var spliceAiParser = new SpliceAiParser( GZipUtilities.GetAppropriateReadStream(_inputFile), referenceProvider, spliceIntervals, nirvanaGeneForest, geneSymbolSynonyms)) using (var nsaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix))) using (var indexStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outFileName + SaCommon.SaFileSuffix + SaCommon.IndexSufix))) { var nsaWriter = new NsaWriter(new ExtendedBinaryWriter(nsaStream), new ExtendedBinaryWriter(indexStream), version, referenceProvider, SaCommon.SpliceAiTag, true, true, SaCommon.SchemaVersion, false); nsaWriter.Write(spliceAiParser.GetItems()); } Console.WriteLine($"Total number of entries from Splice AI: {SpliceAiParser.Count}"); return(ExitCodes.Success); }
private static ExitCodes ProgramExecution() { var referenceProvider = new ReferenceSequenceProvider(FileUtilities.GetReadStream(_compressedReference)); List <CustomInterval> intervals; SaJsonSchema intervalJsonSchema; string jsonTag; DataSourceVersion version; string outputPrefix = GetOutputPrefix(_inputFile); var nsaFileName = Path.Combine(_outputDirectory, outputPrefix + SaCommon.SaFileSuffix); var nsaIndexFileName = Path.Combine(_outputDirectory, outputPrefix + SaCommon.SaFileSuffix + SaCommon.IndexSufix); var nsaSchemaFileName = Path.Combine(_outputDirectory, outputPrefix + SaCommon.SaFileSuffix + SaCommon.JsonSchemaSuffix); var nsaItemsCount = 0; using (var customReader = CustomAnnotationsParser.Create(GZipUtilities.GetAppropriateStreamReader(_inputFile), referenceProvider)) using (var nsaStream = FileUtilities.GetCreateStream(nsaFileName)) using (var indexStream = FileUtilities.GetCreateStream(nsaIndexFileName)) using (var nsaWriter = new NsaWriter( new ExtendedBinaryWriter(nsaStream), new ExtendedBinaryWriter(indexStream), version = new DataSourceVersion(customReader.JsonTag, GetInputFileName(_inputFile), DateTime.Now.Ticks), referenceProvider, customReader.JsonTag, customReader.MatchByAllele, // match by allele customReader.IsArray, // is array SaCommon.SchemaVersion, false, // is positional false, // skip incorrect ref base true // throw error on conflicting entries )) using (var saJsonSchemaStream = FileUtilities.GetCreateStream(nsaSchemaFileName)) using (var schemaWriter = new StreamWriter(saJsonSchemaStream)) { jsonTag = customReader.JsonTag; nsaItemsCount = nsaWriter.Write(customReader.GetItems()); schemaWriter.Write(customReader.JsonSchema); intervalJsonSchema = customReader.IntervalJsonSchema; intervals = customReader.GetCustomIntervals(); } if (nsaItemsCount == 0) { if (File.Exists(nsaFileName)) { File.Delete(nsaFileName); } if (File.Exists(nsaIndexFileName)) { File.Delete(nsaIndexFileName); } if (File.Exists(nsaSchemaFileName)) { File.Delete(nsaSchemaFileName); } } if (nsaItemsCount == 0 && intervals == null) { throw new UserErrorException("The provided TSV has no valid custom annotation entries."); } if (intervals == null) { return(ExitCodes.Success); } using (var nsiStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outputPrefix + SaCommon.SiFileSuffix))) using (var nsiWriter = new NsiWriter(new ExtendedBinaryWriter(nsiStream), version, referenceProvider.Assembly, jsonTag, ReportFor.AllVariants, SaCommon.SchemaVersion)) using (var siJsonSchemaStream = FileUtilities.GetCreateStream(Path.Combine(_outputDirectory, outputPrefix + SaCommon.SiFileSuffix + SaCommon.JsonSchemaSuffix))) using (var schemaWriter = new StreamWriter(siJsonSchemaStream)) { nsiWriter.Write(intervals); schemaWriter.Write(intervalJsonSchema); } return(ExitCodes.Success); }
public static (string JsonTag, int NsaItemsCount, SaJsonSchema IntervalJsonSchema, List <CustomInterval> Intervals) WriteSmallVariants(VariantAnnotationsParser parser, NsaWriter nsaWriter, StreamWriter schemaWriter) { int nsaItemsCount = nsaWriter.Write(parser.GetItems()); schemaWriter.Write(parser.JsonSchema); var intervals = parser.GetCustomIntervals(); if (nsaItemsCount == 0 & intervals == null) { throw new UserErrorException("The provided TSV has no valid custom annotation entries."); } return(parser.JsonTag, nsaItemsCount, parser.IntervalJsonSchema, intervals); }