//constructors public CosmicItem(ExtendedBinaryReader reader) { if (reader == null) { return; } ID = reader.ReadAsciiString(); SaAltAllele = reader.ReadAsciiString(); AltAllele = SupplementaryAnnotationUtilities.ReverseSaReducedAllele(SaAltAllele); RefAllele = reader.ReadAsciiString(); Gene = reader.ReadAsciiString(); SampleCount = reader.ReadOptNullableInt32(); var countStudy = reader.ReadOptInt32(); if (countStudy > 0) { Studies = new HashSet <CosmicStudy>(); } for (var i = 0; i < countStudy; i++) { Studies.Add(new CosmicStudy(reader)); } }
public override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator sa, 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. } var newAlleles = SupplementaryAnnotationUtilities.GetReducedAlleles(Start, ReferenceAllele, AlternateAllele); var newStart = newAlleles.Item1; var newRefAllele = newAlleles.Item2; var newAltAllele = newAlleles.Item3; if (newRefAllele != ReferenceAllele) { return(new DbSnpItem(Chromosome, newStart, RsId, newRefAllele, RefAlleleFreq, newAltAllele, AltAlleleFreq, _infoField)); // we need to keep the vcfline for the sake of conflict resolution } // it's a SNV or MNV at this position SetSaFields(sa, newAltAllele); return(null); }
/// <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 override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator sa, 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. } // if this is a SV, if (IsInterval) { return(null); } var newAlleles = SupplementaryAnnotationUtilities.GetReducedAlleles(Start, ReferenceAllele, AlternateAllele); var newStart = newAlleles.Item1; var newRefAllele = newAlleles.Item2; var newAltAllele = newAlleles.Item3; if (newRefAllele != ReferenceAllele) { return(new OneKGenItem(Chromosome, newStart, Id, newRefAllele, newAltAllele, AncestralAllele, AllAlleleCount, AfrAlleleCount, AmrAlleleCount, EurAlleleCount, EasAlleleCount, SasAlleleCount, AllAlleleNumber, AfrAlleleNumber, AmrAlleleNumber, EurAlleleNumber, EasAlleleNumber, SasAlleleNumber, SvType, SvEnd, CiPos, CiEnd)); } SetSaFields(sa, newAltAllele); return(null); }
public override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator saCreator, string refBases = null) { // check if the ref allele matches the refBases as a prefix if (!SupplementaryAnnotationUtilities.ValidateRefAllele(RefAllele, refBases)) { return(null); //the ref allele for this entry did not match the reference bases. } var newAlleles = SupplementaryAnnotationUtilities.GetReducedAlleles(Start, RefAllele, AltAllele); var newStart = newAlleles.Item1; var newRefAllele = newAlleles.Item2; var newAltAllele = newAlleles.Item3; if (newRefAllele != RefAllele) { return(new CosmicItem(Chromosome, newStart, ID, newRefAllele, newAltAllele, Gene, Studies, SampleCount)); } var newRefAlleleParsed = string.IsNullOrEmpty(newRefAllele) ? "-" : newRefAllele; var newItem = new CosmicItem(Chromosome, Start, ID, newRefAlleleParsed, newAltAllele, Gene, Studies, SampleCount); newItem.AddCosmicToSa(saCreator); return(null); }
public override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator sa, 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. } var newAlleles = SupplementaryAnnotationUtilities.GetReducedAlleles(Start, ReferenceAllele, AlternateAllele); var newStart = newAlleles.Item1; var newRefAllele = newAlleles.Item2; var newAltAllele = newAlleles.Item3; if (newRefAllele != ReferenceAllele) { return(new ExacItem(Chromosome, newStart, newRefAllele, newAltAllele, Coverage, AllAlleleNumber, AfrAlleleNumber, AmrAlleleNumber, EasAlleleNumber, FinAlleleNumber, NfeAlleleNumber, OthAlleleNumber, SasAlleleNumber, AllAlleleCount, AfrAlleleCount, AmrAlleleCount, EasAlleleCount, FinAlleleCount, NfeAlleleCount, OthAlleleCount, SasAlleleCount)); } SetSaFields(sa, newAltAllele); return(null); }
public void Write(ExtendedBinaryWriter writer) { writer.WriteOptArray(_alleleOrigins?.Distinct().ToArray(), writer.WriteOptAscii); writer.WriteOptAscii(SaAltAllele); writer.WriteOptAscii(ReferenceAllele); writer.WriteOptAscii(ID); writer.Write((byte)ReviewStatus); writer.WriteOptAscii(IsAlleleSpecific); writer.WriteOptArray(_medgenIds?.Distinct().ToArray(), writer.WriteOptAscii); writer.WriteOptArray(_omimIds?.Distinct().ToArray(), writer.WriteOptAscii); writer.WriteOptArray(_orphanetIds?.Distinct().ToArray(), writer.WriteOptAscii); writer.WriteOptArray(SupplementaryAnnotationUtilities.ConvertMixedFormatStrings(_phenotypes)?.Distinct().ToArray(), writer.WriteOptUtf8); writer.WriteOptAscii(Significance); writer.WriteOpt(LastUpdatedDate); writer.WriteOptArray(_pubmedIds.ToArray(), writer.WriteOpt); }
public ClinVarItem(ExtendedBinaryReader reader) { _alleleOrigins = reader.ReadOptArray(reader.ReadAsciiString)?.ToList(); SaAltAllele = reader.ReadAsciiString(); AltAllele = SaAltAllele != null?SupplementaryAnnotationUtilities.ReverseSaReducedAllele(SaAltAllele) : ""; // A ReferenceAllele = reader.ReadAsciiString(); ID = reader.ReadAsciiString(); ReviewStatus = (ReviewStatusEnum)reader.ReadByte(); IsAlleleSpecific = reader.ReadAsciiString(); _medgenIds = reader.ReadOptArray(reader.ReadAsciiString)?.ToList(); _omimIds = reader.ReadOptArray(reader.ReadAsciiString)?.ToList(); _orphanetIds = reader.ReadOptArray(reader.ReadAsciiString)?.ToList(); _phenotypes = reader.ReadOptArray(reader.ReadUtf8String)?.ToList(); Significance = reader.ReadAsciiString(); LastUpdatedDate = reader.ReadOptInt64(); _pubmedIds = reader.ReadOptArray(reader.ReadOptInt64)?.ToList(); }
public CustomItem(ExtendedBinaryReader reader) { Id = reader.ReadAsciiString(); AnnotationType = reader.ReadAsciiString(); SaAltAllele = reader.ReadAsciiString(); AltAllele = SupplementaryAnnotationUtilities.ReverseSaReducedAllele(SaAltAllele); IsPositional = reader.ReadBoolean(); var numStringFields = reader.ReadOptInt32(); if (numStringFields > 0) { StringFields = new Dictionary <string, string>(); for (var i = 0; i < numStringFields; i++) { var key = reader.ReadAsciiString(); var value = reader.ReadAsciiString(); StringFields[key] = value; } } else { StringFields = null; } var numBoolFields = reader.ReadOptInt32(); if (numBoolFields > 0) { BooleanFields = new List <string>(); for (var i = 0; i < numBoolFields; i++) { BooleanFields.Add(reader.ReadAsciiString()); } } else { BooleanFields = null; } }
public override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator saCreator, string refBases = null) { // check if the ref allele matches the refBases as a prefix if (!SupplementaryAnnotationUtilities.ValidateRefAllele(RefAllele, refBases)) { return(null); //the ref allele for this entry did not match the reference bases. } var newAlleles = SupplementaryAnnotationUtilities.GetReducedAlleles(Start, RefAllele, AltAllele); var newStart = newAlleles.Item1; var newRefAllele = newAlleles.Item2; var newAltAllele = newAlleles.Item3; if (newRefAllele != RefAllele) { return(new CustomItem(Chromosome, newStart, newRefAllele, newAltAllele, AnnotationType, Id, IsPositional, StringFields, BooleanFields)); } //for ins, del, indel without padding base, the altAllele will change even though the ref does not. saCreator.SaPosition.CustomItems.Add(new CustomItem(Chromosome, newStart, newRefAllele, newAltAllele, AnnotationType, Id, IsPositional, StringFields, BooleanFields)); return(null); }
public override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator sa, 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. } var newAlleles = SupplementaryAnnotationUtilities.GetReducedAlleles(Start, ReferenceAllele, AlternateAllele); var newStart = newAlleles.Item1; var newRefAllele = newAlleles.Item2; var newAltAllele = newAlleles.Item3; if (newRefAllele != ReferenceAllele) { return(new EvsItem(Chromosome, newStart, RsId, newRefAllele, newAltAllele, AllFreq, AfrFreq, EurFreq, Coverage, NumSamples)); } SetSaFields(sa, newAltAllele); return(null); }