Exemple #1
0
        public static string GetHeader(string annotator, string creationTime, string genomeAssembly, int jsonSchemaVersion, string vepDataVersion, List <DataSourceVersion> dataSourceVersions, string[] sampleNames = null)
        {
            var sb         = new StringBuilder();
            var jsonObject = new JsonObject(sb);

            sb.Append("{\"header\":{");
            jsonObject.AddStringValue("annotator", annotator);
            jsonObject.AddStringValue("creationTime", creationTime);
            jsonObject.AddStringValue("genomeAssembly", genomeAssembly);
            jsonObject.AddIntValue("schemaVersion", jsonSchemaVersion);
            jsonObject.AddStringValue("dataVersion", vepDataVersion);

            // print our data source versions
            if (dataSourceVersions != null)
            {
                jsonObject.AddObjectValues("dataSources", dataSourceVersions);
            }

            if (sampleNames != null)
            {
                jsonObject.AddStringValues(SamplesTag, sampleNames);
            }

            sb.Append("},\"positions\":[\n");

            return(sb.ToString());
        }
        public void SerializeJson(StringBuilder sb)
        {
            var jsonObject = new JsonObject(sb);

            sb.Append(JsonObject.OpenBrace);
            jsonObject.AddIntValue("exon", Exon);
            jsonObject.AddIntValue("intron", Intron);
            jsonObject.AddObjectValues("fusions", GeneFusions);
            sb.Append(JsonObject.CloseBrace);
        }
        public void AddObjectValues_NullArray()
        {
            var sb   = StringBuilderCache.Acquire();
            var json = new JsonObject(sb);

            json.AddObjectValues("test1", null as Point[]);
            var observedResult = StringBuilderCache.GetStringAndRelease(sb);

            Assert.Equal(string.Empty, observedResult);
        }
        public override string ToString()
        {
            var sb = StringBuilderCache.Acquire();
            var jsonObject = new JsonObject(sb);
            sb.Append(JsonObject.OpenBrace);
            jsonObject.AddIntValue("exon", Exon);
            jsonObject.AddIntValue("intron", Intron);
            jsonObject.AddObjectValues("fusions", GeneFusions);
            sb.Append(JsonObject.CloseBrace);

            return StringBuilderCache.GetStringAndRelease(sb);
        }
Exemple #5
0
        private static void WriteGeneAnnotations(ICollection <IAnnotatedGene> annotatedGenes, JsonWriter writer)
        {
            if (annotatedGenes.Count == 0)
            {
                return;
            }
            var sb         = StringBuilderCache.Acquire();
            var jsonObject = new JsonObject(sb);

            jsonObject.AddObjectValues("genes", annotatedGenes, true);
            writer.WriteAnnotatedGenes(StringBuilderCache.GetStringAndRelease(sb));
        }
        public void AddObjectValues_TwoTimes()
        {
            var sb   = StringBuilderCache.Acquire();
            var json = new JsonObject(sb);

            var points = new Point[2];

            points[0] = new Point(1, 2);
            points[1] = new Point(3, 4);

            var points2 = new Point[1];

            points2[0] = new Point(5, 6);

            json.AddObjectValues("test1", points);
            json.AddObjectValues("test2", points2);

            const string expectedResult = "\"test1\":[{\"X\":1,\"Y\":2},{\"X\":3,\"Y\":4}],\"test2\":[{\"X\":5,\"Y\":6}]";
            var          observedResult = StringBuilderCache.GetStringAndRelease(sb);

            Assert.Equal(expectedResult, observedResult);
        }
        private static string GetHeader(IProvider geneAnnotationProvider)
        {
            var sb         = new StringBuilder();
            var jsonObject = new JsonObject(sb);

            sb.Append(JsonObject.OpenBrace);
            jsonObject.AddStringValue("annotator", "Nirvana " + CommandLineUtilities.Version);
            jsonObject.AddStringValue("creationTime", Date.CurrentTimeStamp);
            jsonObject.AddIntValue("schemaVersion", SaCommon.SchemaVersion);
            jsonObject.AddObjectValues("dataSources", geneAnnotationProvider.DataSourceVersions);
            sb.Append(JsonObject.CloseBrace);

            return(sb.ToString());
        }
Exemple #8
0
        public void SerializeJson(StringBuilder sb)
        {
            var jsonObject = new JsonObject(sb);

            sb.Append(JsonObject.OpenBrace);
            jsonObject.AddStringValue("id", ID);
            jsonObject.AddStringValue("isAlleleSpecific", IsAlleleSpecific, false);
            jsonObject.AddStringValue("refAllele", RefAllele);
            jsonObject.AddStringValue("altAllele", AltAllele);
            jsonObject.AddStringValue("gene", Gene);
            jsonObject.AddIntValue("sampleCount", SampleCount);
            jsonObject.AddObjectValues("studies", Studies);
            sb.Append(JsonObject.CloseBrace);
        }
Exemple #9
0
        public void SerializeJson(StringBuilder sb)
        {
            var jsonObject = new JsonObject(sb);

            // data section
            sb.Append(JsonObject.OpenBrace);

            jsonObject.AddIntValue("intron", _intron);
            jsonObject.AddIntValue("exon", _exon);

            if (_fusions.Count > 0)
            {
                jsonObject.AddObjectValues("fusions", _fusions);
            }

            sb.Append(JsonObject.CloseBrace);
        }
Exemple #10
0
        public override string ToString()
        {
            var sb         = StringBuilderCache.Acquire();
            var jsonObject = new JsonObject(sb);

            sb.Append(JsonObject.OpenBrace);

            jsonObject.AddIntValue("mimNumber", MimNumber);
            jsonObject.AddStringValue("description", _description?.Replace(@"\'", @"'"));
            if (_phenotypes.Count > 0)
            {
                jsonObject.AddObjectValues("phenotypes", _phenotypes);
            }
            sb.Append(JsonObject.CloseBrace.ToString());

            return(StringBuilderCache.GetStringAndRelease(sb));
        }
Exemple #11
0
        public override string ToString()
        {
            var sb         = new StringBuilder();
            var jsonObject = new JsonObject(sb);

            sb.Append(JsonObject.OpenBrace);

            jsonObject.AddStringValue("mimNumber", _mimNumber.ToString());
            jsonObject.AddStringValue("hgnc", Hgnc);
            jsonObject.AddStringValue("description", _description);
            if (_phenotypes.Count > 0)
            {
                jsonObject.AddObjectValues("phenotypes", _phenotypes);
            }
            sb.Append(JsonObject.CloseBrace.ToString());

            return(sb.ToString());
        }
Exemple #12
0
        public string GetJsonString()
        {
            var sb         = StringBuilderCache.Acquire();
            var jsonObject = new JsonObject(sb);

            sb.Append(JsonObject.OpenBrace);
            JsonSchema.TotalItems++;
            JsonSchema.CountKeyIfAdded(jsonObject.AddIntValue("mimNumber", _mimNumber), "mimNumber");
            JsonSchema.CountKeyIfAdded(jsonObject.AddStringValue("geneName", string.IsNullOrEmpty(_geneName) ? null : JsonConvert.SerializeObject(_geneName), false), "geneName");
            //Serialized string has the double quote at the beginning and the end
            JsonSchema.CountKeyIfAdded(jsonObject.AddStringValue("description", string.IsNullOrEmpty(_description) ? null : JsonConvert.SerializeObject(_description), false), "description");
            if (_phenotypes.Count > 0)
            {
                JsonSchema.CountKeyIfAdded(jsonObject.AddObjectValues("phenotypes", _phenotypes), "phenotypes");
            }
            sb.Append(JsonObject.CloseBrace);

            return(StringBuilderCache.GetStringAndRelease(sb));
        }
Exemple #13
0
        private void AddCustomeIntervals(JsonObject jsonObject)
        {
            var intervalGroups = new Dictionary <string, List <ICustomInterval> >();

            foreach (var customInterval in CustomIntervals)
            {
                var type = customInterval.Type;
                if (intervalGroups.ContainsKey(type))
                {
                    intervalGroups[type].Add(customInterval);
                }
                else
                {
                    intervalGroups[type] = new List <ICustomInterval> {
                        customInterval
                    };
                }
            }
            foreach (var intervalGroup in intervalGroups)
            {
                jsonObject.AddObjectValues(intervalGroup.Key, intervalGroup.Value);
            }
        }
Exemple #14
0
        private void AddCustomeItems(JsonObject jsonObject)
        {
            var customGroups = new Dictionary <string, IList <ICustomAnnotation> >();

            foreach (var customItem in CustomItems)
            {
                var type = customItem.AnnotationType;
                if (customGroups.ContainsKey(type))
                {
                    customGroups[type].Add(customItem);
                }
                else
                {
                    customGroups[type] = new List <ICustomAnnotation> {
                        customItem
                    };
                }
            }
            foreach (var customGroup in customGroups)
            {
                jsonObject.AddObjectValues(customGroup.Key, customGroup.Value);
            }
        }
        public string GetJsonString(string originalChromName)
        {
            var sb         = StringBuilderCache.Acquire();
            var jsonObject = new JsonObject(sb);

            // data section
            sb.Append(JsonObject.OpenBrace);

            jsonObject.AddStringValue("vid", Variant.VariantId);
            jsonObject.AddStringValue("chromosome", originalChromName);
            jsonObject.AddIntValue("begin", Variant.Start);
            jsonObject.AddIntValue("end", Variant.End);
            jsonObject.AddBoolValue("isReferenceMinorAllele", Variant.IsRefMinor);

            if (!Variant.IsRefMinor)
            {
                jsonObject.AddStringValue("refAllele",
                                          string.IsNullOrEmpty(Variant.RefAllele) ? "-" : Variant.RefAllele);
                jsonObject.AddStringValue("altAllele",
                                          string.IsNullOrEmpty(Variant.AltAllele) ? "-" : Variant.AltAllele);
            }
            else
            {
                jsonObject.AddStringValue("refAllele",
                                          string.IsNullOrEmpty(Variant.AltAllele) ? "-" : Variant.AltAllele);
            }

            var variantType = GetVariantType(Variant.Type);

            jsonObject.AddStringValue("variantType", variantType.ToString());
            jsonObject.AddBoolValue("isDecomposedVariant", Variant.IsDecomposed);
            if (variantType.ToString() != "SNV")
            {
                jsonObject.AddBoolValue("isRecomposedVariant", Variant.IsRecomposed);
            }
            jsonObject.AddStringValue("hgvsg", HgvsgNotation);

            jsonObject.AddDoubleValue("phylopScore", PhylopScore);

            if (RegulatoryRegions?.Count > 0)
            {
                jsonObject.AddObjectValues("regulatoryRegions", RegulatoryRegions);
            }
            if (SupplementaryAnnotations.Count > 0)
            {
                AddSAstoJsonObject(jsonObject);
            }
            foreach (var pluginData in PluginDataSet)
            {
                jsonObject.AddStringValue(pluginData.Name, pluginData.GetJsonString(), false);
            }

            if (OverlappingGenes.Count > 0)
            {
                jsonObject.AddStringValues("overlappingGenes", OverlappingGenes);
            }
            if (OverlappingTranscripts.Count > 0)
            {
                jsonObject.AddObjectValues("overlappingTranscripts", OverlappingTranscripts);
            }

            if (EnsemblTranscripts?.Count > 0 || RefSeqTranscripts?.Count > 0)
            {
                jsonObject.AddGroupedObjectValues("transcripts", TranscriptLabels, RefSeqTranscripts, EnsemblTranscripts);
            }

            sb.Append(JsonObject.CloseBrace);
            return(StringBuilderCache.GetStringAndRelease(sb));
        }
Exemple #16
0
        /// <summary>
        /// returns a string representation of our variant
        /// </summary>
        public override string ToString()
        {
            var sb         = new StringBuilder();
            var jsonObject = new JsonObject(sb);

            // data section
            sb.Append(JsonObject.OpenBrace);

            // ==========
            // positional
            // ==========

            jsonObject.AddStringValue(AncestralAlleleTag, AncestralAllele);

            if (!IsReferenceMinor)
            {
                jsonObject.AddStringValue(AltAlleleTag, string.IsNullOrEmpty(AltAllele) ? "-" : AltAllele);
                jsonObject.AddStringValue(RefAlleleTag, string.IsNullOrEmpty(RefAllele) ? "-" : RefAllele);
            }
            else
            {
                jsonObject.AddStringValue(RefAlleleTag, string.IsNullOrEmpty(RefAllele) ? "-" : RefAllele);
            }

            jsonObject.AddIntValue(BeginTag, ReferenceBegin);
            jsonObject.AddStringValue(ChromosomeTag, ReferenceName);

            jsonObject.AddStringValue(PhylopScoreTag, PhylopScore, false);
            jsonObject.AddStringValues(DbsnpTag, DbSnpIds);
            jsonObject.AddIntValue(EndTag, ReferenceEnd);
            jsonObject.AddStringValue(GlobalMinorAlleleTag, GlobalMinorAllele);
            jsonObject.AddStringValue(GmafTag, GlobalMinorAlleleFrequency, false);
            jsonObject.AddBoolValue(IsReferenceMinorAlleleTag, true, IsReferenceMinor, "true");
            jsonObject.AddStringValue(VariantTypeTag, VariantType);
            jsonObject.AddStringValue(VidTag, VariantId);

            // regulatory regions
            if (RegulatoryRegions.Count > 0)
            {
                jsonObject.AddObjectValues(RegulatoryRegionsTag, RegulatoryRegions);
            }

            // ClinVar & COSMIC
            if (ClinVarEntries.Count > 0)
            {
                jsonObject.AddObjectValues(ClinVarTag, ClinVarEntries);
            }
            if (CosmicEntries.Count > 0)
            {
                jsonObject.AddObjectValues(CosmicTag, CosmicEntries);
            }
            // Custom annotations
            if (CustomItems.Count > 0)
            {
                AddCustomeItems(jsonObject);
            }

            // Custom Intervals
            // if (CustomIntervals.Count > 0) jsonObject.AddObjectValues(CustomIntervals[0].Type, CustomIntervals);
            if (CustomIntervals.Count > 0)
            {
                AddCustomeIntervals(jsonObject);
            }


            // =================
            // Overlapping Genes
            // =================

            if (OverlappingGenes.Count > 0)
            {
                jsonObject.AddStringValues(OverlappingGenesTag, OverlappingGenes.ToArray());
            }

            // =================
            // Overlapping Transcripts
            // =================
            if (SvOverlappingTranscripts.Any())
            {
                jsonObject.AddObjectValues(OverlappingTranscriptsTag, SvOverlappingTranscripts);
            }

            // ==========
            // transcript
            // ==========

            var hasRefSeq  = RefSeqTranscripts.Any();
            var hasEnsembl = EnsemblTranscripts.Any();

            if (hasRefSeq || hasEnsembl)
            {
                jsonObject.OpenObject(TranscriptsTag);
                jsonObject.Reset();

                if (hasRefSeq)
                {
                    jsonObject.AddStringValues(RefseqTag, RefSeqTranscripts.Select(t => t.ToString()), false);
                }
                if (hasEnsembl)
                {
                    jsonObject.AddStringValues(EnsemblTag, EnsemblTranscripts.Select(t => t.ToString()), false);
                }

                jsonObject.CloseObject();
            }

            // =======
            // allelic
            // =======

            jsonObject.Reset(true);

            jsonObject.AddStringValue(OneKgAllTag, AlleleFrequencyAll, false);
            jsonObject.AddStringValue(OneKgAfrTag, AlleleFrequencyAfrican, false);
            jsonObject.AddStringValue(OneKgAmrTag, AlleleFrequencyAdMixedAmerican, false);
            jsonObject.AddStringValue(OneKgEasTag, AlleleFrequencyEastAsian, false);
            jsonObject.AddStringValue(OneKgEurTag, AlleleFrequencyEuropean, false);
            jsonObject.AddStringValue(OneKgSasTag, AlleleFrequencySouthAsian, false);


            jsonObject.AddStringValue(OneKgAllAnTag, OneKgAlleleNumberAll, false);
            jsonObject.AddStringValue(OneKgAfrAnTag, OneKgAlleleNumberAfrican, false);
            jsonObject.AddStringValue(OneKgAmrAnTag, OneKgAlleleNumberAmerican, false);
            jsonObject.AddStringValue(OneKgEasAnTag, OneKgAlleleNumberEastAsian, false);
            jsonObject.AddStringValue(OneKgEurAnTag, OneKgAlleleNumberEuropean, false);
            jsonObject.AddStringValue(OneKgSasAnTag, OneKgAlleleNumberSouthAsian, false);

            jsonObject.AddStringValue(OneKgAllAcTag, OneKgAlleleCountAll, false);
            jsonObject.AddStringValue(OneKgAfrAcTag, OneKgAlleleCountAfrican, false);
            jsonObject.AddStringValue(OneKgAmrAcTag, OneKgAlleleCountAmerican, false);
            jsonObject.AddStringValue(OneKgEasAcTag, OneKgAlleleCountEastAsian, false);
            jsonObject.AddStringValue(OneKgEurAcTag, OneKgAlleleCountEuropean, false);
            jsonObject.AddStringValue(OneKgSasAcTag, OneKgAlleleCountSouthAsian, false);


            jsonObject.AddStringValue(EvsCoverageTag, EvsCoverage, false);
            jsonObject.AddStringValue(EvsSamplesTag, EvsSamples, false);
            jsonObject.AddStringValue(EvsAllTag, EvsAlleleFrequencyAll, false);
            jsonObject.AddStringValue(EvsAfrTag, EvsAlleleFrequencyAfricanAmerican, false);
            jsonObject.AddStringValue(EvsEurTag, EvsAlleleFrequencyEuropeanAmerican, false);


            jsonObject.AddStringValue(ExacCoverageTag, ExacCoverage, false);
            jsonObject.AddStringValue(ExacAllTag, ExacAlleleFrequencyAll, false);
            jsonObject.AddStringValue(ExacAfrTag, ExacAlleleFrequencyAfrican, false);
            jsonObject.AddStringValue(ExacAmrTag, ExacAlleleFrequencyAmerican, false);
            jsonObject.AddStringValue(ExacEasTag, ExacAlleleFrequencyEastAsian, false);
            jsonObject.AddStringValue(ExacFinTag, ExacAlleleFrequencyFinish, false);
            jsonObject.AddStringValue(ExacNfeTag, ExacAlleleFrequencyNonFinish, false);
            jsonObject.AddStringValue(ExacOthTag, ExacAlleleFrequencyOther, false);
            jsonObject.AddStringValue(ExacSasTag, ExacAlleleFrequencySouthAsian, false);

            jsonObject.AddStringValue(ExacAllAnTag, ExacAlleleNumberAll, false);
            jsonObject.AddStringValue(ExacAfrAnTag, ExacAlleleNumberAfrican, false);
            jsonObject.AddStringValue(ExacAmrAnTag, ExacAlleleNumberAmerican, false);
            jsonObject.AddStringValue(ExacEasAnTag, ExacAlleleNumberEastAsian, false);
            jsonObject.AddStringValue(ExacFinAnTag, ExacAlleleNumberFinish, false);
            jsonObject.AddStringValue(ExacNfeAnTag, ExacAlleleNumberNonFinish, false);
            jsonObject.AddStringValue(ExacOthAnTag, ExacAlleleNumberOther, false);
            jsonObject.AddStringValue(ExacSasAnTag, ExacAlleleNumberSouthAsian, false);

            jsonObject.AddStringValue(ExacAllAcTag, ExacAlleleCountAll, false);
            jsonObject.AddStringValue(ExacAfrAcTag, ExacAlleleCountAfrican, false);
            jsonObject.AddStringValue(ExacAmrAcTag, ExacAlleleCountAmerican, false);
            jsonObject.AddStringValue(ExacEasAcTag, ExacAlleleCountEastAsian, false);
            jsonObject.AddStringValue(ExacFinAcTag, ExacAlleleCountFinish, false);
            jsonObject.AddStringValue(ExacNfeAcTag, ExacAlleleCountNonFinish, false);
            jsonObject.AddStringValue(ExacOthAcTag, ExacAlleleCountOther, false);
            jsonObject.AddStringValue(ExacSasAcTag, ExacAlleleCountSouthAsian, false);
            sb.Append(JsonObject.CloseBrace);
            return(sb.ToString());
        }