public GeneFusionAnnotation(BreakendTranscriptAnnotation breakendTa) { _exon = breakendTa.Exon; _intron = breakendTa.Intron; _fusions = new List <GeneFusion>(); _pos1Annotation = breakendTa; }
public bool IsTranscriptCodingRegionOverlapped(BreakendTranscriptAnnotation other) { if (other._referenceName != _referenceName) { return(false); } if (other._codingEnd < _codingStart || other._codingStart > _codingEnd) { return(false); } return(true); }
private string AssignHgvsc(BreakendTranscriptAnnotation pos2Annotation) { var hgvsFusionNameBuilder = new StringBuilder(_pos1Annotation.HgvsDescription); if (_pos1Annotation.ConsistentOrientation == pos2Annotation.ConsistentOrientation) { hgvsFusionNameBuilder.Append("_o" + pos2Annotation.HgvsDescription); } else { hgvsFusionNameBuilder.Append("_" + pos2Annotation.HgvsDescription); } return(hgvsFusionNameBuilder.ToString()); }
public bool IsGeneFusion(BreakendTranscriptAnnotation other) { if (TranscriptDataSource != other.TranscriptDataSource) { return(false); } if (!InCodingRegion || !other.InCodingRegion) { return(false); } if (GeneName == other.GeneName) { return(false); } if (IsTranscriptCodingRegionOverlapped(other)) { return(false); } return(true); }
public void AddGeneFusion(BreakendTranscriptAnnotation pos2Annotation) { if (!_pos1Annotation.IsGeneFusion(pos2Annotation)) { return; } var fusion = new GeneFusion { Exon = pos2Annotation.Exon, Intron = pos2Annotation.Intron, HgvsCodingName = AssignHgvsc(pos2Annotation), Consequences = new List <ConsequenceType>() }; if (IsUnidirectionalGeneFusion(pos2Annotation)) { fusion.Consequences.Add(ConsequenceType.UnidirectionalGeneFusion); } if (IsBidirectionalGeneFusion(pos2Annotation)) { fusion.Consequences.Add(ConsequenceType.BidirectionalGeneFusion); } _fusions.Add(fusion); }
private bool IsUnidirectionalGeneFusion(BreakendTranscriptAnnotation pos2Annotation) { return(_pos1Annotation.ConsistentOrientation != pos2Annotation.ConsistentOrientation); }