public void Readback_clingen() { var version = new DataSourceVersion("source1", "v1", DateTime.Now.Ticks, "description"); using (var saStream = new MemoryStream()) { using (var siWriter = new NsiWriter(saStream, version, GenomeAssembly.GRCh37, "clingen", ReportFor.StructuralVariants, SaCommon.SchemaVersion, true)) { siWriter.Write(GetClinGenItems()); } saStream.Position = 0; var siReader = NsiReader.Read(saStream); var annotations = siReader.GetAnnotation(new Variant(ChromosomeUtilities.Chr1, 100, 14590, "", "<DEL>", VariantType.deletion, "1:100:14590:del", false, false, false, null, null, true)).ToArray(); string[] expected = { "\"chromosome\":\"1\",\"begin\":145,\"end\":2743,\"variantType\":\"copy_number_gain\",\"id\":\"cg1\",\"clinicalInterpretation\":\"likely benign\",\"phenotypes\":[\"phenotype1\",\"phenotype2\"],\"phenotypeIds\":[\"pid1\",\"pid2\"],\"observedGains\":3,\"validated\":true,\"reciprocalOverlap\":0.17935,\"annotationOverlap\":1", "\"chromosome\":\"1\",\"begin\":14585,\"end\":5872743,\"variantType\":\"copy_number_loss\",\"id\":\"cg2\",\"clinicalInterpretation\":\"likely pathogenic\",\"phenotypes\":[\"phenotype3\",\"phenotype5\"],\"phenotypeIds\":[\"pid3\",\"pid5\"],\"observedLosses\":5,\"validated\":true,\"reciprocalOverlap\":0,\"annotationOverlap\":0" }; Assert.Equal(2, annotations.Length); Assert.Equal(expected, annotations); } }
public static IAnnotationProvider GetNsaProvider(AnnotationFiles files) { if (files == null) { return(null); } //todo: use using block to release nsa streams var nsaReaders = files.NsaFiles?.Select(x => new NsaReader(PersistentStreamUtils.GetReadStream(x.Nsa), PersistentStreamUtils.GetReadStream(x.Idx))) .OrderBy(x => x.JsonKey, StringComparer.Ordinal).ToArray() ?? new INsaReader[] { }; //todo: use using block to release nsi streams var nsiReaders = files.NsiFiles?.Select(x => NsiReader.Read(PersistentStreamUtils.GetReadStream(x))) .OrderBy(x => x.JsonKey, StringComparer.Ordinal).ToArray() ?? new INsiReader[] { }; if (nsaReaders.Length == 0 && nsiReaders.Length == 0) { return(null); } return(new NsaProvider(nsaReaders, nsiReaders)); }
public LcrProvider(Stream stream) { _nsiReader = NsiReader.Read(stream); Assembly = _nsiReader.Assembly; DataSourceVersions = new[] { _nsiReader.Version }; }