Пример #1
0
        public void AddVariantData(VariantFeature variant)
        {
            //add CytoGenetic band
            CytogeneticBand = variant.CytogeneticBand;

            // populating supplementary interval specific fields
            PopulateSuppIntervalFields(variant.GetSupplementaryIntervals());

            foreach (var altAllele in variant.AlternateAlleles)
            {
                var jsonVariant = new JsonVariant(altAllele, variant);

                AnnotatedAlternateAlleles.Add(jsonVariant);

                // custom intervals are not part of SA as they are a separate data structure
                AddCustomIntervals(altAllele, jsonVariant);

                if (altAllele.SupplementaryAnnotationPosition == null)
                {
                    continue;
                }

                var sa = altAllele.SupplementaryAnnotationPosition;

                sa.AddSaPositionToVariant(jsonVariant);
            }
        }
Пример #2
0
        public override string ToString()
        {
            // return if this is a reference site
            // ReSharper disable once AssignNullToNotNullAttribute
            if (!AnnotatedAlternateAlleles.Any())
            {
                return(null);
            }

            var sb         = new StringBuilder();
            var jsonObject = new JsonObject(sb);

            if (NeedsVariantComma)
            {
                sb.Append(JsonObject.Comma);
                sb.Append('\n');
            }
            else
            {
                NeedsVariantComma = true;
            }

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

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

            jsonObject.AddStringValue(ChromosomeTag, ReferenceName);
            jsonObject.AddStringValue(RefAlleleTag, ReferenceAllele);
            jsonObject.AddIntValue(PositionTag, ReferenceBegin);
            jsonObject.AddStringValues("ciPos", CiPos, false);
            jsonObject.AddStringValues("ciEnd", CiEnd, false);
            jsonObject.AddIntValue("svLength", SvLength);

            jsonObject.AddStringValue("quality", Quality, false);
            jsonObject.AddStringValues("filters", Filters);
            jsonObject.AddStringValues("altAlleles", AlternateAlleles);
            jsonObject.AddStringValue("strandBias", StrandBias, false);
            jsonObject.AddStringValue("jointSomaticNormalQuality", JointSomaticNormalQuality, false);
            jsonObject.AddStringValue("recalibratedQuality", RecalibratedQuality, false);
            jsonObject.AddStringValue("copyNumber", CopyNumber, false);

            jsonObject.AddStringValue("cytogeneticBand", CytogeneticBand);
            jsonObject.AddBoolValue("colocalizedWithCnv", ColocalizedWithCnv, true, TrueTag);

            if (AnnotatedSamples != null)
            {
                jsonObject.AddStringValues(SamplesTag, AnnotatedSamples.Select(s => s.ToString()).ToArray(), false);
            }

            if (SupplementaryIntervals != null && SupplementaryIntervals.Any())
            {
                jsonObject.AddStringValues(StructuralVariantsTag, SupplementaryIntervals.Select(s => s.ToString()).ToArray(), false);
            }

            jsonObject.AddStringValues(VariantsTag, AnnotatedAlternateAlleles.Select(v => v.ToString()).ToArray(), false);

            sb.Append(JsonObject.CloseBrace.ToString());
            return(sb.ToString());
        }