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);
            }
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
 public LcrProvider(Stream stream)
 {
     _nsiReader         = NsiReader.Read(stream);
     Assembly           = _nsiReader.Assembly;
     DataSourceVersions = new[] { _nsiReader.Version };
 }