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); }
/// <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. } 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); }
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); }
private void SetSaFields(SupplementaryPositionCreator saCreator, string newAltAllele) { var annotation = new ExacAnnotation { ExacCoverage = Coverage, ExacAllAn = AllAlleleNumber, ExacAfrAn = AfrAlleleNumber, ExacAmrAn = AmrAlleleNumber, ExacEasAn = EasAlleleNumber, ExacFinAn = FinAlleleNumber, ExacNfeAn = NfeAlleleNumber, ExacOthAn = OthAlleleNumber, ExacSasAn = SasAlleleNumber, ExacAllAc = AllAlleleCount, ExacAfrAc = AfrAlleleCount, ExacAmrAc = AmrAlleleCount, ExacEasAc = EasAlleleCount, ExacFinAc = FinAlleleCount, ExacNfeAc = NfeAlleleCount, ExacOthAc = OthAlleleCount, ExacSasAc = SasAlleleCount }; saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.Exac, newAltAllele, annotation); }
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); }
private void SetSaFields(SupplementaryPositionCreator saCreator, string newAltAllele) { var annotation = new EvsAnnotation { EvsAll = AllFreq, EvsAfr = AfrFreq, EvsEur = EurFreq, EvsCoverage = Coverage, NumEvsSamples = NumSamples }; saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.Evs, newAltAllele, annotation); }
public void MergeSaCreator(SupplementaryPositionCreator other) { if (ReferencePosition != other.ReferencePosition || RefSeqName != other.RefSeqName) { return; } // first the allele specific annotations are merged MergeAlleleSpecificAnnotations(other); // merge positional annotations MergePositionalAnnotations(other); // merging custom annotations: they cannot be categorized into positional or otherwise since that is only known from each customItem's IsAlleleSpecificFlag SaPosition.CustomItems.AddRange(other.SaPosition.CustomItems); }
private void MergeAlleleSpecificAnnotations(SupplementaryPositionCreator other) { foreach (var otherAlleleAnnotation in other.SaPosition.AlleleSpecificAnnotations) { var otherAsa = otherAlleleAnnotation.Value; AlleleSpecificAnnotation asa; if (SaPosition.AlleleSpecificAnnotations.TryGetValue(otherAlleleAnnotation.Key, out asa)) { asa.MergeAlleleSpecificAnnotation(otherAsa); } else { // this is for a new alternate allele SaPosition.AlleleSpecificAnnotations[otherAlleleAnnotation.Key] = otherAsa; } } }
private void MergePositionalAnnotations(SupplementaryPositionCreator other) { //TODO: figure out if this part is necessary, maybe we can calculate at the last step if (!other.RefAlleleFreq.Equals(Double.MinValue)) { RefAllele = other.RefAllele; RefAlleleFreq = other.RefAlleleFreq; } // a cosmic id may have multiple entries each for a study. So this needs special handling foreach (var cosmicItem in other.SaPosition.CosmicItems) { cosmicItem.AddCosmicToSa(this); } SaPosition.ClinVarItems.AddRange(other.SaPosition.ClinVarItems); }
private void SetSaFields(SupplementaryPositionCreator saCreator, string newAltAllele) { if (!RefAlleleFreq.Equals(double.MinValue)) { saCreator.RefAllele = ReferenceAllele; saCreator.RefAlleleFreq = RefAlleleFreq; } //var sa = saCreator.SaPosition; //set asa field var annotation = new DbSnpAnnotation { DbSnp = new List <long> { RsId }, AltAlleleFreq = AltAlleleFreq }; saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.DbSnp, newAltAllele, annotation); }
public void AddCosmicToSa(SupplementaryPositionCreator saCreator) { var sa = saCreator.SaPosition; var index = sa.CosmicItems.IndexOf(this); if (index == -1) { sa.CosmicItems.Add(this); return; } //get the existing cosmic item in dictionary if (sa.CosmicItems[index].Studies == null) { sa.CosmicItems[index].Studies = Studies; return; } foreach (var study in Studies) { sa.CosmicItems[index].Studies.Add(study); } }
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); }
private void SetSaFields(SupplementaryPositionCreator saCreator, string altAllele) { var annotation = new OneKGenAnnotation { AncestralAllele = AncestralAllele, OneKgAllAn = AllAlleleNumber, OneKgAfrAn = AfrAlleleNumber, OneKgAmrAn = AmrAlleleNumber, OneKgEurAn = EurAlleleNumber, OneKgEasAn = EasAlleleNumber, OneKgSasAn = SasAlleleNumber, OneKgAllAc = AllAlleleCount, OneKgAfrAc = AfrAlleleCount, OneKgAmrAc = AmrAlleleCount, OneKgEurAc = EurAlleleCount, OneKgEasAc = EasAlleleCount, OneKgSasAc = SasAlleleCount }; saCreator.AddExternalDataToAsa(DataSourceCommon.DataSource.OneKg, altAllele, annotation); }
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 abstract SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator sa, string refBases = null);
public override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator sa, string refBases = null) { return(null); }
public override SupplementaryDataItem SetSupplementaryAnnotations(SupplementaryPositionCreator sa, string refBases = null) { throw new NotImplementedException(); }