Exemplo n.º 1
0
        /// <summary>
        /// Adds the ClinVar items in this object to the supplementary annotation object
        /// </summary>
        public override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator saCreator, string refBases = null)
        {
            // check if the ref allele matches the refBases as a prefix
            if (!SupplementaryAnnotationUtilities.ValidateRefAllele(ReferenceAllele, refBases))
            {
                return(null);                //the ref allele for this entry did not match the reference bases.
            }

            // for insertions and deletions, the alternate allele has to be modified to conform with VEP convension
            var newAlleles = SupplementaryAnnotationUtilities.GetReducedAlleles(Start, ReferenceAllele, AltAllele);

            var newStart     = newAlleles.Item1;
            var newRefAllele = newAlleles.Item2;
            var newAltAllele = newAlleles.Item3;

            if (newRefAllele != ReferenceAllele)
            {
                var additionalItem = new ClinVarItem(Chromosome, newStart, _alleleOrigins, newAltAllele, ID, ReviewStatusString, _medgenIds, _omimIds, _orphanetIds, _phenotypes, newRefAllele, Significance, _pubmedIds, LastUpdatedDate);

                return(additionalItem);
            }

            saCreator.SaPosition.ClinVarItems.Add(new ClinVarItem(Chromosome, newStart, _alleleOrigins, newAltAllele, ID, ReviewStatusString, _medgenIds, _omimIds, _orphanetIds, _phenotypes, newRefAllele, Significance, _pubmedIds, LastUpdatedDate));

            return(null);
        }
        public static void Read(ExtendedBinaryReader reader, SupplementaryAnnotationPosition sa)
        {
            sa.GlobalMinorAllele          = reader.ReadAsciiString();
            sa.GlobalMinorAlleleFrequency = reader.ReadAsciiString();
            sa.GlobalMajorAllele          = reader.ReadAsciiString();
            sa.GlobalMajorAlleleFrequency = reader.ReadAsciiString();

            // read the allele-specific records
            var numAlleles = reader.ReadOptInt32();

            for (var alleleIndex = 0; alleleIndex < numAlleles; alleleIndex++)
            {
                var allele = reader.ReadAsciiString();
                var asa    = AlleleSpecificAnnotation.Read(reader);
                sa.AlleleSpecificAnnotations[allele] = asa;
            }

            // read cosmic records
            var numCosmic = reader.ReadOptInt32();

            for (var i = 0; i < numCosmic; i++)
            {
                var cosmicItem = new CosmicItem(reader);
                sa.CosmicItems.Add(cosmicItem);
            }

            // read clinVar items
            var numClinVar = reader.ReadOptInt32();

            for (var i = 0; i < numClinVar; i++)
            {
                var clinVarItem = new ClinVarItem(reader);
                sa.ClinVarItems.Add(clinVarItem);
            }

            // read custom annotation items
            var numCustom = reader.ReadOptInt32();

            for (var i = 0; i < numCustom; i++)
            {
                var customItem = new CustomItem(reader);
                sa.CustomItems.Add(customItem);
            }
        }