private void Write5PrimeUtr(IInterval codingRegion, ITranscriptRegion exon, IRequiredFields requiredFields, IGeneralAttributes attribs) { int utrEnd = codingRegion.Start - 1; if (utrEnd > exon.End) { utrEnd = exon.End; } _writer.WriteExonicRegion(new Interval(exon.Start, utrEnd), requiredFields, attribs, exon.Id, "UTR"); }
private void WriteUtr(IInterval codingRegion, ITranscriptRegion exon, IRequiredFields requiredFields, IGeneralAttributes attribs) { if (!GffUtilities.HasUtr(codingRegion, exon)) { return; } if (exon.Start < codingRegion.Start) { Write5PrimeUtr(codingRegion, exon, requiredFields, attribs); } if (exon.End > codingRegion.End) { Write3PrimeUtr(codingRegion, exon, requiredFields, attribs); } }
private void WriteTranscript(IInterval interval, IRequiredFields requiredFields, IGeneralAttributes attribs) => _writer.WriteTranscript(interval, requiredFields, attribs);
private void WriteExon(ITranscriptRegion exon, IRequiredFields requiredFields, IGeneralAttributes attribs, IInterval codingRegion) { _writer.WriteExonicRegion(exon, requiredFields, attribs, exon.Id, "exon"); WriteCds(codingRegion, exon, requiredFields, attribs); WriteUtr(codingRegion, exon, requiredFields, attribs); }
private void WriteCds(IInterval codingRegion, ITranscriptRegion exon, IRequiredFields requiredFields, IGeneralAttributes attribs) { if (!GffUtilities.HasCds(codingRegion, exon)) { return; } var cds = GffUtilities.GetCdsCoordinates(codingRegion, exon); _writer.WriteExonicRegion(cds, requiredFields, attribs, exon.Id, "CDS"); }