public GeneAnnotationProvider(IEnumerable <Stream> dbStreams) { Name = "Gene annotation provider"; _ngaReaders = new List <NgaReader>(); foreach (var dbStream in dbStreams) { _ngaReaders.Add(NgaReader.Read(dbStream)); } }
public void ReadBackGeneAnnotations() { NgaReader reader; var version = new DataSourceVersion("source1", "v1", DateTime.Now.Ticks); const string jsonKey = "mimo"; const bool isArray = true; using (var ms = new MemoryStream()) { using (var writer = new NgaWriter(ms, version, jsonKey, SaCommon.SchemaVersion, isArray, true)) { writer.Write(GetGeneAnnotations()); } ms.Position = 0; reader = NgaReader.Read(ms); } Assert.NotNull(reader); Assert.Null(reader.GetAnnotation("gene3")); Assert.Equal("[{\"mimNumber\":123,\"geneName\":\"gene name 1 ('minibrain', Drosophila, homolog of)\",\"description\":\"describing gene 1\\n\\\"some citation\\\"\",\"phenotypes\":[{\"phenotype\":\"disease 1\",\"description\":\"This is disease 1\",\"mapping\":\"mapping of the wildtype gene\",\"inheritances\":[\"autosomal recessive\"],\"comments\":[\"unconfirmed or possibly spurious mapping\"]}]}]", reader.GetAnnotation("gene1")); Assert.Equal("[{\"mimNumber\":124,\"geneName\":\"gene name 2\",\"phenotypes\":[{\"phenotype\":\"disease 2\",\"description\":\"COVID-19\",\"mapping\":\"chromosome deletion or duplication syndrome\",\"inheritances\":[\"whatever\",\"never-ever\"],\"comments\":[\"nondiseases\"]}]}]", reader.GetAnnotation("gene2")); }