/// <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); } }