diff --git a/.flake8 b/.flake8 index 8357cbcf..4c664d40 100644 --- a/.flake8 +++ b/.flake8 @@ -1,19 +1,11 @@ [flake8] -# E722: do not use bare except; maybe fix later +# E302: expected 2 blank lines +# E741: ambiguous variable name +# F523: .format unused named arguments +# F524: .format missing named arguments +# W503: line break before binary operator (PEP 8 preferred style) +# W504: line break after binary operator ignore = E302,E741,F523,F524,W503,W504 max-complexity = 10 max-line-length = 256 - -per-file-ignores = - # imported but unused - src/flair/count_sam_transcripts.py: E502 - # fixing W504 causes E502 - src/flair/filter_collapsed_isoforms.py,src/flair/collapse_isoforms_precise.py,src/flair/call_diffsplice_events.py: W504 - # openblas setting must be in middle of import section - deFLAIR.py,es_as_inc_excl_to_counts.py,flair.py,runDE.py,runDS.py,runDU.py,samJuncs.py: E402 - src/flair/ssPrep.py: F401 - # hard to fix in-loop variable definitions (maybe later) - src/flair/identify_gene_isoform.py: F821 - # FIXME: make these less complex - src/flair/flair_transcriptome.py: C901 - src/flair/filter_transcriptome_align.py: C901 +exclude = .claude.bak,src/flair/pycbio diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 00000000..87cec462 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,12 @@ +name: Lint +on: [push, pull_request] +jobs: + flake8: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.x' + - run: pip install flake8 + - run: make flake8 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6da7e556..0d822d65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Major user-visible changes ## [v3.x.xx] +* General + * fixed problems with some diffsplice_fishers_exact, and other + auxiliary console script installs * Incompatibles * Removed flair correct and collapse modules, the functionality is replaced by flair transcriptome. diff --git a/Makefile b/Makefile index b9fa498e..6fbe3c39 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,11 @@ include ${root}/defs.mk # make test-installed # +# get files to include in flake8 +PYPROGS = $(shell file -F $$'\t' test/bin/* | awk '/Python script/{print $$1}') + +FLAKE8_CHECK = src/flair/*.py test/*.py ${PYPROGS} + default: doc: @@ -34,7 +39,6 @@ test-base-installed: # see .flake8 for configuration # due to to gradual cleanup of code, flake8.mk is the list of files to check ## -include flake8.mk lint: flake8 pycbio-lint: pycbio-flake8 diff --git a/docs/source/modules.rst b/docs/source/modules.rst index 7f2477e5..ca1f3a37 100644 --- a/docs/source/modules.rst +++ b/docs/source/modules.rst @@ -70,7 +70,8 @@ Optional arguments --stringent [HIGHLY RECOMMENDED] specify if all supporting reads need to be full-length (spanning 25 bp of the first and last exons) --check_splice [HIGHLY RECOMMENDED] enforce coverage of 4 out of 6 bp around each splice site - and no insertions greater than 3 bp at the splice site DON'T USE WITH DATA WITH HIGH ERROR RATES (old direct-RNA) + and no insertions greater than 3 bp at the splice site. DON'T USE WITH DATA WITH ERROR RATES of 5% or more, such + as older direct-RNA (anything before using the RNA-specific flow-cell with the Dorado basecaller). -w --end_window window size for comparing TSS/TES (100) --noaligntoannot related to old annotation_reliant, now specify if you don't want an initial alignment diff --git a/flake8.mk b/flake8.mk deleted file mode 100644 index 09893cfa..00000000 --- a/flake8.mk +++ /dev/null @@ -1,24 +0,0 @@ - -# relative to src/flair -FLAKE8_SRC = \ - __init__.py \ - flair_cli.py \ - flair_partition.py \ - flair_transcriptome.py \ - intron_support.py \ - filter_transcriptome_align.py \ - partition_runner.py \ - gtf_io.py - -FIXME_NOT_WORKING =\ - flair_variantmodels.py \ - flair_spliceevents.py \ - flair_variantquant.py - - -FLAKE8_TEST = \ - test_correct_lib.py \ - test_gtf_io.py \ - bin/gtf_io_perf - -FLAKE8_CHECK = ${FLAKE8_SRC:%=src/flair/%} ${FLAKE8_TEST:%=test/%} diff --git a/pyproject.toml b/pyproject.toml index 78be7fbe..807a4e29 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -18,13 +18,12 @@ dependencies = [ "pysam (>=0.23.0,<0.24.0)", "pipettor (>=1.1.0,<2.0.0)", "ncls (>=0.0.70,<0.1.0)", - "intervaltree (>=3.0,<4.0)", + "ruranges (>=0.1.4,<0.2.0)", "setuptools (>=80.2.0,<81.0.0)", "mappy (>=2.28,<3.0)", "numpy (>=2.2,<3.0)", "scipy (>=1.15.1,<2.0.0)", "matplotlib (>=3.10.0,<4.0.0)", - "intervaltree (>=3.2.1,<4.0.0)", ] [project.optional-dependencies] @@ -46,7 +45,6 @@ repository = "https://github.com/BrooksLabUCSC/flair/" flair = "flair.flair_cli:main" junctions_from_sam = "flair.junctions_from_sam:main" mark_intron_retention = "flair.mark_intron_retention:main" -mark_productivity = "flair.mark_productivity:main" normalize_counts_matrix = "flair.normalize_counts_matrix:main" plot_isoform_usage = "flair.plot_isoform_usage:main" predictProductivity = "flair.predictProductivity:main" diff --git a/src/flair/annotate_aaseq_with_uniprot.py b/src/flair/annotate_aaseq_with_uniprot.py index 2614b6f2..a6257cf3 100644 --- a/src/flair/annotate_aaseq_with_uniprot.py +++ b/src/flair/annotate_aaseq_with_uniprot.py @@ -5,7 +5,8 @@ def parse_args(): parser = argparse.ArgumentParser(description='''for annotating FLAIR aaseq predictions with UniProt names''') parser.add_argument('-i', '--input_aaseq', required=True, help='protein sequence fasta file - sequence names should be aaseqID_geneID') - parser.add_argument('-r', '--reference_seq', required=True, help='reference protein sequence fasta file - sequence names should be db|refID|geneName_organism, ex: >sp|Q8NH21|OR4F5_HUMAN. This script will extract the refID. this can be fasta or fasta.gz') + parser.add_argument('-r', '--reference_seq', required=True, + help='reference protein sequence fasta file - sequence names should be db|refID|geneName_organism, ex: >sp|Q8NH21|OR4F5_HUMAN. This script will extract the refID. this can be fasta or fasta.gz') parser.add_argument('-o', '--output', required=True, help='output name - should be a fasta file') args = parser.parse_args() return args @@ -44,10 +45,12 @@ def annotate_input(input_aaseq, ref_seq_to_name, output_name): out.write('>' + info + '\n' + seq + '\n') out.close() + def main(): args = parse_args() ref_seq_to_name = process_reference(args.reference_seq) annotate_input(args.input_aaseq, ref_seq_to_name, args.output) + if __name__ == '__main__': - main() \ No newline at end of file + main() diff --git a/src/flair/annotate_group_vcf_vars.py b/src/flair/annotate_group_vcf_vars.py index c547a14b..a0b44a54 100644 --- a/src/flair/annotate_group_vcf_vars.py +++ b/src/flair/annotate_group_vcf_vars.py @@ -32,7 +32,7 @@ def main(): out = open(args.output, 'w') for chrom, region in vcfvars: annotate_vars_in_region(vcfvars[(chrom, region)], chrom, region, out) - + if __name__ == "__main__": main() diff --git a/src/flair/annotation_data.py b/src/flair/annotation_data.py new file mode 100644 index 00000000..4968362b --- /dev/null +++ b/src/flair/annotation_data.py @@ -0,0 +1,139 @@ +"""External gene annotation data loaded from GTF. + +Provides indexed lookups for junction-to-gene mapping, gene strand, +transcript exon structure, and single-exon gene tracking. Used by +flair_transcriptome and flair_spliceevents for read correction, gene +assignment, and isoform filtering. +""" + +from flair.isoform_data import Exon, exons_to_juncs + + +class AnnotData(object): + def __init__(self): + # map of (transcript_id, gene_id) -> tuple of Exon + self.transcript_to_exons = {} + + # list of (transcript_id, gene_id, strand) + self.transcripts = [] + + # map of junction chain tuple -> (transcript_id, gene_id) + self.juncchain_to_transcript = {} + + # map of Junc -> set of (transcript_id, gene_id) + self.junc_to_gene = {} + + # single-exon annotations by strand: {'+': [], '-': []} + # each entry is Exon(start, end, gene_id), sorted for binary search + # FIXME: rename once it is figured out how this works in get_single_exon_gene_overlaps + self.all_annot_SE = {'+': [], '-': []} + + # map of strand -> gene_id -> set of Exon + # FIXME: why is strand needed here + self.spliced_exons = {'+': {}, '-': {}} + + # map of gene_id -> set of Junc + self.gene_to_annot_juncs = {} + + # map of gene_id -> strand + self.gene_to_strand = {} + + # map of gene_id -> tuple of sorted exon coordinate tuples + # union of all exons across all transcripts in the gene + self.gene_to_exons = {} + + # map of junction chain tuple -> gene_id + self.sjc_to_gene = {} + + # map of "transcript_id_gene_id" -> junction chain tuple + # key format matches BED name field from gtf_to_bed --include_gene + self.transcript_to_sjc = {} + + # map of Junc -> gene_id (single value, last gene seen wins) + # used by spliceevents for simple junction-to-gene lookup + self.junc_to_gene_id = {} + + self.gene_to_cds_starts = {} + + self.transcript_to_nmd_except = {} + + self.start_codon_count = 0 + + +def annot_data_from_gtf(gtf_data, region): + """Build AnnotData for a region from a pre-partitioned GtfData object.""" + annots = AnnotData() + if gtf_data is None: + return annots + region_map = {region: annots} + for trans in gtf_data.transcripts: + if len(trans.exons) > 0: + _process_transcript(annots, region, region_map, trans) + # finalize gene_to_exons as sorted tuples + for gene_id in annots.gene_to_exons: + annots.gene_to_exons[gene_id] = tuple(sorted(annots.gene_to_exons[gene_id])) + return annots + +def _process_transcript(annots, region, region_map, trans): + trans.gene_id = trans.gene_id.replace('_', '-') + exons = [Exon(exon.start, exon.end) for exon in trans.exons] + sorted_exons = sorted(exons) + t_start = sorted_exons[0].start + t_end = sorted_exons[-1].end + _save_transcript_annot(trans.transcript_id, trans.gene_id, region, + region_map, t_start, t_end, trans.strand, sorted_exons, + trans.attrs['tag'], trans.start_codon) + +def _save_cds_starts(gene_id, start_codon, strand, annots): + if gene_id not in annots.gene_to_cds_starts: + annots.gene_to_cds_starts[gene_id] = set() + if start_codon is not None: + annots.start_codon_count += 1 + if strand == '+': + annots.gene_to_cds_starts[gene_id].add(start_codon.start) + else: + annots.gene_to_cds_starts[gene_id].add(start_codon.end) + +def _save_spliced_transcript_info(gene_id, t_exons, juncs, transcript_id, strand, annots): + if gene_id not in annots.spliced_exons[strand]: + annots.spliced_exons[strand][gene_id] = set() + annots.spliced_exons[strand][gene_id].update(set(t_exons)) + annots.juncchain_to_transcript[tuple(juncs)] = (transcript_id, gene_id) + annots.sjc_to_gene[tuple(juncs)] = gene_id + annots.transcript_to_sjc[f"{transcript_id}_{gene_id}"] = tuple(juncs) + if gene_id not in annots.gene_to_annot_juncs: + annots.gene_to_annot_juncs[gene_id] = set() + for j in juncs: + if j not in annots.junc_to_gene: + annots.junc_to_gene[j] = set() + annots.junc_to_gene[j].add((transcript_id, gene_id)) + annots.junc_to_gene_id[j] = gene_id + annots.gene_to_annot_juncs[gene_id].add(j) + +def _save_transcript_annot(transcript_id, gene_id, region, region_map, t_start, t_end, + strand, t_exons, transcript_tags, start_codon): + # region is a SeqRegion object + annots = region_map[region] + + _save_cds_starts(gene_id, start_codon, strand, annots) + annots.transcript_to_nmd_except[transcript_id] = False + if 'NMD_exception' in transcript_tags: + annots.transcript_to_nmd_except[transcript_id] = True + + annots.transcript_to_exons[(transcript_id, gene_id)] = tuple(t_exons) + juncs = exons_to_juncs(t_exons) + annots.transcripts.append((transcript_id, gene_id, strand)) + if gene_id not in annots.gene_to_strand: + annots.gene_to_strand[gene_id] = strand + # accumulate exons per gene (as coordinate tuples for spliceevents compatibility) + exon_coords = set((e.start, e.end) for e in t_exons) + if gene_id not in annots.gene_to_exons: + annots.gene_to_exons[gene_id] = exon_coords + else: + annots.gene_to_exons[gene_id].update(exon_coords) + if len(juncs) == 0: + annots.all_annot_SE[strand].append(Exon(t_start, t_end, gene_id)) + else: + _save_spliced_transcript_info(gene_id, t_exons, juncs, transcript_id, strand, annots) + for strand in ['+', '-']: + annots.all_annot_SE[strand] = sorted(annots.all_annot_SE[strand]) # FIXME: make set? Colette note: needs to be sorted for binary search later diff --git a/src/flair/bed_to_gtf.py b/src/flair/bed_to_gtf.py index a1b65b84..7f8f15f9 100755 --- a/src/flair/bed_to_gtf.py +++ b/src/flair/bed_to_gtf.py @@ -1,115 +1,133 @@ #!/usr/bin/env python3 -import sys import argparse from flair import FlairInputDataError +from flair.gtf_io import gtf_write_row +from flair.pycbio.hgdata.bed import BedReader, Bed +from flair.flair_bed import FlairBed + def main(): parser = argparse.ArgumentParser(description='options') parser.add_argument('inputfile', type=str, - action='store', help='isoforms in bed format') + action='store', help='isoforms in bed format') parser.add_argument('--force', action='store_true', dest='force', - help='specify to not split isoform name by underscore into isoform and gene ids') - parser.add_argument('--add_reference_transcript_id', action='store_true', dest='reference_transcript_id', - help='specify to add reference_transcript_id attribute') + help='specify to not split isoform name by underscore into isoform and gene ids') parser.add_argument('--noCDS', action='store_true', help='do not carry forward CDS from bed file (thickstart and thickend) to gtf file') + parser.add_argument('--is_flair_bed', action='store_true', + help='specify if input is a bed12+ file generated by flair, will process extra columns an put as attributes in gtf') args = parser.parse_args() - bed_to_gtf(query=args.inputfile, force=args.force, outputfile='/dev/stdout', - reference_transcript_id=args.reference_transcript_id, useCDS= not args.noCDS) - + bed_to_gtf(query=args.inputfile, force=args.force, outputfile='/dev/stdout', useCDS=not args.noCDS, is_flair_bed=args.is_flair_bed) def split_iso_gene(iso_gene): if '_chr' in iso_gene: iso = iso_gene[:iso_gene.rfind('_chr')] - gene = iso_gene[iso_gene.rfind('_chr')+1:] + gene = iso_gene[iso_gene.rfind('_chr') + 1:] elif '_XM' in iso_gene: iso = iso_gene[:iso_gene.rfind('_XM')] - gene = iso_gene[iso_gene.rfind('_XM')+1:] + gene = iso_gene[iso_gene.rfind('_XM') + 1:] elif '_XR' in iso_gene: iso = iso_gene[:iso_gene.rfind('_XR')] - gene = iso_gene[iso_gene.rfind('_XR')+1:] + gene = iso_gene[iso_gene.rfind('_XR') + 1:] elif '_NM' in iso_gene: iso = iso_gene[:iso_gene.rfind('_NM')] - gene = iso_gene[iso_gene.rfind('_NM')+1:] + gene = iso_gene[iso_gene.rfind('_NM') + 1:] elif '_NR' in iso_gene: iso = iso_gene[:iso_gene.rfind('_NR')] - gene = iso_gene[iso_gene.rfind('_NR')+1:] + gene = iso_gene[iso_gene.rfind('_NR') + 1:] elif '_R2_' in iso_gene: iso = iso_gene[:iso_gene.rfind('_R2_')] - gene = iso_gene[iso_gene.rfind('_R2_')+1:] + gene = iso_gene[iso_gene.rfind('_R2_') + 1:] else: iso = iso_gene[:iso_gene.rfind('_')] - gene = iso_gene[iso_gene.rfind('_')+1:] + gene = iso_gene[iso_gene.rfind('_') + 1:] return iso, gene -def bed_to_gtf(query, outputfile, force=False, reference_transcript_id=False, useCDS=True): +def _make_attrs(gene_id, transcript_id, bed, is_flair_bed, exon_number=None): + """Build attrs dict for GTF output.""" + attrs = {'gene_id': gene_id, 'transcript_id': transcript_id} + if exon_number is not None: + attrs['exon_number'] = str(exon_number) + if is_flair_bed: + for name, val in bed.get_named_extra_attrs(): + attrs[name] = val + return attrs + +def bed_to_gtf(query, outputfile, force=False, useCDS=True, is_flair_bed=False): # noqa: C901 - FIXME: reduce complexity outfile = open(outputfile, 'w') - gene_to_transcript_lines = {} + gene_to_records = {} gene_to_chrom_strand = {} - for line in open(query): - line = line.rstrip().split('\t') - start = int(line[1]) - chrom, strand, score, name, start = line[0], line[5], line[4], line[3], int(line[1]) - tstarts = [int(n) + start for n in line[11].rstrip(',').split(',')] - bsizes = [int(n) for n in line[10].rstrip(',').split(',')] - end, thick_start, thick_end = int(line[2]), int(line[6]), int(line[7]) - - if '_' not in name and not force: + my_bed_class = FlairBed if is_flair_bed else Bed + for bed in BedReader(query, bedClass=my_bed_class): + name = bed.name + if '_' not in name and not force and not is_flair_bed: raise FlairInputDataError('Entry name should contain underscore-delimited transcriptid and geneid like so: \n' - 'ENST00000318842.11_ENSG00000156313.12 or a4bab8a3-1d28_chr8:232000\n' - 'So no GTF conversion was done. Please run identify_gene_isoform first\n' - 'for best results, or run with --force') + 'ENST00000318842.11_ENSG00000156313.12 or a4bab8a3-1d28_chr8:232000\n' + 'So no GTF conversion was done. Please run identify_gene_isoform first\n' + 'for best results, or run with --force') if ';' in name: name = name.replace(';', ':') - if force == True: + if is_flair_bed: + transcript_id = name + gene_id = bed.gene_id + elif force is True: transcript_id, gene_id = name, name else: transcript_id, gene_id = split_iso_gene(name) - if gene_id not in gene_to_transcript_lines: - gene_to_transcript_lines[gene_id] = [] - gene_to_chrom_strand[gene_id] = (chrom, strand) + if gene_id not in gene_to_records: + gene_to_records[gene_id] = [] + gene_to_chrom_strand[gene_id] = (bed.chrom, bed.strand) - attributes = f'gene_id "{gene_id}"; transcript_id "{transcript_id}";' - if reference_transcript_id and '-referencetranscript' in transcript_id: - trimmed_transcript_id = transcript_id[:transcript_id.find('-referencetranscript')] - attributes = f'gene_id "{gene_id}"; transcript_id "{trimmed_transcript_id}"; reference_transcript_id "{trimmed_transcript_id}";' - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', 'transcript', start+1, tstarts[-1]+bsizes[-1], '.', strand, '.', attributes]) - if thick_start != thick_end and (thick_start != start or thick_end != end) and useCDS: - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', 'CDS', thick_start+1, thick_end, '.', strand, '.', attributes]) - if strand == '+': - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', 'start_codon', thick_start+1, thick_start+3, '.', strand, '.', attributes]) - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', '5UTR', start+1, thick_start+1, '.', strand, '.', attributes]) - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', '3UTR', thick_end, tstarts[-1]+bsizes[-1], '.', strand, '.', attributes]) - elif strand == '-': - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', 'start_codon', thick_end-2, thick_end, '.', strand, '.', attributes]) - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', '3UTR', start+1, thick_start+1, '.', strand, '.', attributes]) - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', '5UTR', thick_end, tstarts[-1]+bsizes[-1], '.', strand, '.', attributes]) - # if strand == '-': # to list exons in 5'->3' - # for b in range(len(tstarts)): # exon number - # bi = len(tstarts) - 1 - b # block index - # attributes = 'gene_id \"{}\"; transcript_id \"{}\"; exon_number \"{}\";'\ - # .format(gene_id, transcript_id, b) - # print('\t'.join([chrom, 'FLAIR', 'exon', str(tstarts[bi]+1), \ - # str(tstarts[bi]+bsizes[bi]), '.', strand, '.', attributes])) - # else: - for b in range(len(tstarts)): - attributes = f'gene_id "{gene_id}"; transcript_id "{transcript_id}"; exon_number "{b}";' - if reference_transcript_id and '-referencetranscript' in transcript_id: - attributes = f'gene_id "{gene_id}"; transcript_id "{trimmed_transcript_id}"; exon_number "{b}"; reference_transcript_id "{trimmed_transcript_id}";' - gene_to_transcript_lines[gene_id].append([chrom, 'FLAIR', 'exon', tstarts[b]+1, tstarts[b]+bsizes[b], '.', strand, '.', attributes]) - for gene_id in gene_to_transcript_lines: - attributes = f'gene_id "{gene_id}";' + attrs = _make_attrs(gene_id, transcript_id, bed, is_flair_bed) + gene_to_records[gene_id].append(('transcript', bed.chrom, bed.chromStart, bed.chromEnd, bed.strand, attrs)) + + for b, blk in enumerate(bed.blocks): + exon_attrs = _make_attrs(gene_id, transcript_id, bed, is_flair_bed, exon_number=b) + gene_to_records[gene_id].append(('exon', bed.chrom, blk.start, blk.end, bed.strand, exon_attrs)) + if bed.thickStart != bed.thickEnd and (bed.thickStart != bed.chromStart or bed.thickEnd != bed.chromEnd) and useCDS: + if bed.thickStart < blk.start and blk.end < bed.thickEnd: # in CDS + gene_to_records[gene_id].append(('CDS', bed.chrom, blk.start, blk.end, bed.strand, exon_attrs)) + elif blk.end < bed.thickStart: # fully left of CDS + if bed.strand == '+': + gene_to_records[gene_id].append(('5UTR', bed.chrom, blk.start, blk.end, bed.strand, exon_attrs)) + elif bed.strand == '-': + gene_to_records[gene_id].append(('3UTR', bed.chrom, blk.start, blk.end, bed.strand, exon_attrs)) + elif blk.start > bed.thickEnd: # fully right of CDS + if bed.strand == '+': + gene_to_records[gene_id].append(('3UTR', bed.chrom, blk.start, blk.end, bed.strand, exon_attrs)) + elif bed.strand == '-': + gene_to_records[gene_id].append(('5UTR', bed.chrom, blk.start, blk.end, bed.strand, exon_attrs)) + elif blk.start <= bed.thickStart <= blk.end: # left end of CDS in exon + if bed.strand == '+': + gene_to_records[gene_id].append(('5UTR', bed.chrom, blk.start, bed.thickStart, bed.strand, exon_attrs)) + gene_to_records[gene_id].append(('start_codon', bed.chrom, bed.thickStart, bed.thickStart + 3, bed.strand, attrs)) + gene_to_records[gene_id].append(('CDS', bed.chrom, bed.thickStart, blk.end, bed.strand, exon_attrs)) + elif bed.strand == '-': + gene_to_records[gene_id].append(('3UTR', bed.chrom, blk.start, bed.thickStart, bed.strand, exon_attrs)) + gene_to_records[gene_id].append(('CDS', bed.chrom, bed.thickStart, blk.end, bed.strand, exon_attrs)) + elif blk.start <= bed.thickEnd <= blk.end: # right end of CDS in exon + if bed.strand == '+': + gene_to_records[gene_id].append(('CDS', bed.chrom, blk.start, bed.thickEnd, bed.strand, exon_attrs)) + gene_to_records[gene_id].append(('3UTR', bed.chrom, bed.thickEnd, blk.end, bed.strand, exon_attrs)) + elif bed.strand == '-': + gene_to_records[gene_id].append(('CDS', bed.chrom, blk.start, bed.thickEnd, bed.strand, exon_attrs)) + gene_to_records[gene_id].append(('start_codon', bed.chrom, bed.thickEnd - 3, bed.thickEnd, bed.strand, attrs)) + gene_to_records[gene_id].append(('5UTR', bed.chrom, bed.thickEnd, blk.end, bed.strand, exon_attrs)) + + for gene_id, records in gene_to_records.items(): chrom, strand = gene_to_chrom_strand[gene_id] - tlines = gene_to_transcript_lines[gene_id] - gene_line = [chrom, 'FLAIR', 'gene', min([x[3] for x in tlines]), max([x[4] for x in tlines]), '.', strand, '.', attributes] - outfile.write('\t'.join([str(x) for x in gene_line]) + '\n') - for line in tlines: - outfile.write('\t'.join([str(x) for x in line]) + '\n') + gene_start = min(r[2] for r in records) + gene_end = max(r[3] for r in records) + gtf_write_row(outfile, chrom, 'FLAIR', 'gene', gene_start, gene_end, None, strand, None, + gene_id=gene_id) + for feature, chrom, start, end, strand, attrs in records: + gtf_write_row(outfile, chrom, 'FLAIR', feature, start, end, None, strand, None, + attrs=attrs) outfile.close() - + if __name__ == "__main__": main() diff --git a/src/flair/bed_to_sequence.py b/src/flair/bed_to_sequence.py deleted file mode 100755 index 561f806f..00000000 --- a/src/flair/bed_to_sequence.py +++ /dev/null @@ -1,256 +0,0 @@ -#!/usr/bin/env python3 -import sys, csv, os, argparse, pysam, subprocess -import pysam -import logging -from flair import FlairInputDataError - -def main(): - parser = argparse.ArgumentParser(description='options') - parser.add_argument('bed', type=str, - action='store', help='isoforms in bed format') - parser.add_argument('genome', type=str, - action='store', help='genomic sequence') - parser.add_argument('outfilename', type=str, - action='store', help='Name of output file') - parser.add_argument('-v', '--vcf', action='store', dest='vcf', - type=str, help='vcf file with flair phased transcripts') - # longshot phased arguments - parser.add_argument('--isoform_haplotypes', action='store', dest='isoform_haplotypes', - type=str, help='isoform haplotype assignments') - parser.add_argument('--vcf_out', action='store', dest='vcf_out', default='', - type=str, help='vcf output file name') - - no_arguments_passed = len(sys.argv) == 1 - if no_arguments_passed: - parser.print_help() - parser.error("No arguments passed, please provide genome and bed isoform files") - args = parser.parse_args() - - if args.vcf and not (args.vcf and args.isoform_haplotypes): - raise FlairInputDataError('Must provide both vcf and haplotype information if vcf is provided') - - - bed_to_sequence(query=args.bed, genome=args.genome, outfilename=args.outfilename, - isoform_haplotypes=args.isoform_haplotypes, vcfinput=args.vcf, - vcf_out=args.vcf_out) - - -# NOTE: using functions inside bed_to_sequence because all of them rely on 'global' variables -# This really should be rewritten. -def bed_to_sequence(query, genome, outfilename, isoform_haplotypes=False, vcfinput=False, - vcf_out=False): - used_variants = dict() - variant_string_to_record = dict() - fastq = outfilename[-2:].lower() in ['fq', 'fastq'] - - beddata = {} - for line in open(query): # or bed - line = line.rstrip().split('\t') - chrom = line[0] - if chrom not in beddata: - beddata[chrom] = [] - beddata[chrom] += [line] - - haplotype = {} # isoform to haplotype - if isoform_haplotypes: - for line in open(isoform_haplotypes): - line = line.rstrip().split('\t') - if line[1] != 'NA': - haplotype[line[0]] = [int(hp) for hp in line[1].split(',')] - - vcf = False - if vcfinput: - vcf = pysam.VariantFile(vcfinput, 'r') - try: - vcf.fetch(chrom) - # TODO: check for gz beforehand - except ValueError: - if vcfinput[-3:] != '.gz': - subprocess.check_call(['bgzip', '-c', vcfinput], stdout=open(vcfinput+'.gz', 'w')) - vcfinput = vcfinput+'.gz' - subprocess.check_call(['tabix', '-fp', 'vcf', vcfinput]) - vcf = pysam.VariantFile(vcfinput, 'r') - - def split_iso_gene(iso_gene): - if '_' not in iso_gene: - return iso_gene, 'NA' - elif '_chr' in iso_gene: - splitchar = '_chr' - elif '_XM' in iso_gene: - splitchar = '_XM' - elif '_XR' in iso_gene: - splitchar = '_XR' - elif '_NM' in iso_gene: - splitchar = '_NM' - elif '_NR' in iso_gene: - splitchar = '_NR' - elif '_R2_' in iso_gene: - splitchar = '_R2_' - elif '_NC_' in iso_gene: - splitchar = '_NC_' - else: - splitchar = '_' - iso = iso_gene[:iso_gene.rfind(splitchar)] - gene = iso_gene[iso_gene.rfind(splitchar)+1:] - return iso, gene - - - def get_sequence(entry, seq): - start = int(entry[1]) - blockstarts = [int(n) + start for n in entry[11].rstrip(',').split(',')] - blocksizes = [int(n) for n in entry[10].rstrip(',').split(',')] - strand = entry[5] - pulled_seq = '' - for block in range(len(blockstarts)): - pulled_seq += seq[blockstarts[block]:blockstarts[block]+blocksizes[block]] - if strand == '-': - pulled_seq = revcomp(pulled_seq) - return pulled_seq - - def add_variants_to_seq(variant_list, no_variant_sequence, starts, sizes, strand = '+', chrom='chr1', iso_name=''): - pulled_seq = '' - - for block in range(len(starts)): - exon_seq = no_variant_sequence[starts[block]:starts[block]+sizes[block]] - for v in variant_list: - if v.pos > starts[block] and v.pos < starts[block]+sizes[block]: - if v.ref != exon_seq[v.pos-starts[block]-1]: - print('VCF ref {} does not match genome ref base {}, at {}:{}'.format(v.ref, - exon_seq[v.pos-starts[block] - 2:v.pos-starts[block] + 2], v.chrom, v.pos)) - exon_seq = exon_seq[:v.pos-starts[block]-1] + v.alts[0] + exon_seq[v.pos-starts[block]:] - - if isoform_haplotypes: - vstring = str(v) - if vstring not in variant_string_to_record: - variant_string_to_record[vstring] = v - - - used_variants[vstring] = set() - - used_variants[vstring].add(iso_name) - - pulled_seq += exon_seq - - return pulled_seq - - - def get_sequence_with_variants(entry, seq): - ''' Entry is the isoform model line, seq is the genomic sequence for this chromosome''' - start = int(entry[1]) - blockstarts = [int(n) + start for n in entry[11].split(',')[:-1]] - blocksizes = [int(n) for n in entry[10].split(',')[:-1]] - strand = entry[5] - name = entry[3] - - - # get variants for this haplotype - if isoform_haplotypes and name in haplotype: - if chrom not in vcf.header.contigs: - variants = [] - else: - variants = vcf.fetch(chrom, blockstarts[0], blockstarts[-1]+blocksizes[-1],reopen=True) - v_to_add = [] - v_to_add_alt = [] - for v in variants: - sample_name = list(v.samples)[0] - variant_ps = v.samples[sample_name]['PS'] - variant_gt = v.samples[sample_name]['GT'] - if variant_gt == (1,1): - v_to_add.append(v) - v_to_add_alt.append(v) - - elif variant_ps in haplotype[name]: - if variant_gt == (0,1): - v_to_add.append(v) - elif variant_gt == (1,0): - v_to_add_alt.append(v) - v_to_add.reverse() # add variants starting from the end in case of indels - v_to_add_alt.reverse() - - iso, gene = split_iso_gene(name) - iso = ':'.join(iso.split(':')[:-1]) - name_ref, name_alt = '>' + iso+':0|1_'+gene, '>' + iso+':1|0_'+gene - names = [name_ref, name_alt] - pulled_seq = [add_variants_to_seq(v_to_add, seq, blockstarts, blocksizes, strand, entry[0], iso_name=name_ref), - add_variants_to_seq(v_to_add_alt, seq, blockstarts, blocksizes, strand, entry[0], - iso_name=name_alt)] - else: - pulled_seq = [seq] - names = [name] - - if strand == '-': - pulled_seq = [revcomp(x) for x in pulled_seq] - - return names, pulled_seq - - - def write_sequences(beddata_chrom, seq): - - seenisos = set() - models = [] - for entry in beddata_chrom: - - name = entry[3] - if vcfinput: - iso, gene = split_iso_gene(name) - iso = ':'.join(iso.split(':')[:-1]) - if iso not in seenisos: - names, pulled_seq = get_sequence_with_variants(entry, seq) - for i in range(len(pulled_seq)): - n,p = names[i], pulled_seq[i] - writer.writerow(['>' + n]) - writer.writerow([p]) - seenisos.add(iso) - - else: - if fastq: - writer.writerow(['@' + name]) - else: - writer.writerow(['>' + name]) - pulled_seq = get_sequence(entry, seq) - - writer.writerow([pulled_seq]) - if fastq: - writer.writerow(['+']) - writer.writerow(['@'*len(pulled_seq)]) - return models - - - revcomp_dict = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C', 'N': 'N', 'R': 'Y', - 'Y':'R', 'K': 'M', 'M': 'K', 'S': 'S', 'W': 'W', 'B': 'V', 'V': 'B', 'D': 'H', 'H': 'D'} - - - def revcomp(seq): - rev_seq = '' - for i in reversed(range(len(seq))): - rev_seq += revcomp_dict[seq[i]] - return rev_seq - - - with open(outfilename, 'wt') as outfile: - writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - seq, chrom = '', '' - - - - genome = pysam.FastaFile(genome) - for chrom in beddata: - write_sequences(beddata[chrom], genome.fetch(chrom).upper()) - - - - if vcf and isoform_haplotypes: - header = vcf.header - header.add_meta('FORMAT', items=[('ID',"ISO"), ('Number',1), ('Type','String'), - ('Description','Isoforms')]) - if not vcf_out: - vcf_out = vcf[:-3]+'used_variants.vcf' - vcf_outfile = pysam.VariantFile(vcf_out, 'w', header=vcf.header) - for v in used_variants: - vline = variant_string_to_record[v] - vline.samples[list(vcf.header.samples)[0]]['ISO'] = ','.join(used_variants[v]) - - vcf_outfile.write(vline) - -if __name__ == "__main__": - main() diff --git a/src/flair/call_diffsplice_events.py b/src/flair/call_diffsplice_events.py index 7e4d1f41..8c6336c8 100755 --- a/src/flair/call_diffsplice_events.py +++ b/src/flair/call_diffsplice_events.py @@ -3,6 +3,7 @@ import csv import os from flair import FlairInputDataError +from flair.pycbio.hgdata.bed import BedReader try: bedfh = open(sys.argv[1]) @@ -12,28 +13,28 @@ else: counts_tsv = '' wiggle = 10 # minimum distance apart for alt SS to be tested -except: +except Exception: raise FlairInputDataError('usage: call_diffsplice_events.py in.bed out.tsv [counts_tsv]\n') def get_junctions_bed(starts, sizes): junctions = [] - for b in range(len(starts)-1): - junctions += [(starts[b]+sizes[b], starts[b+1], starts[b], starts[b+1]+sizes[b+1])] + for b in range(len(starts) - 1): + junctions += [(starts[b] + sizes[b], starts[b + 1], starts[b], starts[b + 1] + sizes[b + 1])] return junctions def update_altsplice_dict(jdict, fiveprime, threeprime, exon_start, exon_end, sample_names, - iso_counts, search_threeprime=True): + iso_counts, search_threeprime=True): if fiveprime not in jdict[chrom]: jdict[chrom][fiveprime] = {} # 5' end anchor if search_threeprime if threeprime not in jdict[chrom][fiveprime]: jdict[chrom][fiveprime][threeprime] = {} - jdict[chrom][fiveprime][threeprime]['counts'] = [0]*len(sample_names) - jdict[chrom][fiveprime][threeprime]['isos'] = []# isoform list for this junction + jdict[chrom][fiveprime][threeprime]['counts'] = [0] * len(sample_names) + jdict[chrom][fiveprime][threeprime]['isos'] = [] # isoform list for this junction jdict[chrom][fiveprime][threeprime]['exon_end'] = exon_end # for detecting exon skipping elif (search_threeprime and strand == '+') or (not search_threeprime and strand == '-'): - if exon_end < jdict[chrom][fiveprime][threeprime]['exon_end']: # pick shorter exon end + if exon_end < jdict[chrom][fiveprime][threeprime]['exon_end']: # pick shorter exon end jdict[chrom][fiveprime][threeprime]['exon_end'] = exon_end else: if exon_end > jdict[chrom][fiveprime][threeprime]['exon_end']: @@ -56,8 +57,8 @@ def find_altss(alljuncs, writer, search_threeprime=True): n = 0 for tp1 in all_tp: # tp1 = three prime SS number 1 exon_end = alljuncs[chrom][fiveprime][tp1]['exon_end'] - for tp2 in all_tp: # tp2 is also a 3' SS with the same 5' anchor as tp1 - if tp1 == tp2 or abs(tp2-tp1) < wiggle or abs(fiveprime - tp1) > abs(fiveprime - tp2): + for tp2 in all_tp: # tp2 is also a 3' SS with the same 5' anchor as tp1 + if tp1 == tp2 or abs(tp2 - tp1) < wiggle or abs(fiveprime - tp1) > abs(fiveprime - tp2): # two sites are the same, too close together, or have already been tested in another order continue inclusion = tp1 @@ -70,15 +71,15 @@ def find_altss(alljuncs, writer, search_threeprime=True): elif tp2 < exon_end: # exon skipping for alt SS upstream of anchor continue - feature_suffix = chrom_clean+':'+str(fiveprime) if n == 0 else chrom_clean+':'+str(fiveprime)+'-'+str(n) - event = chrom_clean+':'+str(fiveprime)+'-'+str(inclusion)+'_'+chrom_clean+':'+str(fiveprime)+'-'+str(exclusion) + feature_suffix = chrom_clean + ':' + str(fiveprime) if n == 0 else chrom_clean + ':' + str(fiveprime) + '-' + str(n) + event = chrom_clean + ':' + str(fiveprime) + '-' + str(inclusion) + '_' + chrom_clean + ':' + str(fiveprime) + '-' + str(exclusion) - writer.writerow(['inclusion_'+feature_suffix, event] + - alljuncs[chrom][fiveprime][inclusion]['counts'] + - [','.join(sorted(alljuncs[chrom][fiveprime][inclusion]['isos']))]) - writer.writerow(['exclusion_'+feature_suffix, event] + - alljuncs[chrom][fiveprime][exclusion]['counts'] + - [','.join(sorted(alljuncs[chrom][fiveprime][exclusion]['isos']))]) + writer.writerow(['inclusion_' + feature_suffix, event] + + alljuncs[chrom][fiveprime][inclusion]['counts'] + + [','.join(sorted(alljuncs[chrom][fiveprime][inclusion]['isos']))]) + writer.writerow(['exclusion_' + feature_suffix, event] + + alljuncs[chrom][fiveprime][exclusion]['counts'] + + [','.join(sorted(alljuncs[chrom][fiveprime][exclusion]['isos']))]) n += 1 @@ -95,16 +96,14 @@ def find_altss(alljuncs, writer, search_threeprime=True): ir_junctions = {} # ir detection a3_junctions = {} # alt 3' ss detection a5_junctions = {} # alt 5' ss detection -for line in bedfh: - line = line.rstrip().split('\t') - - chrom, name, start, end, strand = line[0], line[3], int(line[1]), int(line[2]), line[5] +for bed in BedReader(bedfh, fixScores=True): + chrom, name, start, end, strand = bed.chrom, bed.name, bed.chromStart, bed.chromEnd, bed.strand if iso_counts and name not in iso_counts: continue - blockstarts = [int(n) + start for n in line[11].rstrip(',').split(',')] - blocksizes = [int(n) for n in line[10].rstrip(',').split(',')] + blockstarts = [blk.start for blk in bed.blocks] + blocksizes = [len(blk) for blk in bed.blocks] chrom = strand + chrom # stranded comparisons if chrom not in isoforms: @@ -114,9 +113,9 @@ def find_altss(alljuncs, writer, search_threeprime=True): a5_junctions[chrom] = {} isoforms[chrom][name] = {} - isoforms[chrom][name]['sizes'] = blocksizes + isoforms[chrom][name]['sizes'] = blocksizes isoforms[chrom][name]['starts'] = blockstarts - isoforms[chrom][name]['range'] = start, end + isoforms[chrom][name]['range'] = start, end these_jcns = get_junctions_bed(blockstarts, blocksizes) for j_index in range(len(these_jcns)): @@ -129,37 +128,37 @@ def find_altss(alljuncs, writer, search_threeprime=True): exon_end, exon_start = exon_start, exon_end a3_junctions = update_altsplice_dict(a3_junctions, fiveprime, threeprime, - exon_start, exon_end, sample_names, iso_counts) + exon_start, exon_end, sample_names, iso_counts) a5_junctions = update_altsplice_dict(a5_junctions, threeprime, fiveprime, - exon_end, exon_start, sample_names, iso_counts, search_threeprime=False) + exon_end, exon_start, sample_names, iso_counts, search_threeprime=False) j = (j[0], j[1]) # IR junctions do not need the flanking exon info from get_junctions_bed if j not in ir_junctions[chrom]: # ir detection ir_junctions[chrom][j] = {} ir_junctions[chrom][j]['exclusion'] = {} ir_junctions[chrom][j]['inclusion'] = {} - ir_junctions[chrom][j]['exclusion']['counts'] = [0]*len(sample_names) - ir_junctions[chrom][j]['inclusion']['counts'] = [0]*len(sample_names) + ir_junctions[chrom][j]['exclusion']['counts'] = [0] * len(sample_names) + ir_junctions[chrom][j]['inclusion']['counts'] = [0] * len(sample_names) ir_junctions[chrom][j]['exclusion']['isos'] = [] ir_junctions[chrom][j]['inclusion']['isos'] = [] ir_junctions[chrom][j]['exclusion']['isos'] += [name] for c in range(len(sample_names)): ir_junctions[chrom][j]['exclusion']['counts'][c] += iso_counts[name][c] -with open(outfilenamebase+'.alt3.events.quant.tsv', 'wt') as outfile: +with open(outfilenamebase + '.alt3.events.quant.tsv', 'wt') as outfile: writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - writer.writerow(['feature_id', 'coordinate']+sample_names+['isoform_ids']) + writer.writerow(['feature_id', 'coordinate'] + sample_names + ['isoform_ids']) find_altss(a3_junctions, writer) -with open(outfilenamebase+'.alt5.events.quant.tsv', 'wt') as outfile: +with open(outfilenamebase + '.alt5.events.quant.tsv', 'wt') as outfile: writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - writer.writerow(['feature_id', 'coordinate']+sample_names+['isoform_ids']) + writer.writerow(['feature_id', 'coordinate'] + sample_names + ['isoform_ids']) find_altss(a5_junctions, writer, search_threeprime=False) with open(outfilenamebase + '.ir.events.quant.tsv', 'wt') as outfile: writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - writer.writerow(['feature_id', 'coordinate']+sample_names+['isoform_ids']) - for chrom in ir_junctions: + writer.writerow(['feature_id', 'coordinate'] + sample_names + ['isoform_ids']) + for chrom in ir_junctions: # noqa: C901 - FIXME: reduce complexity for j in ir_junctions[chrom]: for iname in isoforms[chrom]: # compare with all other isoforms to find IR if iname in ir_junctions[chrom][j]['exclusion']['isos']: # is an exclusion isoform @@ -169,7 +168,7 @@ def find_altss(alljuncs, writer, search_threeprime=True): continue starts, sizes = isoforms[chrom][iname]['starts'], isoforms[chrom][iname]['sizes'] for start, size in zip(starts[1:], sizes[1:]): - estart, eend = start, start+size # exon start, exon end + estart, eend = start, start + size # exon start, exon end if estart < j[0] and eend > j[1]: # retention ir_junctions[chrom][j]['inclusion']['isos'] += [iname] for c in range(len(sample_names)): @@ -183,11 +182,11 @@ def find_altss(alljuncs, writer, search_threeprime=True): ir_junctions[chrom][j]['exclusion']['counts'] = ir_junctions[chrom][j]['inclusion']['counts'] = [] chrom_clean = chrom[1:] - event = chrom_clean+':'+str(j[0])+'-'+str(j[1]) - writer.writerow(['inclusion_'+event, event] + - ir_junctions[chrom][j]['inclusion']['counts'] + - [','.join(sorted(ir_junctions[chrom][j]['inclusion']['isos']))]) - writer.writerow(['exclusion_'+event, event] + - ir_junctions[chrom][j]['exclusion']['counts'] + - [','.join(sorted(ir_junctions[chrom][j]['exclusion']['isos']))]) + event = chrom_clean + ':' + str(j[0]) + '-' + str(j[1]) + writer.writerow(['inclusion_' + event, event] + + ir_junctions[chrom][j]['inclusion']['counts'] + + [','.join(sorted(ir_junctions[chrom][j]['inclusion']['isos']))]) + writer.writerow(['exclusion_' + event, event] + + ir_junctions[chrom][j]['exclusion']['counts'] + + [','.join(sorted(ir_junctions[chrom][j]['exclusion']['isos']))]) ir_junctions[chrom] = None diff --git a/src/flair/convert_synthetic_to_genome_bed.py b/src/flair/convert_synthetic_to_genome_bed.py index 1748b1f2..20292f2d 100644 --- a/src/flair/convert_synthetic_to_genome_bed.py +++ b/src/flair/convert_synthetic_to_genome_bed.py @@ -1,6 +1,4 @@ - -import sys, os - +from flair.pycbio.hgdata.bed import Bed, BedBlock, BedReader def get_iso_to_reads(readmapfile): isoreadsup = {} @@ -12,9 +10,8 @@ def get_iso_to_reads(readmapfile): def get_synth_info(breakpointfile): synthchrtoinfo = {} - for line in open(breakpointfile): - line = line.rstrip().split('\t') - synthchrtoinfo[line[0]] = '--'.join(line[-1].split('--')[1:]) + for bed in BedReader(breakpointfile, numStdCols=4): + synthchrtoinfo[bed.chrom] = '--'.join(bed.name.split('--')[1:]) return synthchrtoinfo def get_paralog_ref(paralogfile): @@ -25,7 +22,8 @@ def get_paralog_ref(paralogfile): line = line.split('\t') group = line[1] gname = line[6] - if group not in grouptogenes: grouptogenes[group] = set() + if group not in grouptogenes: + grouptogenes[group] = set() grouptogenes[group].add(gname) for group in grouptogenes: @@ -35,39 +33,35 @@ def get_paralog_ref(paralogfile): return genetoparalogs def get_gene_name_conv(annotgtf): + from flair.gtf_io import gtf_record_parser, GtfAttrsSet genetoname = {} - for line in open(annotgtf): - if line[0] != '#': - line = line.split('\t', 3) - if line[2] == 'gene': - geneid = line[-1].split('gene_id "')[1].split('"')[0] - if 'gene_name' in line[-1]: - genename = line[-1].split('gene_name "')[1].split('"')[0] - else: - genename = geneid - genetoname[geneid.split('.')[0]] = genename + for rec in gtf_record_parser(annotgtf, include_features={'gene'}, attrs=GtfAttrsSet.ALL): + geneid = rec.gene_id + genename = rec.gene_name if rec.gene_name else geneid + genetoname[geneid.split('.')[0]] = genename return genetoname def identify_promiscuous_genes(isoformsbed, genetoparalogs): + from flair.pycbio.hgdata.bed import BedReader locustopartners = {} - for line in open(isoformsbed): - fnames = set(line.split('\t', 1)[0].split('--')) + for bed in BedReader(isoformsbed, fixScores=True): + fnames = set(bed.chrom.split('--')) fnames = {x.split('.')[0] if x[:3] != 'chr' else x.split('-')[0] + '-' + str(round(int(x.split('-')[1]), -6)) for x in fnames} for i in fnames: other = fnames - {i, } newother = frozenset([genetoparalogs[g] if g in genetoparalogs else g for g in other]) - if i not in locustopartners: locustopartners[i] = set() + if i not in locustopartners: + locustopartners[i] = set() locustopartners[i].add(newother) return locustopartners -def identify_fusion_problems(fusionchr, locustopartners, maxpromiscuity, genetoname, genetoparalogs, synthinfo, isoreadsup_iso): - fgenes = set( - [x.split('.')[0] if x[:3] != 'chr' else x.split('-')[0] + '-' + str(round(int(x.split('-')[1]), -6)) for x in - fusionchr.split('--')]) - ispromiscuous, areparalogs, areig, allnames = False, [], [], set() +def identify_fusion_problems(fgenes, locustopartners, maxpromiscuity, genetoname, genetoparalogs, genomic_chroms, isosup): + + ispromiscuous, areparalogs, areig, allnames, gcount = False, [], [], set(), [] for g in fgenes: + gcount.append(list(fgenes).count(g)) if len(locustopartners[g]) > maxpromiscuity: ispromiscuous = True if g in genetoname: @@ -83,7 +77,7 @@ def identify_fusion_problems(fusionchr, locustopartners, maxpromiscuity, geneton else: areig.append(False) if g in genetoparalogs: - other = fgenes - {g, } + other = set(fgenes) - {g, } other = {genetoparalogs[g2] if g2 in genetoparalogs else g2 for g2 in other} if genetoparalogs[g] in other or len(other) == 0: areparalogs.append(True) @@ -91,7 +85,13 @@ def identify_fusion_problems(fusionchr, locustopartners, maxpromiscuity, geneton areparalogs.append(False) else: areparalogs.append(False) - return len(isoreadsup_iso) >= 1 and not ispromiscuous and any(x==False for x in areparalogs) and any(x==False for x in areig) and len(allnames) > 1 and 'chrM' not in [x[1] for x in synthinfo] + overall = (all([x == 1 for x in gcount]) and isosup >= 1 and not ispromiscuous + and any(x is False for x in areparalogs) and all(x is False for x in areig) + and len(allnames) > 1 and 'chrM' not in genomic_chroms + and all([x[:3] == 'chr' for x in genomic_chroms])) + # if overall: + # print(fgenes, 'prom', ispromiscuous, 'para', areparalogs, 'ig', areig, 'uniquenames', allnames, 'goodchroms', 'chrM' not in genomic_chroms and all([x[:3] == 'chr' for x in genomic_chroms]), 'gcount', gcount) + return overall def get_locus_bounds(synthinfo): locuslen = [abs(x[3] - x[2]) for x in synthinfo] @@ -110,14 +110,14 @@ def separate_exons_by_locus(esizes, estarts, numloci, locusbounds, start): for order in range(numloci): if locusbounds[order][0] < thisstart and thisend <= locusbounds[order][1]: - if starts[order] == None: + if starts[order] is None: starts[order] = estarts[i] # thisstart #- locusbounds[order][0] exonindexes[order].append(i) return starts, exonindexes def convert_to_genomic_coords(numloci, synthinfo, exonindexes, starts, locusbounds, esizes, estarts, start, iso): genomicbounds = [] - outlines = [] + beds = [] for order in range(numloci): genename, genomicchr, leftbound, rightbound = synthinfo[order] locusesizes = [esizes[i] for i in exonindexes[order]] @@ -125,48 +125,44 @@ def convert_to_genomic_coords(numloci, synthinfo, exonindexes, starts, locusboun locusestarts = [x - starts[order] for x in locusestarts] totlen = locusestarts[-1] + locusesizes[-1] locusdir = '+' if leftbound < rightbound else '-' + name = 'gene' + str(order + 1) + '_' + iso if leftbound > rightbound: # reverse direction temp = [] for i in range(len(locusestarts) - 1, -1, -1): temp.append(totlen - (locusestarts[i] + locusesizes[i])) locusestarts = temp locusesizes = locusesizes[::-1] - outline = [genomicchr, str(leftbound - (((start + starts[order]) - locusbounds[order][0]) + totlen)), - str(leftbound - ((start + starts[order]) - locusbounds[order][0])), - 'gene' + str(order + 1) + '_' + iso, - '1000', locusdir, str(leftbound - (start + totlen)), str(leftbound - start), '0', - str(len(locusesizes)), - ','.join([str(x) for x in locusesizes]), - ','.join([str(x) for x in locusestarts])] - genomicbounds.append((genomicchr, leftbound - ((start + starts[order]) - locusbounds[order][0]), - leftbound - (((start + starts[order]) - locusbounds[order][0]) + totlen), locusdir)) + chromStart = leftbound - (((start + starts[order]) - locusbounds[order][0]) + totlen) + chromEnd = leftbound - ((start + starts[order]) - locusbounds[order][0]) + thickStart = leftbound - (start + totlen) + thickEnd = leftbound - start + genomicbounds.append((genomicchr, chromEnd, chromStart, locusdir)) else: - outline = [genomicchr, str(leftbound + ((start + starts[order]) - locusbounds[order][0])), - str(leftbound + ((start + starts[order]) - locusbounds[order][0]) + totlen), - 'gene' + str(order + 1) + '_' + iso, - '1000', locusdir, str(leftbound + ((start + starts[order]) - locusbounds[order][0])), - str(leftbound + ((start + starts[order]) - locusbounds[order][0]) + totlen), '0', - str(len(locusesizes)), - ','.join([str(x) for x in locusesizes]), - ','.join([str(x) for x in locusestarts])] - genomicbounds.append((genomicchr, leftbound + ((start + starts[order]) - locusbounds[order][0]), - leftbound + ((start + starts[order]) - locusbounds[order][0]) + totlen, locusdir)) - outlines.append('\t'.join(outline) + '\n') - return genomicbounds, outlines - -def check_too_close(numloci, genomicbounds): - istooclose = False + chromStart = leftbound + ((start + starts[order]) - locusbounds[order][0]) + chromEnd = chromStart + totlen + thickStart = chromStart + thickEnd = chromEnd + genomicbounds.append((genomicchr, chromStart, chromEnd, locusdir)) + blocks = [BedBlock(chromStart + locusestarts[i], chromStart + locusestarts[i] + locusesizes[i]) + for i in range(len(locusesizes))] + beds.append(Bed(genomicchr, chromStart, chromEnd, name=name, score=1000, strand=locusdir, + thickStart=thickStart, thickEnd=thickEnd, itemRgb='0', blocks=blocks)) + return genomicbounds, beds + +def check_too_close(numloci, genomicbounds, min_dist): for i in range(numloci - 1): - if genomicbounds[i][0] == genomicbounds[i + 1][0] and genomicbounds[i][3] == genomicbounds[i + 1][3] and abs( - genomicbounds[i][2] - genomicbounds[i + 1][1]) < 350000: - istooclose = True - return istooclose + if genomicbounds[i][0] == genomicbounds[i + 1][0] and genomicbounds[i][3] == genomicbounds[i + 1][3]: # chrom and strand are same + if genomicbounds[i][3] == '+' and 0 < genomicbounds[i + 1][1] - genomicbounds[i][2] < min_dist: + return True + # when in negative direction, bounds are flipped + elif genomicbounds[i][3] == '-' and 0 < genomicbounds[i][2] - genomicbounds[i + 1][1] < min_dist: + return True + return False def write_final_fusion_reads(readsfile, freadsfinal): last = False - temp = readsfile.split('.') - temp[-2] = 'fusionreads' - freads = open('.'.join(temp), 'w') + temp = readsfile.split('.prelim') + freads = open(''.join(temp), 'w') if readsfile.split('.')[-1] == 'fasta' or readsfile.split('.')[-1] == 'fa': for line in open(readsfile): @@ -176,7 +172,8 @@ def write_final_fusion_reads(readsfile, freadsfinal): last = True else: last = False - if last: freads.write(line) + if last: + freads.write(line) else: linecount = 0 for line in open(readsfile): @@ -186,46 +183,38 @@ def write_final_fusion_reads(readsfile, freadsfinal): last = True else: last = False - if last: freads.write(line) + if last: + freads.write(line) linecount += 1 freads.close() -def convert_synthetic_isos(annotgtf, isoformsbed, readmapfile, readsfile, breakpointfile, outname, paralogfile, maxpromiscuity): - +def convert_synthetic_isos(isoformsbed, readmapfile, readsfile, breakpointfile, outname, min_dist): + from flair.pycbio.hgdata.bed import BedReader isoreadsup = get_iso_to_reads(readmapfile) synthchrtoinfo = get_synth_info(breakpointfile) - genetoparalogs = get_paralog_ref(paralogfile) - genetoname = get_gene_name_conv(annotgtf) - locustopartners = identify_promiscuous_genes(isoformsbed, genetoparalogs) freadsfinal = set() out = open(outname, 'w') - for line in open(isoformsbed): - line = line.rstrip().split('\t') - iso, start, esizes, estarts = line[3], int(line[1]), [int(x) for x in line[10].rstrip(',').split(',')], [int(x) for x in line[11].rstrip(',').split(',')] - fusionchr = line[0] + for bed in BedReader(isoformsbed, fixScores=True): + iso, start = bed.name, bed.chromStart + esizes = [len(blk) for blk in bed.blocks] + estarts = [blk.start - start for blk in bed.blocks] + fusionchr = bed.chrom synthinfo = [x.split('..') for x in synthchrtoinfo[fusionchr].split('--')] synthinfo = [[y[0], y[1], int(y[2]), int(y[3])] for y in synthinfo] - is_good_fusion = identify_fusion_problems(fusionchr, locustopartners, maxpromiscuity, genetoname, genetoparalogs, synthinfo, isoreadsup[iso]) - - if is_good_fusion: - - locusbounds = get_locus_bounds(synthinfo) - if start < locusbounds[0][1] and locusbounds[-1][0] < int(line[2]): + locusbounds = get_locus_bounds(synthinfo) + if start < locusbounds[0][1] and locusbounds[-1][0] < bed.chromEnd: - numloci = len(synthinfo) - starts, exonindexes = separate_exons_by_locus(esizes, estarts, numloci, locusbounds, start) + numloci = len(synthinfo) + starts, exonindexes = separate_exons_by_locus(esizes, estarts, numloci, locusbounds, start) - if None not in starts: - genomicbounds, outlines = convert_to_genomic_coords(numloci, synthinfo, exonindexes, starts, locusbounds, esizes, estarts, start, iso) - if not check_too_close(numloci, genomicbounds): - for l in outlines: - out.write(l) - freadsfinal.update(isoreadsup[iso]) + if None not in starts: + genomicbounds, beds = convert_to_genomic_coords(numloci, synthinfo, exonindexes, starts, locusbounds, esizes, estarts, start, iso) + if not check_too_close(numloci, genomicbounds, min_dist): + for bed in beds: + bed.write(out) + freadsfinal.update(isoreadsup[iso]) out.close() write_final_fusion_reads(readsfile, freadsfinal) - - - diff --git a/src/flair/count_sam_transcripts.py b/src/flair/count_sam_transcripts.py index 2076a7be..957910e7 100755 --- a/src/flair/count_sam_transcripts.py +++ b/src/flair/count_sam_transcripts.py @@ -1,11 +1,19 @@ #!/usr/bin/env python3 import argparse +import logging import re import os +from dataclasses import dataclass, field from flair.remove_internal_priming import removeinternalpriming +import pipettor import pysam from flair import FlairInputDataError +from flair.pycbio.hgdata.bed import BedReader + + +_COUNT_SAM_TRANSCRIPTS_SCRIPT = os.path.realpath(__file__) + def parse_args(): parser = argparse.ArgumentParser(description='''for counting transcript abundances after @@ -15,51 +23,52 @@ def parse_args(): required.add_argument('-s', '--sam', type=argparse.FileType('r'), help='sam file or - for STDIN') required.add_argument('-o', '--output', default='counts.txt', help='output file name') parser.add_argument('-i', '--isoforms', - help='specify isoforms.bed file if --stringent and/or --check_splice is specified') + help='specify isoforms.bed file if --stringent and/or --check_splice is specified') parser.add_argument('--stringent', action='store_true', - help='only count if read alignment passes stringent criteria') + help='only count if read alignment passes stringent criteria') parser.add_argument('--check_splice', action='store_true', - help='''enforce coverage of 4 out of 6 bp around each splice site and no + help='''enforce coverage of 4 out of 6 bp around each splice site and no insertions greater than 3 bp at the splice site''') parser.add_argument('--trust_ends', action='store_true', - help='specify if reads are generated from a long read method with minimal fragmentation') + help='specify if reads are generated from a long read method with minimal fragmentation') parser.add_argument('-t', '--threads', default=4, type=int, - help='number of threads to use') + help='number of threads to use') parser.add_argument('--quality', default=0, type=int, - help='minimum quality threshold to consider if ends are to be trusted (0)') + help='minimum quality threshold to consider if ends are to be trusted (0)') parser.add_argument('--generate_map', - help='''specify an output path for a txt file of which isoform each read is assigned to''') + help='''specify an output path for a txt file of which isoform each read is assigned to''') parser.add_argument('--output_bam', help='''specify an output path for the bam file aligned to the transcriptome if desired''') parser.add_argument('--fusion_dist', - help='''minimium distance between separate read alignments on the same chromosome to be + help='''minimium distance between separate read alignments on the same chromosome to be considered a fusion, otherwise no reads will be assumed to be fusions''') parser.add_argument('--remove_internal_priming', default=False, action='store_true', - help='specify if want to remove reads with internal priming') + help='specify if want to remove reads with internal priming') parser.add_argument('--permissive_last_exons', default=False, action='store_true', - help='specify if want to allow reads with internal priming in last exon of transcripts (yes for annot, no for firstpass)') + help='specify if want to allow reads with internal priming in last exon of transcripts (yes for annot, no for firstpass)') parser.add_argument('--intprimingthreshold', type=int, default=12, - help='number of bases that are at leas 75%% As required to call read as internal priming') + help='number of bases that are at leas 75%% As required to call read as internal priming') parser.add_argument('--intprimingfracAs', type=float, default=0.6, - help='number of bases that are at leas 75%% As required to call read as internal priming') + help='number of bases that are at leas 75%% As required to call read as internal priming') parser.add_argument('--soft_clipping_buffer', type=int, default=50, - help='''number of acceptable bases for transcriptome alignment to increase softclipping by''') + help='''number of acceptable bases for transcriptome alignment to increase softclipping by''') parser.add_argument('--transcriptomefasta', - help='provide transcriptome fasta aligned to if --remove_internal_priming is specified') + help='provide transcriptome fasta aligned to if --remove_internal_priming is specified') parser.add_argument('--unique_bound', - help='text file with boundaries of unique sequence in isoforms that are a subset of other isoforms') + help='text file with boundaries of unique sequence in isoforms that are a subset of other isoforms') parser.add_argument('--fusion_breakpoints', - help='''[OPTIONAL] fusion detection only - bed file containing locations of fusion breakpoints on the synthetic genome''') + help='''[OPTIONAL] fusion detection only - bed file containing locations of fusion breakpoints on the synthetic genome''') parser.add_argument('--allow_paralogs', default=False, action='store_true', - help='specify if want to allow reads to be assigned to multiple paralogs with equivalent alignment') + help='specify if want to allow reads to be assigned to multiple paralogs with equivalent alignment') parser.add_argument('--allow_UTR_indels', default=False, action='store_true', - help='specify if want to allow reads to include indels in UTRs (more permissive for population variation + A to I editing)') + help='specify if want to allow reads to include indels in UTRs (more permissive for population variation + A to I editing)') parser.add_argument('--trimmedreads', - help='specify if your reads are properly trimmed and you want to remove alignments with too much softclipping at the ends (improves accuracy when possible). Provide a file of read to level of clipping when aligned to the genome.') + help='[requires file path] specify if your reads are properly trimmed and you want to remove alignments ' + 'with too much softclipping at the ends (improves accuracy when possible). Provide a file of read to level of clipping when aligned to the genome.') parser.add_argument('--end_norm_dist', type=int, default=0, help='specify the number of basepairs to extend transcript ends if you want to normalize them across transcripts in a gene and extend them') parser.add_argument('--output_endpos', - help='whether to output the genomic position of all read ends after transcriptomic alignment') + help='if desired, specify path to which to output the genomic position of all read ends after transcriptomic alignment') args = parser.parse_args() return args @@ -73,77 +82,104 @@ def check_args(args): return args -def get_annot_info(args): +MIN_INSERTION_LEN = 3 +HALF_SS_WINDOW_SIZE = 6 +NUM_MISTAKES_IN_SS_WINDOW = 2 +TRUST_ENDS_WINDOW = 50 +LARGE_INDEL_TOLDERANCE = 25 +REQ_BP_ALIGNED_IN_EDGE_EXONS = 6 # must be same or more than HALF_SS_WINDOW_SIZE + +@dataclass +class IsoformInfo: + """Per-transcript information parsed out of an isoforms BED (which is + upstream-derived from a GTF via gtf_to_bed).""" + transcript_to_exons: dict = field(default_factory=dict) + transcript_to_bp_ss_index: dict = field(default_factory=dict) + transcript_to_genomic_ends: dict = field(default_factory=dict) + transcript_to_unique_bounds: dict = field(default_factory=dict) + + +def read_isoforms_bed(*, isoforms, stringent=False, check_splice=False, # noqa: C901 - FIXME: reduce complexity + fusion_dist=False, fusion_breakpoints=None, + output_endpos=False, unique_bound=None): + """Read the isoforms BED (and optional unique-bound TSV) and build an + IsoformInfo with exon block sizes, genomic ends, fusion-breakpoint + splice-site indices, and unique-sequence boundaries per transcript.""" + info = IsoformInfo() chrtobp = {} - if args.fusion_breakpoints: - for line in open(args.fusion_breakpoints): - line = line.split('\t') - chr, pos = line[0], int(line[1]) - chrtobp[chr] = pos - - transcript_to_bp_ss_index = {} - transcript_to_exons = {} - transcript_to_genomic_ends = {} - transcript_to_unique_bounds = {} - if args.stringent or args.check_splice or args.fusion_dist or args.fusion_breakpoints or args.output_endpos: - for line in open(args.isoforms): - line = line.rstrip().split('\t') - name, left, right, chrom, strand = line[3], int(line[1]), int(line[2]), line[0], line[5] - if name[:10] == 'fusiongene': name = '_'.join(name.split('_')[1:]) - blocksizes = [int(n) for n in line[10].rstrip(',').split(',')] - if strand == '+': transcript_to_exons[name] = blocksizes - else: transcript_to_exons[name] = blocksizes[::-1] - transcript_to_genomic_ends[name] = (left, right, strand) - if args.fusion_breakpoints: - blockstarts = [int(n) for n in line[11].rstrip(',').split(',')] + if fusion_breakpoints: + for bed in BedReader(fusion_breakpoints, numStdCols=3): + chrtobp[bed.chrom] = bed.chromStart + + if stringent or check_splice or fusion_dist or fusion_breakpoints or output_endpos: + for bed in BedReader(isoforms, fixScores=True): + name, left, right, chrom, strand = bed.name, bed.chromStart, bed.chromEnd, bed.chrom, bed.strand + if name[:10] == 'fusiongene': + name = '_'.join(name.split('_')[1:]) + blocksizes = [len(blk) for blk in bed.blocks] + if strand == '+': + info.transcript_to_exons[name] = blocksizes + else: + info.transcript_to_exons[name] = blocksizes[::-1] + info.transcript_to_genomic_ends[name] = (left, right, strand) + if fusion_breakpoints: + blockstarts = [blk.start - left for blk in bed.blocks] bpindex = -1 for i in range(len(blocksizes) - 1): if left + blockstarts[i] + blocksizes[i] <= chrtobp[chrom] <= left + blockstarts[i + 1]: bpindex = i - if bpindex >= 0 and strand == '-': bpindex = (len(blocksizes)-2) - bpindex - transcript_to_bp_ss_index[name] = bpindex - if args.unique_bound: - for line in open(args.unique_bound): + if bpindex >= 0 and strand == '-': + bpindex = (len(blocksizes) - 2) - bpindex + info.transcript_to_bp_ss_index[name] = bpindex + if unique_bound: + for line in open(unique_bound): name, bounds = line.rstrip().split('\t') bounds = [x.split('_') for x in bounds.split(',')] leftbounds = [int(x[1]) for x in bounds if x[0] == '0'] rightbounds = [int(x[1]) for x in bounds if x[0] == '1'] - boundsdict = {'left':None, 'right':None} + boundsdict = {'left': None, 'right': None} if len(leftbounds) > 0: - boundsdict['left'] = transcript_to_exons[name][0] - max(leftbounds) + boundsdict['left'] = info.transcript_to_exons[name][0] - max(leftbounds) if len(rightbounds) > 0: - boundsdict['right'] = sum(transcript_to_exons[name][:-1]) + max(rightbounds) - transcript_to_unique_bounds[name] = boundsdict - + boundsdict['right'] = sum(info.transcript_to_exons[name][:-1]) + max(rightbounds) + info.transcript_to_unique_bounds[name] = boundsdict + return info - return transcript_to_exons, transcript_to_bp_ss_index, transcript_to_genomic_ends, transcript_to_unique_bounds def check_singleexon(read_start, read_end, tlen, end_norm_dist): - if read_end-read_start > (tlen/2)-end_norm_dist: ##must cover at least 50% of single exon transcript + """Decide whether a read covers enough of a single-exon transcript to be counted.""" + if read_end - read_start > (tlen / 2) - end_norm_dist: # must cover at least 50% of single exon transcript return True else: return False + def check_exonenddist(blocksize, read_edge, transcript_edge, trust_ends, disttoblock, unique_bound): + """Decide whether a read's alignment extends far enough into a terminal + exon, honoring trust_ends and unique-bound relaxations.""" if trust_ends: - return abs(transcript_edge-read_edge) <= TRUST_ENDS_WINDOW + return abs(transcript_edge - read_edge) <= TRUST_ENDS_WINDOW elif unique_bound: - if transcript_edge < read_edge: #left end of transcript - return unique_bound - read_edge >= min(REQ_BP_ALIGNED_IN_EDGE_EXONS, unique_bound-5) and disttoblock > abs(transcript_edge-read_edge) + if transcript_edge < unique_bound: # left end of transcript + return unique_bound - read_edge >= REQ_BP_ALIGNED_IN_EDGE_EXONS and disttoblock > abs(transcript_edge - read_edge) else: - return read_edge - unique_bound >= min(REQ_BP_ALIGNED_IN_EDGE_EXONS, (transcript_edge - unique_bound)-5) and disttoblock > abs(transcript_edge-read_edge) + return read_edge - unique_bound >= REQ_BP_ALIGNED_IN_EDGE_EXONS and disttoblock > abs(transcript_edge - read_edge) else: - return disttoblock >= min(REQ_BP_ALIGNED_IN_EDGE_EXONS, blocksize-5) + return disttoblock >= REQ_BP_ALIGNED_IN_EDGE_EXONS + def check_firstlastexon(first_blocksize, last_blocksize, read_start, read_end, tlen, trust_ends, unique_bound_left, unique_bound_right): - left_coverage = check_exonenddist(first_blocksize, read_start, 0, trust_ends, first_blocksize-read_start, unique_bound_left) + """Require the read to cover enough of both the first and last exons + of a multi-exon transcript.""" + left_coverage = check_exonenddist(first_blocksize, read_start, 0, trust_ends, first_blocksize - read_start, unique_bound_left) right_coverage = check_exonenddist(last_blocksize, read_end, tlen, trust_ends, read_end - (tlen - last_blocksize), unique_bound_right) return right_coverage and left_coverage def check_stringent(coveredpos, exonpos, tlen, blockstarts, blocksizes, trust_ends, tname, end_norm_dist, transcript_to_unique_bounds): - matchpos = len([x for x in coveredpos if x == 1]) + """Stringent-mode coverage test: single-exon transcripts need 50% + coverage; multi-exon transcripts need their terminal exons covered.""" # FIXME - could add back the 80% of the transcript rule - maybe as an option? needs further testing read_start, read_end = blockstarts[0], blockstarts[-1] + blocksizes[-1] first_blocksize, last_blocksize = exonpos[0], exonpos[-1] @@ -152,55 +188,63 @@ def check_stringent(coveredpos, exonpos, tlen, blockstarts, blocksizes, trust_en return check_singleexon(read_start, read_end, tlen, end_norm_dist) else: if tname in transcript_to_unique_bounds: - unique_bound_left = transcript_to_unique_bounds[tname]['left'] #can also be None + unique_bound_left = transcript_to_unique_bounds[tname]['left'] # can also be None unique_bound_right = transcript_to_unique_bounds[tname]['right'] - else: unique_bound_left, unique_bound_right = None, None return check_firstlastexon(first_blocksize, last_blocksize, read_start, read_end, tlen, trust_ends, unique_bound_left, unique_bound_right) + def check_splicesites(coveredpos, exonpos, tstart, tend, tname): + """Require that every splice site the read covers matches (within a + tolerance window) and that at least one splice site is covered.""" currpos = 0 allerrors = [] - all_ss_res = ['notcov' for x in range(len(exonpos)-1)] - for i in range(len(exonpos)-1): + all_ss_res = ['notcov' for x in range(len(exonpos) - 1)] + for i in range(len(exonpos) - 1): elen = exonpos[i] currpos += elen if tstart < currpos < tend: - ssvals = coveredpos[currpos - 6:currpos + 4] ##total size = 10, need to check indexing, seems off. This worked in a couple cases but is not systematically tested. - totinsert = sum([x-1 for x in ssvals if x > 1]) # value is match = 1 + insertsize - totmatch = sum([1 for x in ssvals if x >= 1]) # insert at pos still counts as match + ssvals = coveredpos[currpos - 6:currpos + 4] # total size = 10, need to check indexing, seems off. This worked in a couple cases but is not systematically tested. + totinsert = sum([x - 1 for x in ssvals if x > 1]) # value is match = 1 + insertsize + totmatch = sum([1 for x in ssvals if x >= 1]) # insert at pos still counts as match if tname == testtname: print(i, currpos, ssvals, totmatch, totinsert) - if totinsert + (len(ssvals)-totmatch) > NUM_MISTAKES_IN_SS_WINDOW: + if totinsert + (len(ssvals) - totmatch) > NUM_MISTAKES_IN_SS_WINDOW: # return False all_ss_res[i] = 0 else: all_ss_res[i] = 1 - allerrors.append(totinsert + (len(ssvals)-totmatch)) + allerrors.append(totinsert + (len(ssvals) - totmatch)) # Does cover at least one SJ, does not fail to match any junctions it covers return 0 not in all_ss_res and 1 in all_ss_res + def check_fusionbp(coveredpos, exonpos, tstart, tend, tname, transcript_to_bp_ss_index): + """Require that the read's alignment covers the fusion breakpoint splice + site of a fusion transcript with few mismatches in the window.""" if tname not in transcript_to_bp_ss_index or transcript_to_bp_ss_index[tname] == -1: return False else: eindex = transcript_to_bp_ss_index[tname] - currpos = sum(exonpos[:eindex+1]) + currpos = sum(exonpos[:eindex + 1]) if tstart < currpos < tend: ssvals = coveredpos[currpos - HALF_SS_WINDOW_SIZE:currpos + HALF_SS_WINDOW_SIZE] - totinsert = sum([x-1 for x in ssvals if x > 1]) # value is match = 1 + insertsize - totmatch = sum([1 for x in ssvals if x >= 1]) # insert at pos still counts as match + totinsert = sum([x - 1 for x in ssvals if x > 1]) # value is match = 1 + insertsize + totmatch = sum([1 for x in ssvals if x >= 1]) # insert at pos still counts as match if tname == testtname: - print(i, currpos, ssvals, totmatch, totinsert) - if totinsert + (len(ssvals)-totmatch) <= NUM_MISTAKES_IN_SS_WINDOW: + print(currpos, ssvals, totmatch, totinsert) + if totinsert + (len(ssvals) - totmatch) <= NUM_MISTAKES_IN_SS_WINDOW: return True return False -def get_matchvals(args, md): + +def get_matchvals(md, *, stringent, check_splice, fusion_breakpoints): + """Expand the MD tag into a per-reference-position vector of 1 (match) + and 0 (mismatch), used later to score splice-site windows.""" matchvals = [] - if args.stringent or args.check_splice or args.fusion_breakpoints: + if stringent or check_splice or fusion_breakpoints: mdblocks = re.findall(r'\d+|\D+', md) for b in mdblocks: if b[0] != '^': @@ -210,102 +254,194 @@ def get_matchvals(args, md): matchvals.append(0) return matchvals -def process_cigar(matchvals, cigarblocks, startpos, exoninfo, exon_bounds): + +def process_cigar(matchvals, cigarblocks, startpos, exoninfo, exon_bounds): # noqa: C901 - FIXME: reduce complexity + """Walk the CIGAR operations of a transcript alignment to build a + per-transcript-position coverage vector, collect query-side clipping, + record alignment block positions, and flag large indels outside the + terminal exons.""" matchpos = 0 coveredpos = [0] * (startpos - 1) - queryclipping = [] + query_clipping = [0, 0] tendpos = startpos blockstarts, blocksizes = [], [] if exoninfo: - lb, rb = exoninfo[0], sum(exoninfo)-exoninfo[-1] + # this allows indels in first/last exons + lb, rb = exoninfo[0], sum(exoninfo) - exoninfo[-1] + # this checks if transcript is a subset of a longer SJC and disallows first or last exon permissivity if exon_bounds: if exon_bounds['left']: - lb=0 + lb = 0 if exon_bounds['right']: rb = sum(exoninfo) else: lb, rb = None, None indel_detected = False - for btype, blen in cigarblocks: - if btype in {4,5}:# soft or hard clipping: - queryclipping.append(blen) - elif btype == 0: # match + for i, (btype, blen) in enumerate(cigarblocks): + if btype in (pysam.CSOFT_CLIP, pysam.CHARD_CLIP): + if i == 0: + query_clipping[0] = blen + else: + query_clipping[1] = blen + elif btype == pysam.CMATCH: coveredpos.extend(matchvals[matchpos:matchpos + blen]) blockstarts.append(tendpos) blocksizes.append(blen) matchpos += blen tendpos += blen - elif btype in {2,3}:# deletion or intron + elif btype in (pysam.CDEL, pysam.CREF_SKIP): coveredpos.extend([0] * blen) if blen > LARGE_INDEL_TOLDERANCE: if exoninfo: - if lb+1 < tendpos and tendpos+blen < rb-1: ##not in first or last exon + if lb + 1 < tendpos and tendpos + blen < rb - 1: # not in first or last exon indel_detected = True else: indel_detected = True tendpos += blen - # if blen > LARGE_INDEL_TOLDERANCE: return True, None, None, None, None, None - elif btype == 1: # insertion - if len(coveredpos) == 0: - coveredpos.append(blen) - else: + elif btype == pysam.CINS: + if len(coveredpos) > 0: coveredpos[-1] += blen if blen > LARGE_INDEL_TOLDERANCE: if exoninfo: - if lb+1 < tendpos < rb-1: ##not in first or last exon + if lb + 1 < tendpos < rb - 1: # not in first or last exon indel_detected = True else: indel_detected = True - # if blen > LARGE_INDEL_TOLDERANCE: return True, None, None, None, None, None - return indel_detected, coveredpos, queryclipping, blockstarts, blocksizes, tendpos + return indel_detected, coveredpos, query_clipping, blockstarts, blocksizes, tendpos + def check_transcript_in_annot(exondict, tname): + """Look up exon structure for a transcript name, raising a descriptive + error if the annotation and FASTA name sets disagree.""" try: exoninfo = exondict[tname] except KeyError: raise Exception( - f"The transcript name ({tname}) in the annotation fasta do not appear to match the ones in the isoforms file. You may be able to fix this by using gtf_to_bed and bed_to_sequence on your annotation gtf and using the resulting file as your annotation fasta input to this program") + f"The transcript name ({tname}) in the annotation fasta do not appear to match the ones in the isoforms file." + " You may be able to fix this by using gtf_to_bed and bedtools getfasta on your annotation gtf" + " and using the resulting file as your annotation fasta input to this program") except Exception as ex: raise Exception("** check_splice FAILED for %s" % (tname)) from ex return exoninfo -def check_stringentandsplice(args, exoninfo, tname, coveredpos, tlen, blockstarts, blocksizes, tstart, tend, transcript_to_bp_ss_index, transcript_to_unique_bounds): - passesstringent, passessplice, passesfusion = True, True, True - if args.stringent or args.check_splice or args.fusion_breakpoints: + +def check_stringent_and_splice(exoninfo, tname, coveredpos, tlen, blockstarts, blocksizes, tstart, tend, + transcript_to_bp_ss_index, transcript_to_unique_bounds, + *, stringent, check_splice, fusion_breakpoints, trust_ends, end_norm_dist): + """Combined filter: an alignment must pass the stringent coverage, splice-site, + and fusion-breakpoint checks that are enabled.""" + passes_stringent, passes_splice, passes_fusion = True, True, True + if stringent or check_splice or fusion_breakpoints: # single exon genes always get checked - passesstringent = check_stringent(coveredpos, exoninfo, tlen, blockstarts, blocksizes, - args.trust_ends, tname, args.end_norm_dist, - transcript_to_unique_bounds) if args.stringent or len(exoninfo) == 1 else True - #only run if spliced transcript - passessplice = check_splicesites(coveredpos, exoninfo, tstart, tend, tname) if args.check_splice and len(exoninfo) > 1 else True - passesfusion = check_fusionbp(coveredpos, exoninfo, tstart, tend, tname, transcript_to_bp_ss_index) if args.fusion_breakpoints else True + passes_stringent = check_stringent(coveredpos, exoninfo, tlen, blockstarts, blocksizes, + trust_ends, tname, end_norm_dist, + transcript_to_unique_bounds) if stringent or len(exoninfo) == 1 else True + # only run if spliced transcript + passes_splice = check_splicesites(coveredpos, exoninfo, tstart, tend, tname) if check_splice and len(exoninfo) > 1 else True + passes_fusion = check_fusionbp(coveredpos, exoninfo, tstart, tend, tname, transcript_to_bp_ss_index) if fusion_breakpoints else True if tname == testtname: - print(tname, passesstringent, passessplice) - return passesstringent and passessplice and passesfusion + print(tname, passes_stringent, passes_splice) + return passes_stringent and passes_splice and passes_fusion + testtname = 'none' -def identify_corrected_ends(exoninfo, startpos, endpos, transcript_to_genomic_ends, tname, output_endpos): + +def identify_corrected_ends(exoninfo, startpos, endpos, gtstrand, tname, output_endpos, tlen, query_clipping): + """Locate the intron-relative position of a read's start/end on its best + transcript so callers can translate transcript coords back to genome.""" left_intron_index, left_dist, right_intron_index, right_dist = None, None, None, None - #Can only correct read ends if assigned to spliced transcript - if output_endpos and len(exoninfo) > 1: - gtstrand = transcript_to_genomic_ends[tname][2] + left_end_dist, right_end_dist = None, None + left_clipping, right_clipping = None, None + if query_clipping: + # clipping has already been flipped for strand prior to being passed into here + left_clipping, right_clipping = query_clipping + # Can only correct read ends if assigned to spliced transcript + if len(exoninfo) > 1: currpos = 0 - for i in range(len(exoninfo)-1): + for i in range(len(exoninfo) - 1): elen = exoninfo[i] currpos += elen - if left_intron_index == None and startpos < currpos: + if left_intron_index is None and startpos < currpos: left_intron_index = i left_dist = currpos - startpos if currpos < endpos: right_intron_index = i right_dist = endpos - currpos + if left_intron_index == 0: + left_end_dist = startpos + if right_intron_index == len(exoninfo) - 2: + right_end_dist = tlen - endpos if gtstrand == '-': - left_intron_index, right_intron_index = (len(exoninfo)-2) - right_intron_index, (len(exoninfo)-2) - left_intron_index + left_intron_index, right_intron_index = (len(exoninfo) - 2) - right_intron_index, (len(exoninfo) - 2) - left_intron_index left_dist, right_dist = right_dist, left_dist - return left_intron_index, left_dist, right_intron_index, right_dist + left_end_dist, right_end_dist = right_end_dist, left_end_dist + else: + left_end_dist = startpos + right_end_dist = tlen - endpos + if gtstrand == '-': + left_end_dist, right_end_dist = right_end_dist, left_end_dist + return (left_intron_index, left_dist, left_end_dist, left_clipping), (right_intron_index, right_dist, right_end_dist, right_clipping) + +def return_best_transcript_stringent(passing_transcripts, genomicclipping, soft_clipping_buffer): + # check that any of the alignments have low clipping + # if there's no genomic clipping info, skip this first filter (will filter for minimum clipping later) + if genomicclipping is None or any([x[-2][3] < soft_clipping_buffer and x[-1][3] < soft_clipping_buffer for x in passing_transcripts]): + top_sj_cov = min([x[2] for x in passing_transcripts]) + passing_transcripts = [x for x in passing_transcripts if x[2] == top_sj_cov] + passes_end_qual = [] + clipping_min = sorted(passing_transcripts, key=lambda x: x[-2][3] + x[-1][3])[0] + clipping_min = (clipping_min[-2][3], clipping_min[-1][3]) + for t in passing_transcripts: + # check each end for either has minimum clipping, or has 0 distance to transcript end + # allowing wiggle room of 5, to allow for suboptimal alignment near transcript/read ends + if (t[-2][3] <= clipping_min[0] + 5 or t[-2][2] <= 5) and (t[-1][3] <= clipping_min[1] + 5 or t[-1][2] <= 5): + passes_end_qual.append(t) + else: + logging.debug(f"{rname} transcript alignment dropped: excess soft-clipping: {t[-3]}") + # sort by end distance, for each end is distance to transcript end plus soft clipping + passes_end_qual.sort(key=lambda x: x[-2][2] + x[-2][3] + x[-1][2] + x[-1][3]) + + return [passes_end_qual[0][-3:], ] + else: + logging.debug(f"{rname} read dropped: excess soft-clipping in all transcript alignments") + return None + +def filter_transcript_by_align_issue(passing_transcripts, rname, tname, indel_detected, exoninfo, thist, + coveredpos, blockstarts, blocksizes, tendpos, info, stringent, check_splice, + fusion_breakpoints, trust_ends, end_norm_dist, genomicclipping, soft_clipping_buffer, + query_clipping, matchvals, gtstrand, output_endpos): + if indel_detected: + logging.debug(f"{rname} transcript alignment dropped: indel detected: {tname}") + else: + if check_stringent_and_splice(exoninfo, thist.name, coveredpos, thist.tlen, blockstarts, blocksizes, + thist.startpos, tendpos, info.transcript_to_bp_ss_index, info.transcript_to_unique_bounds, + stringent=stringent, check_splice=check_splice, + fusion_breakpoints=fusion_breakpoints, + trust_ends=trust_ends, end_norm_dist=end_norm_dist): + # if not stringent, check soft clipping here, otherwise clipping gets incorporated into ends and checked later + # not stringent: don't check clipping here + # stringent, has genomic clipping info: check soft clipping + # stringent, no genomic clipping info: check clipping with extended buffer (double buffer) + if (not stringent and genomicclipping is not None and (query_clipping[0] < soft_clipping_buffer and query_clipping[1] < soft_clipping_buffer)) \ + or (not stringent and genomicclipping is None and (query_clipping[0] < soft_clipping_buffer * 2 and query_clipping[1] < soft_clipping_buffer * 2)) \ + or stringent: + left_end_info, right_end_info = identify_corrected_ends(exoninfo, thist.startpos, tendpos, gtstrand, tname, output_endpos, thist.tlen, query_clipping) + covered_sj = (right_end_info[0] + 1) - left_end_info[0] if left_end_info[0] is not None else 0 + passing_transcripts.append([-1 * thist.alignscore, -1 * sum(matchvals), -1 * covered_sj, sum(query_clipping), thist.tlen, tname, left_end_info, right_end_info]) + else: + logging.debug(f"{rname} transcript alignment dropped: excess soft clipping ({query_clipping} > {soft_clipping_buffer}): {tname}") + else: + logging.debug(f"{rname} transcript alignment dropped: failed stringent/splice check: {tname}") -def get_best_transcript(tinfo, args, transcript_to_exons, transcript_to_bp_ss_index, genomicclipping, transcript_to_genomic_ends, transcript_to_unique_bounds): + +def get_best_transcript(tinfo, info, genomicclipping, + *, stringent, check_splice, fusion_breakpoints, allow_UTR_indels, + trimmedreads, soft_clipping_buffer, output_endpos, + trust_ends, end_norm_dist, rname): + """Given all transcript alignments for a single read, apply the filtering + checks and return the single best assignment (or None if none qualify or + the top two tie).""" # parse CIGAR + MD tag to ID transcript pos covered by alignment # get start + end of transcript on read, alignment block positions # also save soft/hard clipping at ends of read @@ -313,41 +449,52 @@ def get_best_transcript(tinfo, args, transcript_to_exons, transcript_to_bp_ss_in # not positions of insertions larger than MIN_INSERTION_LEN, apply those to check_splice # filter out reads with long indels # generate list of 0s and 1s - transcript pos with match to query, val > 1 = insertion - passingtranscripts = [] + passing_transcripts = [] for tname in tinfo: thist = tinfo[tname] # process MD tag here to query positions with mismatches # for MD tag, keep track of position of mismatch in all match positions - if args.stringent or args.check_splice or args.fusion_breakpoints: - exoninfo = check_transcript_in_annot(transcript_to_exons, tname) + if stringent or check_splice or fusion_breakpoints: + exoninfo = check_transcript_in_annot(info.transcript_to_exons, tname) else: exoninfo = None - matchvals = get_matchvals(args, thist.md) - terminal_exon_info = exoninfo if args.allow_UTR_indels else None - terminal_exon_bounds = transcript_to_unique_bounds[thist.name] if thist.name in transcript_to_unique_bounds else None - indel_detected, coveredpos, queryclipping, blockstarts, blocksizes, tendpos = process_cigar(matchvals, thist.cigar, thist.startpos, terminal_exon_info, terminal_exon_bounds) - if tname == testtname: - print('indel', indel_detected) - if not indel_detected and (not args.trimmedreads or genomicclipping == None or sum(queryclipping) <= genomicclipping+args.soft_clipping_buffer): - if check_stringentandsplice(args, exoninfo, thist.name, coveredpos, thist.tlen, blockstarts, blocksizes, thist.startpos, tendpos, transcript_to_bp_ss_index, transcript_to_unique_bounds): - left_intron_index, left_dist, right_intron_index, right_dist = identify_corrected_ends(exoninfo, thist.startpos, tendpos, transcript_to_genomic_ends, tname, args.output_endpos) - passingtranscripts.append([-1 * thist.alignscore, -1 * sum(matchvals), sum(queryclipping), thist.tlen, tname, (left_intron_index, left_dist), (right_intron_index, right_dist)]) - + matchvals = get_matchvals(thist.md, stringent=stringent, check_splice=check_splice, + fusion_breakpoints=fusion_breakpoints) + terminal_exon_info = exoninfo if allow_UTR_indels else None + terminal_exon_bounds = info.transcript_to_unique_bounds[thist.name] if thist.name in info.transcript_to_unique_bounds else None - # order passing transcripts by alignment score - # then order by amount of query covered - # then order by amount of transcript covered - if len(passingtranscripts) > 0: - passingtranscripts.sort() + indel_detected, coveredpos, query_clipping, blockstarts, blocksizes, tendpos = process_cigar(matchvals, thist.cigar, thist.startpos, terminal_exon_info, terminal_exon_bounds) + gtstrand = info.transcript_to_genomic_ends[tname][2] - if len(passingtranscripts) == 1 or passingtranscripts[0][:3] != passingtranscripts[1][:3]: - return [passingtranscripts[0][-3:], ] + # correcting clipping values to subtract out genomic clipping + if gtstrand == '-': + query_clipping = query_clipping[::-1] + # FIXME: If count sam transcripts is run without genomic clipping input (eg from quantify), will not check clipping as stringently, need to evaluate how this impacts performance + if genomicclipping: + query_clipping = [query_clipping[x] - genomicclipping[x] for x in range(2)] + + filter_transcript_by_align_issue(passing_transcripts, rname, tname, indel_detected, exoninfo, thist, + coveredpos, blockstarts, blocksizes, tendpos, info, stringent, check_splice, + fusion_breakpoints, trust_ends, end_norm_dist, genomicclipping, soft_clipping_buffer, + query_clipping, matchvals, gtstrand, output_endpos) + + if len(passing_transcripts) > 0: + # if not stringent, report top transcript, even if there's ties (assume just want SJ + ends correction, don't need exactly correct transcript) + # order passing transcripts by alignment score + # then order by amount of query covered + # then order by amount of transcript covered + if not stringent: + passing_transcripts.sort() + return [passing_transcripts[0][-3:], ] else: - return None + return return_best_transcript_stringent(passing_transcripts, genomicclipping, soft_clipping_buffer) + else: + logging.debug(f"{rname} read dropped: no transcripts passed filters") + return None - else: return None class IsoAln(object): + """Alignment fields needed to score one transcript alignment of one read.""" def __init__(self, name=None, p=None, cigar=None, tlen=None, als=None, md=None): self.name = name self.startpos = p @@ -356,96 +503,225 @@ def __init__(self, name=None, p=None, cigar=None, tlen=None, als=None, md=None): self.alignscore = als self.md = md -def parse_sam(args, transcript_to_exons, transcript_to_bp_ss_index, transcript_to_genomic_ends, readstoclipping, transcript_to_unique_bounds): + +def parse_sam(sam, info, readstoclipping, # noqa: C901 - FIXME: reduce complexity + *, quality, remove_internal_priming, transcriptomefasta, + permissive_last_exons, intprimingthreshold, intprimingfracAs, + stringent, check_splice, fusion_breakpoints, allow_UTR_indels, + trimmedreads, soft_clipping_buffer, output_endpos, + trust_ends, end_norm_dist): + """Iterate the SAM stream, group alignments per read, call get_best_transcript, + and accumulate {transcript: [(read, gt_start, gt_end), ...]}.""" lastread = None curr_transcripts = {} - transcripttoreads = {} - samfile = pysam.AlignmentFile(args.sam, 'r') + transcript_to_reads = {} + samfile = pysam.AlignmentFile(sam, 'r') genome = None - if args.remove_internal_priming: - genome = pysam.FastaFile(args.transcriptomefasta) + if remove_internal_priming: + genome = pysam.FastaFile(transcriptomefasta) for read in samfile: - if read.is_mapped: + if not read.is_mapped: + logging.debug(f"read dropped: unmapped: {read.query_name}") + else: readname = read.query_name transcript = read.reference_name - quality = read.mapping_quality - if quality >= args.quality: + rquality = read.mapping_quality + if rquality < quality: + logging.debug(f"read dropped: low quality ({rquality} < {quality}): {readname}") + elif rquality >= quality: # for transcriptome alignment, always take rightmost side on transcript - if args.remove_internal_priming: - intprimannot = transcript_to_exons if args.permissive_last_exons else None - notinternalpriming = removeinternalpriming(read.reference_name, - read.reference_start, - read.reference_end, False, - genome, None, intprimannot, - args.intprimingthreshold, - args.intprimingfracAs) - else: notinternalpriming = True - if notinternalpriming: + if remove_internal_priming: + intprim_annot = info.transcript_to_exons if permissive_last_exons else None + not_internal_priming = removeinternalpriming(read.reference_name, + read.reference_start, + read.reference_end, False, + genome, None, intprim_annot, + intprimingthreshold, + intprimingfracAs) + else: + not_internal_priming = True + if not not_internal_priming: + logging.debug(f"read dropped: internal priming on {transcript}: {readname}") + else: pos = read.reference_start try: alignscore = read.get_tag('AS') mdtag = read.get_tag('MD') except KeyError as ex: - raise Exception(f"Missing AS or MD tag in alignment of '{read.query_name}' in '{args.sam.name}'") from ex + raise Exception(f"Missing AS or MD tag in alignment of '{read.query_name}'") from ex cigar = read.cigartuples tlen = samfile.get_reference_length(transcript) if lastread and readname != lastread: - if testtname in curr_transcripts: print('\n', lastread, curr_transcripts.keys()) - thisclipping = readstoclipping[lastread] if lastread in readstoclipping else None - assignedts = get_best_transcript(curr_transcripts, args, transcript_to_exons, transcript_to_bp_ss_index, thisclipping, transcript_to_genomic_ends, transcript_to_unique_bounds) - if assignedts: + if testtname in curr_transcripts: + print('\n', lastread, curr_transcripts.keys()) + clipping = readstoclipping[lastread] if lastread in readstoclipping else None + assignedts = get_best_transcript(curr_transcripts, info, clipping, + stringent=stringent, check_splice=check_splice, + fusion_breakpoints=fusion_breakpoints, + allow_UTR_indels=allow_UTR_indels, + trimmedreads=trimmedreads, + soft_clipping_buffer=soft_clipping_buffer, + output_endpos=output_endpos, + trust_ends=trust_ends, end_norm_dist=end_norm_dist, rname=lastread) + if not assignedts: + logging.debug(f"read dropped: no passing transcript assignment: {lastread}") + else: for assignedt, gtstart, gtend in assignedts: - if assignedt not in transcripttoreads: transcripttoreads[assignedt] = [] - transcripttoreads[assignedt].append((lastread, gtstart, gtend)) + if assignedt not in transcript_to_reads: + transcript_to_reads[assignedt] = [] + transcript_to_reads[assignedt].append((lastread, gtstart, gtend)) curr_transcripts = {} curr_transcripts[transcript] = IsoAln(transcript, pos, cigar, tlen, alignscore, mdtag) lastread = readname if lastread: - thisclipping = readstoclipping[lastread] if lastread in readstoclipping else None - assignedts = get_best_transcript(curr_transcripts, args, transcript_to_exons, transcript_to_bp_ss_index, thisclipping, transcript_to_genomic_ends, transcript_to_unique_bounds) - if assignedts: + clipping = readstoclipping[lastread] if lastread in readstoclipping else None + assignedts = get_best_transcript(curr_transcripts, info, clipping, + stringent=stringent, check_splice=check_splice, + fusion_breakpoints=fusion_breakpoints, + allow_UTR_indels=allow_UTR_indels, + trimmedreads=trimmedreads, + soft_clipping_buffer=soft_clipping_buffer, + output_endpos=output_endpos, + trust_ends=trust_ends, end_norm_dist=end_norm_dist, rname=lastread) + if not assignedts: + logging.debug(f"read dropped: no passing transcript assignment: {lastread}") + else: for assignedt, gtstart, gtend in assignedts: - if assignedt not in transcripttoreads: transcripttoreads[assignedt] = [] - transcripttoreads[assignedt].append((lastread, gtstart, gtend)) + if assignedt not in transcript_to_reads: + transcript_to_reads[assignedt] = [] + transcript_to_reads[assignedt].append((lastread, gtstart, gtend)) + + return transcript_to_reads - return transcripttoreads def write_output(args, transcripttoreads): if args.output_endpos: endout = open(args.output_endpos, 'w') - if args.generate_map: mapout = open(args.generate_map, 'w') + if args.generate_map: + mapout = open(args.generate_map, 'w') countout = open(args.output, 'wt') for t in transcripttoreads: - # print(t, transcripttoreads[t]) if args.generate_map: mapout.write(t + '\t' + ','.join([x[0] for x in transcripttoreads[t]]) + '\n') countout.write(t + '\t' + str(len(transcripttoreads[t])) + '\n') if args.output_endpos: for r, s, e in transcripttoreads[t]: - if s[0] != None: - endout.write('\t'.join([str(x) for x in [r, t, s[0], s[1], e[0], e[1]]]) + '\n') + endout.write('\t'.join([str(x) for x in [r, t, s[0], s[1], s[2], e[0], e[1], e[2]]]) + '\n') if args.output_endpos: endout.close() -MIN_INSERTION_LEN = 3 -HALF_SS_WINDOW_SIZE = 6 -NUM_MISTAKES_IN_SS_WINDOW = 2 -TRUST_ENDS_WINDOW = 50 -LARGE_INDEL_TOLDERANCE = 25 -REQ_BP_ALIGNED_IN_EDGE_EXONS = 10 +def build_count_sam_transcripts_cmd(*, output, sam='-', threads=4, quality=0, # noqa: C901 - linear function okay + isoforms=None, stringent=False, check_splice=False, + trust_ends=False, generate_map=None, output_bam=None, + fusion_dist=None, remove_internal_priming=False, + permissive_last_exons=False, intprimingthreshold=12, + intprimingfracAs=0.6, soft_clipping_buffer=50, + transcriptomefasta=None, unique_bound=None, + fusion_breakpoints=None, allow_paralogs=False, + allow_UTR_indels=False, trimmedreads=None, + end_norm_dist=0, output_endpos=None): + """Build count_sam_transcripts.py argv.""" + # FIXNE: default values should be centralized + cmd = ['python3', _COUNT_SAM_TRANSCRIPTS_SCRIPT, + '--sam', str(sam), '-o', str(output), + '--quality', str(quality)] + if threads != 4: + cmd += ['-t', str(threads)] + if isoforms: + cmd += ['-i', str(isoforms)] + if stringent: + cmd.append('--stringent') + if check_splice: + cmd.append('--check_splice') + if trust_ends: + cmd.append('--trust_ends') + if generate_map: + cmd += ['--generate_map', str(generate_map)] + if output_bam: + cmd += ['--output_bam', str(output_bam)] + if fusion_dist: + cmd += ['--fusion_dist', str(fusion_dist)] + if remove_internal_priming: + cmd += ['--remove_internal_priming', + '--intprimingthreshold', str(intprimingthreshold), + '--intprimingfracAs', str(intprimingfracAs)] + if transcriptomefasta: + cmd += ['--transcriptomefasta', str(transcriptomefasta)] + if permissive_last_exons: + cmd.append('--permissive_last_exons') + if soft_clipping_buffer != 50: + cmd += ['--soft_clipping_buffer', str(soft_clipping_buffer)] + if unique_bound: + cmd += ['--unique_bound', str(unique_bound)] + if fusion_breakpoints: + cmd += ['--fusion_breakpoints', str(fusion_breakpoints)] + if allow_paralogs: + cmd.append('--allow_paralogs') + if allow_UTR_indels: + cmd.append('--allow_UTR_indels') + if trimmedreads: + cmd += ['--trimmedreads', str(trimmedreads)] + if end_norm_dist: + cmd += ['--end_norm_dist', str(end_norm_dist)] + if output_endpos: + cmd += ['--output_endpos', str(output_endpos)] + return cmd + + +def run_count_sam_transcripts(*, output, mm2_cmd=None, sam='-', threads=4, quality=0, + isoforms=None, stringent=False, check_splice=False, + trust_ends=False, generate_map=None, output_bam=None, + fusion_dist=None, remove_internal_priming=False, + permissive_last_exons=False, intprimingthreshold=12, + intprimingfracAs=0.6, soft_clipping_buffer=50, + transcriptomefasta=None, unique_bound=None, + fusion_breakpoints=None, allow_paralogs=False, + allow_UTR_indels=False, trimmedreads=None, + end_norm_dist=0, output_endpos=None): + """Run count_sam_transcripts.py; if mm2_cmd given, pipe its stdout in as SAM.""" + cmd = build_count_sam_transcripts_cmd( + output=output, sam=sam, threads=threads, quality=quality, + isoforms=isoforms, stringent=stringent, check_splice=check_splice, + trust_ends=trust_ends, generate_map=generate_map, output_bam=output_bam, + fusion_dist=fusion_dist, remove_internal_priming=remove_internal_priming, + permissive_last_exons=permissive_last_exons, + intprimingthreshold=intprimingthreshold, intprimingfracAs=intprimingfracAs, + soft_clipping_buffer=soft_clipping_buffer, + transcriptomefasta=transcriptomefasta, unique_bound=unique_bound, + fusion_breakpoints=fusion_breakpoints, allow_paralogs=allow_paralogs, + allow_UTR_indels=allow_UTR_indels, trimmedreads=trimmedreads, + end_norm_dist=end_norm_dist, output_endpos=output_endpos) + pipeline = [mm2_cmd, cmd] if mm2_cmd else [cmd] + pipettor.run(pipeline) + if __name__ == '__main__': args = parse_args() args = check_args(args) - transcript_to_exons, transcript_to_bp_ss_index, transcript_to_genomic_ends, transcript_to_unique_bounds = get_annot_info(args) + info = read_isoforms_bed( + isoforms=args.isoforms, stringent=args.stringent, check_splice=args.check_splice, + fusion_dist=args.fusion_dist, fusion_breakpoints=args.fusion_breakpoints, + output_endpos=args.output_endpos, unique_bound=args.unique_bound) readstoclipping = {} if args.trimmedreads: for line in open(args.trimmedreads): - rname, clipping = line.rstrip().split('\t') - readstoclipping[rname] = int(clipping) - transcripttoreads = parse_sam(args, transcript_to_exons, transcript_to_bp_ss_index, transcript_to_genomic_ends, readstoclipping, transcript_to_unique_bounds) - write_output(args, transcripttoreads) + rname, left_clipping, right_clipping = line.rstrip().split('\t') + readstoclipping[rname] = [int(left_clipping), int(right_clipping)] + transcript_to_reads = parse_sam(args.sam, info, readstoclipping, + quality=args.quality, remove_internal_priming=args.remove_internal_priming, + transcriptomefasta=args.transcriptomefasta, + permissive_last_exons=args.permissive_last_exons, + intprimingthreshold=args.intprimingthreshold, + intprimingfracAs=args.intprimingfracAs, + stringent=args.stringent, check_splice=args.check_splice, + fusion_breakpoints=args.fusion_breakpoints, + allow_UTR_indels=args.allow_UTR_indels, + trimmedreads=args.trimmedreads, + soft_clipping_buffer=args.soft_clipping_buffer, + output_endpos=args.output_endpos, + trust_ends=args.trust_ends, end_norm_dist=args.end_norm_dist) + write_output(args, transcript_to_reads) diff --git a/src/flair/counts_to_tpm.py b/src/flair/counts_to_tpm.py index f33a8aa2..b1509ad6 100755 --- a/src/flair/counts_to_tpm.py +++ b/src/flair/counts_to_tpm.py @@ -12,10 +12,10 @@ sizefile = open(sys.argv[3]) else: sizefile = '' -except: +except Exception: raise FlairInputDataError('usage: counts_to_tpm.py counts_matrix.tsv count_matrix.tpm.tsv [iso.sizes]\n' - 'convenience script for obtaining a file of isoform sizes: bin/fasta_seq_lengths.py\n' - 'if no isoform size file is provided, no length normalization will be done (just reads per million)\n') + 'convenience script for obtaining a file of isoform sizes: bin/fasta_seq_lengths.py\n' + 'if no isoform size file is provided, no length normalization will be done (just reads per million)\n') sizes = {} if sizefile: @@ -31,19 +31,19 @@ line = line.rstrip().split('\t') isoform_id = line[0] if sizes: - rpk = [float(count)/sizes[isoform_id] for count in line[1:]] + rpk = [float(count) / sizes[isoform_id] for count in line[1:]] else: rpk = [float(count) for count in line[1:]] for n in range(num_samples): all_rpk[n] += rpk[n] matrix_data += [[isoform_id] + rpk] -all_rpk = [rpk/1e6 for rpk in all_rpk] +all_rpk = [rpk / 1e6 for rpk in all_rpk] with open(outfilename, 'wt') as outfile: writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) writer.writerow(matrix_data[0]) for line in matrix_data[1:]: for n in range(num_samples): - line[n+1] = line[n+1]/all_rpk[n] + line[n + 1] = line[n + 1] / all_rpk[n] writer.writerow(line) diff --git a/src/flair/diff_iso_usage.py b/src/flair/diff_iso_usage.py index a4b1e36e..121c15e0 100755 --- a/src/flair/diff_iso_usage.py +++ b/src/flair/diff_iso_usage.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 import argparse -import sys import csv import os import scipy.stats as sps @@ -28,26 +27,26 @@ def parse_args(): def split_iso_gene(iso_gene): if '_chr' in iso_gene: iso = iso_gene[:iso_gene.rfind('_chr')] - gene = iso_gene[iso_gene.rfind('_chr')+1:] + gene = iso_gene[iso_gene.rfind('_chr') + 1:] elif '_XM' in iso_gene: iso = iso_gene[:iso_gene.rfind('_XM')] - gene = iso_gene[iso_gene.rfind('_XM')+1:] + gene = iso_gene[iso_gene.rfind('_XM') + 1:] elif '_XR' in iso_gene: iso = iso_gene[:iso_gene.rfind('_XR')] - gene = iso_gene[iso_gene.rfind('_XR')+1:] + gene = iso_gene[iso_gene.rfind('_XR') + 1:] elif '_NM' in iso_gene: iso = iso_gene[:iso_gene.rfind('_NM')] - gene = iso_gene[iso_gene.rfind('_NM')+1:] + gene = iso_gene[iso_gene.rfind('_NM') + 1:] elif '_NR' in iso_gene: iso = iso_gene[:iso_gene.rfind('_NR')] - gene = iso_gene[iso_gene.rfind('_NR')+1:] + gene = iso_gene[iso_gene.rfind('_NR') + 1:] else: iso = iso_gene[:iso_gene.rfind('_')] - gene = iso_gene[iso_gene.rfind('_')+1:] + gene = iso_gene[iso_gene.rfind('_') + 1:] return iso, gene -def diff_iso_usage(counts_matrix_tsv, colname1, colname2, outfilename): +def diff_iso_usage(counts_matrix_tsv, colname1, colname2, outfilename): # noqa: C901 - FIXME: reduce complexity counts_matrix_fh = open(counts_matrix_tsv) header = counts_matrix_fh.readline().rstrip().split('\t') @@ -65,8 +64,9 @@ def diff_iso_usage(counts_matrix_tsv, colname1, colname2, outfilename): line = line.rstrip().split('\t') iso_gene, count1, count2 = line[0], float(line[col1]), float(line[col2]) if '_' not in iso_gene: - raise FlairInputDataError('Incorrect isoform names: Please run identify_annotated_gene first so that \n' - 'isoforms can be grouped by their parent genes\n') + raise FlairInputDataError( + 'Incorrect isoform names: Please run identify_annotated_gene first so that \n' + 'isoforms can be grouped by their parent genes\n') iso, gene = split_iso_gene(iso_gene) if gene not in counts: counts[gene] = {} @@ -91,16 +91,15 @@ def diff_iso_usage(counts_matrix_tsv, colname1, colname2, outfilename): else: s1PSI, s2PSI, deltaPSI = 'NA', 'NA', 'NA' if ctable[1][0] + ctable[0][0] > 0: - s1PSI = round(ctable[0][0]/(ctable[1][0] + ctable[0][0]), 3) + s1PSI = round(ctable[0][0] / (ctable[1][0] + ctable[0][0]), 3) if ctable[1][1] + ctable[0][1] > 0: - s2PSI = round(ctable[0][1]/(ctable[1][1] + ctable[0][1]), 3) + s2PSI = round(ctable[0][1] / (ctable[1][1] + ctable[0][1]), 3) if s1PSI != 'NA' and s2PSI != 'NA': - deltaPSI = round(s2PSI-s1PSI, 3) + deltaPSI = round(s2PSI - s1PSI, 3) psi_data = [s1PSI, s2PSI, deltaPSI] generes.append([gene, iso, sps.fisher_exact(ctable)[1]] + ctable[0] + ctable[1] + psi_data) - # if not generes: # writer.writerow([gene, iso, 'NA'] + ctable[0] + ctable[1] + psi_data) # continue @@ -114,5 +113,6 @@ def main(): with cli.ErrorHandler(): diff_iso_usage(args.counts_matrix_tsv, args.colname1, args.colname2, args.outfile) + if __name__ == '__main__': main() diff --git a/src/flair/diffsplice_fishers_exact.py b/src/flair/diffsplice_fishers_exact.py index 7a5fbe80..93bd7243 100755 --- a/src/flair/diffsplice_fishers_exact.py +++ b/src/flair/diffsplice_fishers_exact.py @@ -6,41 +6,48 @@ import scipy.stats as sps from flair import FlairInputDataError -try: - events_quant = open(sys.argv[1]) - colname1 = sys.argv[2] - colname2 = sys.argv[3] - outfilename = sys.argv[4] -except: - raise FlairInputDataError('usage: diffsplice_fishers_exact events.quant.tsv colname1 colname2 out.fishers.tsv') - -header = events_quant.readline().rstrip().split('\t') - -if colname1 in header: - col1 = header.index(colname1) -else: - raise FlairInputDataError('Could not find {} in {}\n'.format(colname1, ' '.join(header))) - -if colname2 in header: - col2 = header.index(colname2) -else: - raise FlairInputDataError('Could not find {} in {}\n'.format(colname2, ' '.join(header))) - -events = {} -for line in events_quant: - line = line.rstrip().split('\t') - feature = line[0][line[0].find('_')+1:] - if feature not in events: - events[feature] = {} - events[feature]['entries'] = [] - events[feature]['counts'] = [] - events[feature]['entries'] += [line] - events[feature]['counts'] += [[float(line[col1]), float(line[col2])]] - -features_sorted = sorted(events.keys()) -with open(outfilename, 'wt') as outfile: - writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - writer.writerow(header+[colname1+'-'+colname2+'_pval']) - for feature in features_sorted: - for line in events[feature]['entries']: - writer.writerow(line + [sps.fisher_exact(events[feature]['counts'])[1]]) +# FIXME: use argparse + +def main(): + try: + events_quant = open(sys.argv[1]) + colname1 = sys.argv[2] + colname2 = sys.argv[3] + outfilename = sys.argv[4] + except Exception: + raise FlairInputDataError('usage: diffsplice_fishers_exact events.quant.tsv colname1 colname2 out.fishers.tsv') + + header = events_quant.readline().rstrip().split('\t') + + if colname1 in header: + col1 = header.index(colname1) + else: + raise FlairInputDataError('Could not find {} in {}\n'.format(colname1, ' '.join(header))) + + if colname2 in header: + col2 = header.index(colname2) + else: + raise FlairInputDataError('Could not find {} in {}\n'.format(colname2, ' '.join(header))) + + events = {} + for line in events_quant: + line = line.rstrip().split('\t') + feature = line[0][line[0].find('_') + 1:] + if feature not in events: + events[feature] = {} + events[feature]['entries'] = [] + events[feature]['counts'] = [] + events[feature]['entries'] += [line] + events[feature]['counts'] += [[float(line[col1]), float(line[col2])]] + + features_sorted = sorted(events.keys()) + with open(outfilename, 'wt') as outfile: + writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) + writer.writerow(header + [colname1 + '-' + colname2 + '_pval']) + for feature in features_sorted: + for line in events[feature]['entries']: + writer.writerow(line + [sps.fisher_exact(events[feature]['counts'])[1]]) + + +if __name__ == "__main__": + main() diff --git a/src/flair/es_as.py b/src/flair/es_as.py index adc68655..dc4fd24d 100755 --- a/src/flair/es_as.py +++ b/src/flair/es_as.py @@ -16,23 +16,23 @@ def __init__(self, geneID=None, chromosome=None, strand=None): else: self.acceptor, self.donor = 1, 0 - def buildGraph(self): + def buildGraph(self): # noqa: C901 - FIXME: reduce complexity self.exonGraph = dict() self.knownJuncs = dict() self.spliceSites = dict() isos = sorted(list(self.isoforms.keys())) for i in isos: - for num,j in enumerate(self.isoforms[i]): - acceptor,donor = j[self.acceptor],j[self.donor] + for num, j in enumerate(self.isoforms[i]): + acceptor, donor = j[self.acceptor], j[self.donor] if num == 1 and len(self.isoforms[i]) == 2: # two-exon isoform, only add the splice junction and not the exons if acceptor not in self.spliceSites: - self.spliceSites[acceptor] = SpliceSite(acceptor,"acceptor") - previousDonor = self.isoforms[i][num-1][self.donor] + self.spliceSites[acceptor] = SpliceSite(acceptor, "acceptor") + previousDonor = self.isoforms[i][num - 1][self.donor] if previousDonor not in self.spliceSites: - self.spliceSites[previousDonor] = SpliceSite(previousDonor,"donor") + self.spliceSites[previousDonor] = SpliceSite(previousDonor, "donor") j1 = (self.spliceSites[previousDonor], self.spliceSites[acceptor]) if j1 not in self.knownJuncs: self.knownJuncs[j1] = set() @@ -42,29 +42,29 @@ def buildGraph(self): # first or last exons cannot be skipped, continue continue - previousDonor = self.isoforms[i][num-1][self.donor] - nextAcceptor = self.isoforms[i][num+1][self.acceptor] + previousDonor = self.isoforms[i][num - 1][self.donor] + nextAcceptor = self.isoforms[i][num + 1][self.acceptor] if acceptor not in self.spliceSites: - self.spliceSites[acceptor] = SpliceSite(acceptor,"acceptor") + self.spliceSites[acceptor] = SpliceSite(acceptor, "acceptor") if donor not in self.spliceSites: - self.spliceSites[donor] = SpliceSite(donor,"donor") + self.spliceSites[donor] = SpliceSite(donor, "donor") if nextAcceptor not in self.spliceSites: - self.spliceSites[nextAcceptor] = SpliceSite(nextAcceptor,"acceptor") + self.spliceSites[nextAcceptor] = SpliceSite(nextAcceptor, "acceptor") if previousDonor not in self.spliceSites: - self.spliceSites[previousDonor] = SpliceSite(previousDonor,"donor") + self.spliceSites[previousDonor] = SpliceSite(previousDonor, "donor") - acceptor,donor = self.spliceSites[acceptor], self.spliceSites[donor] + acceptor, donor = self.spliceSites[acceptor], self.spliceSites[donor] previousDonor = self.spliceSites[previousDonor] nextAcceptor = self.spliceSites[nextAcceptor] - exon = tuple(sorted([acceptor.name,donor.name])) + exon = tuple(sorted([acceptor.name, donor.name])) if exon not in self.exonGraph: - self.exonGraph[exon] = Exon(exon,acceptor,donor) + self.exonGraph[exon] = Exon(exon, acceptor, donor) - self.exonGraph[exon].inclusionJuncs.add(((previousDonor,acceptor),(donor,nextAcceptor))) + self.exonGraph[exon].inclusionJuncs.add(((previousDonor, acceptor), (donor, nextAcceptor))) - j1,j2 = (previousDonor,acceptor), (donor,nextAcceptor) + j1, j2 = (previousDonor, acceptor), (donor, nextAcceptor) if j1 not in self.knownJuncs: self.knownJuncs[j1] = set() if j2 not in self.knownJuncs: @@ -72,30 +72,28 @@ def buildGraph(self): self.knownJuncs[j1].add(i) self.knownJuncs[j2].add(i) - def findSkippedExonsV1(self): ''' ''' - for e,obj in self.exonGraph.items(): - donor,acceptor = obj.donor, obj.acceptor + for e, obj in self.exonGraph.items(): + donor, acceptor = obj.donor, obj.acceptor if donor is None or acceptor is None: # first or last exon continue inclusionIsos = set() exclusionIsos = set() for juncs in obj.inclusionJuncs: - j1,j2 = juncs + j1, j2 = juncs if j1 in self.knownJuncs and j2 in self.knownJuncs: inclusionIsos = inclusionIsos.union(self.knownJuncs[j1].intersection(self.knownJuncs[j2])) - if (j1[0],j2[-1]) in self.knownJuncs: - exclusionIsos = exclusionIsos.union(self.knownJuncs[j1[0],j2[-1]]) + if (j1[0], j2[-1]) in self.knownJuncs: + exclusionIsos = exclusionIsos.union(self.knownJuncs[j1[0], j2[-1]]) inclusionIsos = sorted(list(inclusionIsos)) exclusionIsos = sorted(list(exclusionIsos)) - print("%s:%s-%s" % (self.chrom,acceptor.name,donor.name), self.strand, len(inclusionIsos), - len(exclusionIsos), ",".join(inclusionIsos),",".join(exclusionIsos), sep="\t") - #print(self.chrom, "\t".join(str(x) for x in sorted([acceptor.name,donor.name])), "%s:%s-%s" % (self.chrom,acceptor.name,donor.name), self.name, self.strand, sep="\t") - + print("%s:%s-%s" % (self.chrom, acceptor.name, donor.name), self.strand, len(inclusionIsos), + len(exclusionIsos), ",".join(inclusionIsos), ",".join(exclusionIsos), sep="\t") + # print(self.chrom, "\t".join(str(x) for x in sorted([acceptor.name,donor.name])), "%s:%s-%s" % (self.chrom,acceptor.name,donor.name), self.name, self.strand, sep="\t") class SpliceSite(object): @@ -117,38 +115,39 @@ def __init__(self, exonID=None, acceptor=None, donor=None): self.inclusionJuncs = set() -def bed12toExons(start,starts,sizes): +def bed12toExons(start, starts, sizes): ''' Take bed12 entry and convert block/sizes to exon coordinates. ''' start = int(start) - sizes, starts = list(map(int,sizes)), list(map(int,starts)) + sizes, starts = list(map(int, sizes)), list(map(int, starts)) exons = list() - for num, st in enumerate(starts,0): + for num, st in enumerate(starts, 0): c1 = st + start c2 = c1 + sizes[num] - exons.append((c1,c2)) + exons.append((c1, c2)) return exons def parse_gene_id(iso_gene): if '_chr' in iso_gene: - gene = iso_gene[iso_gene.rfind('_chr')+1:] + gene = iso_gene[iso_gene.rfind('_chr') + 1:] elif '_XM' in iso_gene: - gene = iso_gene[iso_gene.rfind('_XM')+1:] + gene = iso_gene[iso_gene.rfind('_XM') + 1:] elif '_XR' in iso_gene: - gene = iso_gene[iso_gene.rfind('_XR')+1:] + gene = iso_gene[iso_gene.rfind('_XR') + 1:] elif '_NM' in iso_gene: - gene = iso_gene[iso_gene.rfind('_NM')+1:] + gene = iso_gene[iso_gene.rfind('_NM') + 1:] elif '_NR' in iso_gene: - gene = iso_gene[iso_gene.rfind('_NR')+1:] + gene = iso_gene[iso_gene.rfind('_NR') + 1:] elif '_R2_' in iso_gene: - gene = iso_gene[iso_gene.rfind('_R2_')+1:] + gene = iso_gene[iso_gene.rfind('_R2_') + 1:] else: - gene = iso_gene[iso_gene.rfind('_')+1:] + gene = iso_gene[iso_gene.rfind('_') + 1:] return gene -#### main #### + +# main # def main(): @@ -159,12 +158,12 @@ def main(): for line in fin: cols = line.rstrip().split() iso, start, starts, sizes = cols[3], cols[1], cols[11], cols[10] - chrom,strand = cols[0], cols[5] + chrom, strand = cols[0], cols[5] starts = starts.rstrip(",").split(",") sizes = sizes.rstrip(",").split(",") geneID = parse_gene_id(iso) - exons = bed12toExons(start,starts,sizes) + exons = bed12toExons(start, starts, sizes) if chrom not in genes: genes[chrom] = Gene(geneID, chrom, strand) diff --git a/src/flair/es_as_inc_excl_to_counts.py b/src/flair/es_as_inc_excl_to_counts.py index 2959c9a5..9328670b 100755 --- a/src/flair/es_as_inc_excl_to_counts.py +++ b/src/flair/es_as_inc_excl_to_counts.py @@ -3,7 +3,7 @@ import os import sys os.environ['OPENBLAS_NUM_THREADS'] = '1' -import numpy as np +import numpy as np # noqa: E402 - openblas setting must be before numpy import data = dict() with open(sys.argv[1]) as fin1: @@ -15,25 +15,25 @@ data[tid] = vals with open(sys.argv[2]) as fin2: - print('\t'.join(['feature_id', 'coordinate']+header[1:]+['isoform_ids'])) + print('\t'.join(['feature_id', 'coordinate'] + header[1:] + ['isoform_ids'])) for line in fin2: cols = line.rstrip().split() if int(cols[3]) == 0: continue else: exon, strand, _, exc, incIsos, excIsos = cols - incVals = np.asarray([data.get(x,np.zeros(nSamps)) for x in incIsos.split(",")]) - excVals = np.asarray([data.get(x,np.zeros(nSamps)) for x in excIsos.split(",")]) + incVals = np.asarray([data.get(x, np.zeros(nSamps)) for x in incIsos.split(",")]) + excVals = np.asarray([data.get(x, np.zeros(nSamps)) for x in excIsos.split(",")]) incVals = np.sum(incVals, axis=0) excVals = np.sum(excVals, axis=0) - #totVals = incVals + excVals + # totVals = incVals + excVals # must have at least 1 count to support the inc and exc of this exon # if incVals.all() < 1 or excVals.all() < 1: # continue - print("inclusion_%s" % exon,exon,"\t".join(str(x) for x in incVals),incIsos,sep="\t") - print("exclusion_%s" % exon,exon,"\t".join(str(x) for x in excVals),excIsos,sep="\t") + print("inclusion_%s" % exon, exon, "\t".join(str(x) for x in incVals), incIsos, sep="\t") + print("exclusion_%s" % exon, exon, "\t".join(str(x) for x in excVals), excIsos, sep="\t") - #print(exon,"\t".join("%.2f" % x for x in incVals/totVals)) + # print(exon,"\t".join("%.2f" % x for x in incVals/totVals)) diff --git a/src/flair/fasta_seq_lengths.py b/src/flair/fasta_seq_lengths.py index 67a5ca77..36b4e843 100755 --- a/src/flair/fasta_seq_lengths.py +++ b/src/flair/fasta_seq_lengths.py @@ -4,38 +4,45 @@ import os from flair import FlairInputDataError -try: - fasta = open(sys.argv[1]) - outfilename = sys.argv[2] - if len(sys.argv) > 3: - outfilename2 = sys.argv[3] - else: - outfilename2 = '' -except: - raise FlairInputDataError('usage: fasta_seq_lengths fasta outfilename [outfilename2]\n') +# FIXME: use argparse -length_frequencies = {} -with open(outfilename, 'wt') as outfile: - writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - seqlen = 0 - name = None - for line in fasta: - line = line.rstrip() - if line.startswith('>'): - if seqlen: - writer.writerow([name, seqlen]) - if seqlen not in length_frequencies: - length_frequencies[seqlen] = 0 - length_frequencies[seqlen] += 1 - name = line[1:] - seqlen = 0 - continue - seqlen += len(line.rstrip()) - writer.writerow([name, seqlen]) +def main(): + try: + fasta = open(sys.argv[1]) + outfilename = sys.argv[2] + if len(sys.argv) > 3: + outfilename2 = sys.argv[3] + else: + outfilename2 = '' + except Exception: + raise FlairInputDataError('usage: fasta_seq_lengths fasta outfilename [outfilename2]\n') -if outfilename2: - alllengths = sorted(length_frequencies.keys()) - with open(outfilename2, 'wt') as outfile: + length_frequencies = {} + with open(outfilename, 'wt') as outfile: writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - for length in alllengths: - writer.writerow([length, length_frequencies[length]]) + seqlen = 0 + name = None + for line in fasta: + line = line.rstrip() + if line.startswith('>'): + if seqlen: + writer.writerow([name, seqlen]) + if seqlen not in length_frequencies: + length_frequencies[seqlen] = 0 + length_frequencies[seqlen] += 1 + name = line[1:] + seqlen = 0 + continue + seqlen += len(line.rstrip()) + writer.writerow([name, seqlen]) + + if outfilename2: + alllengths = sorted(length_frequencies.keys()) + with open(outfilename2, 'wt') as outfile: + writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) + for length in alllengths: + writer.writerow([length, length_frequencies[length]]) + + +if __name__ == "__main__": + main() diff --git a/src/flair/filter_transcriptome_align.py b/src/flair/filter_transcriptome_align.py index 729d4e10..4b770546 100755 --- a/src/flair/filter_transcriptome_align.py +++ b/src/flair/filter_transcriptome_align.py @@ -6,11 +6,11 @@ import pysam import logging import shutil -from flair.count_sam_transcripts import parse_args, check_args, get_annot_info, IsoAln, get_best_transcript, write_output +from flair.count_sam_transcripts import parse_args, check_args, read_isoforms_bed, IsoAln, get_best_transcript, write_output from flair.remove_internal_priming import removeinternalpriming -from flair.pycbio.sys import fileOps import multiprocessing as mp from flair import FlairInputDataError +from flair.io_utils import make_temp_dir def generate_alignment_obj_for_read(args, genome, transcript_to_exons, transcriptaligns, header): @@ -18,16 +18,18 @@ def generate_alignment_obj_for_read(args, genome, transcript_to_exons, transcrip for alignment in transcriptaligns: transcript = alignment.reference_name if args.remove_internal_priming: - intprimannot = transcript_to_exons if args.permissive_last_exons else None - notinternalpriming = removeinternalpriming(alignment.reference_name, - alignment.reference_start, - alignment.reference_end, False, - genome, None, intprimannot, - args.intprimingthreshold, - args.intprimingfracAs) + intprim_annot = transcript_to_exons if args.permissive_last_exons else None + not_internal_priming = removeinternalpriming(alignment.reference_name, + alignment.reference_start, + alignment.reference_end, False, + genome, None, intprim_annot, + args.intprimingthreshold, + args.intprimingfracAs) + else: + not_internal_priming = True + if not not_internal_priming: + logging.debug(f"read dropped: internal priming on {transcript}: {alignment.query_name}") else: - notinternalpriming = True - if notinternalpriming: pos = alignment.reference_start try: alignscore = alignment.get_tag('AS') @@ -39,8 +41,8 @@ def generate_alignment_obj_for_read(args, genome, transcript_to_exons, transcrip filteredtranscriptaligns[transcript] = IsoAln(transcript, pos, cigar, tlen, alignscore, mdtag) return filteredtranscriptaligns -def process_read_chunk(chunkinfo): - chunkindex, readstoaligns, temp_dir, transcript_to_exons, transcript_to_bp_ss_index, args, headeroutfilename, clippingdata, transcript_to_genomic_ends, transcript_to_unique_bounds = chunkinfo +def process_read_chunk(chunkinfo): # noqa: C901 - FIXME: reduce complexity + chunkindex, readstoaligns, temp_dir, info, args, headeroutfilename, clippingdata = chunkinfo genome = None if args.remove_internal_priming: genome = pysam.FastaFile(args.transcriptomefasta) @@ -52,16 +54,26 @@ def process_read_chunk(chunkinfo): for readname in readstoaligns: transcriptaligns = [pysam.AlignedSegment.fromstring(x, headerfile.header) for x in readstoaligns[readname]] - filteredtranscriptaligns = generate_alignment_obj_for_read(args, genome, transcript_to_exons, transcriptaligns, headerfile.header) + filteredtranscriptaligns = generate_alignment_obj_for_read(args, genome, info.transcript_to_exons, transcriptaligns, headerfile.header) finaltnames = [] - thisclipping = clippingdata[readname] if readname in clippingdata else None + this_clipping = clippingdata[readname] if readname in clippingdata else None if len(filteredtranscriptaligns) > 0: - # print(readname) - assignedts = get_best_transcript(filteredtranscriptaligns, args, transcript_to_exons, transcript_to_bp_ss_index, thisclipping, transcript_to_genomic_ends, transcript_to_unique_bounds) - if assignedts: + assignedts = get_best_transcript(filteredtranscriptaligns, info, this_clipping, + stringent=args.stringent, check_splice=args.check_splice, + fusion_breakpoints=args.fusion_breakpoints, + allow_UTR_indels=args.allow_UTR_indels, + trimmedreads=args.trimmedreads, + soft_clipping_buffer=args.soft_clipping_buffer, + output_endpos=args.output_endpos, + trust_ends=args.trust_ends, end_norm_dist=args.end_norm_dist, rname=readname) + if not assignedts: + logging.debug(f"read dropped: no passing transcript assignment: {readname}") + else: for assignedt, gtstart, gtend in assignedts: finaltnames.append(assignedt) results.append((readname, assignedt, gtstart, gtend)) + else: + logging.debug(f"read dropped: all transcript alignments filtered (internal priming or other): {readname}") if args.output_bam and len(finaltnames) > 0: readseq, readerr = None, None for alignment in transcriptaligns: @@ -88,8 +100,8 @@ def process_read_chunk(chunkinfo): return results -def bam_to_read_aligns(samfile, chunksize, temp_dir, transcript_to_exons, transcript_to_bp_ss_index, - args, headeroutfilename, readstoclipping, transcript_to_genomic_ends, transcript_to_unique_bounds): +def bam_to_read_aligns(samfile, chunksize, temp_dir, info, # noqa: C901 - FIXME: reduce complexity + args, headeroutfilename, readstoclipping): lastname = None lastaligns = [] readchunk = {} @@ -100,7 +112,7 @@ def bam_to_read_aligns(samfile, chunksize, temp_dir, transcript_to_exons, transc if readname != lastname: if len(readchunk) == chunksize: logging.info(f'\rstarting chunk {chunkindex}') - yield (chunkindex, readchunk, temp_dir, transcript_to_exons, transcript_to_bp_ss_index, args, headeroutfilename, clippingdata, transcript_to_genomic_ends, transcript_to_unique_bounds) + yield (chunkindex, readchunk, temp_dir, info, args, headeroutfilename, clippingdata) readchunk = {} clippingdata = {} chunkindex += 1 @@ -113,18 +125,26 @@ def bam_to_read_aligns(samfile, chunksize, temp_dir, transcript_to_exons, transc # removing supplementary alignments has the biggest effect on the output. I think we should do it though if read.is_mapped and not read.is_supplementary and read.mapping_quality >= args.quality: lastaligns.append(read.to_string()) + else: + if not read.is_mapped: + logging.debug(f"read dropped: unmapped: {read.query_name}") + elif read.is_supplementary: + logging.debug(f"read dropped: supplementary alignment: {read.query_name}") + else: + logging.debug(f"read dropped: low quality ({read.mapping_quality} < {args.quality}): {read.query_name}") if len(lastaligns) > 0: readchunk[lastname] = lastaligns if lastname in readstoclipping: clippingdata[lastname] = readstoclipping[lastname] if len(readchunk) > 0: logging.info(f'\rstarting chunk {chunkindex}') - yield (chunkindex, readchunk, temp_dir, transcript_to_exons, transcript_to_bp_ss_index, args, headeroutfilename, clippingdata, transcript_to_genomic_ends, transcript_to_unique_bounds) + yield (chunkindex, readchunk, temp_dir, info, args, headeroutfilename, clippingdata) -def process_alignments(args, transcript_to_exons, transcript_to_bp_ss_index, transcript_to_genomic_ends, transcript_to_unique_bounds): +def process_alignments(args, info): # noqa: C901 - FIXME: reduce complexity logging.info('processing alignments') samfile = pysam.AlignmentFile(args.sam, 'r') - temp_dir = fileOps.tmpDirGet() + prefix = args.output.split('.txt')[0] + temp_dir = make_temp_dir(prefix) headeroutfilename = temp_dir + 'headerfile.bam' hfile = pysam.AlignmentFile(headeroutfilename, 'wb', template=samfile) hfile.close() @@ -139,36 +159,33 @@ def process_alignments(args, transcript_to_exons, transcript_to_bp_ss_index, tra chunksize = 1000 chunkresults = [] - mp.set_start_method('fork') - p = mp.Pool(args.threads) + mp.set_start_method('fork', force=True) args.sam = '' # required to pass args to multiprocessing # write method to yield chunks # for chunk in chunkyielder - for r in p.imap_unordered(process_read_chunk, bam_to_read_aligns(samfile, chunksize, temp_dir, transcript_to_exons, - transcript_to_bp_ss_index, args, headeroutfilename, readstoclipping, transcript_to_genomic_ends, transcript_to_unique_bounds)): - chunkresults.append(r) - - p.close() - p.join() + with mp.Pool(args.threads) as p: + for r in p.imap_unordered(process_read_chunk, bam_to_read_aligns(samfile, chunksize, temp_dir, info, + args, headeroutfilename, readstoclipping)): + chunkresults.append(r) logging.info('starting to combine temp files') if args.output_endpos: endout = open(args.output_endpos, 'w') - transcripttoreads = {} + transcript_to_reads = {} for i in range(len(chunkresults)): for read, transcript, gtstart, gtend in chunkresults[i]: - if transcript not in transcripttoreads: - transcripttoreads[transcript] = [] - transcripttoreads[transcript].append((read, gtstart, gtend)) + if transcript not in transcript_to_reads: + transcript_to_reads[transcript] = [] + transcript_to_reads[transcript].append((read, gtstart, gtend)) if args.output_endpos: endout.write('\t'.join([str(x) for x in [read, transcript, gtstart[0], gtstart[1], gtend[0], gtend[1]]]) + '\n') if args.output_endpos: endout.close() - write_output(args, transcripttoreads) + write_output(args, transcript_to_reads) if args.output_bam: outfile = pysam.AlignmentFile(temp_dir + 'combined_unsorted.bam', 'wb', template=samfile) @@ -188,5 +205,8 @@ def process_alignments(args, transcript_to_exons, transcript_to_bp_ss_index, tra args = parse_args() args = check_args(args) - transcript_to_exons, transcript_to_bp_ss_index, transcript_to_genomic_ends, transcript_to_unique_bounds = get_annot_info(args) - process_alignments(args, transcript_to_exons, transcript_to_bp_ss_index, transcript_to_genomic_ends, transcript_to_unique_bounds) + info = read_isoforms_bed( + isoforms=args.isoforms, stringent=args.stringent, check_splice=args.check_splice, + fusion_dist=args.fusion_dist, fusion_breakpoints=args.fusion_breakpoints, + output_endpos=args.output_endpos, unique_bound=args.unique_bound) + process_alignments(args, info) diff --git a/src/flair/flair_align.py b/src/flair/flair_align.py index 709a5377..f8ae1b20 100755 --- a/src/flair/flair_align.py +++ b/src/flair/flair_align.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -import sys import argparse import os import pipettor @@ -20,7 +19,7 @@ def parse_args(): reads = parser.add_argument_group('required named arguments') reads.add_argument('-r', '--reads', nargs='+', type=str, required=True, - help='FASTA/FASTQ file(s) of raw reads, either space or comma separated') + help='FASTA/FASTQ file(s) of raw reads, either space or comma separated') genome = parser.add_argument_group('Either one of the following arguments is required') genome.add_argument('-g', '--genome', type=str, help='FASTA of reference genome, can be minimap2 indexed') @@ -37,7 +36,7 @@ def parse_args(): parser.add_argument('--quality', type=int, default=0, help='minimum MAPQ of read alignment to the genome (0)') parser.add_argument('--filtertype', type=str, choices=FILTERS, default=FILTER_REMOVESUP, - help='method of filtering chimeric alignments (potential fusion reads). Options: removesup (default), separate (required for downstream work with fusions), keepsup (keeps supplementary alignments for isoform detection, does not allow gene fusion detection)') + help='method of filtering chimeric alignments (potential fusion reads). Options: removesup (default), separate (required for downstream work with fusions), keepsup (keeps supplementary alignments for isoform detection, does not allow gene fusion detection)') # noqa: E501 parser.add_argument('--minfragmentsize', type=int, default=80, help='minimum size of alignment kept, used in minimap -s. More important when doing downstream fusion detection') parser.add_argument('--maxintronlen', default='200k', @@ -82,29 +81,39 @@ def dofiltering(args, inbam): if args.filtertype == FILTER_SEPARATE: withsup = pysam.AlignmentFile(args.output + '_chimeric.bam', "wb", template=samfile) totalalignments, mappednotsec, supplementary, primary = 0, 0, 0, 0 + dropped_unmapped_secondary, dropped_quality, dropped_supplementary = 0, 0, 0 for read in samfile.fetch(): totalalignments += 1 if read.is_mapped and not read.is_secondary: mappednotsec += 1 if read.mapping_quality < args.quality: - continue - if read.is_supplementary: + dropped_quality += 1 + logging.debug(f"read dropped: low quality ({read.mapping_quality} < {args.quality}): {read.query_name}") + elif read.is_supplementary: supplementary += 1 if args.filtertype == FILTER_SEPARATE: withsup.write(read) elif args.filtertype == FILTER_KEEPSUP: outbam.write(read) - # removesup: drop supplementary + else: + dropped_supplementary += 1 + logging.debug(f"read dropped: supplementary removed: {read.query_name}") else: primary += 1 if read.has_tag('SA') and args.filtertype == FILTER_SEPARATE: withsup.write(read) else: outbam.write(read) + else: + dropped_unmapped_secondary += 1 + logging.debug(f"read dropped: unmapped or secondary: {read.query_name}") logging.info(f'total alignments in bam file (includes unaligned reads): {totalalignments}') logging.info(f'total non-secondary alignments: {mappednotsec}') logging.info(f'total primary alignments with quality >= {args.quality}: {primary}') logging.info(f'total supplementary alignments with quality >= {args.quality}: {supplementary}') + logging.info(f'reads dropped: unmapped or secondary: {dropped_unmapped_secondary}') + logging.info(f'reads dropped: quality < {args.quality}: {dropped_quality}') + logging.info(f'reads dropped: supplementary removed: {dropped_supplementary}') samfile.close() outbam.close() pysam.index(args.output + '.filtered.bam') @@ -121,5 +130,6 @@ def align(): def main(): align() + if __name__ == "__main__": main() diff --git a/src/flair/flair_bed.py b/src/flair/flair_bed.py new file mode 100644 index 00000000..95e3c56e --- /dev/null +++ b/src/flair/flair_bed.py @@ -0,0 +1,102 @@ +""" +FLAIR BED record that is used to pass extra fields. +""" +from flair.pycbio.hgdata.bed import Bed, BedException, defaultIfNone +from flair.pycbio.hgdata.autoSql import strArraySplit, strArrayJoin +from flair.pycbio.tsv.tabFile import TabFileReader + +def parseStrOrNone(s): + return None if len(s) == 0 else s + +class FlairBed(Bed): + """ + BED class that passes along flair-derived attributes. + + This enforces the transcript_id and name columns having the same value + """ + __slots__ = ("gene_id", "ref_transcript_id", "ref_gene_mappings", "read_support", + "frac_support", "productivity") + + def __init__(self, chrom, chromStart, chromEnd, name=None, *, score=None, strand=None, + thickStart=None, thickEnd=None, itemRgb=None, blocks=None, + gene_id=None, ref_transcript_id=None, ref_gene_mappings=None, + read_support=None, frac_support=None, productivity=None): + super().__init__(chrom=chrom, chromStart=chromStart, chromEnd=chromEnd, + name=name, score=score, strand=strand, thickStart=thickStart, thickEnd=thickEnd, + itemRgb=itemRgb, blocks=blocks, numStdCols=12) + self.gene_id = gene_id + self.ref_transcript_id = ref_transcript_id + self.ref_gene_mappings = [] if ref_gene_mappings is None else list(ref_gene_mappings) + self.read_support = read_support + self.frac_support = frac_support + self.productivity = productivity + + @property + def transcript_id(self): + return self.name + + @transcript_id.setter + def transcript_id(self, value): + self.name = value + + @property + def numColumns(self): + """Returns the number of columns in the BED when formatted as a row.""" + return super().numColumns + len(self.__slots__) + + def toRow(self): + row = super().toRow() + row.extend([defaultIfNone(self.gene_id, ''), + defaultIfNone(self.ref_transcript_id, ''), + strArrayJoin(self.ref_gene_mappings), + defaultIfNone(self.read_support, ''), + defaultIfNone(round(self.frac_support, 4), ''), + defaultIfNone(self.productivity, '')]) + return row + + @classmethod + def _parse(cls, row, fixScores=None): + base = Bed.parse(row[:12], numStdCols=12, fixScores=fixScores) + bed = cls(base.chrom, base.chromStart, base.chromEnd, + name=base.name, score=base.score, strand=base.strand, + thickStart=base.thickStart, thickEnd=base.thickEnd, + itemRgb=base.itemRgb, blocks=base.blocks) + bed.gene_id = parseStrOrNone(row[12]) + bed.ref_transcript_id = parseStrOrNone(row[13]) + bed.ref_gene_mappings = strArraySplit(row[14]) + bed.read_support = int(row[15]) if row[15] != '' else None + bed.frac_support = float(row[16]) if row[16] != '' else None + bed.productivity = parseStrOrNone(row[17]) + return bed + + @classmethod + def parse(cls, row, numStdCols=None, fixScores=None): # numStdCols is only here for compatibility with BedReader + needed_cols = 12 + len(cls.__slots__) + if len(row) != needed_cols: + raise BedException("expected at {} columns, found {}: ".format(needed_cols, len(row))) + try: + return cls._parse(row, fixScores=fixScores) + except Exception as ex: + raise BedException(f"parsing of BED row failed: {row}") from ex + + def get_named_extra_attrs(self): + my_attrs = [] + if self.ref_transcript_id is not None: + my_attrs.append(('ref_transcript_id', self.ref_transcript_id)) + if self.ref_gene_mappings is not None: + my_attrs.append(('ref_gene_mappings', self.ref_gene_mappings)) + if self.read_support is not None: + my_attrs.append(('read_support', self.read_support)) + if self.frac_support is not None: + my_attrs.append(('frac_support', self.frac_support)) + if self.productivity is not None: + my_attrs.append(('productivity', self.productivity)) + return my_attrs + + +def FlairBedReader(fspec): + """Generator to read BED objects loaded from a tab-file or file-like + object. See Bed.parse().""" + for bed in TabFileReader(fspec, rowClass=lambda r: FlairBed.parse(r), + hashAreComments=True, skipBlankLines=True): + yield bed diff --git a/src/flair/flair_combine.py b/src/flair/flair_combine.py index 2c055255..5f762770 100755 --- a/src/flair/flair_combine.py +++ b/src/flair/flair_combine.py @@ -1,19 +1,15 @@ #! /usr/bin/env python3 -import sys import argparse -import os -import pipettor -import pysam -import math +import logging from flair.bed_to_gtf import bed_to_gtf +from flair.pycbio.hgdata.bed import Bed, BedBlock, BedReader from statistics import mode -def bedReadToIntronChain(line): # line is a list of strings from a tab separated line - dir, start, esizes, estarts = line[5], int(line[1]), [int(x) for x in line[10].rstrip(',').split(',')], [int(x) for x in line[11].rstrip(',').split(',')] +def bedReadToIntronChain(bed): introns = [] - for i in range(len(esizes) - 1): - introns.append((start + estarts[i] + esizes[i], start + estarts[i + 1])) + for i in range(len(bed.blocks) - 1): + introns.append((bed.blocks[i].end, bed.blocks[i + 1].start)) # strand is not accounted for here, all intron chains will be left to right return tuple(introns) @@ -28,9 +24,11 @@ def intronChainToestarts(ichain, start, end): def getbestends(isodata): bestiso = (None, None, None, None, 0) for info in isodata: - if info[4] > bestiso[4]: bestiso = info + if info[4] > bestiso[4]: + bestiso = info elif info[4] == bestiso[4]: - if info[1]-info[0] > bestiso[1]-bestiso[0]: bestiso = info + if info[1] - info[0] > bestiso[1] - bestiso[0]: + bestiso = info return bestiso def combineIsos(isolist, endwindow): @@ -40,7 +38,7 @@ def combineIsos(isolist, endwindow): currgroup = [] for isoinfo in isolist: start, end = isoinfo[0], isoinfo[1] - if start-laststart <= endwindow and end - lastend <= endwindow: + if start - laststart <= endwindow and end - lastend <= endwindow: currgroup.append(isoinfo) else: if len(currgroup) > 0: @@ -52,16 +50,6 @@ def combineIsos(isolist, endwindow): return isoendgroups -revcomp_dict = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C', 'N': 'N', 'R': 'Y', - 'Y':'R', 'K': 'M', 'M': 'K', 'S': 'S', 'W': 'W', 'B': 'V', 'V': 'B', 'D': 'H', 'H': 'D'} - - -def revcomp(seq): - rev_seq = [] - for i in reversed(range(len(seq))): - rev_seq.append(revcomp_dict[seq[i]]) - return ''.join(rev_seq) - def cleanisoname(isoname): # removes PAR_Y from end of isoform IDs # this is deprecated in new gencode annot, but required for backwards compatibility @@ -69,10 +57,11 @@ def cleanisoname(isoname): return ''.join(isoname.split('_PAR_Y')) -def combine(): +def combine(): # noqa: C901 - FIXME: reduce complexity parser = argparse.ArgumentParser() parser.add_argument('-m', '--manifest', required=True, type=str, - help="path to manifest files that points to transcriptomes to combine. Each line of file should be tab separated with sample name, sample type (isoform or fusionisoform), path/to/isoforms.bed, path/to/isoforms.fa, path/to/combined.isoform.read.map.txt. fa and read.map.txt files are not required, although if .fa files are not provided for each sample a .fa output will not be generated") + help="path to manifest files that points to transcriptomes to combine. Each line of file should be tab separated with sample name, sample type (isoform or fusionisoform), path/to/isoforms.bed, path/to/isoforms.fa, path/to/combined.isoform.read.map.txt." # noqa: E501 + " fa and read.map.txt files are not required, although if .fa files are not provided for each sample a .fa output will not be generated") parser.add_argument('-o', '--output_prefix', default='flair.combined.isoforms', help="path to collapsed_output.bed file. default: 'collapsed_flairomes'") parser.add_argument('-w', '--endwindow', type=int, default=200, @@ -83,8 +72,10 @@ def combine(): help="[optional] whether to convert the combined transcriptome bed file to gtf") parser.add_argument('-s', '--include_se', action='store_true', help='whether to include single exon isoforms. Default: dont include') - parser.add_argument('-f', '--filter', default='usageandlongest', - help='type of filtering. Options: usageandlongest(default), usageonly, none, or a number for the total count of reads required to call an isoform') + parser.add_argument('--end_filter', default='longest', + help='type of filtering transcript ends. Options: longest(default), usage, or none, or a number for the maximum amount of ends allowed for a single splice junction chain') + parser.add_argument('--min_reads', type=int, default=3, + help='min reads from all samples to call isoform') args = parser.parse_args() manifest = args.manifest @@ -92,10 +83,12 @@ def combine(): endwindow = int(args.endwindow) minpercentusage = int(args.minpercentusage) / 100. + logging.info('parsing manifest') + # FIXME: remove fasta file input, add genome input, generate reference by getting sequence from genome bedfiles, mapfiles, samples, fafiles = [], [], [], [] for line in open(manifest): line = line.rstrip().split('\t') - print(line) + # print(line) if not (3 <= len(line) <= 5): raise Exception(f'Expected between 3 to 5 columns in manifest, got {len(line)} in {manifest}') samples.append(line[0] + '__' + line[1]) @@ -109,8 +102,10 @@ def combine(): else: mapfiles.append('') + # all samples have fasta file, so fasta generatefa = all([len(x) > 0 for x in fafiles]) + logging.info('loading isoforms from individual samples') intronchaintoisos = {} sampletoseq = {} for i in range(len(samples)): @@ -129,12 +124,11 @@ def combine(): isotoreads[iso] = numreads if isfusion: fnametoinfo = {} - for line in open(bedfiles[i]): - line = line.rstrip().split('\t') - chr, start, end, strand, isoname = line[0], int(line[1]), int(line[2]), line[5], line[3] + for bed in BedReader(bedfiles[i], fixScores=True): + chr, start, end, strand, isoname = bed.chrom, bed.chromStart, bed.chromEnd, bed.strand, bed.name isoname = '_'.join(isoname.split('_')[1:]) - if int(line[9]) > 1: - ichain = bedReadToIntronChain(line) + if bed.blockCount > 1: + ichain = bedReadToIntronChain(bed) else: ichain = chr + '-' + str(int(round(start, -4))) if isoname not in fnametoinfo: @@ -166,14 +160,13 @@ def combine(): intronchaintoisos[ichainid] = [] isoname = cleanisoname(isoname) intronchaintoisos[ichainid].append((start, end, sample, isoname, isousage, isocounts)) - else: # not loading fusion reads - for line in open(bedfiles[i]): - line = line.rstrip().split('\t') - chr, start, end, strand, isoname = line[0], int(line[1]), int(line[2]), line[5], line[3] + else: # not loading fusion reads + for bed in BedReader(bedfiles[i], fixScores=True): + chr, start, end, strand, isoname = bed.chrom, bed.chromStart, bed.chromEnd, bed.strand, bed.name gene = isoname.split('_')[-1] ichain = None - if int(line[9]) > 1: # removing single exon isoforms, may want to add this as a user input option later - although how am I handling single exon isoforms? Are they all getting stored as the same empty intron chain? that seems bad - ichain = bedReadToIntronChain(line) + if bed.blockCount > 1: # removing single exon isoforms, may want to add this as a user input option later - although how am I handling single exon isoforms? Are they all getting stored as the same empty intron chain? that seems bad + ichain = bedReadToIntronChain(bed) elif args.include_se: ichain = chr + '-' + str(int(round(start, -4))) if ichain: @@ -198,8 +191,8 @@ def combine(): last = cleanisoname(last) sampletoseq[sample][last] = line.rstrip() + logging.info('combining isoforms') finalisostosupport = {} - isocount = 1 outbed, outcounts = open(outprefix + '.bed', 'w'), open(outprefix + '.counts.tsv', 'w') if generatefa: @@ -210,29 +203,33 @@ def combine(): for ichainid in intronchaintoisos: # chr, strand, gene, ichain = ichainid collapsedIsos = combineIsos(intronchaintoisos[ichainid], endwindow) - isse = type(ichainid[-1]) == str - isfusion = type(ichainid[0]) == tuple - longestEnds = (None, None) - biggestdiff = 0 + isse = isinstance(ichainid[-1], str) + isfusion = isinstance(ichainid[0], tuple) maxintronchainusage = 0 totintronchaincounts = 0 ichainendscount = 1 + ends_for_sorting = [] for start, end, sample, isoname, isousage, isocounts in collapsedIsos: - if abs(end - start) > biggestdiff: - longestEnds = (start, end) maxisousage = max([x[4] for x in collapsedIsos[(start, end, sample, isoname, isousage, isocounts)]]) totintronchaincounts += sum([x[5] for x in collapsedIsos[(start, end, sample, isoname, isousage, isocounts)]]) if maxisousage > maxintronchainusage: maxintronchainusage = maxisousage - if args.filter == 'none' or maxintronchainusage > minpercentusage or (args.filter.isnumeric() and totintronchaincounts > int(args.filter)): - for start, end, sample, isoname, isousage, isocounts in collapsedIsos: + if args.end_filter == 'longest': + ends_for_sorting.append((abs(end - start), start, end, sample, isoname, isousage, isocounts)) + else: + ends_for_sorting.append((maxisousage, start, end, sample, isoname, isousage, isocounts)) + ends_for_sorting.sort(reverse=True) + if args.end_filter == 'none' or (maxintronchainusage > minpercentusage and (totintronchaincounts > args.min_reads or totintronchaincounts == 0)): # the only way for the tot counts to be 0 is if there's no map files provided, allow that + if args.end_filter in {'longest', 'usage'}: + ends_for_sorting = [ends_for_sorting[0]] + elif args.end_filter.is_numeric(): + ends_for_sorting = ends_for_sorting[:int(args.end_filter)] + for _, start, end, sample, isoname, isousage, isocounts in ends_for_sorting: theseisos = collapsedIsos[(start, end, sample, isoname, isousage, isocounts)] theseisos.sort(key=lambda x: x[1] - x[0], reverse=True) # longest first maxisousage = max([x[4] for x in theseisos]) totisocounts = sum([x[5] for x in theseisos]) - if args.filter == 'none' or maxisousage > minpercentusage or \ - ((start, end) == longestEnds and not isse and args.filter == 'usageandlongest') or \ - (args.filter.isnumeric() and totisocounts > int(args.filter)): + if ichainendscount == 1 or (args.end_filter.isnumeric() and (totisocounts > int(args.min_reads) or totisocounts == 0)): if isfusion: outgene = mode([x[3].split('_')[-1] for x in theseisos]) outname = 'flairiso' + str(isocount) + '-' + str(ichainendscount) + '_' + outgene @@ -256,7 +253,6 @@ def combine(): outgene = mode([x[3].split('_')[-1] for x in theseisos]) outname = 'flairiso' + str(isocount) + '-' + str(ichainendscount) + '_' + outgene - # output bed line if isfusion: ichainid = [list(x) for x in ichainid] @@ -271,25 +267,25 @@ def combine(): ichainid[-1][2] = end for gindex in range(len(ichainid)): chr, strand, fstart, fend, ichain = ichainid[gindex] - if type(ichain) == str: + if isinstance(ichain, str): esizes, estarts = [fend - fstart], [0] else: esizes, estarts = intronChainToestarts(ichain, fstart, fend) - outbed.write('\t'.join([chr, str(fstart), str(fend), - 'fusiongene' + str(gindex+1) + '_' + outname, '1000', strand, - str(fstart), str(fend), '0',str(len(esizes)), - ','.join([str(x) for x in esizes]) + ',', - ','.join([str(x) for x in estarts]) + ',']) + '\n') + blocks = [BedBlock(fstart + estarts[i], fstart + estarts[i] + esizes[i]) for i in range(len(esizes))] + Bed(chr, fstart, fend, + name='fusiongene' + str(gindex + 1) + '_' + outname, + score=1000, strand=strand, thickStart=fstart, thickEnd=fend, + itemRgb='0', blocks=blocks).write(outbed) else: chr, strand, ichain = ichainid if isse: esizes, estarts = [end - start], [0] else: esizes, estarts = intronChainToestarts(ichain, start, end) - outbed.write( - '\t'.join([chr, str(start), str(end), outname, '1000', strand, str(start), str(end), '0', - str(len(esizes)), ','.join([str(x) for x in esizes]) + ',', - ','.join([str(x) for x in estarts]) + ',']) + '\n') + blocks = [BedBlock(start + estarts[i], start + estarts[i] + esizes[i]) for i in range(len(esizes))] + Bed(chr, start, end, name=outname, score=1000, strand=strand, + thickStart=start, thickEnd=end, itemRgb='0', + blocks=blocks).write(outbed) # output sequence if generatefa: @@ -348,8 +344,10 @@ def combine(): if args.convert_gtf: bed_to_gtf(query=outprefix + '.bed', outputfile=outprefix + '.gtf') + def main(): combine() + if __name__ == "__main__": main() diff --git a/src/flair/flair_diffExp.py b/src/flair/flair_diffExp.py index 2a4b2c6f..38c457ad 100755 --- a/src/flair/flair_diffExp.py +++ b/src/flair/flair_diffExp.py @@ -14,7 +14,6 @@ import os import os.path as osp -import sys import argparse import errno import csv @@ -22,12 +21,11 @@ from scipy.stats import ttest_ind from statistics import median, mean import pipettor -import numpy as np from flair import FlairError, FlairInputDataError, set_unix_path os.environ['OPENBLAS_NUM_THREADS'] = '1' -import numpy as np +import numpy as np # noqa: E402 pkgdir = osp.dirname(osp.realpath(__file__)) @@ -99,7 +97,7 @@ def multipletests(pvals, alpha=0.05): pvals_corrected = np.maximum.accumulate(pvals_corrected_raw) del pvals_corrected_raw - if not pvals_corrected is None: # not necessary anymore + if pvals_corrected is not None: # not necessary anymore pvals_corrected[pvals_corrected > 1] = 1 pvals_corrected_ = np.empty_like(pvals_corrected) pvals_corrected_[sortind] = pvals_corrected @@ -334,7 +332,7 @@ def run_dirmseq(prefix, workdir, threads, groups, batches, matrixFile, outDir, f raise FlairError(f'running {prefix} failed, please check {stderr} for details') from exc -def calculate_sig(args): +def calculate_sig(args): # noqa: C901 - FIXME: reduce complexity outDir = args.out_dir quant_table_tsv = args.counts_matrix sFilter = args.exp_thresh @@ -438,5 +436,6 @@ def diffExp(counts_matrix=''): calculate_sig(args) + if __name__ == "__main__": exit(diffExp()) diff --git a/src/flair/flair_diffSplice.py b/src/flair/flair_diffSplice.py index d52b3ad7..0641c1be 100755 --- a/src/flair/flair_diffSplice.py +++ b/src/flair/flair_diffSplice.py @@ -1,6 +1,5 @@ #! /usr/bin/env python3 -import sys import argparse import os import os.path as osp @@ -14,44 +13,44 @@ # FIXME: restructure, odd the say argument parsing is done bases on function # arguments -def diffSplice(isoforms='', counts_matrix=''): +def diffSplice(isoforms='', counts_matrix=''): # noqa: C901 - FIXME: reduce complexity set_unix_path() parser = argparse.ArgumentParser() required = parser.add_argument_group('required named arguments') if not isoforms: required.add_argument('-i', '--isoforms', action='store', required=True, - type=str, help='isoforms in bed format') + type=str, help='isoforms in bed format') required.add_argument('-q', '--counts_matrix', action='store', - type=str, required=True, help='tab-delimited isoform count matrix from flair quantify module') + type=str, required=True, help='tab-delimited isoform count matrix from flair quantify module') required.add_argument('-o', '--out_dir', action='store', - type=str, required=True, help='Output directory for tables and plots.') + type=str, required=True, help='Output directory for tables and plots.') parser.add_argument('-t', '--threads', action='store', - type=int, required=False, default=4, help='Number of threads for parallel DRIMSeq (4)') + type=int, required=False, default=4, help='Number of threads for parallel DRIMSeq (4)') parser.add_argument('--test', action='store_true', dest='test', - required=False, default=False, help='Run DRIMSeq statistical testing') + required=False, default=False, help='Run DRIMSeq statistical testing') parser.add_argument('--drim1', action='store', dest='drim1', type=int, required=False, default=6, - help='''The minimum number of samples that have coverage over an AS event inclusion/exclusion - for DRIMSeq testing; events with too few samples are filtered out and not tested (6)''') + help='''The minimum number of samples that have coverage over an AS event inclusion/exclusion + for DRIMSeq testing; events with too few samples are filtered out and not tested (6)''') parser.add_argument('--drim2', action='store', dest='drim2', type=int, required=False, default=3, - help='''The minimum number of samples expressing the inclusion of an AS event; - events with too few samples are filtered out and not tested (3)''') + help='''The minimum number of samples expressing the inclusion of an AS event; + events with too few samples are filtered out and not tested (3)''') parser.add_argument('--drim3', action='store', dest='drim3', type=int, required=False, default=15, - help='''The minimum number of reads covering an AS event inclusion/exclusion for DRIMSeq testing, - events with too few samples are filtered out and not tested (15)''') + help='''The minimum number of reads covering an AS event inclusion/exclusion for DRIMSeq testing, + events with too few samples are filtered out and not tested (15)''') parser.add_argument('--drim4', action='store', dest='drim4', type=int, required=False, default=5, - help='''The minimum number of reads covering an AS event inclusion for DRIMSeq testing, - events with too few samples are filtered out and not tested (5)''') + help='''The minimum number of reads covering an AS event inclusion for DRIMSeq testing, + events with too few samples are filtered out and not tested (5)''') parser.add_argument('--batch', action='store_true', dest='batch', required=False, default=False, - help='''If specified with --test, DRIMSeq will perform batch correction''') + help='''If specified with --test, DRIMSeq will perform batch correction''') parser.add_argument('--conditionA', action='store', dest='conditionA', required=False, default='', - help='''Implies --test. Specify one condition corresponding to samples in the counts_matrix to be compared against - condition2; by default, the first two unique conditions are used''') + help='''Implies --test. Specify one condition corresponding to samples in the counts_matrix to be compared against + condition2; by default, the first two unique conditions are used''') parser.add_argument('--conditionB', action='store', dest='conditionB', required=False, default='', - help='''Specify another condition corresponding to samples in the counts_matrix to be compared against - conditionA''') + help='''Specify another condition corresponding to samples in the counts_matrix to be compared against + conditionA''') parser.add_argument('-of', '--out_dir_force', action='store_true', - required=False, help='''Specify this argument to force overwriting of files in - an existing output directory''') + required=False, help='''Specify this argument to force overwriting of files in + an existing output directory''') args = parser.parse_args() if isoforms: @@ -81,10 +80,10 @@ def diffSplice(isoforms='', counts_matrix=''): filebase = os.path.join(args.out_dir, 'diffsplice') pipettor.run(['call_diffsplice_events.py', args.isoforms, filebase, args.counts_matrix]) - pipettor.run(['es_as.py', args.isoforms], stdout=open(filebase+'.es.events.tsv', 'w')) - pipettor.run(['es_as_inc_excl_to_counts.py', args.counts_matrix, filebase+'.es.events.tsv'], - stdout=open(filebase+'.es.events.quant.tsv', 'w')) - os.unlink(filebase+'.es.events.tsv') + pipettor.run(['es_as.py', args.isoforms], stdout=open(filebase + '.es.events.tsv', 'w')) + pipettor.run(['es_as_inc_excl_to_counts.py', args.counts_matrix, filebase + '.es.events.tsv'], + stdout=open(filebase + '.es.events.quant.tsv', 'w')) + os.unlink(filebase + '.es.events.tsv') if args.test or args.conditionA: logging.info('DRIMSeq testing for each AS event type') @@ -98,7 +97,7 @@ def diffSplice(isoforms='', counts_matrix=''): return 1 ds_command += ['--conditionA', args.conditionA, '--conditionB', args.conditionB] - with open(workdir+'/ds.stderr.txt', 'w') as ds_stderr: + with open(workdir + '/ds.stderr.txt', 'w') as ds_stderr: for event in ['es', 'alt5', 'alt3', 'ir']: matrixfile = f'{filebase}.{event}.events.quant.tsv' if emptyMatrix(matrixfile): diff --git a/src/flair/flair_fusion.py b/src/flair/flair_fusion.py index b3d15969..2e071cf0 100644 --- a/src/flair/flair_fusion.py +++ b/src/flair/flair_fusion.py @@ -2,42 +2,28 @@ import sys import argparse -import os, glob +import os +import glob import pipettor import pysam import logging -import gzip from flair.gtf_to_bed import gtf_to_bed -from flair.bed_to_sequence import bed_to_sequence -from flair.convert_synthetic_to_genome_bed import convert_synthetic_isos -from flair import transcriptomic_chimeras -from flair import genomic_chimeras -from collections import defaultdict +from flair.convert_synthetic_to_genome_bed import convert_synthetic_isos, get_paralog_ref +from flair.identify_prelim_fusions import id_chimeras from flair import FlairInputDataError +from flair.gtf_io import gtf_record_parser, GtfAttrsSet +from flair.read_processing import get_sequence_from_bed +from flair.pycbio.hgdata.bed import Bed, BedReader - -def def_value(): - return set() - -def report_nofusions(outputprefix): - logging.info('no fusions detected. Exiting') - for file in [outputprefix + '.fusions.isoforms.bed', outputprefix + '.fusions.isoforms.fa']: - f = open(file, 'w') - f.close() - -def detectfusions(): +def parse_args(): parser = argparse.ArgumentParser() required = parser.add_argument_group('required named arguments') required.add_argument('-g', '--genome', type=str, required=True, help='FastA of reference genome') parser.add_argument('-f', '--gtf', type=str, required=True, help='GTF annotation file, used for renaming FLAIR isoforms to annotated isoforms and adjusting TSS/TESs') - required.add_argument('-r', '--reads', nargs='+', - type=str, required=True, help='FASTA/FASTQ files of raw reads, can specify multiple files') - required.add_argument('-b', '--genomechimbam', + required.add_argument('-b', '--genome_aligned_bam', type=str, required=True, help='bam file of chimeric reads from genomic alignment from flair align') - parser.add_argument('--transcriptchimbam', - help='Optional: bam file of chimeric reads from transcriptomic alignment. If not provided, this will be made for you') parser.add_argument('-o', '--output', default='flair.fusion', help='output file name base for FLAIR isoforms (default: flair.collapse)') parser.add_argument('-t', '--threads', type=int, default=4, @@ -48,9 +34,12 @@ def detectfusions(): help='''minimum number of supporting reads for a fusion (3)''') parser.add_argument('--maxloci', type=int, default=2, help='''max loci detected in fusion. Set higher for detection of 3-gene+ fusions''') + parser.add_argument('--max_dist_to_TSS', type=int, default=15000, + help='''maximum allowed distance of 5' alignment to TSS of annotated transcript. To not check this, set to -1''') + parser.add_argument('--min_dist_between_bp', type=int, default=100000, + help='''minimum allowed distance between breakpoints when they are on the same strand. Removes read-through transcripts.''') parser.add_argument('--keep_intermediate', default=False, action='store_true', help='''keep intermediate and temporary files for debugging purposes''') - path = os.path.dirname(os.path.realpath(__file__)) + '/' # FIXME: incorrect way to check for missing arguments no_arguments_passed = len(sys.argv) == 1 @@ -59,12 +48,8 @@ def detectfusions(): parser.error("No arguments passed. Please provide a bam file, reads, genome, and annotation file") args = parser.parse_args() - - if ',' in args.reads[0]: - args.reads = args.reads[0].split(',') - for rfile in args.reads: - if not os.path.exists(rfile): - raise FlairInputDataError(f'Read file path does not exist: {rfile}') + if args.max_dist_to_TSS == -1: + args.max_dist_to_TSS = None if not os.path.exists(args.genome): raise FlairInputDataError(f'Genome file path does not exist: {args.genome}') @@ -73,102 +58,152 @@ def detectfusions(): raise FlairInputDataError('Please specify annotated gtf with -f ') else: raise FlairInputDataError('GTF file path does not exist') + return args + +def def_value(): + return set() + +def report_nofusions(outputprefix): + logging.info('no fusions detected. Exiting') + for file in [outputprefix + '.fusions.isoforms.bed', outputprefix + '.fusions.isoforms.fa']: + f = open(file, 'w') + f.close() + +def align_to_synth_genome(genome, reads, output, additional_options): + mm2_cmd = ['minimap2', '-ax', 'splice'] + additional_options + [genome, reads] + samtools_filter_cmd = ('samtools', 'view', '-F', '2048', '-hb', '-') + samtools_sort_cmd = ('samtools', 'sort', '-o', output, '-') + samtools_index_cmd = ('samtools', 'index', output) + pipettor.run([mm2_cmd, samtools_filter_cmd, samtools_sort_cmd]) + pipettor.run([samtools_index_cmd]) + + +def detectfusions(): # noqa: C901 - FIXME: reduce complexity + args = parse_args() + path = os.path.dirname(os.path.realpath(__file__)) + '/' + # NEED TO REMEMBER THAT FUSION DETECTION RELIES ON HAVING PROPERLY STRANDED READS - need to add stranding step and/or better documentation on this + + # Processing the gtf file so many times is really inefficient, how can we resolve this?? + genomechimbam = args.output + '.genomealigned.chim.bam' + transcriptchimbam = args.output + '.transcriptomealigned.chim.bam' + + if not os.path.exists(genomechimbam): + logging.info('getting chimeric reads from genome') + infile = pysam.AlignmentFile(args.genome_aligned_bam, 'rb') + outfile = pysam.AlignmentFile(genomechimbam, 'wb', template=infile) + for align in infile: + if align.is_mapped and not align.is_secondary: + if align.has_tag('SA'): + outfile.write(align) + infile.close() + outfile.close() + pysam.index(genomechimbam) + + if not os.path.exists(transcriptchimbam): + logging.info('aligning to transcriptome and getting chimeric reads') + args.annotated_bed = args.output + '.annotated_transcripts.bed' + gtf_to_bed(args.annotated_bed, args.gtf, include_gene=True) + args.annotated_fa = args.output + '.annotated_transcripts.fa' + get_sequence_from_bed(args.genome, args.output + '.annotated_transcripts.bed', args.annotated_fa) + + fa_cmd = ('samtools', 'fasta', args.genome_aligned_bam) + mm2_cmd = ('minimap2', '-a', '-s', str(args.minfragmentsize), '-t', str(args.threads), '--secondary=no', + args.annotated_fa, '-') + + filter_cmd = ('samtools', 'view', '-hF', '0x104', '-e', '[SA] != ""') + _sort_cmd = ('samtools', 'sort', '-o', args.output + '.transcriptomealigned.chim.sorted.bam', transcriptchimbam) # noqa: F841 + _samtools_index_cmd = ('samtools', 'index', args.output + '_unfilteredtranscriptome.bam') # noqa: F841 + pipettor.run([fa_cmd, mm2_cmd, filter_cmd], stdout=args.output + '.transcriptomealigned.chim.bam') + pipettor.run([('samtools', 'sort', '-o', args.output + '.transcriptomealigned.chim.sorted.bam', transcriptchimbam)]) + pipettor.run([('mv', args.output + '.transcriptomealigned.chim.sorted.bam', transcriptchimbam)]) + pysam.index(transcriptchimbam) + + print('reading gtf') + genetoinfo, genetoexons, genetoname = {}, {}, {} + chrom_to_gene_pos = {} + gene_to_all_exons, juncs_to_gene = {}, {} + for rec in gtf_record_parser(args.gtf, include_features={'gene', 'exon', 'transcript'}, attrs=GtfAttrsSet.ALL): + gene_id = rec.gene_id.replace('_', '-').split('.')[0] + if rec.feature == 'gene': + genetoinfo[gene_id] = [rec.chrom, rec.start, rec.end, rec.strand, []] + genetoname[gene_id] = rec.gene_name if rec.gene_name else gene_id + if rec.chrom not in chrom_to_gene_pos: + chrom_to_gene_pos[rec.chrom] = [] + chrom_to_gene_pos[rec.chrom].append((rec.start, rec.end, rec.strand, gene_id)) + juncs_to_gene[rec.chrom] = {} + + elif rec.feature == 'exon': + if gene_id not in genetoexons: + genetoexons[gene_id] = {} + if rec.transcript_id not in genetoexons[gene_id]: + genetoexons[gene_id][rec.transcript_id] = [] + genetoexons[gene_id][rec.transcript_id].append((rec.start, rec.end)) + + elif rec.feature == 'transcript': + end5 = rec.start if rec.strand == '+' else rec.end + genetoinfo[gene_id][-1].append(end5) + + print('continuing to parse annot') + # FOR JUNCS TO GENE, DO BY CHROM AS WELL + for chrom in chrom_to_gene_pos: + chrom_to_gene_pos[chrom] = sorted(chrom_to_gene_pos[chrom]) + + for gene in genetoexons: + gene_to_all_exons[gene] = set() + chrom = genetoinfo[gene][0] + for t in genetoexons[gene]: + exons = sorted(list(genetoexons[gene][t])) + gene_to_all_exons[gene].update(set(exons)) + if len(exons) > 1: + juncs = [(exons[x][1], exons[x + 1][0]) for x in range(len(exons) - 1)] + for j in juncs: + if j not in juncs_to_gene[chrom]: + juncs_to_gene[chrom][j] = set() + juncs_to_gene[chrom][j].add(gene) + allexons = sorted(list(gene_to_all_exons[gene])) + newexons = [] + laststart, lastend = -1, -1 + for s, e in allexons: + if s > lastend: + if laststart != -1: + newexons.append((laststart, lastend)) + laststart, lastend = s, e + else: + lastend = max(lastend, e) + if laststart != -1: + newexons.append((laststart, lastend)) + gene_to_all_exons[gene] = newexons - # if args.annotated_fa == 'generate': - # get transcript sequences - args.annotated_bed = args.output + '.annotated_transcripts.bed' - gtf_to_bed(args.annotated_bed, args.gtf, include_gene=True) - args.annotated_fa = args.output + '.annotated_transcripts.fa' - bed_to_sequence(query=args.output + '.annotated_transcripts.bed', genome=args.genome, - outfilename=args.annotated_fa) - - ####NEED TO REMEMBER THAT FUSION DETECTION RELIES ON HAVING PROPERLY STRANDED READS - need to add stranding step and/or better documentation on this - - ###Processing the gtf file so many times is really inefficient, how can we resolve this?? - - ###align to transcriptome with --secondary=no - - if not args.transcriptchimbam: - mm2_cmd = ['minimap2', '-a', '-s', str(args.minfragmentsize), '-t', str(args.threads), '--secondary=no', - args.annotated_fa] + args.reads - mm2_cmd = tuple(mm2_cmd) - - # samtools; the dash at the end means STDIN - samtools_sort_cmd = ('samtools', 'sort', '-@', str(args.threads), '-o', args.output + '_unfilteredtranscriptome.bam', '-') - samtools_index_cmd = ('samtools', 'index', args.output + '_unfilteredtranscriptome.bam') - pipettor.run([mm2_cmd, samtools_sort_cmd]) - pipettor.run([samtools_index_cmd]) - - ##filter transcriptome alignment to chimeric only and remove the rest - - ##run filtering - samfile = pysam.AlignmentFile(args.output + '_unfilteredtranscriptome.bam', "rb") - withsup = pysam.AlignmentFile(args.output + '_transcriptomechimeric.bam', "wb", template=samfile) - for read in samfile.fetch(): - if read.is_mapped and not read.is_secondary: - if read.has_tag('SA'): - withsup.write(read) - samfile.close() - withsup.close() - pysam.index(args.output + '_transcriptomechimeric.bam') - - pipettor.run([('rm', args.output + '_unfilteredtranscriptome.bam', args.output + '_unfilteredtranscriptome.bam.bai')]) - args.transcriptchimbam = args.output + '_transcriptomechimeric.bam' - print('aligned to transcriptome') - - - geneannot, genetoinfo, annot, genetoexons = {}, {}, {}, {} - genetoinfo = {} - for line in open(args.gtf): - if line.startswith('#'): - continue - line = line.rstrip().split('\t', 8) - chrom, ty, start, end, strand = line[0], line[2], int(line[3]) - 1, int(line[4]), line[6] - if ty in {'gene', 'exon', 'transcript'}: - gene_id = line[8].split('gene_id "')[1].split('"')[0] - gene_id = gene_id.replace('_', '-') - if ty == 'gene': - genetoinfo[gene_id] = [chrom, start, end, strand, []] - - elif ty == 'exon': - transcript_id = line[8].split('transcript_id "')[1].split('"')[0] - if gene_id not in genetoexons: genetoexons[gene_id] = {} - if transcript_id not in genetoexons[gene_id]: genetoexons[gene_id][transcript_id] = [] - genetoexons[gene_id][transcript_id].append((start, end)) - if chrom not in annot: annot[chrom] = defaultdict(def_value) - # for i in range(round(start, -1), round(end, -1), 10): - for i in range(round(start, -2), round(end, -2) + 1, 100): - annot[chrom][i].add((gene_id, strand)) - elif ty == 'transcript': - end5 = start if strand == '+' else end - genetoinfo[gene_id][-1].append(end5) - print('read gtf') intronLocs, intronToGenome = {}, {} for g in genetoexons: chrom, start, end, strand, _ = genetoinfo[g] for t in genetoexons[g]: myexons = sorted(genetoexons[g][t]) - last = myexons[-1] - mylocs = [[0, myexons[0][0] - 500, myexons[0][0]]] ##add start of transcript + mylocs = [[0, myexons[0][0] - 500, myexons[0][0]]] # add start of transcript runningtot = 0 for i in range(len(myexons) - 1): - runningtot += myexons[i][1] - myexons[i][0] ##add size of last exon - mylocs.append([runningtot, myexons[i][1], myexons[i + 1][0]]) ##add intron + runningtot += myexons[i][1] - myexons[i][0] # add size of last exon + mylocs.append([runningtot, myexons[i][1], myexons[i + 1][0]]) # add intron runningtot += myexons[-1][1] - myexons[-1][0] mylocs.append([runningtot, myexons[-1][1], myexons[-1][1] + 500]) if strand == '-': mylocs = [[runningtot - mylocs[x][0], mylocs[x][1], mylocs[x][2]] for x in range(len(mylocs))] intronLocs[t] = sorted([x[0] for x in mylocs]) intronToGenome[t] = {x[0]: (x[1], x[2]) for x in mylocs} - print('loaded annot') - - tchim = transcriptomic_chimeras.idTranscriptomicChimeras(args.transcriptchimbam, genetoinfo, intronLocs, intronToGenome, args.support, maxloci=args.maxloci, reqdisttostart=15000) - print('done getting fusions from transcriptome') - # print(tchim) - combchim = genomic_chimeras.idGenomicChimeras(args.genomechimbam, annot, geneannot, genetoinfo, args.support, maxloci=args.maxloci, reqdisttostart=15000) - # print(combchim) - print('done gettting fusions from genome') + + gene_to_paralogs = get_paralog_ref(os.path.realpath(__file__).split('flair_fusion')[0] + 'dgd_Hsa_all_v71.tsv') + + print('loading transcriptomic chimeras') + tchim = id_chimeras('transcriptomic', transcriptchimbam, genetoinfo, chrom_to_gene_pos, + gene_to_all_exons, juncs_to_gene, gene_to_paralogs, genetoname, + args.support, maxloci=args.maxloci, reqdisttostart=args.max_dist_to_TSS, + maxpromiscuity=4, intronLocs=intronLocs, intronToGenome=intronToGenome) + print('loading genomic chimeras') + + combchim = id_chimeras('genomic', genomechimbam, genetoinfo, chrom_to_gene_pos, gene_to_all_exons, juncs_to_gene, gene_to_paralogs, genetoname, args.support, maxloci=args.maxloci, reqdisttostart=args.max_dist_to_TSS, maxpromiscuity=4) + + print('combining genomic and transcriptomic') # for f in tchim: if f not in combchim: @@ -196,50 +231,36 @@ def detectfusions(): startdiststr = ','.join([str(x) for x in combchim[f]['disttostart']]) bedname = g + '__' + '--'.join(genes) strand = '+' if combchim[f][g][1] < combchim[f][g][2] else '-' - bedpos = [str(x) for x in sorted(combchim[f][g][1:])] - - bedline = [combchim[f][g][0]] + bedpos + [bedname, str(len(combchim[f]['reads'])), strand, startdiststr]#, qdiststr] #+ [str(x) for x in combchim[f][g][1:]] + ['255,0,0'] - bedout.write('\t'.join(bedline) + '\n') + positions = sorted(combchim[f][g][1:]) + Bed(combchim[f][g][0], positions[0], positions[1], + name=bedname, score=len(combchim[f]['reads']), strand=strand, + extraCols=[startdiststr]).write(bedout) bedout.close() - # FIXME: use opengz - temp = args.reads[0].split('.') - if temp[-1] == 'gz': temp = temp[:-1] - freadsname = args.output + '.chimreads.' + temp[-1] - - - freads = open(freadsname, 'w') - for file in args.reads: - last = False - if file.split('.')[-1] == 'gz': - readsfile = gzip.open(file, 'rt') - file = file[:-3] - else: readsfile = open(file) - - if file.split('.')[-1] == 'fasta' or file.split('.')[-1] == 'fa': - for line in readsfile: - if line[0] == '>': - readname = line[1:].rstrip().split()[0] - if readname in fusionreads: last = True - else: last = False - if last: freads.write(line) - else: - linecount = 0 - for line in readsfile: - if linecount % 4 == 0: - readname = line[1:].rstrip().split()[0] - if readname in fusionreads: last = True - else: last = False - if last: freads.write(line) - linecount += 1 - freads.close() - print('done processing fusion reads') - if os.path.getsize(args.output + '.prelimfusions.bed') == 0: report_nofusions(args.output) return + print('obtaining fusion reads') + + seenreads = set() + freadsname = args.output + '.fusionreads.prelim.fa' + out_fa = open(freadsname, 'w') + bamfile = pysam.AlignmentFile(genomechimbam, 'rb') + for a in bamfile: + if not a.is_secondary and not a.is_supplementary and a.query_name in fusionreads: + out_fa.write('>' + a.query_name + '\n' + a.get_forward_sequence() + '\n') + seenreads.add(a.query_name) + bamfile.close() + bamfile = pysam.AlignmentFile(transcriptchimbam, 'rb') + for a in bamfile: + if not a.is_secondary and not a.is_supplementary and a.query_name in fusionreads and a.query_name not in seenreads: + out_fa.write('>' + a.query_name + '\n' + a.get_forward_sequence() + '\n') + bamfile.close() + out_fa.close() + + print('generating synthetic reference') makesynthcommand = ['python3', path + 'make_synthetic_fusion_reference.py', '-a', args.gtf, '-g', args.genome, '-o', args.output, '-c', args.output + '.prelimfusions.bed'] @@ -251,15 +272,81 @@ def detectfusions(): # FIXME: pipettor by default captures stderr to include in an error message, this hides logging from # lower level. Maybe don't capture when running flair subtools faidxcommand = ['samtools', 'faidx', args.output + '-syntheticFusionGenome.fa'] - mm2_cmd = ['minimap2', '-ax', 'splice', '-s', str(args.minfragmentsize), '-t', str(args.threads), '-un', - '--secondary=no', '-G', '1000k', args.output + '-syntheticFusionGenome.fa', freadsname] - samtools_filter_cmd = ('samtools', 'view', '-F', '2048', '-hb', '-') - samtools_sort_cmd = ('samtools', 'sort', '-@', str(args.threads), '-o', args.output + '.syntheticAligned.bam', '-') - samtools_index_cmd = ('samtools', 'index', args.output + '.syntheticAligned.bam') - bamtobedcmd = ('bedtools', 'bamtobed', '-bed12', '-i', args.output + '.syntheticAligned.bam') - getsscommand = ['python3', path + 'synthetic_splice_sites.py', args.output + '.syntheticAligned.bed', - args.output + '-syntheticReferenceAnno.gtf', args.output + '.syntheticAligned.SJ.bed', args.output + '-syntheticBreakpointLoc.bed', '8', '2', args.output + '-syntheticFusionGenome.fa']#'15', '2'] - transcriptome_command = ['python3', path + 'flair_transcriptome.py', + pipettor.run([faidxcommand]) + + print('aligning to synthetic fusion genome') + align_to_synth_genome(args.output + '-syntheticFusionGenome.fa', freadsname, args.output + '.syntheticAligned.nosplice.bam', + ['-s', str(args.minfragmentsize), '-t', str(args.threads), '-un', '--secondary=no', '-G', '1000k']) + align_to_synth_genome(args.output + '-syntheticFusionGenome.fa', freadsname, args.output + '.syntheticAligned.withsplice.bam', + ['-s', str(args.minfragmentsize), '-t', str(args.threads), '--secondary=no', '-G', '1000k']) + + rname_to_read = {} + with pysam.AlignmentFile(args.output + '.syntheticAligned.withsplice.bam', 'rb') as bamfile: + for a in bamfile: + if a.is_mapped and not a.is_secondary and not a.is_supplementary: + rname_to_read[a.query_name] = a + with pysam.AlignmentFile(args.output + '.syntheticAligned.nosplice.bam', 'rb') as bamfile: + for a in bamfile: + if a.is_mapped and not a.is_secondary and not a.is_supplementary: + if a.query_name not in rname_to_read: + rname_to_read[a.query_name] = a + else: + nosplice_match = a.get_cigar_stats()[0][0] + nosplice_insert = a.get_cigar_stats()[0][1] + withsplice_match = rname_to_read[a.query_name].get_cigar_stats()[0][0] + withsplice_insert = rname_to_read[a.query_name].get_cigar_stats()[0][1] + if nosplice_match > withsplice_match and nosplice_insert < withsplice_insert: + rname_to_read[a.query_name] = a + template = pysam.AlignmentFile(args.output + '.syntheticAligned.withsplice.bam', 'rb') + outbam = pysam.AlignmentFile(args.output + '.syntheticAligned.unsorted.bam', 'wb', template=template) + for a in rname_to_read: + outbam.write(rname_to_read[a]) + template.close() + outbam.close() + + pipettor.run([('samtools', 'sort', '-o', args.output + '.syntheticAligned.bam', args.output + '.syntheticAligned.unsorted.bam')]) + pipettor.run([('samtools', 'index', args.output + '.syntheticAligned.bam')]) + pipettor.run([('rm', args.output + '.syntheticAligned.withsplice.bam', args.output + '.syntheticAligned.withsplice.bam.bai', + args.output + '.syntheticAligned.nosplice.bam', args.output + '.syntheticAligned.nosplice.bam.bai', + args.output + '.syntheticAligned.unsorted.bam')]) + + print('getting ss') + ipcmd = ('intronProspector', f'--genome-fasta={args.output}-syntheticFusionGenome.fa', f'--intron-bed6={args.output}.syntheticAligned.IPSJ.bed', '-C', '0.0', '--sj-filter=all', f'{args.output}.syntheticAligned.bam') + pipettor.run([ipcmd]) + + fusiontobp = {} + for bed in BedReader(f'{args.output}-syntheticBreakpointLoc.bed', numStdCols=3): + fusiontobp[bed.chrom] = bed.chromStart + + fusion_to_bp_sj = {f: False for f in fusiontobp} + good_sj = [] + + for bed in BedReader(f'{args.output}.syntheticAligned.IPSJ.bed', numStdCols=6): + fusion = bed.chrom + start, end = bed.chromStart, bed.chromEnd + readsup = bed.score + sjmotif = bed.name.split('_')[-1] + strand = bed.strand + if readsup >= 2: + if sjmotif in {"GT/AG", "GC/AG", "AT/AC"} and strand == '+': # for synthetic alignment, all junctions should be '+' + good_sj.append(bed.toRow()) + if start < fusiontobp[fusion] < end: + fusion_to_bp_sj[fusion] = True + + for bed in BedReader(f'{args.output}.syntheticAligned.IPSJ.bed', numStdCols=6): + fusion = bed.chrom + start, end = bed.chromStart, bed.chromEnd + readsup = bed.score + strand = bed.strand + if readsup >= 2 and fusion_to_bp_sj[fusion] is False and start < fusiontobp[fusion] < end: # no good breakpoint junctions yet + good_sj.append(bed.toRow()) + + out = open(f'{args.output}.syntheticAligned.SJ.bed', 'w') + for line in good_sj: + out.write('\t'.join(line) + '\n') + out.close() + + transcriptome_command = ['flair', 'transcriptome', '--genome_aligned_bam', args.output + '.syntheticAligned.bam', '--genome', args.output + '-syntheticFusionGenome.fa', '--gtf', args.output + '-syntheticReferenceAnno.gtf', @@ -269,68 +356,67 @@ def detectfusions(): '--sjc_support', '2', '--allow_paralogs', '--end_window', '300', - '--no_check_splice', - '--no_stringent', + # '--no_check_splice', + # '--no_stringent', '--no_align_to_annot', '--fusion_breakpoints', args.output + '-syntheticBreakpointLoc.bed', '--output', args.output + '.syntheticAligned.flair',] - if args.keep_intermediate: - transcriptome_command.append("--keep_intermediate") - - pipettor.run([faidxcommand]) - print('synth genome made') - pipettor.run([mm2_cmd, samtools_filter_cmd, samtools_sort_cmd]) - print('done aligning to synthetic fusion genome') - pipettor.run([samtools_index_cmd]) - pipettor.run([bamtobedcmd], stdout=args.output + '.syntheticAligned.bed') - pipettor.run([getsscommand]) - print('done getting ss') - - # only include junction if any where found by getsscommand - # FIXME: would be better getsscommand was library that returned a status + # only include junction if any where found junc_bed = args.output + '.syntheticAligned.SJ.bed' if os.path.exists(junc_bed) and (os.path.getsize(junc_bed) > 0): transcriptome_command.extend(['--junction_bed', junc_bed]) + print('generating fusion transcriptome') + print(' '.join(transcriptome_command)) pipettor.run(transcriptome_command) - ##clean up isoform/gene names for args.output + '.combined.isoform.read.map.txt', '.isoforms.bed', '.isoforms.fa' + # clean up isoform/gene names for args.output + '.combined.isoform.read.map.txt', '.isoforms.bed', '.isoforms.fa' oldnametonewname = {} out = open(args.output + '.syntheticAligned.isoforms.bed', 'w') c = 0 - for line in open(args.output + '.syntheticAligned.flair.isoforms.bed'): - c +=1 - line = line.rstrip().split('\t') - newname = 'fusioniso' + str(c) + '_' + line[0] - oldnametonewname[line[3]] = newname - line[3] = newname - out.write('\t'.join(line) + '\n') + for bed in BedReader(args.output + '.syntheticAligned.flair.isoforms.bed', fixScores=True): + c += 1 + newname = 'fusioniso' + str(c) + '_' + bed.chrom + oldnametonewname[bed.name] = newname + bed.name = newname + bed.write(out) out.close() out = open(args.output + '.syntheticAligned.isoform.read.map.txt', 'w') for line in open(args.output + '.syntheticAligned.flair.isoform.read.map.txt'): line = line.split('\t', 1) - line[0] = oldnametonewname[line[0]] - out.write('\t'.join(line)) + if line[0] in oldnametonewname: + line[0] = oldnametonewname[line[0]] + out.write('\t'.join(line)) + out.close() + out = open(args.output + '.isoform.counts.txt', 'w') + for line in open(args.output + '.syntheticAligned.flair.isoform.counts.txt'): + line = line.split('\t', 1) + if line[0] in oldnametonewname: + line[0] = oldnametonewname[line[0]] + out.write('\t'.join(line)) out.close() - maxpromiscuity = 4 - convert_synthetic_isos(args.gtf, args.output + '.syntheticAligned.isoforms.bed', - args.output + '.syntheticAligned.isoform.read.map.txt', freadsname, - args.output + '-syntheticBreakpointLoc.bed', args.output + '.fusions.isoforms.bed', os.path.realpath(__file__).split('flair_fusion')[0] + 'dgd_Hsa_all_v71.tsv', maxpromiscuity) + print('converting coordinates from synthetic to genomic') + convert_synthetic_isos(args.output + '.syntheticAligned.isoforms.bed', + args.output + '.syntheticAligned.isoform.read.map.txt', freadsname, + args.output + '-syntheticBreakpointLoc.bed', args.output + '.fusions.isoforms.bed', args.min_dist_between_bp) goodisos = set() - for line in open(args.output + '.fusions.isoforms.bed'): - line = line.rstrip().split('\t') - goodisos.add('_'.join(line[3].split('_')[1:])) + for bed in BedReader(args.output + '.fusions.isoforms.bed', fixScores=True): + goodisos.add('_'.join(bed.name.split('_')[1:])) out = open(args.output + '.fusions.isoforms.fa', 'w') good = False for line in open(args.output + '.syntheticAligned.flair.isoforms.fa'): if line[0] == '>': oldname = line[1:].rstrip() - if oldnametonewname[oldname] in goodisos: good = True - else: good = False - if good: out.write('>' + oldnametonewname[oldname] + '\n') - elif good: out.write(line) + if oldnametonewname[oldname] in goodisos: + good = True + else: + good = False + if good: + out.write('>' + oldnametonewname[oldname] + '\n') + elif good: + out.write(line) out.close() os.rename(args.output + '.syntheticAligned.isoform.read.map.txt', args.output + '.fusion.isoform.read.map.txt') @@ -341,9 +427,5 @@ def detectfusions(): os.remove(filename) - - - - if __name__ == '__main__': detectfusions() diff --git a/src/flair/flair_quantify.py b/src/flair/flair_quantify.py index 5341decd..55c08f9a 100755 --- a/src/flair/flair_quantify.py +++ b/src/flair/flair_quantify.py @@ -2,66 +2,62 @@ import os import sys -import re import argparse import pipettor -import os import numpy as np import codecs import tempfile -import time import logging -import pipettor, pysam os.environ['OPENBLAS_NUM_THREADS'] = '1' -def quantify(isoform_sequences=''): +def quantify(isoform_sequences=''): # noqa: C901 - FIXME: reduce complexity parser = argparse.ArgumentParser() required = parser.add_argument_group('required named arguments') required.add_argument('-r', '--reads_manifest', action='store', dest='r', type=str, - required=True, help='Tab delimited file containing sample id, condition, batch, reads.fq') + required=True, help='Tab delimited file containing sample id, condition, batch, reads.fq') if not isoform_sequences: required.add_argument('-i', '--isoforms', action='store', dest='i', - type=str, required=True, help='FastA of FLAIR collapsed isoforms') + type=str, required=True, help='FastA of FLAIR collapsed isoforms') parser.add_argument('-o', '--output', type=str, action='store', dest='o', default='flair.quantify', - help='''output file name base for FLAIR quantify (default: flair.quantify)''') + help='''output file name base for FLAIR quantify (default: flair.quantify)''') parser.add_argument('-t', '--threads', type=int, - action='store', dest='t', default=4, help='minimap2 number of threads (4)') + action='store', dest='t', default=4, help='minimap2 number of threads (4)') parser.add_argument('--temp_dir', default='', action='store', dest='temp_dir', - help='''directory to put temporary files. use './" to indicate current directory - (default: python tempfile directory)''') + help='''directory to put temporary files. use './" to indicate current directory + (default: python tempfile directory)''') parser.add_argument('--sample_id_only', default=False, action='store_true', dest='sample_id_only', - help='''only use sample id in output header''') + help='''only use sample id in output header''') parser.add_argument('--tpm', action='store_true', dest='tpm', default=False, - help='Convert counts matrix to transcripts per million and output as a separate file named .tpm.tsv') + help='Convert counts matrix to transcripts per million and output as a separate file named .tpm.tsv') parser.add_argument('--quality', type=int, action='store', dest='quality', default=0, - help='''minimum MAPQ of read assignment to an isoform (0)''') + help='''minimum MAPQ of read assignment to an isoform (0)''') parser.add_argument('--trust_ends', default=False, action='store_true', dest='trust_ends', - help='specify if reads are generated from a long read method with minimal fragmentation') + help='specify if reads are generated from a long read method with minimal fragmentation') parser.add_argument('--generate_map', default=False, action='store_true', dest='generate_map', - help='''create read-to-isoform assignment files for each sample (default: not specified)''') - parser.add_argument('--isoform_bed', '--isoformbed', default='', type=str, action='store', dest='isoforms', - help='''isoform .bed file, must be specified if --stringent or check_splice is specified''') - parser.add_argument('--stringent', default=False, action='store_true', dest='stringent', - help='''Supporting reads must cover 80 percent of their isoform and extend at least 25 nt into the - first and last exons. If those exons are themselves shorter than 25 nt, the requirement becomes - 'must start within 4 nt from the start" or "must end within 4 nt from the end" ''') - parser.add_argument('--check_splice', default=False, action='store_true', dest='check_splice', - help='''enforce coverage of 4 out of 6 bp around each splice site and no - insertions greater than 3 bp at the splice site''') + help='''create read-to-isoform assignment files for each sample (default: not specified)''') + required.add_argument('--isoform_bed', '--isoformbed', default='', type=str, action='store', dest='isoforms', + help='''isoform .bed file, must be specified if --stringent or check_splice is specified''') + # parser.add_argument('--stringent', default=False, action='store_true', dest='stringent', + # help='''Supporting reads must cover 80 percent of their isoform and extend at least 25 nt into the + # first and last exons. If those exons are themselves shorter than 25 nt, the requirement becomes + # 'must start within 4 nt from the start" or "must end within 4 nt from the end" ''') + # parser.add_argument('--check_splice', default=False, action='store_true', dest='check_splice', + # help='''enforce coverage of 4 out of 6 bp around each splice site and no + # insertions greater than 3 bp at the splice site''') parser.add_argument('--output_bam', default=False, action='store_true', dest='output_bam', - help='whether to output bam file of reads aligned to correct isoforms') + help='whether to output bam file of reads aligned to correct isoforms') args = parser.parse_args() if isoform_sequences: args.i = isoform_sequences args.o += '.counts_matrix.tsv' - if (args.stringent or args.check_splice): - if not args.isoforms: - raise Exception('Please specify isoform models as .bed file using --isoform_bed') - elif not os.path.exists(args.isoforms): - raise Exception('Isoform models bed file path does not exist: ' + args.isoforms) - elif args.isoforms.endswith('.psl'): - raise Exception('** Error. Flair no longer accepts PSL input. Please use psl_to_bed first.') + # if (args.stringent or args.check_splice): + # if not args.isoforms: + # raise Exception('Please specify isoform models as .bed file using --isoform_bed') + if not os.path.exists(args.isoforms): + raise Exception('Isoform models bed file path does not exist: ' + args.isoforms) + elif args.isoforms.endswith('.psl'): + raise Exception('** Error. Flair no longer accepts PSL input. Please use psl_to_bed first.') if not os.path.exists(args.i): raise Exception('Isoform sequences fasta file path does not exist: ' + args.i) @@ -81,7 +77,7 @@ def quantify(isoform_sequences=''): if args.temp_dir != '': if not os.path.isdir(args.temp_dir): pipettor.run([('mkdir', '-p', args.temp_dir)]) - readFileRoot = args.temp_dir + '/' + readFileRoot[readFileRoot.rfind('/')+1:] + readFileRoot = args.temp_dir + '/' + readFileRoot[readFileRoot.rfind('/') + 1:] if not os.path.exists(readFile): raise Exception('Query file path does not exist: {}'.format(readFile)) @@ -91,24 +87,23 @@ def quantify(isoform_sequences=''): for num, data in enumerate(samData, 0): sample, group, batch, readFile, samOut = data - logging.info(f'Aligning and quantifying isoforms for sample {sample}_{batch}, {num+1}/{len(samData)}') + logging.info(f'Aligning and quantifying isoforms for sample {sample}_{batch}, {num + 1}/{len(samData)}') mm2_command = ('minimap2', '--MD', '-a', '-N', '4', '-t', str(args.t), args.i, readFile) count_cmd = ['filter_transcriptome_align.py', '-s', '-', - '-o', samOut+'.counts.txt', '-t', str(args.t), '--quality', str(args.quality)] + '-o', samOut + '.counts.txt', '-t', str(args.t), '--quality', str(args.quality), '--stringent', '--check_splice', '-i', args.isoforms] if args.trust_ends: count_cmd += ['--trust_ends'] - if args.stringent: - count_cmd += ['--stringent'] - if args.check_splice: - count_cmd += ['--check_splice'] - if args.check_splice or args.stringent: - count_cmd += ['-i', args.isoforms] + # if args.stringent: + # count_cmd += ['--stringent'] + # if args.check_splice: + # count_cmd += ['--check_splice'] + # if args.check_splice or args.stringent: + # count_cmd += ['-i', args.isoforms] if args.generate_map: - count_cmd += ['--generate_map', args.o+'.'+sample+'.'+group+'.isoform.read.map.txt'] + count_cmd += ['--generate_map', args.o + '.' + sample + '.' + group + '.isoform.read.map.txt'] if args.output_bam: - count_cmd += ['--output_bam', args.o+'.'+sample+'.'+group+'.flair.aligned.bam'] - + count_cmd += ['--output_bam', args.o + '.' + sample + '.' + group + '.flair.aligned.bam'] pipettor.run([mm2_command, tuple(count_cmd)]) @@ -116,19 +111,17 @@ def quantify(isoform_sequences=''): countData = dict() for num, data in enumerate(samData): sample, group, batch, readFile, samOut = data - for line in open(samOut+'.counts.txt'): + for line in open(samOut + '.counts.txt'): line = line.rstrip().split('\t') iso, numreads = line[0], line[1] if iso not in countData: countData[iso] = np.zeros(len(samData)) countData[iso][num] = numreads - - - countMatrix = open(args.o+'.counts.tsv', 'w') + countMatrix = open(args.o + '.counts.tsv', 'w') if args.sample_id_only: - countMatrix.write('\t'.join(['ID']+[x[0] for x in samData])+'\n') + countMatrix.write('\t'.join(['ID'] + [x[0] for x in samData]) + '\n') else: countMatrix.write('ids\t%s\n' % '\t'.join(['_'.join(x[:3]) for x in samData])) @@ -139,8 +132,9 @@ def quantify(isoform_sequences=''): countMatrix.close() if args.tpm: - pipettor.run([('counts_to_tpm.py', args.o+'.counts.tsv', args.o+'.tpm.tsv')]) - return args.o+'.counts.tsv' + pipettor.run([('counts_to_tpm.py', args.o + '.counts.tsv', args.o + '.tpm.tsv')]) + return args.o + '.counts.tsv' + if __name__ == '__main__': # FIXME: need proper error handling diff --git a/src/flair/flair_spliceevents.py b/src/flair/flair_spliceevents.py index 6e5a438d..f41af72b 100644 --- a/src/flair/flair_spliceevents.py +++ b/src/flair/flair_spliceevents.py @@ -2,25 +2,23 @@ import argparse import os -import glob import pipettor import shutil import pysam import logging import scipy.stats as sps -from flair.partition_runner import PartitionRunner -from flair import FlairInputDataError, SeqRange +from flair.partition_runner import PartitionRunner, combine_temp_files_by_suffix +from flair import SeqRange from statistics import median -from flair.bed_to_sequence import bed_to_sequence -from flair.gtf_io import gtf_data_parser, gtf_write_row, GtfTranscript, GtfExon -from flair.intron_support import IntronSupport -from flair.junction_correct import JunctionCorrector -from flair.isoform_data import (Junc, ReadRec) -from flair.read_processing import (should_process_read, generate_genomic_alignment_read_to_clipping_file, - read_correct_to_readrec, add_corrected_read_to_groups) - -#FIXME: this is temp, need to move into a -import flair.flair_transcriptome as ft +from flair.junction_correct import junction_corrector_factory +from flair.isoform_data import ReadRec +from flair.io_utils import make_temp_dir +from flair.read_processing import get_sequence_from_bed, generate_genomic_alignment_read_to_clipping_file +from flair.read_correction import filter_correct_group_reads +from flair.gtf_io import gtf_data_parser, GtfAttrsSet, TRANSCRIPT_EXON_FEATURES +from flair.annotation_data import annot_data_from_gtf +from flair.pycbio.hgdata.bed import Bed, BedReader +from flair.count_sam_transcripts import run_count_sam_transcripts def get_args(): parser = argparse.ArgumentParser(description='identifies counts of different splicing events directly from a ' @@ -32,20 +30,20 @@ def get_args(): parser.add_argument('-o', '--output', default='flair', help='output file name base for FLAIR isoforms (default: flair)') parser.add_argument('-t', '--threads', type=int, default=4, - help='minimap2 number of threads (4)') + help='the number of threads to use (4)') + # FIXME: this is different than all other modules that use --gtf. parser.add_argument('-f', '--annot', required=True, default='', help='GTF annotation file, used for renaming FLAIR isoforms ' 'to annotated isoforms and adjusting TSS/TESs') + # FIXME: what is the difference than the above, same description parser.add_argument('--annot_basic', default='', help='GTF annotation file, used for renaming FLAIR isoforms ' 'to annotated isoforms and adjusting TSS/TESs') - - # FIXME: - # parser.add_argument('--junction_tab', help='short-read junctions in SJ.out.tab format. ' - # 'Use this option if you aligned your short-reads with STAR, ' - # 'STAR will automatically output this file') + parser.add_argument('--junction_tab', help='short-read junctions in SJ.out.tab format. ' + 'Use this option if you aligned your short-reads with STAR, ' + 'STAR will automatically output this file') parser.add_argument('--junction_bed', help='short-read junctions in bed format ' - '(can be generated from short-read alignment with junctions_from_sam)') + '(can be generated from long-read alignment with intron-prospector)') parser.add_argument('--region_bed', help='bed file with regions to parallelize by; if not specified, all chromosomes are used') parser.add_argument('--junction_support', type=int, default=1, @@ -53,7 +51,6 @@ def get_args(): 'If your junctions file is in bed format, the score field will be used for read support.') parser.add_argument('--ss_window', type=int, default=15, help='window size for correcting splice sites (15)') - parser.add_argument('--junc_support', type=int, default=2, help='''minimum number of supporting reads for a specific junction''') parser.add_argument('--event_support', type=int, default=20, @@ -62,17 +59,10 @@ def get_args(): help='''minimum (total reads in splicing event)/(total coverage over locus) to call event''') parser.add_argument('--junc_frac_of_event', type=float, default=0.02, help='''minimum (reads with junction/total reads in splicing event) Set to 0 for max recall''') - - # parser.add_argument('--parallel_mode', default='auto:1GB', - # help='''parallelization mode. Default: "auto:1GB" This indicates an automatic threshold where - # if the file is less than 1GB, parallelization is done by chromosome, but if it's larger, - # parallelization is done by region of non-overlapping reads. Other modes: bychrom, byregion, - # auto:xGB - for setting the auto threshold, it must be in units of GB.''') - parser.add_argument('--keep_intermediate', default=False, action='store_true', help='''specify if intermediate and temporary files are to be kept for debugging. - Intermediate files include: promoter-supported reads file, - read assignments to firstpass isoforms''') + Intermediate files include: promoter-supported reads file, + read assignments to firstpass isoforms''') parser.add_argument('--check_outliers', default=False, action='store_true', help='''whether to run a statistical analysis to identify and filter outliers from the input samples''') parser.add_argument('--keep_sup', default=False, action='store_true', @@ -81,20 +71,21 @@ def get_args(): help='''specify if you want to output corrected read ends bed file''') parser.add_argument('--noaligntoannot', default=False, action='store_true', help='''specify if you don't want - an initial alignment to the annotated sequences and only want transcript - detection from the genomic alignment. - Will be slightly faster but less accurate if the annotation is good''') + an initial alignment to the annotated sequences and only want transcript + detection from the genomic alignment. + Will be slightly faster but less accurate if the annotation is good''') args = parser.parse_args() args.trust_ends = False args.remove_internal_priming = False - args.quality = 0 # should only be used for genomic alignment + args.quality = 0 # should only be used for genomic alignment if not os.path.exists(args.genome): parser.error(f'Genome file path does not exist: {args.genome}') return args + TERMINAL_JUNCTION_DIST_FROM_ANNOT = 20 MIN_TERMINAL_JUNCTION_SEPARATION = 100 MIN_TERMINAL_SS_FRACTION = 0.1 @@ -144,22 +135,21 @@ def get_juncs_to_gene(juncs, isoinfo, sjc_to_gene, junc_to_gene, gene_to_exons, def group_juncs_by_annot_gene(sjtoends, sjc_to_gene, junc_to_gene, gene_to_exons, gene_to_juncs): genetojuncs, nogenejuncs, sereads = {}, {}, [] - c, d = 0, 0 - for juncs in sjtoends: # assuming unspliced reads already removed - if len(juncs) > 0: # remove unspliced reads - thisgene = get_juncs_to_gene(juncs, sjtoends[juncs], sjc_to_gene, junc_to_gene, gene_to_exons, gene_to_juncs) + no_gene_reads, se_reads_cnt = 0, 0 + for (chrom, juncs) in sjtoends: + if len(juncs) > 0: # skip single-exon reads + thisgene = get_juncs_to_gene(juncs, sjtoends[(chrom, juncs)], sjc_to_gene, junc_to_gene, gene_to_exons, gene_to_juncs) if thisgene: if thisgene not in genetojuncs: genetojuncs[thisgene] = {} - genetojuncs[thisgene][juncs] = sjtoends[juncs] + genetojuncs[thisgene][juncs] = sjtoends[(chrom, juncs)] else: - c += len(sjtoends[juncs]) - nogenejuncs[juncs] = sjtoends[juncs] + no_gene_reads += sjtoends[(chrom, juncs)].num_reads + nogenejuncs[juncs] = sjtoends[(chrom, juncs)] else: - d += len(sjtoends[juncs]) - sereads.extend(sjtoends[juncs]) - # print(c, 'reads not assigned to a gene') - # print(d, 'single exon reads discarded') + se_reads_cnt += sjtoends[(chrom, juncs)].num_reads + sereads.extend(sjtoends[(chrom, juncs)].reads) + logging.debug(f"gene assignment: {no_gene_reads} spliced reads not assigned to a gene, {se_reads_cnt} single-exon reads discarded") return genetojuncs, nogenejuncs, sereads @@ -211,8 +201,8 @@ def extract_end_coverage_info(juncs, readinfo, allsamples, sample, thischrom, ge allblocks[firstexon][sample] += 1 allblocks[lastexon][sample] += 1 if outends: - outends.write('\t'.join([thischrom, str(r.start), str(r.end), - gene + '|' + r.name, '.', strand]) + '\n') + Bed(thischrom, r.start, r.end, name=gene + '|' + r.name, + score=0, strand=strand).write(outends) return allblocks def determine_juncs_are_subset(juncs, alljuncs): @@ -222,15 +212,15 @@ def determine_juncs_are_subset(juncs, alljuncs): if juncs != otherjuncs and len(juncs) < len(otherjuncs): if str(juncs)[1:-1].rstrip(',') in str(otherjuncs): is_subset = True - other_internal_exons = [(otherjuncs[x][1], otherjuncs[x+1][0]) for x in range(len(otherjuncs)-1)] + other_internal_exons = [(otherjuncs[x][1], otherjuncs[x + 1][0]) for x in range(len(otherjuncs) - 1)] for other_exon in other_internal_exons: if juncs[0][0] == other_exon[1]: unique_seq_bound[0].append(other_exon[1] - other_exon[0]) if juncs[-1][1] == other_exon[0]: unique_seq_bound[1].append(other_exon[1] - other_exon[0]) if is_subset: - unique_seq_bound[0] = max(unique_seq_bound[0]) if len(unique_seq_bound[0])>0 else None - unique_seq_bound[1] = max(unique_seq_bound[1]) if len(unique_seq_bound[1])>0 else None + unique_seq_bound[0] = max(unique_seq_bound[0]) if len(unique_seq_bound[0]) > 0 else None + unique_seq_bound[1] = max(unique_seq_bound[1]) if len(unique_seq_bound[1]) > 0 else None return unique_seq_bound else: return [None, None] @@ -240,12 +230,12 @@ def get_start_end_counts(readinfo, subset_info, sample, first_junc, last_junc, t # if subset_info[0] == None or first_junc-start > subset_info[0]: t_starts_ends[0].append((r.start, sample)) if first_junc not in t_first_last_sj[0]: - t_first_last_sj[0][first_junc] = {s:0 for s in allsamples} + t_first_last_sj[0][first_junc] = {s: 0 for s in allsamples} t_first_last_sj[0][first_junc][sample] += 1 # if subset_info[1] == None or end-last_junc > subset_info[1]: t_starts_ends[1].append((r.end, sample)) if last_junc not in t_first_last_sj[1]: - t_first_last_sj[1][last_junc] = {s:0 for s in allsamples} + t_first_last_sj[1][last_junc] = {s: 0 for s in allsamples} t_first_last_sj[1][last_junc][sample] += 1 return t_starts_ends, t_first_last_sj @@ -267,7 +257,7 @@ def group_ends(t_starts_ends, allsamples, window): end_to_counts[g][e[1]] += 1 curr_group = [] curr_group.append(end) - last_end=end[0] + last_end = end[0] # all_groups.append(curr_group) # end_to_counts[median(curr_group)] = len(curr_group) g = int(median([x[0] for x in curr_group])) @@ -319,8 +309,6 @@ def extract_tandem_splicing_info(sjc, alljuncs, outer_junc_to_exons, allsamples, outer_right = True # this checks for weird junction patterns - requires outer junction to be used as an outer junction if outer_left and outer_right: - if len(inner_juncs) == 1: - print(j, inner_juncs, sjc) inner_juncs = tuple(inner_juncs) if inner_juncs not in outer_junc_to_exons[j]: outer_junc_to_exons[j][inner_juncs] = {s: 0 for s in allsamples} @@ -328,38 +316,34 @@ def extract_tandem_splicing_info(sjc, alljuncs, outer_junc_to_exons, allsamples, return outer_junc_to_exons - - - -def extract_splicing_info(allsamples, allgenetojuncs, gene, strand, thischrom, outends): +def extract_splicing_info(allsamples, all_genes_to_juncs, gene, strand, thischrom, outends): ss5to3, ss3to5, alljuncs, exonjpairs, allblocks = {}, {}, {}, {}, {} afe, ale = {}, {} - t_starts_ends, t_first_last_sj = [[],[]], [{},{}] + t_starts_ends, t_first_last_sj = [[], []], [{}, {}] interval_to_reads = {} outer_junc_to_exons = {} - ##get valid read ends by excluding subset junction chains (check for whether end is within exon) - ##only check relative to other reads, not reference? - ##get list of valid read ends after excluding subset junction chains - ##cluster within window, take median/mode of window (use code from transcriptome)? + # get valid read ends by excluding subset junction chains (check for whether end is within exon) + # only check relative to other reads, not reference? + # get list of valid read ends after excluding subset junction chains + # cluster within window, take median/mode of window (use code from transcriptome)? # process each sample for each gene - only ever storing data for one gene at a time for s in range(len(allsamples)): sample = allsamples[s] - ##TODO: change to genetojuncs being all juncs from all samples!! - genetojuncs = allgenetojuncs[s] + # TODO: change to genetojuncs being all juncs from all samples!! + genetojuncs = all_genes_to_juncs[s] if gene in genetojuncs: for juncs in genetojuncs[gene]: readinfo = genetojuncs[gene][juncs] numreads = len(readinfo) - ###get intervals for calculating coverage + # get intervals for calculating coverage for r in readinfo: - interval = (round(r.start,-1), round(r.end, -1)) + interval = (round(r.start, -1), round(r.end, -1)) if interval not in interval_to_reads: interval_to_reads[interval] = {s: 0 for s in allsamples} interval_to_reads[interval][sample] += 1 - ss5to3, ss3to5, alljuncs = extract_35ss_info(juncs, strand, allsamples, sample, numreads, ss5to3, ss3to5, alljuncs) afe, ale = extract_afe_ale(juncs, strand, allsamples, sample, numreads, alljuncs, afe, ale) @@ -372,10 +356,9 @@ def extract_splicing_info(allsamples, allgenetojuncs, gene, strand, thischrom, o t_starts_ends, t_first_last_sj = get_start_end_counts(readinfo, subset_info, sample, juncs[0][0], juncs[-1][1], t_starts_ends, t_first_last_sj, allsamples) - return ss5to3, ss3to5, alljuncs, exonjpairs, allblocks, t_starts_ends, t_first_last_sj, interval_to_reads, afe, ale, outer_junc_to_exons -def write_exon_skipping(exonjpairs, alljuncs, allsamples, thischrom, strand, gene, mycolor, min_read_support, interval_to_reads, junc_frac_of_event, event_support, outer_junc_to_exons): +def write_exon_skipping(exonjpairs, alljuncs, allsamples, thischrom, strand, gene, mycolor, min_read_support, interval_to_reads, junc_frac_of_event, event_support, outer_junc_to_exons): # noqa: C901 - FIXME: reduce complexity # outer_junc_to_exons = {} # outer_junc_to_all_inc = {} exon_to_outer_juncs = {} @@ -388,14 +371,14 @@ def write_exon_skipping(exonjpairs, alljuncs, allsamples, thischrom, strand, gen if exon not in exon_to_outer_juncs: exon_to_outer_juncs[exon] = set() - exon_to_all_inc[exon] = {s:0 for s in allsamples} - exon_to_all_exc[exon] = {s:0 for s in allsamples} + exon_to_all_inc[exon] = {s: 0 for s in allsamples} + exon_to_all_exc[exon] = {s: 0 for s in allsamples} exon_to_outer_juncs[exon].add(outerjunc) exon_to_all_inc[exon] = add_counts_to_dict(exon_to_all_inc[exon], exonjpairs[(prevjunc, nextjunc)]) if outerjunc in alljuncs: # if outerjunc not in outer_junc_to_exons: - # outer_junc_to_exons[outerjunc] = set() - # outer_junc_to_all_inc[outerjunc] = {s:0 for s in allsamples} + # outer_junc_to_exons[outerjunc] = set() + # outer_junc_to_all_inc[outerjunc] = {s: 0 for s in allsamples} exon_to_all_exc[exon] = add_counts_to_dict(exon_to_all_exc[exon], alljuncs[outerjunc]) # outer_junc_to_exons[outerjunc].add(exon) # outer_junc_to_all_inc[outerjunc] = add_counts_to_dict(outer_junc_to_all_inc[outerjunc], exonjpairs[(prevjunc, nextjunc)]) @@ -406,52 +389,56 @@ def write_exon_skipping(exonjpairs, alljuncs, allsamples, thischrom, strand, gen tot_counts = exon_to_all_inc[exon] tot_counts = add_counts_to_dict(tot_counts, exon_to_all_exc[exon]) - inc_frac_list = [exon_to_all_inc[exon][s]/tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] + inc_frac_list = [exon_to_all_inc[exon][s] / tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] if len(inc_frac_list) >= 1 \ - and any([exon_to_all_inc[exon][s] >= min_read_support for s in allsamples]) \ - and any([exon_to_all_exc[exon][s] >= min_read_support for s in allsamples]) \ - and (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + and any([exon_to_all_inc[exon][s] >= min_read_support for s in allsamples]) \ + and any([exon_to_all_exc[exon][s] >= min_read_support for s in allsamples]) \ + and (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): outer_juncs = exon_to_outer_juncs[exon] bedlines = [] goodouterjuncs = set() innerjuncs = set() for outerjunc in outer_juncs: - if any([exonjpairs[((outerjunc[0], exon[0]), (exon[1], outerjunc[1]))][s] >= min_read_support for s in allsamples]) \ - and any([junc_frac_of_event <= exonjpairs[((outerjunc[0], exon[0]), (exon[1], outerjunc[1]))][s]/(exon_to_all_inc[exon][s] + exon_to_all_exc[exon][s]) <= 1-junc_frac_of_event if (exon_to_all_inc[exon][s] + exon_to_all_exc[exon][s]) > 0 else False for s in allsamples]): + ejpair = exonjpairs[((outerjunc[0], exon[0]), (exon[1], outerjunc[1]))] + if any([ejpair[s] >= min_read_support for s in allsamples]) \ + and any([junc_frac_of_event <= ejpair[s] / (exon_to_all_inc[exon][s] + exon_to_all_exc[exon][s]) <= 1 - junc_frac_of_event + if (exon_to_all_inc[exon][s] + exon_to_all_exc[exon][s]) > 0 else False for s in allsamples]): goodouterjuncs.add(outerjunc) innerjuncs.add((outerjunc[0], exon[0])) innerjuncs.add((exon[1], outerjunc[1])) - # oj_string = [f'{thischrom}:{j[0]}-{j[1]}' for j in sorted(list(goodouterjuncs))] - ename = f'es-of-{thischrom}:{exon[0]}-{exon[1]}' #-relTo-{",".join(oj_string)}({strand})-{gene}' + ename = f'es-of-{thischrom}:{exon[0]}-{exon[1]}' for outerjunc in goodouterjuncs: - bedlines.append([thischrom, outerjunc[0]-10, outerjunc[1]+10, f'inc_{ename}', 0, strand, outerjunc[0]-10, outerjunc[1]+10, mycolor, 3, f'10,{exon[1]-exon[0]},10', f'0,{10+exon[0]-outerjunc[0]},{10+outerjunc[1]-outerjunc[0]}']) + # FIXME: use BED class + bedlines.append([thischrom, outerjunc[0] - 10, outerjunc[1] + 10, f'inc_{ename}', 0, strand, + outerjunc[0] - 10, outerjunc[1] + 10, mycolor, 3, + f'10,{exon[1] - exon[0]},10', + f'0,{10 + exon[0] - outerjunc[0]},{10 + outerjunc[1] - outerjunc[0]}']) if (outerjunc[0], exon[0]) not in esjuncs: esjuncs[(outerjunc[0], exon[0])] = {} if outerjunc not in esjuncs[(outerjunc[0], exon[0])]: - esjuncs[(outerjunc[0], exon[0])][outerjunc] = {s:0 for s in allsamples} + esjuncs[(outerjunc[0], exon[0])][outerjunc] = {s: 0 for s in allsamples} esjuncs[(outerjunc[0], exon[0])][outerjunc] = add_counts_to_dict(esjuncs[(outerjunc[0], exon[0])][outerjunc], exonjpairs[((outerjunc[0], exon[0]), (exon[1], outerjunc[1]))]) if (exon[1], outerjunc[1]) not in esjuncs: esjuncs[(exon[1], outerjunc[1])] = {} if outerjunc not in esjuncs[(exon[1], outerjunc[1])]: - esjuncs[(exon[1], outerjunc[1])][outerjunc] = {s:0 for s in allsamples} + esjuncs[(exon[1], outerjunc[1])][outerjunc] = {s: 0 for s in allsamples} esjuncs[(exon[1], outerjunc[1])][outerjunc] = add_counts_to_dict(esjuncs[(exon[1], outerjunc[1])][outerjunc], exonjpairs[((outerjunc[0], exon[0]), (exon[1], outerjunc[1]))]) event_to_info[ename] = SplicingEvent(ename, 'es', gene, thischrom, strand, tot_counts, allsamples) - event_to_info[ename].events['inc'] = SplicingEventJunction('inc', bedlines, exon_to_all_inc[exon], innerjuncs, set(), goodouterjuncs, {exon,}) + event_to_info[ename].events['inc'] = SplicingEventJunction('inc', bedlines, exon_to_all_inc[exon], innerjuncs, set(), goodouterjuncs, {exon, }) - event_to_info[ename].events['exc'] = SplicingEventJunction('exc', [], exon_to_all_exc[exon], set(), innerjuncs, goodouterjuncs, {exon,}) + event_to_info[ename].events['exc'] = SplicingEventJunction('exc', [], exon_to_all_exc[exon], set(), innerjuncs, goodouterjuncs, {exon, }) if len(goodouterjuncs) > 0: event_to_info[ename].totoverlap = get_overlapping_reads((max([x[0] for x in goodouterjuncs]), min([x[1] for x in goodouterjuncs])), interval_to_reads, allsamples) else: event_to_info[ename].totoverlap = get_overlapping_reads((max([x[0] for x in outer_juncs]), min([x[1] for x in outer_juncs])), interval_to_reads, allsamples) - finaljuncs = goodouterjuncs | innerjuncs seen_junc_combos.add(frozenset(finaljuncs)) @@ -460,23 +447,23 @@ def write_exon_skipping(exonjpairs, alljuncs, allsamples, thischrom, strand, gen if any([alljuncs[outerjunc][s] >= min_read_support for s in allsamples]): goodB = set() all_exons = set() - my_juncs = set()#{outerjunc,} - othercounts = {s:0 for s in allsamples} + my_juncs = set() # {outerjunc,} + othercounts = {s: 0 for s in allsamples} tot_counts = alljuncs[outerjunc] for innerjuncs in innerjuncs_to_counts: tot_counts = add_counts_to_dict(tot_counts, innerjuncs_to_counts[innerjuncs]) - inc_frac_list = [alljuncs[outerjunc][s]/tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] + inc_frac_list = [alljuncs[outerjunc][s] / tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] if len(inc_frac_list) > 0 \ - and any([alljuncs[outerjunc][s] >= min_read_support for s in allsamples]) \ - and (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + and any([alljuncs[outerjunc][s] >= min_read_support for s in allsamples]) \ + and (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): for innerjuncs in innerjuncs_to_counts: - inc_frac_list = [innerjuncs_to_counts[innerjuncs][s]/tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] + inc_frac_list = [innerjuncs_to_counts[innerjuncs][s] / tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] if any([innerjuncs_to_counts[innerjuncs][s] >= min_read_support for s in allsamples]) \ - and (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + and (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): goodB.add(innerjuncs) - my_exons = [(innerjuncs[i][1], innerjuncs[i+1][0]) for i in range(len(innerjuncs)-1)] + my_exons = [(innerjuncs[i][1], innerjuncs[i + 1][0]) for i in range(len(innerjuncs) - 1)] all_exons.update(set(my_exons)) for j in innerjuncs: my_juncs.add(j) @@ -484,35 +471,32 @@ def write_exon_skipping(exonjpairs, alljuncs, allsamples, thischrom, strand, gen othercounts = add_counts_to_dict(othercounts, innerjuncs_to_counts[innerjuncs]) if len(goodB) > 0 \ - and frozenset(my_juncs | {outerjunc,}) not in seen_junc_combos: #only require one exon relative to outer junction + and frozenset(my_juncs | {outerjunc, }) not in seen_junc_combos: # only require one exon relative to outer junction ename = f'ces-relTo-{thischrom}:{outerjunc[0]}-{outerjunc[1]}({strand})-{gene}' event_to_info[ename] = SplicingEvent(ename, 'ces', gene, thischrom, strand, tot_counts, allsamples) - - bedline = [thischrom, outerjunc[0]-10, outerjunc[1]+10, f'exc_{ename}', 0, strand, outerjunc[0]-10, outerjunc[1]+10, - mycolor, 2, '10,10', f'0,{10+outerjunc[1]-outerjunc[0]}'] - event_to_info[ename].events['exc'] = SplicingEventJunction('exc', [bedline], alljuncs[outerjunc], set(), my_juncs, {outerjunc,}, all_exons) - + # FIXME: use BED class + bedline = [thischrom, outerjunc[0] - 10, outerjunc[1] + 10, f'exc_{ename}', 0, strand, outerjunc[0] - 10, outerjunc[1] + 10, + mycolor, 2, '10,10', f'0,{10 + outerjunc[1] - outerjunc[0]}'] + event_to_info[ename].events['exc'] = SplicingEventJunction('exc', [bedline], alljuncs[outerjunc], set(), my_juncs, {outerjunc, }, all_exons) for innerjuncs in goodB: - my_exons = [(innerjuncs[i][1], innerjuncs[i+1][0]) for i in range(len(innerjuncs)-1)] + my_exons = [(innerjuncs[i][1], innerjuncs[i + 1][0]) for i in range(len(innerjuncs) - 1)] exonstring = ','.join([f'{thischrom}:{x[0]}-{x[1]}' for x in my_exons]) jname = f'inc-of-{exonstring}' - if len(innerjuncs) == 1: - print(jname, innerjuncs) - esizes = ','.join([str(x[1]-x[0]) for x in my_exons]) - estarts = ','.join([str(10+x[0]-outerjunc[0]) for x in my_exons]) - bedline = [thischrom, outerjunc[0]-10, outerjunc[1]+10, f'{jname}_{ename}', 0, strand, outerjunc[0]-10, outerjunc[1]+10, - mycolor, 3, f'10,{esizes},10', f'0,{estarts},{10+outerjunc[1]-outerjunc[0]}'] - event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], innerjuncs_to_counts[innerjuncs], \ - set(innerjuncs), my_juncs-set(innerjuncs), {outerjunc,}, set(my_exons)) - + esizes = ','.join([str(x[1] - x[0]) for x in my_exons]) + estarts = ','.join([str(10 + x[0] - outerjunc[0]) for x in my_exons]) + # FIXME: use BED class + bedline = [thischrom, outerjunc[0] - 10, outerjunc[1] + 10, f'{jname}_{ename}', 0, strand, outerjunc[0] - 10, outerjunc[1] + 10, + mycolor, 3, f'10,{esizes},10', f'0,{estarts},{10 + outerjunc[1] - outerjunc[0]}'] + event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], innerjuncs_to_counts[innerjuncs], + set(innerjuncs), my_juncs - set(innerjuncs), {outerjunc, }, set(my_exons)) for j in innerjuncs: if j not in esjuncs: esjuncs[j] = {} if outerjunc not in esjuncs[j]: - esjuncs[j][outerjunc] = {s:0 for s in allsamples} + esjuncs[j][outerjunc] = {s: 0 for s in allsamples} esjuncs[j][outerjunc] = add_counts_to_dict(esjuncs[j][outerjunc], innerjuncs_to_counts[innerjuncs]) if any([othercounts[s] >= min_read_support for s in allsamples]): @@ -523,7 +507,7 @@ def write_exon_skipping(exonjpairs, alljuncs, allsamples, thischrom, strand, gen def get_overlapping_reads(ref_junc, interval_to_reads, allsamples): - tot_counts = {s:0 for s in allsamples} + tot_counts = {s: 0 for s in allsamples} for i in interval_to_reads: if i[0] < ref_junc[0] and ref_junc[1] < i[1]: tot_counts = add_counts_to_dict(tot_counts, interval_to_reads[i]) @@ -531,34 +515,35 @@ def get_overlapping_reads(ref_junc, interval_to_reads, allsamples): def add_counts_to_dict(a, b): - return {s:a[s] + b[s] for s in a.keys()} + return {s: a[s] + b[s] for s in a.keys()} -def process_terminal_exons(termExon, eventtype, thischrom, strand, gene, allsamples, mycolor, min_read_support, junc_frac_of_event, event_support, interval_to_reads, alljuncs, annot_terminal_ss): +def process_terminal_exons(termExon, eventtype, thischrom, strand, gene, allsamples, mycolor, min_read_support, junc_frac_of_event, event_support, interval_to_reads, alljuncs, annot_terminal_ss): # noqa: C901 - FIXME: reduce complexity event_to_info = {} junc_combos = set() if len(termExon) > 1: - tot_counts = {s:0 for s in allsamples} - othercounts = {s:0 for s in allsamples} + tot_counts = {s: 0 for s in allsamples} + othercounts = {s: 0 for s in allsamples} ss_to_counts = {} ss_to_junc_qual = {} actual_terminal = [] for termSS in termExon: - ss_to_counts[termSS] = {s:0 for s in allsamples} + ss_to_counts[termSS] = {s: 0 for s in allsamples} ss_to_junc_qual[termSS] = [] is_annot_terminal = False if gene in annot_terminal_ss: for ss in annot_terminal_ss[gene]: - if ss-20 <= termSS <= ss+20: + if ss - 20 <= termSS <= ss + 20: is_annot_terminal = True break for termJunc in termExon[termSS]: ss_to_counts[termSS] = add_counts_to_dict(ss_to_counts[termSS], termExon[termSS][termJunc]) - ## here we determine whether this splice site is really a terminal exon - ## either all reads terminate here, or it's annotated as a terminal junction + # here we determine whether this splice site is really a terminal exon + # either all reads terminate here, or it's annotated as a terminal junction if is_annot_terminal: ss_to_junc_qual[termSS].append(True) else: - ss_to_junc_qual[termSS].append(any([termExon[termSS][termJunc][s] == alljuncs[termJunc][s] for s in allsamples])) + ss_to_junc_qual[termSS].append(any([termExon[termSS][termJunc][s] == alljuncs[termJunc][s] and termExon[termSS][termJunc][s] >= min_read_support for s in allsamples])) + for termSS in termExon: if all(ss_to_junc_qual[termSS]): actual_terminal.append(termSS) @@ -566,41 +551,42 @@ def process_terminal_exons(termExon, eventtype, thischrom, strand, gene, allsamp othercounts = add_counts_to_dict(othercounts, ss_to_counts[termSS]) tot_counts = add_counts_to_dict(tot_counts, ss_to_counts[termSS]) - if any([tot_counts[s] >= event_support for s in allsamples]): goodB = [] goodBstrict = [] my_juncs = set() my_juncs = set() for termSS in actual_terminal: - inc_frac_list = [ss_to_counts[termSS][s]/tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] + inc_frac_list = [ss_to_counts[termSS][s] / tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] if any([ss_to_counts[termSS][s] >= min_read_support for s in allsamples]) \ - and (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + and (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): goodB.append(termSS) - if any([ss_to_counts[termSS][s]/tot_counts[s] >= MIN_TERMINAL_SS_FRACTION if tot_counts[s] > 0 else False for s in allsamples]): + if any([ss_to_counts[termSS][s] / tot_counts[s] >= MIN_TERMINAL_SS_FRACTION if tot_counts[s] > 0 else False for s in allsamples]): goodBstrict.append(termSS) for termJunc in termExon[termSS]: if any([termExon[termSS][termJunc][s] >= min_read_support for s in allsamples]) \ - and any([junc_frac_of_event <= termExon[termSS][termJunc][s]/tot_counts[s] <= 1-junc_frac_of_event if tot_counts[s] > 0 else False for s in allsamples]): + and any([junc_frac_of_event <= termExon[termSS][termJunc][s] / tot_counts[s] <= 1 - junc_frac_of_event if tot_counts[s] > 0 else False for s in allsamples]): my_juncs.add(termJunc) else: othercounts = add_counts_to_dict(othercounts, ss_to_counts[termSS]) - ##check that the junctions involved are distant enough from each other + + # check that the junctions involved are distant enough from each other if len(goodB) > 1 and len(goodBstrict) > 1 and max(goodBstrict) - min(goodBstrict) >= MIN_TERMINAL_JUNCTION_SEPARATION: ename = f'{eventtype}-({strand})-{gene}' event_to_info[ename] = SplicingEvent(ename, eventtype, gene, thischrom, strand, tot_counts, allsamples) for ssB in goodB: jname = f'{thischrom}:{ssB}' - if (eventtype == 'AFE' and strand == '+') or (eventtype=='ALE' and strand == '-'): - bs, be = ssB-100, ssB + if (eventtype == 'AFE' and strand == '+') or (eventtype == 'ALE' and strand == '-'): + bs, be = ssB - 100, ssB else: bs, be = ssB, ssB + 100 - bedline = [thischrom, bs, be, f'{jname}_{ename}', 0, strand, bs, be, mycolor, 1, be-bs, 0] + # FIXME: use BED class + bedline = [thischrom, bs, be, f'{jname}_{ename}', 0, strand, bs, be, mycolor, 1, be - bs, 0] inc_juncs = {x for x in my_juncs if ssB in x} - event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], ss_to_counts[ssB], inc_juncs, my_juncs-inc_juncs) + event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], ss_to_counts[ssB], inc_juncs, my_juncs - inc_juncs) if any([othercounts[s] >= min_read_support for s in allsamples]): event_to_info[ename].other = othercounts @@ -608,19 +594,13 @@ def process_terminal_exons(termExon, eventtype, thischrom, strand, gene, allsamp ref_junc = (max([x[0] for x in my_juncs]), min([x[1] for x in my_juncs])) event_to_info[ename].totoverlap = get_overlapping_reads(ref_junc, interval_to_reads, allsamples) - ##TODO: add initial check for all reads with junction are equal to all terminal exon reads! - ##TODO: identify good juncs for each terminal SS, save junc combo - ##Good juncs must be significant proportion of all reads for event! + # TODO: add initial check for all reads with junction are equal to all terminal exon reads! + # TODO: identify good juncs for each terminal SS, save junc combo + # Good juncs must be significant proportion of all reads for event! return event_to_info, junc_combos - - - - - - -def process_junction_events(ssAtoB, esjuncs, eventtype, thischrom, strand, gene, allsamples, colordict, min_read_support, interval_to_reads, junc_frac_of_event, event_support, afe_ale_junc_comb): +def process_junction_events(ssAtoB, esjuncs, eventtype, thischrom, strand, gene, allsamples, colordict, min_read_support, interval_to_reads, junc_frac_of_event, event_support, afe_ale_junc_comb): # noqa: C901 - FIXME: reduce complexity event_to_info = {} ssB_groups_to_ssA = {} for ssA in ssAtoB: @@ -628,19 +608,19 @@ def process_junction_events(ssAtoB, esjuncs, eventtype, thischrom, strand, gene, goodB, goodBstrict = [], [] junccomb = set() my_juncs = set() - othercounts = {s:0 for s in allsamples} - tot_counts = {s:0 for s in allsamples} + othercounts = {s: 0 for s in allsamples} + tot_counts = {s: 0 for s in allsamples} for ssB in ssAtoB[ssA]: tot_counts = add_counts_to_dict(tot_counts, ssAtoB[ssA][ssB]) for ssB in ssAtoB[ssA]: junc = (min((ssA, ssB)), max((ssA, ssB))) - inc_frac_list = [ssAtoB[ssA][ssB][s]/tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] + inc_frac_list = [ssAtoB[ssA][ssB][s] / tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] if len(inc_frac_list) >= 1 \ - and (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + and (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): goodB.append(ssB) my_juncs.add(junc) @@ -648,14 +628,14 @@ def process_junction_events(ssAtoB, esjuncs, eventtype, thischrom, strand, gene, if junc not in esjuncs: goodBstrict.append(ssB) else: - escounts = {s:0 for s in allsamples} + escounts = {s: 0 for s in allsamples} for ssB2 in ssAtoB[ssA]: if ssB2 != ssB: junc2 = (min((ssA, ssB2)), max((ssA, ssB2))) if junc2 in esjuncs[junc]: escounts = add_counts_to_dict(escounts, esjuncs[junc][junc2]) - deltafrac = [(ssAtoB[ssA][ssB][s]-escounts[s])/ssAtoB[ssA][ssB][s] if ssAtoB[ssA][ssB][s] > 0 else 0 for s in allsamples] - delta = [ssAtoB[ssA][ssB][s]-escounts[s] for s in allsamples] + deltafrac = [(ssAtoB[ssA][ssB][s] - escounts[s]) / ssAtoB[ssA][ssB][s] if ssAtoB[ssA][ssB][s] > 0 else 0 for s in allsamples] + delta = [ssAtoB[ssA][ssB][s] - escounts[s] for s in allsamples] if any([deltafrac[x] > 0.1 and delta[x] > min_read_support for x in range(len(delta))]): goodBstrict.append(ssB) else: @@ -669,15 +649,16 @@ def process_junction_events(ssAtoB, esjuncs, eventtype, thischrom, strand, gene, ssB_groups_to_ssA[ssBgroup][ssA] = tot_counts if any([tot_counts[s] >= event_support for s in allsamples]) \ - and len(goodBstrict) > 1: # only if alt splicing, not including junctions involved in exon skipping + and len(goodBstrict) > 1: # only if alt splicing, not including junctions involved in exon skipping ename = f'{eventtype}-relTo-{thischrom}:{ssA}({strand})-{gene}' event_to_info[ename] = SplicingEvent(ename, eventtype, gene, thischrom, strand, tot_counts, allsamples) for ssB in goodB: junc = (min((ssA, ssB)), max((ssA, ssB))) jname = f'{thischrom}:{junc[0]}-{junc[1]}' bs, be = min((ssA, ssB)), max((ssA, ssB)) - bedline = [thischrom, bs, be, f'{jname}_{ename}', 0, strand, bs, be, colordict[eventtype], 1, be-bs, 0] - event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], ssAtoB[ssA][ssB], {junc,}, my_juncs-{junc,}) + # FIXME: use BED class + bedline = [thischrom, bs, be, f'{jname}_{ename}', 0, strand, bs, be, colordict[eventtype], 1, be - bs, 0] + event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], ssAtoB[ssA][ssB], {junc, }, my_juncs - {junc, }) if any([othercounts[s] >= min_read_support for s in allsamples]): event_to_info[ename].other = othercounts @@ -686,17 +667,17 @@ def process_junction_events(ssAtoB, esjuncs, eventtype, thischrom, strand, gene, eventtype = 'alt3' if eventtype == 'alt5' else 'alt5' for ssBgroup in ssB_groups_to_ssA: if len(ssB_groups_to_ssA[ssBgroup]) > 1: - tot_counts = {s:0 for s in allsamples} - othercounts = {s:0 for s in allsamples} + tot_counts = {s: 0 for s in allsamples} + othercounts = {s: 0 for s in allsamples} for ssA in ssB_groups_to_ssA[ssBgroup]: tot_counts = add_counts_to_dict(tot_counts, ssB_groups_to_ssA[ssBgroup][ssA]) if any([tot_counts[s] >= event_support for s in allsamples]): good = [] my_juncs = set() for ssA in ssB_groups_to_ssA[ssBgroup]: - inc_frac_list = [ssB_groups_to_ssA[ssBgroup][ssA][s]/tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] - if (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + inc_frac_list = [ssB_groups_to_ssA[ssBgroup][ssA][s] / tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] + if (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): good.append(ssA) for ssB in ssBgroup: my_juncs.add((min((ssA, ssB)), max((ssA, ssB)))) @@ -708,22 +689,22 @@ def process_junction_events(ssAtoB, esjuncs, eventtype, thischrom, strand, gene, event_to_info[ename] = SplicingEvent(ename, f'{eventtype}ss', gene, thischrom, strand, tot_counts, allsamples) for ssA in good: if (eventtype == 'alt5' and strand == '+') or (eventtype == 'alt3' and strand == '-'): - bs, be = ssA-10, ssA + bs, be = ssA - 10, ssA else: - bs, be = ssA, ssA+10 + bs, be = ssA, ssA + 10 jname = f'{thischrom}:{ssA}' inc_juncs = set() for ssB in ssBgroup: inc_juncs.add((min((ssA, ssB)), max((ssA, ssB)))) - bedline = [thischrom, bs, be, f'{jname}_{ename}', 0, strand, bs, be, colordict[eventtype], 1, be-bs, 0] - event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], ssB_groups_to_ssA[ssBgroup][ssA], inc_juncs, my_juncs-inc_juncs) + # FIXME: use BED class + bedline = [thischrom, bs, be, f'{jname}_{ename}', 0, strand, bs, be, colordict[eventtype], 1, be - bs, 0] + event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], ssB_groups_to_ssA[ssBgroup][ssA], inc_juncs, my_juncs - inc_juncs) if any([othercounts[s] >= min_read_support for s in allsamples]): - event_to_info[ename].other = othercounts + event_to_info[ename].other = othercounts ref_junc = (max(good), min(ssBgroup)) if median(good) < median(ssBgroup) else (max(ssBgroup), min(good)) event_to_info[ename].totoverlap = get_overlapping_reads(ref_junc, interval_to_reads, allsamples) - return event_to_info class SplicingEvent: @@ -737,11 +718,12 @@ def __init__(self, name, eventtype, gene, chrom, strand, totjunc, allsamples): self.totjunc = totjunc self.events = {} self.totoverlap = None - self.other = {s:0 for s in allsamples} + self.other = {s: 0 for s in allsamples} class SplicingEventJunction: """represents metadata about a specific junction in a splicing event""" def __init__(self, name, bedlines, samplecounts, inc_junc, exc_junc, outer_junc=None, inc_exon=None): + # FIXME: use BED class self.name = name self.bedlines = bedlines self.inc_juncs = inc_junc @@ -749,9 +731,9 @@ def __init__(self, name, bedlines, samplecounts, inc_junc, exc_junc, outer_junc= self.samplecounts = samplecounts self.inc_exon = set() self.outer_juncs = set() - if outer_junc != None: + if outer_junc is not None: self.outer_juncs = outer_junc - if inc_exon != None: + if inc_exon is not None: self.inc_exon = inc_exon @@ -768,20 +750,22 @@ def write_intron_retention(alljuncs, allsamples, allblocks, thischrom, strand, g tot_counts = splicedcounts tot_counts = add_counts_to_dict(tot_counts, retainedcounts) - inc_frac_list = [retainedcounts[s]/tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] + inc_frac_list = [retainedcounts[s] / tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] if len(inc_frac_list) >= 1 \ - and any([splicedcounts[s] >= min_read_support for s in allsamples]) \ - and any([retainedcounts[s] >= min_read_support for s in allsamples]) \ - and (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + and any([splicedcounts[s] >= min_read_support for s in allsamples]) \ + and any([retainedcounts[s] >= min_read_support for s in allsamples]) \ + and (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): ename = f'ir-of-{thischrom}:{j[0]}-{j[1]}({strand})-{gene}' event_to_info[ename] = SplicingEvent(ename, 'ir', gene, thischrom, strand, tot_counts, allsamples) - bedline = [thischrom, j[0]-10, j[1]+10, f'spliced_{ename}', 0, strand, j[0]-10, j[1]+10, mycolor, 2, '10,10', f'0,{10+j[1]-j[0]}'] - event_to_info[ename].events['spliced'] = SplicingEventJunction('spliced', [bedline], splicedcounts, {j,}, {}) + # FIXME: use BED class + bedline = [thischrom, j[0] - 10, j[1] + 10, f'spliced_{ename}', 0, strand, j[0] - 10, j[1] + 10, mycolor, 2, '10,10', f'0,{10 + j[1] - j[0]}'] + event_to_info[ename].events['spliced'] = SplicingEventJunction('spliced', [bedline], splicedcounts, {j, }, {}) - bedline = [thischrom, j[0], j[1], f'retained_{ename}', 0, strand, j[0], j[1], mycolor, 1, j[1]-j[0], 0] - event_to_info[ename].events['retained'] = SplicingEventJunction('retained', [bedline], retainedcounts, {}, {j,}) + # FIXME: use BED class + bedline = [thischrom, j[0], j[1], f'retained_{ename}', 0, strand, j[0], j[1], mycolor, 1, j[1] - j[0], 0] + event_to_info[ename].events['retained'] = SplicingEventJunction('retained', [bedline], retainedcounts, {}, {j, }) event_to_info[ename].totoverlap = get_overlapping_reads(j, interval_to_reads, allsamples) return event_to_info @@ -789,17 +773,17 @@ def write_intron_retention(alljuncs, allsamples, allblocks, thischrom, strand, g def write_ends(grouped_ends, allsamples, thischrom, strand, gene, eventtype, mycolor, support, junc_frac_of_event, event_support): good_ends = set() event_to_info = {} - othercounts = {s:0 for s in allsamples} - tot_counts = {s:0 for s in allsamples} + othercounts = {s: 0 for s in allsamples} + tot_counts = {s: 0 for s in allsamples} for e in grouped_ends: tot_counts = add_counts_to_dict(tot_counts, grouped_ends[e]) if any([tot_counts[s] >= event_support for s in allsamples]): for e in grouped_ends: - inc_frac_list = [grouped_ends[e][s]/tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] + inc_frac_list = [grouped_ends[e][s] / tot_counts[s] for s in allsamples if tot_counts[s] >= event_support] - if any([grouped_ends[e][s] >=support for s in allsamples]) \ - and (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + if any([grouped_ends[e][s] >= support for s in allsamples]) \ + and (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): good_ends.add(e) else: othercounts = add_counts_to_dict(othercounts, grouped_ends[e]) @@ -809,8 +793,9 @@ def write_ends(grouped_ends, allsamples, thischrom, strand, gene, eventtype, myc for e in good_ends: jname = f'{thischrom}:{e}' - bedline = [thischrom,e-1, e, f'{jname}_{ename}', 0, strand, e-1, e, mycolor, 1, 1, 0] - event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], grouped_ends[e], {e,}, good_ends-{e,}) + # FIXME: use BED class + bedline = [thischrom, e - 1, e, f'{jname}_{ename}', 0, strand, e - 1, e, mycolor, 1, 1, 0] + event_to_info[ename].events[jname] = SplicingEventJunction(jname, [bedline], grouped_ends[e], {e, }, good_ends - {e, }) if any([othercounts[s] >= support for s in allsamples]): event_to_info[ename].other = othercounts return event_to_info @@ -819,10 +804,10 @@ def write_ends(grouped_ends, allsamples, thischrom, strand, gene, eventtype, myc def write_counts_psi(info, ncounts, junctot, fulltot, allsamples, outcounts, outpsijunc, outpsitot, event_support): outline = info + [str(ncounts[s]) for s in allsamples] outcounts.write('\t'.join(outline) + '\n') - juncpsi = [ncounts[s]/junctot[s] if junctot[s] >= event_support else 'NA' for s in allsamples] - outline = info + [str(round(ncounts[s]/junctot[s], 4)) if junctot[s] >= event_support else '' for s in allsamples] + juncpsi = [ncounts[s] / junctot[s] if junctot[s] >= event_support else 'NA' for s in allsamples] + outline = info + [str(round(ncounts[s] / junctot[s], 4)) if junctot[s] >= event_support else '' for s in allsamples] outpsijunc.write('\t'.join(outline) + '\n') - outline = info + [str(round(ncounts[s]/fulltot[s], 4)) if junctot[s] >= event_support else '' for s in allsamples] + outline = info + [str(round(ncounts[s] / fulltot[s], 4)) if fulltot[s] >= event_support else '' for s in allsamples] outpsitot.write('\t'.join(outline) + '\n') return juncpsi @@ -837,25 +822,24 @@ def get_junc_string(chrom, juncs): return ','.join([f'{chrom}:{x[0]}-{x[1]}' for x in juncs]) -def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_of_event, outbed, outcounts, outpsijunc, outpsitot, event_support, outoutlier, outolfilt): +def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_of_event, outbed, outcounts, outpsijunc, outpsitot, event_support, outoutlier, outolfilt): # noqa: C901 - FIXME: reduce complexity sig_events = [] etype_to_sig = {} for ename in event_to_info: event = event_to_info[ename] - if event.totoverlap == None: + if event.totoverlap is None: event.totoverlap = event.totjunc - if any([event_frac_of_tot <= event.totjunc[s]/event.totoverlap[s] if event.totoverlap[s] > 0 else False for s in allsamples]): #check that junction/event is expressed enough relative to all reads covering locus - goodB = set() - ##do an extra check that one junction that is not exclusion is at least junc_frac_of_event of total locus + if any([event_frac_of_tot <= event.totjunc[s] / event.totoverlap[s] if event.totoverlap[s] > 0 else False for s in allsamples]): # check that junction/event is expressed enough relative to all reads covering locus + # do an extra check that one junction that is not exclusion is at least junc_frac_of_event of total locus one_event_pass = False for jname in event.events: jinfo = event.events[jname] - inc_frac_list = [jinfo.samplecounts[s]/event.totoverlap[s] for s in allsamples if event.totoverlap[s] > 0] + inc_frac_list = [jinfo.samplecounts[s] / event.totoverlap[s] for s in allsamples if event.totoverlap[s] > 0] if (event.eventtype not in {'es', 'ces'} or jname != 'exc') \ - and (max(inc_frac_list)-min(inc_frac_list) >= junc_frac_of_event \ - or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1-junc_frac_of_event)): + and (max(inc_frac_list) - min(inc_frac_list) >= junc_frac_of_event + or (len(allsamples) == 1 and junc_frac_of_event <= inc_frac_list[0] <= 1 - junc_frac_of_event)): one_event_pass = True if one_event_pass: @@ -863,14 +847,15 @@ def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_o jinfo = event.events[jname] outinfo = [f'{jname}_{ename}', event.eventtype, event.gene, get_junc_string(event.chrom, jinfo.inc_juncs), - get_junc_string(event.chrom, jinfo.exc_juncs), get_junc_string(event.chrom, jinfo.outer_juncs), get_junc_string(event.chrom, jinfo.inc_exon)] + get_junc_string(event.chrom, jinfo.exc_juncs), get_junc_string(event.chrom, jinfo.outer_juncs), get_junc_string(event.chrom, jinfo.inc_exon)] juncpsi = write_counts_psi(outinfo, jinfo.samplecounts, event.totjunc, event.totoverlap, allsamples, outcounts, outpsijunc, outpsitot, event_support) - if outoutlier != None: + if outoutlier is not None: vals_for_outlier = [x for x in juncpsi if x != 'NA'] med = median(vals_for_outlier) + # FIXME: use BED class for line in jinfo.bedlines: - line[4] = round(med*100) + line[4] = round(med * 100) outbed.write('\t'.join([str(x) for x in line]) + '\n') if len(vals_for_outlier) >= 5: @@ -878,15 +863,15 @@ def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_o for s in allsamples: thiscount = jinfo.samplecounts[s] thistot = event.totjunc[s] - thispsi = thiscount/thistot if thistot > event_support else 'NA' - if thispsi != 'NA' and abs(thispsi-med) >= 0.1: ##10% PSI - delta = abs(thispsi-med) + thispsi = thiscount / thistot if thistot > event_support else 'NA' + if thispsi != 'NA' and abs(thispsi - med) >= 0.1: # 10% PSI + delta = abs(thispsi - med) countsstr = f'{thiscount};{thistot}' - #event_name, gene, median, dev, psi, numsamplesused, thiscount/junctot, absdeltapsi, numberofdev - if (dev == 0 and thispsi != med) or delta > dev*3: + # event_name, gene, median, dev, psi, numsamplesused, thiscount/junctot, absdeltapsi, numberofdev + if (dev == 0 and thispsi != med) or delta > dev * 3: outline = outinfo[:3] + [s, round(med, 6), round(dev, 6), round(thispsi, 6), len(vals_for_outlier), countsstr, round(delta, 6), 100000] if dev != 0: - outline[-1] = round(delta/dev, 6) + outline[-1] = round(delta / dev, 6) sig_events.append(outline) if event.eventtype not in etype_to_sig: etype_to_sig[event.eventtype] = {} @@ -897,17 +882,16 @@ def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_o if any([event.other[s] > 0 for s in allsamples]): outinfo = [f'other_{ename}', event.eventtype, event.gene, '', '', '', ''] write_counts_psi(outinfo, event.other, event.totjunc, event.totoverlap, allsamples, outcounts, outpsijunc, outpsitot, event_support) - if outoutlier != None: - sig_events.sort(reverse=True, key=lambda x:x[::-1]) + if outoutlier is not None: + sig_events.sort(reverse=True, key=lambda x: x[::-1]) for line in sig_events: outoutlier.write('\t'.join([str(x) for x in line]) + '\n') seen_junctions, condensed_sig = {}, [] seen_es_juncs = {} TEMP_OUTLIER_DEV_THRESHOLD = 6 - event_types = ['es', 'AFE', 'ALE', 'ces', 'alt5ss', 'alt3ss', 'alt5', 'alt3', 'ir', ] - for et in ['es', 'AFE', 'ALE', 'ir', 'alt5ss', 'alt3ss']: # alt5ss and alt3ss overlaps with ALE and AFE should have already been filtered out when generating events + for et in ['es', 'AFE', 'ALE', 'ir', 'alt5ss', 'alt3ss']: # alt5ss and alt3ss overlaps with ALE and AFE should have already been filtered out when generating events if et in etype_to_sig: for juncs in etype_to_sig[et]: sample_to_vals = etype_to_sig[et][juncs] @@ -915,10 +899,10 @@ def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_o inc_juncs, exc_juncs, outer_juncs = juncs for j1 in inc_juncs: for j2 in outer_juncs: - k = frozenset((j1,j2)) + k = frozenset((j1, j2)) if k not in seen_junctions: seen_junctions[k] = {} - seen_junctions[k][juncs] = sample_to_vals + seen_junctions[k][juncs] = sample_to_vals if et == 'es': all_juncs = (inc_juncs | exc_juncs) | outer_juncs seen_es_juncs[all_juncs] = sample_to_vals @@ -933,13 +917,13 @@ def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_o sample_to_vals = etype_to_sig[et][juncs] good_s = set() has_overlap = False - if et == 'ces': ##only for ces, check for subet of full es juncs + if et == 'ces': # only for ces, check for subet of full es juncs if len(inc_juncs) == 0: - all_juncs = exc_juncs | outer_juncs #exclusion + all_juncs = exc_juncs | outer_juncs # exclusion else: - all_juncs = inc_juncs | outer_juncs # include only the specific exon that is significatn + all_juncs = inc_juncs | outer_juncs # include only the specific exon that is significatn for j2 in seen_es_juncs: - if all_juncs-j2 == frozenset(): ##is subset of other + if all_juncs - j2 == frozenset(): # is subset of other has_overlap = True for s in sample_to_vals: if s not in seen_es_juncs[j2]: @@ -947,12 +931,12 @@ def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_o else: this_dev = sample_to_vals[s][-1] other_dev = seen_es_juncs[j2][s][-1] - if other_dev/this_dev < 0.8: ##deviation is 20% better for this event + if other_dev / this_dev < 0.8: # deviation is 20% better for this event good_s.add(s) else: all_juncs = inc_juncs | exc_juncs for jkey in seen_junctions: - if all_juncs-jkey == frozenset(): ##is subset of other + if all_juncs - jkey == frozenset(): # is subset of other has_overlap = True for j2 in seen_junctions[jkey]: for s in sample_to_vals: @@ -961,69 +945,61 @@ def get_psi_and_filter(event_to_info, allsamples, event_frac_of_tot, junc_frac_o else: this_dev = sample_to_vals[s][-1] other_dev = seen_junctions[jkey][j2][s][-1] - if other_dev/this_dev < 0.8: ##deviation is 20% better for this event + if other_dev / this_dev < 0.8: # deviation is 20% better for this event good_s.add(s) - ##adding good values to output + # adding good values to output if not has_overlap: good_s = sample_to_vals.keys() - ##adding junctions to reference + # adding junctions to reference if all_juncs not in seen_junctions: seen_junctions[all_juncs] = {} - seen_junctions[all_juncs][juncs] = sample_to_vals + seen_junctions[all_juncs][juncs] = sample_to_vals for s in good_s: condensed_sig.append(sample_to_vals[s]) - condensed_sig.sort(reverse=True, key=lambda x:x[::-1]) + condensed_sig.sort(reverse=True, key=lambda x: x[::-1]) for line in condensed_sig: if line[-1] > TEMP_OUTLIER_DEV_THRESHOLD: outolfilt.write('\t'.join([str(x) for x in line]) + '\n') - - - - - - - -def process_gene_to_events(tempprefix, thischrom, allsamples, allgenetojuncs, genetostrand, junc_support, output_read_ends, event_frac_of_tot, junc_frac_of_event, event_support, annot_afe_ss, annot_ale_ss, check_outliers): +def process_gene_to_events(temp_prefix, thischrom, allsamples, all_genes_to_juncs, genetostrand, junc_support, output_read_ends, event_frac_of_tot, junc_frac_of_event, event_support, annot_afe_ss, annot_ale_ss, check_outliers): etypetocolor = {'skipped_exons': '66,105,245', 'retained_introns': '144,66,245', - 'alt3': '245,215,66', 'alt5': '43,184,39', 'tss':'255,0,0', 'tts':'0,0,255'} - ##outends is just for writing out read ends for Harrison - he can group them more intelligently + 'alt3': '245,215,66', 'alt5': '43,184,39', 'tss': '255,0,0', 'tts': '0,0,255'} + # outends is just for writing out read ends for Harrison - he can group them more intelligently outends = None if output_read_ends: - outends = open(tempprefix + '.diffsplice.readends.bed', 'w') + outends = open(temp_prefix + '.diffsplice.readends.bed', 'w') - allgenes = set.union(*[set(allgenetojuncs[s].keys()) for s in range(len(allgenetojuncs))]) + allgenes = set.union(*[set(all_genes_to_juncs[s].keys()) for s in range(len(all_genes_to_juncs))]) outoutlier, outolfilt = None, None if check_outliers: - outoutlier = open(tempprefix + '.diffsplice.outliers.tsv', 'w') - outolfilt = open(tempprefix + '.diffsplice.outliers.filtered.tsv', 'w') - with open(tempprefix + '.diffsplice.bed', 'w') as outbed, open(tempprefix + '.diffsplice.counts.tsv', 'w') as outcounts, \ - open(tempprefix + '.diffsplice.PSIjunc.tsv', 'w') as outpsijunc, open(tempprefix + '.diffsplice.PSItot.tsv', 'w') as outpsitot: + outoutlier = open(temp_prefix + '.diffsplice.outliers.tsv', 'w') + outolfilt = open(temp_prefix + '.diffsplice.outliers.filtered.tsv', 'w') + with open(temp_prefix + '.diffsplice.bed', 'w') as outbed, open(temp_prefix + '.diffsplice.counts.tsv', 'w') as outcounts, \ + open(temp_prefix + '.diffsplice.PSIjunc.tsv', 'w') as outpsijunc, open(temp_prefix + '.diffsplice.PSItot.tsv', 'w') as outpsitot: for gene in allgenes: - # get gene strand - this is not optimal, def need to revamp how getting annot info strand = genetostrand[gene] - ss5to3, ss3to5, alljuncs, exonjpairs, allblocks, t_starts_ends, t_first_last_sj, interval_to_reads, afe, ale, outer_junc_to_exons = extract_splicing_info(allsamples, allgenetojuncs, - gene, strand, thischrom, outends) + ss5to3, ss3to5, alljuncs, exonjpairs, allblocks, t_starts_ends, t_first_last_sj, interval_to_reads, afe, ale, outer_junc_to_exons = extract_splicing_info(allsamples, all_genes_to_juncs, + gene, strand, thischrom, outends) # exon skipping # TODO combine exon skipping at multiple junctions (so all junctions that skip exon are combined) es_info, esjuncs = write_exon_skipping(exonjpairs, alljuncs, allsamples, thischrom, strand, gene, - etypetocolor['skipped_exons'], junc_support, interval_to_reads, junc_frac_of_event, event_support, outer_junc_to_exons) + etypetocolor['skipped_exons'], junc_support, interval_to_reads, junc_frac_of_event, event_support, outer_junc_to_exons) afe_info, afe_junc_comb = process_terminal_exons(afe, 'AFE', thischrom, strand, gene, allsamples, etypetocolor['tss'], junc_support, junc_frac_of_event, event_support, interval_to_reads, alljuncs, annot_afe_ss) ale_info, ale_junc_comb = process_terminal_exons(ale, 'ALE', thischrom, strand, gene, allsamples, etypetocolor['tts'], junc_support, junc_frac_of_event, event_support, interval_to_reads, alljuncs, annot_ale_ss) afe_ale_junc_comb = afe_junc_comb | ale_junc_comb a3_info = process_junction_events(ss5to3, esjuncs, 'alt3', thischrom, strand, gene, allsamples, etypetocolor, - junc_support, interval_to_reads, junc_frac_of_event, event_support, afe_ale_junc_comb) + junc_support, interval_to_reads, junc_frac_of_event, event_support, afe_ale_junc_comb) a5_info = process_junction_events(ss3to5, esjuncs, 'alt5', thischrom, strand, gene, allsamples, etypetocolor, - junc_support, interval_to_reads, junc_frac_of_event, event_support, afe_ale_junc_comb) + junc_support, interval_to_reads, junc_frac_of_event, event_support, afe_ale_junc_comb) # intron retention ir_info = write_intron_retention(alljuncs, allsamples, allblocks, thischrom, strand, gene, - etypetocolor['retained_introns'], junc_support, interval_to_reads, junc_frac_of_event, event_support) + etypetocolor['retained_introns'], junc_support, interval_to_reads, junc_frac_of_event, event_support) grouped_ends = group_ends(t_starts_ends, allsamples, 100) if strand == '-': @@ -1038,8 +1014,8 @@ def process_gene_to_events(tempprefix, thischrom, allsamples, allgenetojuncs, ge get_psi_and_filter(all_info, allsamples, event_frac_of_tot, junc_frac_of_event, outbed, outcounts, outpsijunc, outpsitot, event_support, outoutlier, outolfilt) if check_outliers: - outoutlier.close() - outolfilt.close() + outoutlier.close() + outolfilt.close() if output_read_ends: outends.close() @@ -1047,184 +1023,111 @@ def process_gene_to_events(tempprefix, thischrom, allsamples, allgenetojuncs, ge def generate_good_match_to_annot(args, temp_prefix, region, bamfile_name, region_annot, region_annot_fa, clipping_file): if not args.noaligntoannot: pipettor.run([('samtools', 'view', '-h', bamfile_name, f'{region.name}:{region.start}-{region.end}'), - ('samtools', 'fasta', '-')], - stdout=temp_prefix + '.reads.fasta') - mm2_cmd = ('minimap2', '-a', '-N', '4', '--MD', - region_annot_fa, temp_prefix + '.reads.fasta') - flairpath = '/'.join(os.path.realpath(__file__).split('/')[:-1]) - # count_cmd = ('python3', flairpath + '/filter_transcriptome_align.py', - count_cmd = ('python3', flairpath + '/count_sam_transcripts.py', - '--sam', '-', - '-o', temp_prefix + '.matchannot.counts.tsv', - '-t', 1, # feeding 1 thread in because this is already multithreaded here - '--quality', 0, - # '--generate_map', temp_prefix + '.matchannot.read.map.txt', - '--check_splice', - '-i', region_annot, - '--trimmedreads', clipping_file, - '--allow_UTR_indels', - '--soft_clipping_buffer', 10, - '--output_endpos', temp_prefix + '.readtoends.txt', - ) - - pipettor.run([mm2_cmd, count_cmd]) - return temp_prefix + '.readtoends.txt' #temp_prefix + '.matchannot.read.map.txt' + ('samtools', 'fasta', '-')], + stdout=temp_prefix + '.reads.fasta') + mm2_cmd = ['minimap2', '-a', '-N', '4', '--MD', + region_annot_fa, temp_prefix + '.reads.fasta'] + # 1 thread because already multithreaded here + run_count_sam_transcripts( + mm2_cmd=mm2_cmd, + output=temp_prefix + '.matchannot.counts.tsv', + threads=1, + quality=0, + check_splice=True, + isoforms=region_annot, + trimmedreads=clipping_file, + allow_UTR_indels=True, + soft_clipping_buffer=10, + output_endpos=temp_prefix + '.readtoends.txt') + return temp_prefix + '.readtoends.txt' # temp_prefix + '.matchannot.read.map.txt' else: return None -def get_juncs_single_sample(listofargs): - args, region, temp_prefix, sample, bamfile_name, region_annot, region_annot_fa, region_juncs, sjc_to_gene, junc_to_gene, exon_to_gene, gene_to_exons, gene_to_juncs, transcript_to_sjc, gene_to_strand = listofargs - - # FIXME: convert to using PartitionRunner - intron_support = IntronSupport() - if region_juncs is not None: - intron_support.load_introns_bed(region_juncs) - intron_support.load_annot_bed(region_annot) - junction_corrector = JunctionCorrector(intron_support, args.ss_window, args.junction_support) - - genome = pysam.FastaFile(args.genome) - +def get_juncs_single_sample(args, region, temp_prefix, sample, bamfile_name, region_annot, region_annot_fa, junction_corrector, annots): temp_prefix = temp_prefix + '_' + sample - - print(region.name, region.start, region.end, sample, 'getting annot match') bam_file = pysam.AlignmentFile(bamfile_name, 'rb') - clipping_file = generate_genomic_alignment_read_to_clipping_file(temp_prefix, bam_file, region) + num_reads, clipping_file = generate_genomic_alignment_read_to_clipping_file(temp_prefix, bam_file, region) bam_file.close() - goodannotaligns = generate_good_match_to_annot(args, temp_prefix, region, bamfile_name, region_annot, region_annot_fa, clipping_file) + # FIXME: what format is this? reading into memory, why write file? + good_annot_aligns = generate_good_match_to_annot(args, temp_prefix, region, bamfile_name, region_annot, region_annot_fa, clipping_file) read_to_transcript = {} - for line in open(goodannotaligns): + for line in open(good_annot_aligns): line = line.rstrip().split('\t') read, transcript = line[:2] - startindex, startdist, endindex, enddist = [int(x) for x in line[2:]] - read_to_transcript[read] = (transcript, startindex, startdist, endindex, enddist) - - print(region.name, region.start, region.end, sample, 'correcting reads') + start_sj_index, start_sj_dist, start_tend_dist, end_sj_index, end_sj_dist, end_tend_dist = [int(x) if x != 'None' else None for x in line[2:]] + if start_sj_index != 'None': # not a single exon transcript + read_to_transcript[read] = (transcript, start_sj_index, start_sj_dist, end_sj_index, end_sj_dist) - sj_to_ends = {} bamfile = pysam.AlignmentFile(bamfile_name, 'rb') - c, d, e, f = 0, 0, 0, 0 - for read in bamfile.fetch(region.name, region.start, region.end): - if not should_process_read(read, region, args.quality, args.keep_sup, False): - continue - corrected_read = None - if read.query_name in read_to_transcript: - transcript, startindex, startdist, endindex, enddist = read_to_transcript[read.query_name] - juncs = transcript_to_sjc[transcript] - if len(juncs) > 0: - newstart = juncs[startindex][0] - startdist - newend = juncs[endindex][1] + enddist - juncs = tuple([Junc(x[0], x[1]) for x in juncs[startindex:endindex+1]]) - strand = gene_to_strand[transcript.split('_')[-1]] - corrected_read = ReadRec.from_junctions(read.reference_name, newstart, newend, - read.query_name, read.mapping_quality, - strand, juncs) - c += 1 - else: - c += 1 - else: - corrected_read = read_correct_to_readrec(junction_corrector, read) - if corrected_read: - d += 1 - else: - e += 1 - if corrected_read: - add_corrected_read_to_groups(corrected_read, sj_to_ends) + sj_to_ends = {} + filter_correct_group_reads(bam_file=bamfile, region=region, + read_to_annot_transcript=read_to_transcript, + annots=annots, junction_corrector=junction_corrector, + genome=None, + quality=args.quality, keep_sup=args.keep_sup, + sj_to_ends=sj_to_ends, + allow_outside_range=True, + keep_single_exon=False) bamfile.close() - # print(c, 'annotated match') - # print(d, 'corrected reads') - # print(f, 'reads not loaded from annot') - # print(e, 'failed correction') - - - genetojuncs, nogenejuncs, sereads = group_juncs_by_annot_gene(sj_to_ends, sjc_to_gene, junc_to_gene, gene_to_exons, gene_to_juncs) + genetojuncs, nogenejuncs, sereads = group_juncs_by_annot_gene(sj_to_ends, annots.sjc_to_gene, annots.junc_to_gene_id, annots.gene_to_exons, annots.gene_to_annot_juncs) c = 0 with open(temp_prefix + '_gene_to_juncs.txt', 'w') as out: for gene in genetojuncs: for juncs in genetojuncs[gene]: juncstring = ','.join(['.'.join([str(y) for y in x]) for x in juncs]) - for read_info in genetojuncs[gene][juncs]: + for read_info in genetojuncs[gene][juncs].reads: c += 1 - outline = [gene, juncstring, str(read_info.start), str(read_info.end), read_info.strand, read_info.name] + outline = [gene, juncstring, str(read_info.start), str(read_info.end), genetojuncs[gene][juncs].strand, read_info.name] out.write('\t'.join(outline) + '\n') - # print(c, 'final multi-junction reads') pipettor.run([('rm', f'{temp_prefix}.matchannot.counts.tsv', f'{temp_prefix}.readtoends.txt', f'{temp_prefix}.reads.fasta', f'{temp_prefix}.reads.genomicclipping.txt')]) - genome.close() - -def process_bed_line(line): - line = line.rstrip().split('\t') - transcript = line[3] - gene = line[3].split('_')[-1] - start, esizes, estarts = int(line[1]), [int(x) for x in line[-2].rstrip(',').split(',')], \ - [int(x) for x in line[-1].rstrip(',').split(',')] - exons = [(start + estarts[i], start + estarts[i] + esizes[i]) for i in range(len(esizes))] - junctions = [(start + estarts[i] + esizes[i], start + estarts[i+1]) for i in range(len(esizes)-1)] - strand = line[5] - return gene, transcript, exons, junctions, strand +def process_bed_line(bed_rec): + transcript = bed_rec.name + gene = bed_rec.name.split('_')[-1] + exons = [(blk.start, blk.end) for blk in bed_rec.blocks] + junctions = [(exons[i][1], exons[i + 1][0]) for i in range(len(exons) - 1)] + strand = bed_rec.strand + return gene, transcript, exons, junctions, strand -def _run_region(*, partition, gtf_data, intron_support, args, allsamples): - region = partition.region - tempprefix = partition.file_prefix +def _run_region(*, partition, gtf_data, junction_corrector, args, allsamples): # noqa: C901 - FIXME: reduce complexity + # FIXMEL what are these files being created, just do in memory region_bed = partition.output_path('region.bed') out = open(region_bed, 'w') - out.write('\t'.join([region.name, str(region.start), str(region.end)]) + '\n') + out.write('\t'.join([partition.region.name, str(partition.region.start), str(partition.region.end)]) + '\n') out.close() - region_annot = tempprefix + '.annotation.bed' + region_annot = partition.file_prefix + '.annotation.bed' pipettor.run([('bedtools', 'intersect', '-wa', '-a', args.annot, '-b', region_bed)], stdout=region_annot) - if os.path.getsize(region_annot) > 0: #check if any annotated transcripts in region + if os.path.getsize(region_annot) > 0: # check if any annotated transcripts in region if args.annot_basic: - region_annot_basic = tempprefix + '.annotation.basic.bed' + region_annot_basic = partition.file_prefix + '.annotation.basic.bed' pipettor.run([('bedtools', 'intersect', '-wa', '-a', args.annot_basic, '-b', region_bed)], stdout=region_annot_basic) region_annot_fa = None if not args.noaligntoannot: - region_annot_fa = tempprefix + '.annotation.fa' - bed_to_sequence(region_annot, args.genome, region_annot_fa) + region_annot_fa = partition.file_prefix + '.annotation.fa' + get_sequence_from_bed(args.genome, region_annot, region_annot_fa) region_juncs = None if args.junction_bed: - region_juncs = tempprefix + '.juncbed.bed' + region_juncs = partition.file_prefix + '.juncbed.bed' pipettor.run([('bedtools', 'intersect', '-wa', '-a', args.junction_bed, '-b', region_bed)], stdout=region_juncs) - sjc_to_gene = {} - junc_to_gene = {} - exon_to_gene = {} - gene_to_exons = {} - gene_to_juncs = {} - gene_to_strand = {} - transcript_to_sjc = {} - for line in open(region_annot): - gene, transcript, exons, junctions, strand = process_bed_line(line) - if gene not in gene_to_juncs: - gene_to_juncs[gene] = set(junctions) - gene_to_exons[gene] = set(exons) - gene_to_strand[gene] = strand - else: - gene_to_juncs[gene].update(set(junctions)) - gene_to_exons[gene].update(set(exons)) - sjc_to_gene[tuple(junctions)] = gene - transcript_to_sjc[transcript] = tuple(junctions) - for j in junctions: - junc_to_gene[j] = gene - for e in exons: - exon_to_gene[e] = gene - for gene in gene_to_exons: - gene_to_exons[gene] = tuple(sorted(list(gene_to_exons[gene]))) + annots = annot_data_from_gtf(gtf_data, partition.region) annot_afe_ss, annot_ale_ss = {}, {} if args.annot_basic: - for line in open(region_annot_basic): - gene, transcript, exons, junctions, strand = process_bed_line(line) + for bed_rec in BedReader(region_annot_basic, fixScores=True): + gene, transcript, exons, junctions, strand = process_bed_line(bed_rec) if gene not in annot_afe_ss: annot_afe_ss[gene] = set() annot_ale_ss[gene] = set() @@ -1235,24 +1138,19 @@ def _run_region(*, partition, gtf_data, intron_support, args, allsamples): annot_afe_ss[gene].add(afe_ss) annot_ale_ss[gene].add(ale_ss) - - - - # align reads to annot [transcripts +- 1000bp], filter to only good aligns, convert to genomic coords # get reads from that bam file (no need to correct), save junctions - am actually doing correct, could probably remove that # add junctions from other reads that did not match ref transcriptome well after correction # load splice junctions for chrom for sample, bamfile in allsamples: - if not os.path.exists(tempprefix + '_' + sample + '_gene_to_juncs.txt'): - get_juncs_single_sample([args, region, tempprefix, sample, bamfile, region_annot, region_annot_fa, region_juncs, sjc_to_gene, junc_to_gene, exon_to_gene, gene_to_exons, gene_to_juncs, transcript_to_sjc, gene_to_strand]) + if not os.path.exists(partition.file_prefix + '_' + sample + '_gene_to_juncs.txt'): + get_juncs_single_sample(args, partition.region, partition.file_prefix, sample, bamfile, region_annot, region_annot_fa, junction_corrector, annots) - - allgenetojuncs = [] + all_genes_to_juncs = [] for sample, bamfile in allsamples: gene_to_juncs = {} - for line in open(tempprefix + '_' + sample + '_gene_to_juncs.txt'): + for line in open(partition.file_prefix + '_' + sample + '_gene_to_juncs.txt'): line = line.rstrip().split('\t') gene, juncstring, start, end, strand, readname = line juncs = [x.split('.') for x in juncstring.split(',')] @@ -1261,37 +1159,80 @@ def _run_region(*, partition, gtf_data, intron_support, args, allsamples): gene_to_juncs[gene] = {} if juncs not in gene_to_juncs[gene]: gene_to_juncs[gene][juncs] = [] - gene_to_juncs[gene][juncs].append(ReadRec(None, int(start), int(end), readname, None, strand, ())) - allgenetojuncs.append(gene_to_juncs) + gene_to_juncs[gene][juncs].append(ReadRec(None, strand, (), int(start), int(end), readname)) + all_genes_to_juncs.append(gene_to_juncs) - process_gene_to_events(tempprefix, region.name, [x[0] for x in allsamples], allgenetojuncs, gene_to_strand, args.junc_support, args.output_read_ends, args.event_frac_of_tot, args.junc_frac_of_event, args.event_support, annot_afe_ss, annot_ale_ss, args.check_outliers) + process_gene_to_events( + partition.file_prefix, partition.region.name, [x[0] for x in allsamples], + all_genes_to_juncs, annots.gene_to_strand, args.junc_support, args.output_read_ends, + args.event_frac_of_tot, args.junc_frac_of_event, args.event_support, + annot_afe_ss, annot_ale_ss, args.check_outliers) if not args.keep_intermediate: for sample, bamfile in allsamples: - pipettor.run([('rm', tempprefix + '_' + sample + '_gene_to_juncs.txt')]) - + pipettor.run([('rm', partition.file_prefix + '_' + sample + '_gene_to_juncs.txt')]) + + +def combine_regions(regions, buffersize=0): + regions.sort() + new_regions = [] + lastchrom, laststart, lastend = -1, -1, -1 + for range in regions: + c, s, e = range.name, range.start, range.end + if c != lastchrom or s > lastend + buffersize: + if lastchrom != -1: + new_regions.append(SeqRange(lastchrom, laststart, lastend)) + lastchrom, laststart, lastend = c, s, e + else: + lastend = max((lastend, e)) + if lastchrom != -1: + new_regions.append(SeqRange(lastchrom, laststart, lastend)) + return new_regions -def main(): +def main(): # noqa: C901 - FIXME: reduce complexity logging.basicConfig(level=logging.INFO) args = get_args() logging.info('loading genome') genome = pysam.FastaFile(args.genome) - logging.info('making temp dir') - tempDir = ft.make_temp_dir(args.output) - print('temp directory:', tempDir) + # FIXME: make this a common function somewhere + tempDir = make_temp_dir(args.output) + logging.info('temp directory: %s', tempDir) if args.region_bed: all_regions = [] for line in open(args.region_bed): + # FIXME: use BED class line = line.rstrip().split('\t') all_regions.append(SeqRange(line[0], int(line[1]), int(line[2]))) + all_regions = combine_regions(all_regions) else: all_regions = [SeqRange(chrom, 0, genome.get_reference_length(chrom)) for chrom in genome.references] + logging.info(f'input regions: {len(all_regions)}') - logging.info('pre-processing annotation') + allsamples = [] + for line in open(args.manifest): + if line[0] != '#': + line = line.rstrip().split('\t') + sample, bamfile = line + allsamples.append((sample, bamfile)) + + out = open(tempDir + '0000.header.diffsplice.counts.tsv', 'w') + out.write('\t'.join(['featureID'] + [x[0] for x in allsamples]) + '\n') + out.close() + + if args.annot: + logging.info('loading annotation GTF') + annot_gtf_data = gtf_data_parser(args.annot, attrs=GtfAttrsSet.FLAIR, include_features=TRANSCRIPT_EXON_FEATURES) + logging.info('building intron support database') + junction_corrector = junction_corrector_factory(args.ss_window, args.junction_support, + annot_gtf_data=annot_gtf_data, + intron_beds=args.junction_bed, + star_sj_tabs=args.junction_tab) + + # FIXME: we appear to do this just to do bed intersect; just do in memory. annot_bed = tempDir + '/annotation.bed' if not os.path.exists(annot_bed): pipettor.run([('gtf_to_bed', args.annot, annot_bed, '--include_gene')]) @@ -1302,28 +1243,18 @@ def main(): pipettor.run([('gtf_to_bed', args.annot_basic, annot_basic_bed, '--include_gene')]) args.annot_basic = annot_basic_bed + logging.info(f'running regions with {args.threads} threads') - logging.info('splitting by chunk') - - allsamples = [] - for line in open(args.manifest): - if line[0] != '#': - line = line.rstrip().split('\t') - sample, bamfile = line - allsamples.append((sample, bamfile)) - out = open(tempDir + '/0000.header.diffsplice.counts.tsv', 'w') - out.write('\t'.join(['featureID'] + [x[0] for x in allsamples]) + '\n') - out.close() - - runner = PartitionRunner(all_regions, tempDir, threads=args.threads) + runner = PartitionRunner(all_regions, tempDir, gtf_data=annot_gtf_data, junction_corrector=junction_corrector, + threads=args.threads) runner.run(_run_region, args=args, allsamples=allsamples) - ft.combine_temp_files_by_suffix(args.output, [p.file_prefix for p in runner], - ['.diffsplice.bed', '.diffsplice.counts.tsv', '.diffsplice.PSIjunc.tsv', '.diffsplice.PSItot.tsv']) + combine_temp_files_by_suffix(args.output, [p.file_prefix for p in runner], + ['.diffsplice.bed', '.diffsplice.counts.tsv', '.diffsplice.PSIjunc.tsv', '.diffsplice.PSItot.tsv']) if args.output_read_ends: - ft.combine_temp_files_by_suffix(args.output, [p.file_prefix for p in runner], ['.diffsplice.readends.bed']) + combine_temp_files_by_suffix(args.output, [p.file_prefix for p in runner], ['.diffsplice.readends.bed']) if args.check_outliers: - ft.combine_temp_files_by_suffix(args.output, [p.file_prefix for p in runner], ['.diffsplice.outliers.tsv', '.diffsplice.outliers.filtered.tsv']) + combine_temp_files_by_suffix(args.output, [p.file_prefix for p in runner], ['.diffsplice.outliers.tsv', '.diffsplice.outliers.filtered.tsv']) counts_header = ['eventname', 'eventtype', 'gene', 'junctions_included', 'junctions_excluded', 'outer_junctions', 'exons'] for suffix in ['.diffsplice.counts', '.diffsplice.PSIjunc', '.diffsplice.PSItot']: @@ -1343,7 +1274,6 @@ def main(): out.write(line) pipettor.run([('mv', args.output + suffix + '.new.tsv', args.output + suffix + '.tsv')]) - if not args.keep_intermediate: shutil.rmtree(tempDir) diff --git a/src/flair/flair_transcriptome.py b/src/flair/flair_transcriptome.py index 622577b7..28a1d2e8 100644 --- a/src/flair/flair_transcriptome.py +++ b/src/flair/flair_transcriptome.py @@ -1,27 +1,31 @@ -#! /usr/bin/env python3 +#!/usr/bin/env python3 import argparse import os import pipettor import shutil import pysam +import hashlib import logging -from collections import Counter, namedtuple -from flair.gtf_io import gtf_data_parser, gtf_write_row, GtfTranscript, GtfExon, GtfAttrsSet -from flair.intron_support import IntronSupport -from flair.junction_correct import JunctionCorrector -from flair.partition_runner import parallel_mode_parse, partition_runner_factory -from flair.pycbio.hgdata.bed import BedReader -from flair.bed_to_sequence import bed_to_sequence +from statistics import median +from collections import Counter +from flair import FlairError +from flair.gtf_io import gtf_data_parser, GtfAttrsSet, TRANSCRIPT_EXON_FEATURES +from flair.junction_correct import junction_corrector_factory +from flair.partition_runner import parallel_mode_parse, partition_runner_factory, combine_temp_files_by_suffix +from flair.io_utils import make_temp_dir from flair.bed_to_gtf import bed_to_gtf -from flair.isoform_data import (Junc, Exon, IsoIdSrc, ReadRec, exons_to_juncs, bed_to_junctions, - get_rgb, get_bed_exons_from_juncs, get_bed_exons_from_exons, - get_sequence_for_exons, binary_search, - ISO_SRC_ANNOT) -from flair.read_processing import (should_process_read, read_correct_to_readrec, - add_corrected_read_to_groups, - generate_genomic_alignment_read_to_clipping_file) - -# FIXME: temporarily disabled C901 (too complex) in .flake8 +from flair.isoform_data import (Exon, Gene, Isoform, exons_to_juncs, get_bed_exons_from_exons, + get_sequence_for_exons, binary_search, convert_to_bed12, convert_to_flair_bed, BED_FIELDS, + EXTRA_BED_FIELDS, make_big_bed) +from flair.read_processing import generate_genomic_alignment_read_to_clipping_file +from flair.read_correction import filter_correct_group_reads +from flair.count_sam_transcripts import TRUST_ENDS_WINDOW, run_count_sam_transcripts +from flair.annotation_data import annot_data_from_gtf +from flair.pycbio.hgdata.bed import Bed +from flair.predictProductivity import predict_prod_temp + +MIN_POLYA_FRAC_DIFF_FOR_SE_STRANDING = 0.1 + # FIXME: add object for all file names # FIXME: use real TSVs # FIXME: need to document all the files @@ -51,14 +55,15 @@ def get_args(): 'Use this option if you aligned your short-reads with STAR, ' 'STAR will automatically output this file') mutexc.add_argument('--junction_bed', help='short-read junctions in bed format ' - '(can be generated from long-read alignment with intronProspector)') - parser.add_argument('--junction_support', type=int, default=1, + '(can be generated from long-read alignment with intron-prospector)') + parser.add_argument('--junction_support', type=int, default=2, help='if providing short-read junctions, minimum junction support required to keep junction. ' 'If your junctions file is in bed format, the score field will be used for read support.') parser.add_argument('--ss_window', type=int, default=15, help='window size for correcting splice sites (15)') parser.add_argument('-w', '--end_window', type=int, default=100, help='window size for comparing TSS/TES (100)') + parser.add_argument('--sjc_support', type=int, default=1, help='''minimum number of supporting reads for a spliced isoform''') parser.add_argument('--se_support', type=int, default=3, @@ -99,11 +104,11 @@ def get_args(): if the file is less than 1GB, parallelization is done by chromosome, but if it's larger, parallelization is done by region of non-overlapping reads. Other modes: bychrom, byregion, auto:xGB - for setting the auto threshold, it must be in units of GB.''') - parser.add_argument('--predict_cds', default=False, action='store_true', - help='specify if you want to predict the CDS of the final isoforms. ' - 'Will be output in the final bed file but not the gtf file. ' - 'Productivity annotation is also added in the name field, ' - 'which is detailed further in the predictProductivity documentation') + # parser.add_argument('--predict_cds', default=False, action='store_true', + # help='specify if you want to predict the CDS of the final isoforms. ' + # 'Will be output in the final bed file but not the gtf file. ' + # 'Productivity annotation is also added in the name field, ' + # 'which is detailed further in the predictProductivity documentation') parser.add_argument('--keep_intermediate', default=False, action='store_true', help='''specify if intermediate and temporary files are to be kept for debugging. Intermediate files include: promoter-supported reads file, @@ -125,9 +130,14 @@ def get_args(): help='specify if want to allow reads to be assigned to multiple paralogs with equivalent alignment') parser.add_argument('--generate_map', default=False, action='store_true', help='''specify this argument to generate a txt file of read-isoform assignments''') + parser.add_argument('--trust_strand', default=False, action='store_true', + help='''specify if you want FLAIR to trust the stranding of the input reads and not attempt strand correction''') + parser.add_argument('--trust_ends', default=False, action='store_true', + help='''specify if you want FLAIR to trust the ends of the input reads - a more stringent way of requiring read ends to match the ends of transcript models''') + args = parser.parse_args() args.parallel_mode = parallel_mode_parse(parser, args.parallel_mode) - args.trust_ends = False + # args.trust_ends = False args.remove_internal_priming = False if not os.path.exists(args.genome_aligned_bam): @@ -140,6 +150,7 @@ def get_args(): #### # basic types #### +# (Junc, Exon, exons_to_juncs, ISO_SRC_ANNOT, ISO_SRC_NOVEL, IsoIdSrc imported from flair.isoform_data) # tolerance for terminal exon boundary comparisons TERMINAL_EXON_BOUNDARY_TOLERANCE = 20 @@ -152,179 +163,16 @@ def get_args(): # overlap fraction thresholds for gene assignment MIN_ISOFORM_OVERLAP_FRAC = 0.5 -MIN_ANNOT_OVERLAP_FRAC = 0.8 +MIN_ANNOT_OVERLAP_FRAC = 0 # search window for binary search of single-exon annotations ANNOT_SE_SEARCH_WINDOW = 2 #### -# misc -### -# FIXME: these are also used by flair_spliceevents, need to figure out some common code. -def make_temp_dir(out_prefix): - # FIXME: use TMPDIR unless directory explicitly specified - temp_dir = out_prefix + ".intermediate" - try: - os.makedirs(temp_dir, exist_ok=True) - except OSError as exc: - raise OSError(f"Creation of the directory `{temp_dir}' failed") from exc - return temp_dir - -def combine_temp_files_by_suffix(output, temp_prefixes, suffixes): - for filesuffix in suffixes: - with open(output + filesuffix, 'wb') as combined_fh: - for temp_prefix in temp_prefixes: - with open(temp_prefix + filesuffix, 'rb') as in_fh: - shutil.copyfileobj(in_fh, combined_fh, 1024 * 1024 * 10) - - - -#### -# splice junction correction +# transcriptome alignment #### -# (binary_search, bed_to_junctions, read_correct_to_readrec imported from flair.isoform_data / flair.read_processing) - -def build_intron_support(gtf_file, junction_tab, junction_bed): - """Build IntronSupport from all available sources.""" - is_db = IntronSupport() - if junction_bed is not None: - is_db.load_introns_bed(junction_bed) - if junction_tab is not None: - is_db.load_star(junction_tab) - if gtf_file is not None: - is_db.load_gtf(gtf_data_parser(gtf_file, attrs=GtfAttrsSet.FLAIR)) - return is_db - -def setup_junction_corrector(intron_support, ss_window, junction_support): - """Create a JunctionCorrector from a pre-built IntronSupport.""" - return JunctionCorrector(intron_support, ss_window, junction_support) - -class AnnotData(object): - def __init__(self): - # FIXME: what the keys of these dicts()? - # FIXME: update names - - # map of (transcript_id, gene_id) -> (start, end) - self.transcript_to_exons = {} - - # list of (transcript_id, gene_id, strand) - self.transcripts = [] - - # map of ((start0, end0), ...) -> (transcript_id, gene_id) - self.juncchain_to_transcript = {} - - # map of (start, ent) -> set of (transcript_id, gene_id) - self.junc_to_gene = {} - - # list of (start, end, strand, gene_id): - # FIXME: rename once it is figured out how this works in get_single_exon_gene_overlaps - # FIXME: make set - self.all_annot_SE = [] - - # map of strand to map of gene_id to set of (start, end) - # FIXME: why is strand needed here - self.spliced_exons = {'+': {}, '-': {}} - - # map of gene_id to set of (start, end) - self.gene_to_annot_juncs = {} - - # map of gene_id to strand - self.gene_to_strand = {} - - -def annot_data_from_gtf(gtf_data, region): - """Build AnnotData for a region from a pre-partitioned GtfData.""" - annots = AnnotData() - if gtf_data is None: - return annots - region_map = {region: annots} - for trans in gtf_data.transcripts: - exons = [Exon(exon.start, exon.end) for exon in trans.exons] - if not exons: - continue - sorted_exons = sorted(exons) - t_start = sorted_exons[0].start - t_end = sorted_exons[-1].end - save_transcript_annot_to_region(trans.transcript_id, trans.gene_id, region, - region_map, t_start, t_end, trans.strand, sorted_exons) - return annots - -def save_transcript_annot_to_region(transcript_id, gene_id, region, regions_to_annot_data, t_start, t_end, strand, t_exons): - # regions is tuple of ('chr20', 0, 64444167) - # FIXME: t_exons are list of (32186476, 32190360) - assert isinstance(t_exons[0], Exon) # FIXME tmp debugging - sorted_exons = sorted(t_exons) - annots = regions_to_annot_data[region] - annots.transcript_to_exons[(transcript_id, gene_id)] = tuple(sorted_exons) - juncs = exons_to_juncs(sorted_exons) - annots.transcripts.append((transcript_id, gene_id, strand)) - if gene_id not in annots.gene_to_strand: - annots.gene_to_strand[gene_id] = strand - if len(juncs) == 0: - annots.all_annot_SE.append((t_start, t_end, strand, gene_id)) - else: - if gene_id not in annots.spliced_exons[strand]: - annots.spliced_exons[strand][gene_id] = set() - annots.spliced_exons[strand][gene_id].update(set(sorted_exons)) - annots.juncchain_to_transcript[tuple(juncs)] = (transcript_id, gene_id) - if gene_id not in annots.gene_to_annot_juncs: - annots.gene_to_annot_juncs[gene_id] = set() - for j in juncs: - if j not in annots.junc_to_gene: - annots.junc_to_gene[j] = set() - annots.junc_to_gene[j].add((transcript_id, gene_id)) - annots.gene_to_annot_juncs[gene_id].add(j) - annots.all_annot_SE = sorted(annots.all_annot_SE) # FIXME: make set? - - -def get_filter_tome_align_cmd(args, ref_bed, output_name, map_file, is_annot, clipping_file, unique_bound): - # FIXME: convert filter_transcriptome_align.py to a library, however - # minimap output needs to be piped through filter_transcriptome_align - # without saving the bam file. - - # count sam transcripts ; the dash at the end means STDIN - # use 1 thread in because this is already multithreaded here - count_cmd = ['filter_transcriptome_align.py', '--sam', '-', - '-o', output_name, '-t', 1,] - if clipping_file: - count_cmd.extend(['--trimmedreads', clipping_file]) - if map_file: - count_cmd.extend(['--generate_map', map_file]) - if args.output_endpos or is_annot: - count_cmd.extend(['--output_endpos', output_name.split('.counts.txt')[0] + '.ends.tsv']) - if args.end_norm_dist: - count_cmd.extend(['--end_norm_dist', args.end_norm_dist]) - if not is_annot and not args.no_stringent: - count_cmd.extend(['--stringent']) - if is_annot: - count_cmd.extend(['--allow_UTR_indels']) - if args.output_bam: - count_cmd.extend(['--output_bam', output_name.split('.counts.txt')[0] + '.bam']) - if not args.no_check_splice: - count_cmd.append('--check_splice') - if not args.no_check_splice or not args.no_stringent or is_annot or args.fusion_breakpoints: - count_cmd.extend(['-i', ref_bed]) # annotated isoform bed file - if args.trust_ends: - count_cmd.append('--trust_ends') - if unique_bound and (not args.no_stringent or is_annot): - count_cmd.extend(['--unique_bound', unique_bound]) - if args.remove_internal_priming: - count_cmd.extend(['--remove_internal_priming', - '--intprimingthreshold', str(args.intprimingthreshold), - '--intprimingfracAs', str(args.intprimingfracAs), - '--transcriptomefasta', args.transcriptfasta]) - if args.remove_internal_priming and is_annot: - count_cmd.append('--permissive_last_exons') - if args.fusion_breakpoints: - count_cmd += ['--fusion_breakpoints', args.fusion_breakpoints] - if args.allow_paralogs: - count_cmd += ['--allow_paralogs'] - print(' '.join([str(x) for x in count_cmd])) - return count_cmd - - -def transcriptome_align_and_count(args, input_reads, align_ref_fasta, ref_bed, output_name, map_file, is_annot, clipping_file, unique_bound): +def transcriptome_align_and_count(args, input_reads, align_ref_fasta, ref_bed, output_name, map_file, is_annot, clipping_file, unique_bound): # noqa: C901 - FIXME: reduce complexity # minimap (results are piped into count_sam_transcripts.py) # '--split-prefix', 'minimap2transcriptomeindex', doesn't work with MD tag if isinstance(input_reads, str): @@ -333,127 +181,61 @@ def transcriptome_align_and_count(args, input_reads, align_ref_fasta, ref_bed, o # FIXME add in step to filter out chimeric reads here # FIXME really need to go in and check on how count_sam_transcripts is working - count_cmd = get_filter_tome_align_cmd(args, ref_bed, output_name, map_file, is_annot, clipping_file, unique_bound) + trimmedreads = clipping_file or None + generate_map = map_file or None + output_endpos = output_name.split('.counts.txt')[0] + '.ends.tsv' # if (args.output_endpos or is_annot) else None) + output_bam = (output_name.split('.counts.txt')[0] + '.bam' + if args.output_bam else None) + stringent = (not is_annot) and (not args.no_stringent) + check_splice = not args.no_check_splice + # annotated isoform bed file + isoforms = ref_bed if (check_splice or stringent or is_annot or args.fusion_breakpoints) else None + unique_bound_path = unique_bound if unique_bound and (not args.no_stringent or is_annot) else None + intprimingthreshold = None + intprimingfracAs = None + transcriptomefasta = None + if args.remove_internal_priming: + intprimingthreshold = args.intprimingthreshold + intprimingfracAs = args.intprimingfracAs + transcriptomefasta = args.transcriptfasta + permissive_last_exons = args.remove_internal_priming and is_annot + + run_count_sam_transcripts( + mm2_cmd=mm2_cmd, + output=output_name, + trimmedreads=trimmedreads, + generate_map=generate_map, + output_endpos=output_endpos, + end_norm_dist=args.end_norm_dist or 0, + stringent=stringent, + allow_UTR_indels=True, # is_annot, + output_bam=output_bam, + check_splice=check_splice, + isoforms=isoforms, + trust_ends=args.trust_ends, + unique_bound=unique_bound_path, + remove_internal_priming=args.remove_internal_priming, + intprimingthreshold=intprimingthreshold, + intprimingfracAs=intprimingfracAs, + transcriptomefasta=transcriptomefasta, + permissive_last_exons=permissive_last_exons, + fusion_breakpoints=args.fusion_breakpoints, + allow_paralogs=args.allow_paralogs) - pipettor.run([mm2_cmd, count_cmd]) ## # Transcript end assignment ## -class ReadEndInfo: - """Represents a group of reads sharing similar transcript ends""" - def __init__(self, start, end, strand, read_id, weighted_score=0.0, supporting_reads=None): - self.start = start - self.end = end - self.strand = strand - self.read_id = read_id # Representative read for this group - self.weighted_score = weighted_score - self.supporting_reads = supporting_reads or [] - - @property - def num_reads(self): - return len(self.supporting_reads) - - @property - def length(self): - return self.end - self.start - - @property - def score(self): - """Alias for num_reads for compatibility""" - return self.num_reads - -class IsoformInfo: - """Represents metadata about a detected isoform""" - def __init__(self, transcript_id, strand, exons): - self.transcript_id = transcript_id - self.strand = strand - self.exons = exons - self.gene_id = None # Assigned later - - @property - def start(self): - return self.exons[0][0] if self.exons else None - - @property - def end(self): - return self.exons[-1][1] if self.exons else None - - def set_gene_id(self, gene_id): - self.gene_id = gene_id - -class EndInfo: - """Represents transcript end information for final isoforms""" - def __init__(self, start, end, iso_id_src, read_names): - self.start = start - self.end = end - self.iso_id_src = iso_id_src - self.read_names = read_names - - @property - def score(self): - return min(len(self.read_names), 1000) - - @property - def length(self): - return self.end - self.start - -class JunctionChain(namedtuple('JunctionChain', ('chrom', 'strand', 'juncs'))): - pass - -class GeneIsoformData: - """Organizes all isoforms for a single gene""" - def __init__(self, gene_id): - self.gene_id = gene_id - self._by_junction = {} - - def add_isoform(self, chrom, strand, juncs, end_info): - """Add an isoform to the gene's isoform data""" - junc_chain = JunctionChain(chrom, strand, juncs) - if junc_chain not in self._by_junction: - self._by_junction[junc_chain] = [] - self._by_junction[junc_chain].append(end_info) - - def get_isoforms(self, chrom, strand, juncs): - """Get all isoforms for a specific junction chain""" - junc_chain = JunctionChain(chrom, strand, juncs) - return self._by_junction.get(junc_chain, []) - - def set_isoforms(self, chrom, strand, juncs, isoforms): - """Set the isoforms list for a specific junction chain""" - junc_chain = JunctionChain(chrom, strand, juncs) - self._by_junction[junc_chain] = isoforms - - def junction_chains(self): - """Iterate over all junction chains in this gene""" - return iter(self._by_junction.keys()) - - @property - def total_read_support(self): - """Sum of all reads supporting all isoforms""" - return sum(len(iso.read_names) - for isos in self._by_junction.values() - for iso in isos) - def get_best_ends(curr_group, end_window): best_ends = [] - groupStrands = Counter([x.strand for x in curr_group]).most_common() if len(curr_group) > int(end_window): all_starts = Counter([x.start for x in curr_group]) all_ends = Counter([x.end for x in curr_group]) for read_info in curr_group: weighted_score = all_starts[read_info.start] + all_ends[read_info.end] - best_ends.append((weighted_score, read_info.start, read_info.end, read_info.strand, read_info.name)) + best_ends.append((weighted_score, read_info.start, read_info.end)) else: - # take most common non-ambiguous strand for group - groupStrands = Counter([x.strand for x in curr_group]).most_common() - strand = 'ambig' - for i in range(len(groupStrands)): - if groupStrands[i][0] != 'ambig': - strand = groupStrands[i][0] - break - for read_info1 in curr_group: score, weighted_score = 0, 0 for read_info2 in curr_group: @@ -461,27 +243,11 @@ def get_best_ends(curr_group, end_window): score += 2 weighted_score += (((end_window - abs(read_info1.start - read_info2.start)) / end_window) + ((end_window - abs(read_info1.end - read_info2.end)) / end_window)) - best_ends.append((weighted_score, read_info1.start, read_info1.end, strand, read_info1.name)) + best_ends.append((weighted_score, read_info1.start, read_info1.end)) best_ends.sort(reverse=True) # FIXME: DO I WANT TO ADD CORRECTION TO NEARBY ANNOTATED TSS/TTS???? - # FIXME: better integrate with ReadEndInfo return best_ends[0] - -def combine_final_ends(curr_group): - # FIXME: group of what? - if len(curr_group) == 1: - return curr_group[0] - else: - curr_group.sort(key=lambda x: x.iso_id_src) # sort by iso_src - all_reads = [y for x in curr_group for y in x.read_names] - if curr_group[0].iso_id_src.src != ISO_SRC_ANNOT: # if no annotated iso, sort further - curr_group.sort(key=lambda x: len(x.read_names), reverse=True) - best_iso = curr_group[0] - best_iso.read_names = all_reads - return best_iso - - def group_reads_by_ends(read_info_list, sort_index, end_window): sorted_ends = sorted(read_info_list, key=lambda x: x.start if sort_index == 0 else x.end) new_groups, group = [], [] @@ -503,39 +269,32 @@ def group_reads_by_ends(read_info_list, sort_index, end_window): # read_ends is a list containing elements with: (read.start, read.end, read.strand, read.name) # If the reads are spliced, the group will contain only the info for reads with a shared splice junction # if the reads are unspliced, the group will contain info for all unspliced reads in a given chromosome/region, -# The output is a list of ReadEndInfo objects containing: +# The output is a list of Isoform objects containing: # - weighted_score (represents how many reads have ends similar to this exact position) # - start, end, strand, read_id (representative read id) # - supporting_reads (list of all read names in group) -def collapse_end_groups(end_window, read_ends, do_get_best_ends=True): - start_groups = group_reads_by_ends(read_ends, 0, end_window) +def collapse_end_groups(end_window, isoform): + start_groups = group_reads_by_ends(isoform.reads, 0, end_window) all_end_groups, iso_end_groups = [], [] for start_group in start_groups: all_end_groups.extend(group_reads_by_ends(start_group, 1, end_window)) for end_group in all_end_groups: - if do_get_best_ends: - # get_best_ends returns (weighted_score, start, end, strand, name) - weighted_score, start, end, strand, name = get_best_ends(end_group, end_window) - supporting_reads = [x.name for x in end_group] - read_end_info = ReadEndInfo(start, end, strand, name, weighted_score, supporting_reads) - iso_end_groups.append(read_end_info) - else: - iso_end_groups.append(combine_final_ends(end_group)) + weighted_score, start, end = get_best_ends(end_group, end_window) + read_end_info = Isoform.regroup(isoform, start, end, end_group) + iso_end_groups.append(read_end_info) return iso_end_groups -def get_isos_with_similar_juncs(juncs, firstpass_junc_to_name, junc_to_gene): - """Find isoforms sharing junctions with the given junction set. - Returns separate sets for novel (string UUIDs) and annotated ((transcript_id, gene_id) tuples).""" +def get_isos_with_similar_juncs(juncs, junc_to_names, junc_to_gene): + """Find isoforms sharing junctions with the given junction set.""" novel_isos = set() - annot_isos = set() for j in juncs: - if firstpass_junc_to_name and j in firstpass_junc_to_name: - novel_isos.update(firstpass_junc_to_name[j]) - if j in junc_to_gene: - annot_isos.update(junc_to_gene[j]) - return novel_isos, annot_isos + if junc_to_names and j in junc_to_names: + novel_isos.update(junc_to_names[j]) + # if j in junc_to_gene: + # annot_isos.update(junc_to_gene[j]) + return novel_isos def _is_junction_subset(juncs, otheriso_juncs): """Check if juncs is a proper subset of otheriso_juncs using string matching.""" @@ -589,29 +348,29 @@ def _check_junction_subset(juncs, first_exon, last_exon, otheriso_score, otheris terminal_exon_is_subset, superset_support, unique_seq_bound) -def identify_spliced_iso_subset_novel(novel_iso_id, firstpass_unfiltered, - juncs, first_exon, last_exon, terminal_exon_is_subset, - superset_support, unique_seq_bound): - """Check if query isoform is subset of a novel (firstpass) isoform. - novel_iso_id is a string UUID.""" - otheriso = firstpass_unfiltered[novel_iso_id] +def _check_novel_iso_subset(novel_iso_id, all_isoforms, + juncs, first_exon, last_exon, terminal_exon_is_subset, + superset_support, unique_seq_bound): + """Check if query isoform is subset of a novel (candidate) isoform.""" + otheriso = all_isoforms[novel_iso_id] _check_junction_subset(juncs, first_exon, last_exon, otheriso.score, otheriso.juncs, otheriso.exons, terminal_exon_is_subset, superset_support, unique_seq_bound) def filter_spliced_iso(filter_type, support, juncs, exons, name, score, annots, - firstpass_junc_to_name, firstpass_unfiltered, + junc_to_names, all_isoforms, sup_annot_transcript_to_juncs, strand): assert isinstance(exons[0], Exon) # FIXME: debugging - novel_isos, annot_isos = get_isos_with_similar_juncs(juncs, firstpass_junc_to_name, annots.junc_to_gene) + + novel_isos = get_isos_with_similar_juncs(juncs, junc_to_names, annots.junc_to_gene) terminal_exon_is_subset = [0, 0] # first exon is a subset, last exon is a subset first_exon, last_exon = exons[0], exons[-1] superset_support = [] unique_seq_bound = [] for novel_iso_id in novel_isos: if novel_iso_id != name: - identify_spliced_iso_subset_novel(novel_iso_id, firstpass_unfiltered, - juncs, first_exon, last_exon, terminal_exon_is_subset, - superset_support, unique_seq_bound) + _check_novel_iso_subset(novel_iso_id, all_isoforms, + juncs, first_exon, last_exon, terminal_exon_is_subset, + superset_support, unique_seq_bound) unique_seq_bound = list(set(unique_seq_bound)) if strand == '-': # just invert the indexes @@ -678,11 +437,15 @@ def _obtain(self, gene_id, strand): gene_entry = GeneMaxTerminalExonsEnds(gene_id) self._by_gene_id[gene_key] = gene_entry - # FIXME: tmp generate strand warning + # FIXME: tmp generate strand warning or error. it should be impossible to get here + # with gene broken like this. existing_strand = self._gene_id_to_strand.get(gene_id) if existing_strand is None: self._gene_id_to_strand[gene_id] = strand + elif strand != existing_strand: + raise FlairError(f"BUG: gene id '{gene_id}' has transcripts on both strands") elif (strand != existing_strand) and (gene_id not in self._genes_warned): + # FIXME: this is disabled for not to get hard failure self._genes_warned.add(gene_id) logging.warning("BUG: gene id '%s' has transcripts on both strands", gene_id) @@ -710,8 +473,8 @@ def max_terminal_exons_ends_from_annots(annots): def max_terminal_exons_ends_from_iso_infos(iso_to_info): max_terminal_exons_ends = MaxTerminalExonsEnds() for iso_name in iso_to_info: - iso_info = iso_to_info[iso_name] - max_terminal_exons_ends.add_transcript(iso_info.gene_id, iso_info.strand, iso_info.transcript_id, iso_info.exons) + isoform = iso_to_info[iso_name] + max_terminal_exons_ends.add_transcript(isoform.gene_id, isoform.strand, isoform.name, isoform.exons) return max_terminal_exons_ends #### @@ -779,7 +542,7 @@ def identify_good_match_to_annot(args, temp_prefix, chrom, annots, genome): # good_align_to_annot, firstpass_SE, sup_annot_transcript_to_juncs = [], set(), {} read_to_transcript = {} if not args.no_align_to_annot and len(annots.transcripts) > 0: - logging.info('generating transcriptome reference') + # logging.info('generating transcriptome reference') # this part generates the fasta file for the annotation if args.end_norm_dist is not None: transcript_to_strand, transcript_to_new_exons = \ @@ -791,7 +554,6 @@ def identify_good_match_to_annot(args, temp_prefix, chrom, annots, genome): generate_transcriptome_reference(temp_prefix, annots, chrom, genome) # FIXME: make a TSV clipping_file = temp_prefix + '.reads.genomicclipping.txt' - logging.info('aligning to transcriptome reference') transcriptome_align_and_count(args, temp_prefix + '.reads.fasta', temp_prefix + '.annotated_transcripts.fa', temp_prefix + '.annotated_transcripts.bed', @@ -799,12 +561,12 @@ def identify_good_match_to_annot(args, temp_prefix, chrom, annots, genome): temp_prefix + '.matchannot.read.map.txt', True, clipping_file, temp_prefix + '.annotated_transcripts_uniquebound.txt') - logging.info('processing good matches') for line in open(temp_prefix + '.matchannot.ends.tsv'): line = line.rstrip().split('\t') read, transcript = line[:2] - startindex, startdist, endindex, enddist = [int(x) for x in line[2:]] - read_to_transcript[read] = (transcript, startindex, startdist, endindex, enddist) + start_sj_index, start_sj_dist, start_tend_dist, end_sj_index, end_sj_dist, end_tend_dist = [int(x) if x != 'None' else None for x in line[2:]] + if start_sj_index != 'None': # not a single exon transcript + read_to_transcript[read] = (transcript, start_sj_index, start_sj_dist, end_sj_index, end_sj_dist) else: # create empty output files # FIXME: why doesn't this create all of them? @@ -820,258 +582,352 @@ def identify_good_match_to_annot(args, temp_prefix, chrom, annots, genome): return read_to_transcript -def _correct_and_group_read(read, read_to_annot_transcript, annots, junction_corrector, sj_to_ends): - """Correct a single read's splice junctions and add it to sj_to_ends groups.""" - if read.query_name in read_to_annot_transcript: - transcript, startindex, startdist, endindex, enddist = read_to_annot_transcript[read.query_name] - transcript, gene = transcript.split('_') - exons = annots.transcript_to_exons[(transcript, gene)] - juncs = [(exons[x].end, exons[x + 1].start) for x in range(len(exons) - 1)] - # ignore unspliced transcripts - if len(juncs) > 0: - newstart = juncs[startindex][0] - startdist - newend = juncs[endindex][1] + enddist - juncs = tuple([Junc(x[0], x[1]) for x in juncs[startindex:endindex + 1]]) - strand = '-' if read.is_reverse else '+' - corrected_read = ReadRec.from_junctions(read.reference_name, newstart, newend, - read.query_name, read.mapping_quality, - strand, juncs) - else: - corrected_read = read_correct_to_readrec(junction_corrector, read) - else: - corrected_read = read_correct_to_readrec(junction_corrector, read) - if corrected_read: - add_corrected_read_to_groups(corrected_read, sj_to_ends) - -def filter_correct_group_reads(args, temp_prefix, region, bam_file, read_to_annot_transcript, annots, - junction_corrector, *, sj_to_ends=None, allow_secondary=False): - """Filter reads, correct splice junctions, and group by junction chain.""" - if sj_to_ends is None: - sj_to_ends = {} - - for read in bam_file.fetch(region.name, region.start, region.end): - if should_process_read(read, region, args.quality, args.keep_sup, allow_secondary): - _correct_and_group_read(read, read_to_annot_transcript, annots, junction_corrector, sj_to_ends) - - return sj_to_ends - - -def filter_ends_allow_multiple(good_ends_with_sup_reads, sjc_support, max_ends): +def filter_ends_allow_multiple(isoforms, sjc_support, max_ends): """Allow multiple ends per junction chain. - Returns list of ReadEndInfo objects that meet support threshold.""" - best_ends = [] - - if good_ends_with_sup_reads[0].num_reads < sjc_support: + Returns list of Isoform objects that meet support threshold.""" + if isoforms[0].num_reads < sjc_support: # If top candidate doesn't meet threshold, merge all reads into it - best = good_ends_with_sup_reads[0] - all_reads = [] - for end_info in good_ends_with_sup_reads: - all_reads.extend(end_info.supporting_reads) - best.supporting_reads = all_reads - best_ends.append(best) + best = isoforms[0] + for iso in isoforms[1:]: + best.reads.extend(iso.reads) + return [best] else: # Filter to those meeting support threshold and limit to max_ends - filtered = [x for x in good_ends_with_sup_reads if x.num_reads >= sjc_support] + filtered = [x for x in isoforms if x.num_reads >= sjc_support] filtered = filtered[:max_ends] # select only top most supported ends - best_ends.extend(filtered) - - return best_ends + return filtered -def filter_ends_single_best(good_ends_with_sup_reads, no_redundant_mode): +def filter_ends_single_best(isoforms, no_redundant_mode): """Pick single best end from junction chain. - Returns list with single ReadEndInfo object.""" + Returns list with single Isoform object.""" # best_only uses the default sorting, doesn't require additional action if no_redundant_mode == 'longest': - good_ends_with_sup_reads.sort(reverse=True, key=lambda x: x.length) + isoforms.sort(reverse=True, key=lambda x: x.length) # Pick single best end and merge all reads into it - best = good_ends_with_sup_reads[0] - all_reads = [] - for end_info in good_ends_with_sup_reads: - all_reads.extend(end_info.supporting_reads) - best.supporting_reads = all_reads - + best = isoforms[0] + for iso in isoforms[1:]: + best.reads.extend(iso.reads) return [best] -def filter_ends_by_redundant_and_support(args, good_ends_with_sup_reads): - """Sort ends, then select best ones based on support and value of args.no_redundant. - good_ends_with_sup_reads is a list of ReadEndInfo objects.""" +def filter_ends_by_redundant_and_support(isoforms, sjc_support, se_support, no_redundant, max_ends): + """Sort ends, then select best ones based on support and value of args.no_redundant.""" # First by weighted score, then by length - good_ends_with_sup_reads.sort(key=lambda x: [x.weighted_score, x.length], - reverse=True) + if isoforms[0].juncs == (): + support = se_support + isoforms.sort(key=lambda x: [x.num_reads * x.genomic_length], reverse=True) + else: + support = sjc_support + isoforms.sort(key=lambda x: [x.num_reads, x.genomic_length], reverse=True) - junc_support = sum([x.num_reads for x in good_ends_with_sup_reads]) - if junc_support < args.sjc_support: + junc_support = sum([x.num_reads for x in isoforms]) + if junc_support < support: + logging.debug(f"isoform group dropped: insufficient support ({junc_support} < {support}): {isoforms[0].chrom}:{isoforms[0].start}-{isoforms[0].end}") return [] - if args.no_redundant == 'none': + if no_redundant == 'none': # Allow multiple ends per junction chain - return filter_ends_allow_multiple(good_ends_with_sup_reads, args.sjc_support, args.max_ends) + return filter_ends_allow_multiple(isoforms, support, max_ends) else: # Pick single best end - return filter_ends_single_best(good_ends_with_sup_reads, args.no_redundant) - - -def _write_unfiltered_ends(chrom, juncs, good_ends, fh): - for read_end_info in good_ends: - iso_readrec = ReadRec.from_junctions(chrom, read_end_info.start, read_end_info.end, - read_end_info.read_id, read_end_info.score, - read_end_info.strand, juncs) - fh.write('\t'.join(iso_readrec.get_bed_line()) + '\n') - -def _add_end_to_firstpass(chrom, juncs, read_end_info, firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE, iso_fh): - iso_readrec = ReadRec.from_junctions(chrom, read_end_info.start, read_end_info.end, - read_end_info.read_id, read_end_info.score, - read_end_info.strand, juncs) - firstpass_unfiltered[read_end_info.read_id] = iso_readrec - iso_fh.write('\t'.join(iso_readrec.get_bed_line()) + '\n') - if juncs == (): - firstpass_SE.add((iso_readrec.exons[0][0], iso_readrec.exons[0][1], iso_readrec.name)) - else: - for j in juncs: - if j not in firstpass_junc_to_name: - firstpass_junc_to_name[j] = set() - firstpass_junc_to_name[j].add(read_end_info.read_id) - firstpass_SE.update(iso_readrec.exons) - -def _process_junc_ends(args, chrom, juncs, good_ends, firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE, iso_fh): - if juncs == (): - best_ends = [x for x in good_ends if x.num_reads >= args.sjc_support] - else: - best_ends = filter_ends_by_redundant_and_support(args, good_ends) - for read_end_info in best_ends: - _add_end_to_firstpass(chrom, juncs, read_end_info, firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE, iso_fh) + return filter_ends_single_best(isoforms, no_redundant) + + +def _write_unfiltered_ends(isoforms, fh): + for iso_readrec in isoforms: + convert_to_bed12(iso_readrec).write(fh) -def _process_junc(args, chrom, juncs, ends, firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE, iso_fh, iso_unfilt_fh): - good_ends = collapse_end_groups(args.end_window, ends) - _write_unfiltered_ends(chrom, juncs, good_ends, iso_unfilt_fh) - _process_junc_ends(args, chrom, juncs, good_ends, firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE, iso_fh) +class CandidateIsoforms: + """Candidate isoforms before filtering, with junction and exon indices. -def process_juncs_to_firstpass_isos(args, temp_prefix, chrom, sj_to_ends, firstpass_SE): - firstpass_unfiltered, firstpass_junc_to_name = {}, {} + isoforms: dict of isoform_name -> Isoform + junc_to_names: dict of Junc -> set of isoform_names sharing that junction + exons: set of Exon (named exons for SE, all exons for spliced) + """ + def __init__(self): + self.isoforms = {} + self.junc_to_names = {} + self.exons = set() + + def add(self, isoform): + self.isoforms[isoform.name] = isoform + if isoform.juncs == (): + self.exons.add(Exon(isoform.start, isoform.end, isoform.name)) + else: + for j in isoform.juncs: + if j not in self.junc_to_names: + self.junc_to_names[j] = set() + self.junc_to_names[j].add(isoform.name) + self.exons.update(set(isoform.exons)) + + +def _filter_isos_by_redundant_and_support(args, isoforms, candidates, iso_fh): + # this assumes single exons are pre-grouped by overlap + # previously treated single exons separately due to them being in larger groups + filtered_isoforms = filter_ends_by_redundant_and_support(isoforms, args.sjc_support, args.se_support, args.no_redundant, args.max_ends) + for isoform in filtered_isoforms: + candidates.add(isoform) + convert_to_bed12(isoform).write(iso_fh) + +def _generate_candidate_isos(args, isoform, candidates, iso_fh, iso_unfilt_fh): + # NOTE: Harrison's TED code will be slotted in here to replace collapse_end_groups + these_firstpass = collapse_end_groups(args.end_window, isoform) + _write_unfiltered_ends(these_firstpass, iso_unfilt_fh) + _filter_isos_by_redundant_and_support(args, these_firstpass, candidates, iso_fh) + + +def correct_se_strand_polyA(read_group, se_support): + # strand correction for single exon genes based on location of polyA tail sequence + + # FIXME: shouldnt this check for poly(T) + left_polyA = [read.polyA[0] for read in read_group] + right_polyA = [read.polyA[1] for read in read_group] + num_reads = len(read_group) + + left_polyA_count = sum([1 for x in left_polyA if x > 0]) + right_polyA_count = sum([1 for x in right_polyA if x > 0]) + + left_polyA_frac = left_polyA_count / num_reads + right_polyA_frac = right_polyA_count / num_reads + + if abs(left_polyA_frac - right_polyA_frac) > MIN_POLYA_FRAC_DIFF_FOR_SE_STRANDING: + if max((left_polyA_count, right_polyA_count)) >= se_support: + if right_polyA_count > left_polyA_count: + return '+' + else: + return '-' + return None + +def _group_se_reads_by_overlap(reads): + """Group single-exon reads into clusters by coordinate overlap.""" + read_groups = [] + last_end = -1 + read_group = None + for r in sorted(reads, key=lambda x: (x.start, x.end)): + if r.start >= last_end: + if read_group is not None: + read_groups.append(read_group) + last_end = r.end + read_group = [] + if r.end > last_end: + last_end = r.end + read_group.append(r) + if read_group is not None: + read_groups.append(read_group) + return read_groups + +def group_se_by_overlap(chrom, isoform, se_support, trust_strand): + for read_group in _group_se_reads_by_overlap(isoform.reads): + if trust_strand: + # get most common read strand for group + read_strands = [x.strand for x in read_group] + new_strand = max(set(read_strands), key=read_strands.count) + else: + # correct based on polyA + new_strand = correct_se_strand_polyA(read_group, se_support) + # filter out single exon groups that fail stranding + if new_strand is None: + logging.debug(f"single-exon group dropped: strand could not be determined ({len(read_group)} reads): {chrom}:{read_group[0].start}-{read_group[-1].end}") + else: + new_key = (chrom, median([x.start for x in read_group]), median([x.end for x in read_group]), ()) + yield new_key, new_strand, read_group + +class IsoformOverlapGroups: + """Isoforms grouped by junction chain with overlap-clustered ends. + + Key: (chrom, median_start, median_end, juncs) where juncs is () for single-exon. + Value: Isoform. + + Strand is not part of the key. For spliced isoforms, strand is determined + during junction correction and stored on the Isoform. For single-exon + reads, strand cannot be determined from junctions, so overlapping reads are + grouped by coordinate overlap first, then strand is resolved per group by + majority vote (trust_strand) or polyA consensus. This means opposite-strand + single-exon reads at the same locus merge into one group; the minority + strand is discarded. + """ + def __init__(self): + self._groups = {} + + def add_spliced(self, chrom, juncs, isoform): + """Add a spliced isoform, keyed by chrom, median ends, and junction chain.""" + self._groups[(chrom, median(isoform.starts), median(isoform.ends), juncs)] = isoform + + def add_se_overlap_groups(self, chrom, isoform, se_support, trust_strand): + """Split single-exon reads into overlap groups and resolve strand.""" + for new_key, new_strand, read_group in group_se_by_overlap(chrom, isoform, se_support, trust_strand): + self._groups[new_key] = Isoform.regroup(isoform, newreads=read_group, newstrand=new_strand) + + def __iter__(self): + return iter(self._groups) + + def __getitem__(self, key): + return self._groups[key] + + def items(self): + return self._groups.items() + + +def group_by_overlap(sj_to_ends, se_support, trust_strand): + groups = IsoformOverlapGroups() + for (chrom, juncs), isoform in sj_to_ends.items(): + if len(juncs) > 0: + groups.add_spliced(chrom, juncs, isoform) + else: + groups.add_se_overlap_groups(chrom, isoform, se_support, trust_strand) + return groups + + +def process_juncs_to_firstpass_isos(args, temp_prefix, sj_to_ends, annots, region_chrom): + sjc_with_overlap_groups = group_by_overlap(sj_to_ends, args.se_support, args.trust_strand) + # FIXME everything below here requires confidence in transcript strand + build_genes(sjc_with_overlap_groups, annots, region_chrom, sjc_with_overlap_groups) + + candidates = CandidateIsoforms() with open(temp_prefix + '.firstpass.unfiltered.bed', 'w') as iso_fh, \ open(temp_prefix + '.firstpass.reallyunfiltered.bed', 'w') as iso_unfilt_fh: - for juncs, ends in sj_to_ends.items(): - _process_junc(args, chrom, juncs, ends, firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE, iso_fh, iso_unfilt_fh) - firstpass_SE = sorted(list(firstpass_SE)) - return firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE + for juncs, isoform in sjc_with_overlap_groups.items(): + _generate_candidate_isos(args, isoform, candidates, iso_fh, iso_unfilt_fh) + return candidates #### # single-exon transcript processing #### -def filter_single_exon_iso(args, grouped_iso, curr_group, firstpass_unfiltered): - # FIXME: make object: grouped_iso (32186479, 32188247, '99bfe5c4-0f3a-4f4d-b5c9-bac459c45e5c') - # FIXME: curr_group is a list of these - iso_readrec = firstpass_unfiltered[grouped_iso[2]] - # FIXME: what does 'comp_' mean? +def filter_single_exon_iso(args, single_exon, curr_group, all_isoforms): + """Check if a single-exon isoform passes filtering against its overlap group.""" + isoform = all_isoforms[single_exon.name] expression_comp_with_superset = [] is_contained = False - for comp_iso in curr_group: - if comp_iso != grouped_iso: - if ((comp_iso[0] - SINGLE_EXON_OVERLAP_MARGIN) <= grouped_iso[0] and - grouped_iso[1] <= (comp_iso[1] + SINGLE_EXON_OVERLAP_MARGIN)): - if len(comp_iso) == 2 or args.filter == 'nosubset': # is exon from spliced transcript + for exon in curr_group: + if exon != single_exon: + if ((exon.start - SINGLE_EXON_OVERLAP_MARGIN) <= single_exon.start and + single_exon.end <= (exon.end + SINGLE_EXON_OVERLAP_MARGIN)): + if exon.name != '' or args.filter == 'nosubset': # is exon from spliced transcript is_contained = True break # filter out else: # is other single exon - check relative expression - other_score = firstpass_unfiltered[comp_iso[2]].score - score = iso_readrec.score - if score >= args.sjc_support and other_score * SINGLE_EXON_EXPRESSION_RATIO < score: + other_score = all_isoforms[exon.name].score + if isoform.score >= args.sjc_support and other_score * SINGLE_EXON_EXPRESSION_RATIO < isoform.score: expression_comp_with_superset.append(True) else: expression_comp_with_superset.append(False) return not is_contained and all(expression_comp_with_superset) -def filter_single_exon_group(args, curr_group, firstpass_unfiltered, firstpass): - for grouped_iso in curr_group: - if len(grouped_iso) == 3: # is single exon with name - if filter_single_exon_iso(args, grouped_iso, curr_group, firstpass_unfiltered): - firstpass[grouped_iso[2]] = firstpass_unfiltered[grouped_iso[2]] +def filter_single_exon_group(args, curr_group, all_isoforms, firstpass): + """Filter single-exon isoforms in an overlap group against spliced exons.""" + for exon in curr_group: + if exon.name != '': # is single exon with name + if filter_single_exon_iso(args, exon, curr_group, all_isoforms): + firstpass[exon.name] = all_isoforms[exon.name] + else: + logging.debug(f"single-exon isoform dropped: contained or low expression: {exon.name} ({all_isoforms[exon.name].num_reads} reads)") return firstpass -def filter_all_single_exon(args, firstpass_SE, firstpass_unfiltered, firstpass): - # group_start = 0 +def filter_all_single_exon(args, sorted_exons, all_isoforms, firstpass): + """Group exons by overlap and filter single-exon isoforms.""" last_end = 0 curr_group = [] - for iso_info in firstpass_SE: - start, end = iso_info[0], iso_info[1] - if start < last_end: - curr_group.append(iso_info) + for exon in sorted_exons: + if exon.start < last_end: + curr_group.append(exon) else: if len(curr_group) > 0: - firstpass = filter_single_exon_group(args, curr_group, firstpass_unfiltered, firstpass) - curr_group = [iso_info] - # group_start = start - if end > last_end: - last_end = end + firstpass = filter_single_exon_group(args, curr_group, all_isoforms, firstpass) + curr_group = [exon] + if exon.end > last_end: + last_end = exon.end if len(curr_group) > 0: - firstpass = filter_single_exon_group(args, curr_group, firstpass_unfiltered, firstpass) + firstpass = filter_single_exon_group(args, curr_group, all_isoforms, firstpass) return firstpass -def filter_firstpass_isos(args, firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE, annots, - sup_annot_transcript_to_juncs): - # FIXME: firstpass_unfiltered is a dict of uuid to ReadRec +def filter_firstpass_isos(args, candidates, annots, sup_annot_transcript_to_juncs): + """Filter candidate isoforms by subset/support criteria. + Returns (firstpass dict, iso_to_unique_bound dict).""" iso_to_unique_bound = {} if args.filter == 'ginormous': - firstpass = firstpass_unfiltered + firstpass = dict(candidates.isoforms) else: firstpass = {} - for iso_name in firstpass_unfiltered: - iso_readrec = firstpass_unfiltered[iso_name] - if iso_readrec.juncs != (): + for iso_name, isoform in candidates.isoforms.items(): + if isoform.juncs != (): if args.filter == 'comprehensive': - firstpass[iso_name] = iso_readrec + firstpass[iso_name] = isoform else: - assert isinstance(iso_readrec.exons[0], Exon) # FIXME tmp debugging - is_not_subset, unique_seq = filter_spliced_iso(args.filter, args.sjc_support, iso_readrec.juncs, iso_readrec.exons, - iso_readrec.name, iso_readrec.score, annots, - firstpass_junc_to_name, firstpass_unfiltered, - sup_annot_transcript_to_juncs, iso_readrec.strand) - if is_not_subset: - firstpass[iso_name] = iso_readrec + assert isinstance(isoform.exons[0], Exon) # FIXME tmp debugging + is_not_subset, unique_seq = filter_spliced_iso(args.filter, args.sjc_support, isoform.juncs, isoform.exons, + iso_name, isoform.num_reads, annots, + candidates.junc_to_names, candidates.isoforms, + sup_annot_transcript_to_juncs, isoform.strand) + if not is_not_subset: + logging.debug(f"isoform dropped: subset of another isoform: {iso_name} ({isoform.num_reads} reads)") + else: + firstpass[iso_name] = isoform if len(unique_seq) > 0: iso_to_unique_bound[iso_name] = ','.join(unique_seq) # HANDLE SINGLE EXONS SEPARATELY - group first - one traversal of list - firstpass = filter_all_single_exon(args, firstpass_SE, firstpass_unfiltered, firstpass) + firstpass = filter_all_single_exon(args, sorted(candidates.exons), candidates.isoforms, firstpass) return firstpass, iso_to_unique_bound +def get_longest_junc_sets_to_genes(gene_to_juncs, annots): + longest_junc_sets_to_genes = {} + for g1, sjc1 in gene_to_juncs: + is_subset = False + for g2, sjc2 in gene_to_juncs: + if g1 != g2 and len(sjc1) < len(sjc2) and len(sjc1 & sjc2) > 0: + is_subset = True + break + if not is_subset: + if sjc1 not in longest_junc_sets_to_genes: + longest_junc_sets_to_genes[sjc1] = [] + longest_junc_sets_to_genes[sjc1].append((len(annots.gene_to_annot_juncs[g1]), g1)) + return longest_junc_sets_to_genes def get_genes_with_shared_juncs(juncs, annots): - # FIXME: what does this actually return? - gene_hits = {} - if juncs != (): - for j in juncs: - if j in annots.junc_to_gene: - for transcript_id, gene_id in annots.junc_to_gene[j]: - if gene_id not in gene_hits: - gene_hits[gene_id] = [0, -1 * len(annots.gene_to_annot_juncs[gene_id])] - gene_hits[gene_id][0] += 1 - return gene_hits - - -def get_single_exon_gene_overlaps(iso_readrec, annots): + # Go through junctions, get genes annotated as assigned to junctions + # Assemble gene to junction code + # check junction sets against each other. If genes share junctions, pick the gene[s] with the most junctions + # if genes share all junctions, pick the shortest gene + # if there are multiple unique sets of junctions assigned to a gene, return list of genes + gene_to_juncs = {} + # get gene length (total number of junctions): len(annots.gene_to_annot_juncs[gene_id]) + for j in juncs: + if j in annots.junc_to_gene: + for transcript_id, gene_id in annots.junc_to_gene[j]: + if gene_id not in gene_to_juncs: + gene_to_juncs[gene_id] = set() + gene_to_juncs[gene_id].add(j) + gene_to_juncs = [(k, frozenset(v)) for k, v in gene_to_juncs.items()] + longest_junc_sets_to_genes = get_longest_junc_sets_to_genes(gene_to_juncs, annots) + final_genes = [] + for sjc in longest_junc_sets_to_genes: + final_genes.append(sorted(longest_junc_sets_to_genes[sjc], reverse=True)[0][1]) + final_genes.sort() + return tuple(final_genes) + + +def get_single_exon_gene_overlaps(strand, iso_readrec, annots): gene_hits = {} exon = iso_readrec.exons[0] - index = binary_search(exon, annots.all_annot_SE) + index = binary_search(exon, annots.all_annot_SE[strand]) # FIXME: how does this ever work? all_annot_SE is [(start, end, strand, gene_id), ...] - for annot_exon_info in annots.all_annot_SE[index - ANNOT_SE_SEARCH_WINDOW:index + ANNOT_SE_SEARCH_WINDOW]: + for annot_exon_info in annots.all_annot_SE[strand][index - ANNOT_SE_SEARCH_WINDOW:index + ANNOT_SE_SEARCH_WINDOW]: # FIXME: make overlap a function - overlap = min(exon.end, annot_exon_info[1]) - max(exon.start, annot_exon_info[0]) + overlap = min(exon.end, annot_exon_info.end) - max(exon.start, annot_exon_info.start) if overlap > 0: # base coverage of long-read isoform by the annotated isoform frac_of_iso = float(overlap) / (exon.end - exon.start) # base coverage of the annotated isoform by the long-read isoform - frac_of_annot = float(overlap) / (annot_exon_info[1] - annot_exon_info[0]) + frac_of_annot = float(overlap) / (annot_exon_info.end - annot_exon_info.start) if frac_of_iso > MIN_ISOFORM_OVERLAP_FRAC and frac_of_annot > MIN_ANNOT_OVERLAP_FRAC: - if annot_exon_info[3] not in gene_hits or frac_of_iso > gene_hits[annot_exon_info[3]][0]: - gene_hits[annot_exon_info[3]] = [frac_of_iso, frac_of_annot] + if annot_exon_info.name not in gene_hits or frac_of_iso > gene_hits[annot_exon_info.name][0]: + gene_hits[annot_exon_info.name] = [frac_of_iso, frac_of_annot] return gene_hits def get_spliced_exon_overlaps(strand, exons, annots): @@ -1080,13 +936,13 @@ def get_spliced_exon_overlaps(strand, exons, annots): annot_exons = sorted(list(annots.spliced_exons[strand][annot_gene])) # check if there is overlap in the genes # FIXME: not clear how this checks for overlap - if (min((annot_exons[-1][1], exons[-1][1])) > max((annot_exons[0][0], exons[0][0]))): + if (min((annot_exons[-1].end, exons[-1].end)) > max((annot_exons[0].start, exons[0].start))): covered_pos = set() - for s, e in exons: - for ast, ae in annot_exons: - for p in range(max((ast, s)), min((ae, e))): + for ex in exons: + for aex in annot_exons: + for p in range(max((aex.start, ex.start)), min((aex.end, ex.end))): covered_pos.add(p) - if len(covered_pos) > sum([x[1] - x[0] for x in exons]) * 0.5: + if len(covered_pos) > sum([x.end - x.start for x in exons]) * 0.5: gene_hits.append([len(covered_pos), annot_gene, strand]) return gene_hits @@ -1099,111 +955,127 @@ def _get_transcript_gene_from_annot(iso_readrec, annots, annot_name_to_used_coun transcript_id = transcript_id + '-endvar' + str(annot_name_to_used_counts[transcript_id]) else: annot_name_to_used_counts[transcript_id] = 1 - return transcript_id, gene_id + return transcript_id, (gene_id, ) else: return None, None def _find_gene_id_by_overlap(iso_readrec, annots): """Find gene_id for an isoform without a matching junction chain, using junction or exon overlap.""" + # this all requires that we already trust the strand of the transcript + # returns tuple of matching genes, will go into ref_gene_id field if iso_readrec.juncs != (): gene_hits = get_genes_with_shared_juncs(iso_readrec.juncs, annots) + if gene_hits: + return gene_hits + else: + gene_hits = get_single_exon_gene_overlaps(iso_readrec.strand, iso_readrec, annots) + if gene_hits: + return (sorted(gene_hits.items(), key=lambda x: x[1], reverse=True)[0][0], ) + # if no gene from above, look for exon overlap + if iso_readrec.strand != 'ambig': + gene_hits = get_spliced_exon_overlaps(iso_readrec.strand, iso_readrec.exons, annots) else: - gene_hits = get_single_exon_gene_overlaps(iso_readrec, annots) + gene_hits = get_spliced_exon_overlaps(iso_readrec.strand, iso_readrec.exons, annots) if gene_hits: - return sorted(gene_hits.items(), key=lambda x: x[1], reverse=True)[0][0] + gene_hits.sort(reverse=True) + if iso_readrec.strand == 'ambig': + iso_readrec.strand = gene_hits[0][2] + return (gene_hits[0][1], ) else: - # look for exon overlap - if iso_readrec.strand != 'ambig': - gene_hits = get_spliced_exon_overlaps(iso_readrec.strand, iso_readrec.exons, annots) - else: - gene_hits = (get_spliced_exon_overlaps('+', iso_readrec.exons, annots) + - get_spliced_exon_overlaps('-', iso_readrec.exons, annots)) - if gene_hits: - gene_hits.sort(reverse=True) - if iso_readrec.strand == 'ambig': - iso_readrec.strand = gene_hits[0][2] - return gene_hits[0][1] - else: - return None + return None -def get_gene_name_firstpass(iso_name, iso_readrec, annots, annot_name_to_used_counts, novel_gene_isos_to_group, iso_to_info): - transcript_id, gene_id = _get_transcript_gene_from_annot(iso_readrec, annots, annot_name_to_used_counts) +def get_gene_name_firstpass(isoform, annots, annot_name_to_used_counts): + transcript_id, gene_id = _get_transcript_gene_from_annot(isoform, annots, annot_name_to_used_counts) if transcript_id is None: - transcript_id = iso_readrec.name - gene_id = _find_gene_id_by_overlap(iso_readrec, annots) - if gene_id is not None: - strand = annots.gene_to_strand[gene_id] - else: - strand = iso_readrec.strand - novel_gene_isos_to_group[strand].append((iso_readrec.start, iso_readrec.end, iso_name)) - iso_info = IsoformInfo(transcript_id, strand, iso_readrec.exons) - iso_info.gene_id = gene_id - iso_to_info[iso_name] = iso_info + gene_id = _find_gene_id_by_overlap(isoform, annots) + return gene_id, transcript_id + +def add_gene_isoform(genes, gene_id, isoform, strand): + hashed_id = int(hashlib.md5(','.join(gene_id).encode('utf-8')).hexdigest(), 16) + if hashed_id not in genes: + genes[hashed_id] = Gene(hashed_id, gene_id, isoform.chrom, strand) + # this command also sets the gene_id in the isoform object + genes[hashed_id].add_isoform(isoform) -def get_gene_names_firstpass(firstpass, annots): + +def build_genes(firstpass, annots, region_chrom, sjc_with_overlap_groups): + """Assign gene names to firstpass isoforms, building Gene objects. + + Returns (genes, novel_gene_isos_to_group) where: + - genes: dict of gene_id -> Gene for isoforms matched to known genes + - novel_gene_isos_to_group: isoforms needing novel gene assignment + """ annot_name_to_used_counts = {} - iso_to_info = {} + genes = {} novel_gene_isos_to_group = {'+': [], '-': []} - for iso_name in firstpass: - get_gene_name_firstpass(iso_name, firstpass[iso_name], annots, annot_name_to_used_counts, - novel_gene_isos_to_group, iso_to_info) - return novel_gene_isos_to_group, iso_to_info + for iso_key in firstpass: + isoform = firstpass[iso_key] + gene_id, isoform_id = get_gene_name_firstpass(isoform, annots, annot_name_to_used_counts) + isoform.ref_transcript_id = isoform_id + if gene_id is not None: + # removing this strand correction breaks the unusual junction (due to underlying variant?) test + # currently just using first gene in list, ideally would use the most 5' annotated gene for this strand correction, if we want to do strand correction at all + isoform.strand = annots.gene_to_strand[gene_id[0]] + add_gene_isoform(genes, gene_id, isoform, annots.gene_to_strand[gene_id[0]]) + else: + novel_gene_isos_to_group[isoform.strand].append((isoform.start, isoform.end, iso_key)) + for strand in novel_gene_isos_to_group: + generate_non_gene_iso_groups_strand(genes, novel_gene_isos_to_group, strand, region_chrom, sjc_with_overlap_groups) -def generate_non_gene_iso_groups_strand(novel_gene_isos_to_group, strand, chrom, iso_to_info): + return genes + + +def _assign_novel_gene_group(genes, chrom, strand, group_start, last_end, curr_group, firstpass): + """Create a Gene for a group of novel overlapping isoforms.""" + gene_id = f'{chrom}:{group_start}-{last_end}:{strand}' + for s, e, n in curr_group: + add_gene_isoform(genes, gene_id, firstpass[n], strand) + +def generate_non_gene_iso_groups_strand(genes, novel_gene_isos_to_group, strand, chrom, firstpass): + """Group novel isoforms by coordinate overlap and create Gene objects.""" transcripts_to_group = sorted(novel_gene_isos_to_group[strand]) last_end = 0 group_start = 0 curr_group = [] - for start, end, t_name in transcripts_to_group: + for start, end, iso_name in transcripts_to_group: if start < last_end: - curr_group.append((start, end, t_name)) + curr_group.append((start, end, iso_name)) else: if len(curr_group) > 0: - group_name = f'{chrom}:{group_start}-{last_end}:{strand}' - for s, e, t in curr_group: - iso_to_info[t].set_gene_id(group_name) - curr_group = [(start, end, t_name)] + _assign_novel_gene_group(genes, chrom, strand, group_start, last_end, curr_group, firstpass) + curr_group = [(start, end, iso_name)] group_start = start if end > last_end: last_end = end if len(curr_group) > 0: - group_name = f'{chrom}:{group_start}-{last_end}:{strand}' - for s, e, t in curr_group: - iso_to_info[t].set_gene_id(group_name) + _assign_novel_gene_group(genes, chrom, strand, group_start, last_end, curr_group, firstpass) -def write_first_pass_isoforms(iso_to_info, iso_name, normalize_ends, iso_readrec, max_terminal_exons_ends, add_length_at_ends, unique_bound, unique_fh, iso_fh, seq_fh, genome): - iso_info = iso_to_info[iso_name] +def write_first_pass_isoforms(iso_name, normalize_ends, isoform, max_terminal_exons_ends, add_length_at_ends, unique_bound, unique_fh, iso_fh, seq_fh, genome): # FIXME: do normalization outside of write function - if normalize_ends and len(iso_info.exons) > 1: # don't normalize ends for single exon transcripts - normalize_gene_terminal_exons(max_terminal_exons_ends, iso_info.gene_id, iso_info.strand, iso_info.exons, + if normalize_ends and len(isoform.exons) > 1: # don't normalize ends for single exon transcripts + normalize_gene_terminal_exons(max_terminal_exons_ends, isoform.gene_id, isoform.strand, isoform.exons, add_length_at_ends=add_length_at_ends) - iso_readrec.reset_from_exons(iso_info.exons) - iso_readrec.strand = iso_info.strand - iso_readrec.name = iso_info.transcript_id + '_' + iso_info.gene_id + isoform.reset_from_exons(isoform.exons) + # if isoform.transcript_id is None: + # isoform.transcript_id = isoform.name + # isoform.name = isoform.transcript_id + '_' + isoform.gene_id if unique_bound and iso_name in unique_bound: - unique_fh.write(iso_readrec.name + '\t' + unique_bound[iso_name] + '\n') - - iso_fh.write('\t'.join(iso_readrec.get_bed_line()) + '\n') - seq_fh.write('>' + iso_readrec.name + '\n') - seq_fh.write(iso_readrec.get_sequence(genome) + '\n') + unique_fh.write(isoform.name + '\t' + unique_bound[iso_name] + '\n') -def get_gene_names_and_write_firstpass(temp_prefix, chrom, firstpass, annots, genome, *, - normalize_ends=False, add_length_at_ends=0, unique_bound=None): - # THIS IS WHERE WE CAN GET GENES AND ADJUST NAMES + convert_to_bed12(isoform).write(iso_fh) + seq_fh.write('>' + isoform.name + '\n') + seq_fh.write(isoform.get_sequence(genome) + '\n') - novel_gene_isos_to_group, iso_to_info = get_gene_names_firstpass(firstpass, annots) - - # generating non-gene iso groups - for strand in novel_gene_isos_to_group: - generate_non_gene_iso_groups_strand(novel_gene_isos_to_group, strand, chrom, iso_to_info) +def write_firstpass(temp_prefix, chrom, firstpass, annots, genome, *, + normalize_ends=False, add_length_at_ends=0, unique_bound=None): # generating standardized set of ends for gene if normalize_ends: - max_terminal_exons_ends = max_terminal_exons_ends_from_iso_infos(iso_to_info) + max_terminal_exons_ends = max_terminal_exons_ends_from_iso_infos(firstpass) else: # FIXME: passing None is move obvious to flow control, # although making write_first_pass_isoforms less monolithic @@ -1213,208 +1085,14 @@ def get_gene_names_and_write_firstpass(temp_prefix, chrom, firstpass, annots, ge with (open(temp_prefix + '.firstpass.bed', 'w') as iso_fh, open(temp_prefix + '.firstpass.fa', 'w') as seq_fh, open(temp_prefix + '.firstpass.uniquebound.txt', 'w') as unique_fh): - for iso_name in iso_to_info: - write_first_pass_isoforms(iso_to_info, iso_name, normalize_ends, firstpass[iso_name], max_terminal_exons_ends, + for iso_name in firstpass: + write_first_pass_isoforms(iso_name, normalize_ends, firstpass[iso_name], max_terminal_exons_ends, add_length_at_ends, unique_bound, unique_fh, iso_fh, seq_fh, genome) -def decode_name_to_iso_gene(name, iso_src): - # FIXME: parsing is evil - iso_id = '_'.join(name.split('_')[:-1]) - gene_id = name.split('_')[-1] - return IsoIdSrc(iso_id, iso_src), gene_id - - -def read_ends_file(args, ends_file): - # FIXME: make ends file a TSV and use TSVReader - iso_id_to_ends = {} - for line in open(ends_file): - read_name, transcript_id, start, end = line.rstrip().split('\t') - start, end = int(start), int(end) - if transcript_id not in iso_id_to_ends: - iso_id_to_ends[transcript_id] = [] - iso_id_to_ends[transcript_id].append(ReadRec(None, start, end, None, None, None, ())) - for iso_id in iso_id_to_ends: - # (weighted_score, start1, end1, strand1, name1) - new_ends = get_best_ends(iso_id_to_ends[iso_id], args.end_window)[1:3] - iso_id_to_ends[iso_id] = new_ends - return iso_id_to_ends - -def read_map_file(map_file, iso_src): - og_iso_to_reads = {} - for line in open(map_file): - name, reads = line.rstrip().split('\t', 1) - reads = reads.split(',') - iso_id_src, gene_id = decode_name_to_iso_gene(name, iso_src) - og_iso_to_reads[iso_id_src] = reads - return og_iso_to_reads - -def have_sufficient_support(args, iso_id_src, num_exons, og_iso_to_reads): - return ((iso_id_src in og_iso_to_reads) and - (((len(og_iso_to_reads[iso_id_src]) >= args.se_support) and (num_exons == 1)) or - ((len(og_iso_to_reads[iso_id_src]) >= args.sjc_support) and (num_exons > 1)))) - -def process_detected_iso(args, iso_bed, gene_id, iso_id_src, og_iso_to_reads, ends_file, iso_to_ends, gene_to_juncs_to_ends): - start, end = iso_bed.chromStart, iso_bed.chromEnd - juncs = bed_to_junctions(iso_bed) - - if args.end_norm_dist and ends_file and iso_bed.name in iso_to_ends: - start, end = iso_to_ends[iso_bed.name] - elif args.end_norm_dist and not ends_file and len(juncs) > 0: - start += args.end_norm_dist - end -= args.end_norm_dist - - if gene_id not in gene_to_juncs_to_ends: - gene_to_juncs_to_ends[gene_id] = GeneIsoformData(gene_id) - end_info = EndInfo(start, end, iso_id_src, og_iso_to_reads[iso_id_src]) - gene_to_juncs_to_ends[gene_id].add_isoform(iso_bed.chrom, iso_bed.strand, tuple(juncs), end_info) - -def process_detected_isos(args, map_file, bed_file, iso_src, ends_file, gene_to_juncs_to_ends): - # FIXME: what is "og" mean? "ogle"? - og_iso_to_reads = read_map_file(map_file, iso_src) - - if args.end_norm_dist and ends_file: - iso_to_ends = read_ends_file(args, ends_file) - else: - iso_to_ends = {} - - for iso_bed in BedReader(bed_file): - iso_id_src, gene_id = decode_name_to_iso_gene(iso_bed.name, iso_src) - if have_sufficient_support(args, iso_id_src, iso_bed.blockCount, og_iso_to_reads): - process_detected_iso(args, iso_bed, gene_id, iso_id_src, og_iso_to_reads, ends_file, iso_to_ends, gene_to_juncs_to_ends) #### # results output #### -def get_bed_gtf_from_info(end_info, chrom, strand, juncs, gene_id, genome): - # FIXME: what is end info?? - # build gtf, bed, fasta data - start = end_info.start - end = end_info.end - iso_id_src = end_info.iso_id_src - read_names = end_info.read_names - score = min(len(read_names), 1000) - exon_starts, exon_sizes = get_bed_exons_from_juncs(juncs, start, end) - # FIXME: duplicate code to build BED record - bed_line = [chrom, start, end, iso_id_src.id + '_' + gene_id, score, strand, start, end, - get_rgb(strand, len(juncs)), len(exon_starts), ','.join([str(x) for x in exon_sizes]), - ','.join([str(x) for x in exon_starts])] - exons = [Exon(start + exon_starts[i], start + exon_starts[i] + exon_sizes[i]) - for i in range(len(exon_starts))] - trans_seq = get_sequence_for_exons(genome, chrom, strand, exons) - if strand == '-': - exons.reverse() - - # Create GtfTranscript with exons - gtf_transcript = GtfTranscript(chrom, 'FLAIR', 'transcript', start, end, score, strand, '.', - gene_id=gene_id, transcript_id=iso_id_src.id) - for i, exon in enumerate(exons, start=1): - gtf_exon = GtfExon(chrom, 'FLAIR', 'exon', exon.start, exon.end, score, strand, '.', - gene_id=gene_id, transcript_id=iso_id_src.id, exon_number=i) - gtf_transcript.add_exon(gtf_exon) - - return '\t'.join([str(x) for x in bed_line]) + '\n', gtf_transcript, trans_seq - - -def combine_annot_w_novel_junc_chain(gene_to_juncs_to_ends, gene_id, chrom, strand, juncs, args): - ends_list = gene_to_juncs_to_ends[gene_id].get_isoforms(chrom, strand, juncs) - ends_list = collapse_end_groups(args.end_window, ends_list, False) - # FIXME could try accounting for all reads assigned to isoforms - assign them to closest ends - # not sure how much of an issue this is - if juncs != (): - if args.no_redundant == 'best_only': - ends_list.sort(key=lambda x: [len(x.read_names), x.end - x.start], reverse=True) - ends_list = [ends_list[0]] - elif args.no_redundant == 'longest': - ends_list.sort(key=lambda x: [x.end - x.start], reverse=True) - ends_list = [ends_list[0]] - else: - ends_list.sort(key=lambda x: [len(x.read_names), x.end - x.start], reverse=True) - ends_list = ends_list[:args.max_ends] - gene_to_juncs_to_ends[gene_id].set_isoforms(chrom, strand, juncs, ends_list) - - -def combine_annot_w_novel(args, gene_to_juncs_to_ends): - for gene_id in gene_to_juncs_to_ends: - for junc_chain in gene_to_juncs_to_ends[gene_id].junction_chains(): - combine_annot_w_novel_junc_chain(gene_to_juncs_to_ends, gene_id, junc_chain.chrom, junc_chain.strand, junc_chain.juncs, args) - -def write_iso_seq_map(iso_info, name_to_used_counts, chrom, strand, juncs, gene_id, genome, iso_fh, t_starts, t_ends, gtf_transcripts, map_fh, - read_to_final_transcript, counts_fh, seq_fh): - iso_id_src = iso_info.iso_id_src - iso_id = iso_id_src.id.split('-endvar')[0] # FIXME what is this all about? - if iso_id in name_to_used_counts: - name_to_used_counts[iso_id] += 1 - iso_id = iso_id + '-endvar' + str(name_to_used_counts[iso_id]) - else: - name_to_used_counts[iso_id] = 1 - iso_info.iso_id_src = IsoIdSrc(iso_id, iso_id_src.src) - bed_line, gtf_data, tseq = get_bed_gtf_from_info(iso_info, chrom, strand, juncs, gene_id, genome) - iso_fh.write(bed_line) - t_starts.append(iso_info.start) - t_ends.append(iso_info.end) - gtf_transcripts.append(gtf_data) - map_fh.write(iso_id + '_' + gene_id + '\t' + ','.join(iso_info.read_names) + '\n') - for r in iso_info.read_names: - read_to_final_transcript[r] = (iso_id + '_' + gene_id, chrom, strand) - counts_fh.write(iso_id + '_' + gene_id + '\t' + str(len(iso_info.read_names)) + '\n') - seq_fh.write('>' + iso_id + '_' + gene_id + '\n') - seq_fh.write(tseq + '\n') - -def calculate_gene_total_reads(gene_isoform_data): - """Calculate total read support across all isoforms in a gene.""" - gene_tot = 0 - for junc_chain in gene_isoform_data.junction_chains(): - for iso_info in gene_isoform_data.get_isoforms(junc_chain.chrom, junc_chain.strand, junc_chain.juncs): - gene_tot += len(iso_info.read_names) - return gene_tot - -def write_gene_isoforms(gene_isoform_data, gene_id, gene_tot, args, genome, iso_fh, map_fh, read_to_final_transcript, counts_fh, seq_fh): - """Write isoform data (BED, sequences, maps) for isoforms meeting the threshold. - Returns tuple of (gtf_transcripts, t_starts, t_ends) for GTF writing.""" - gtf_transcripts, t_starts, t_ends = [], [], [] - - for junc_chain in gene_isoform_data.junction_chains(): - ends_list = gene_isoform_data.get_isoforms(junc_chain.chrom, junc_chain.strand, junc_chain.juncs) - - name_to_used_counts = {} - for iso_info in ends_list: - if len(iso_info.read_names) / gene_tot >= args.frac_support: - write_iso_seq_map(iso_info, name_to_used_counts, junc_chain.chrom, junc_chain.strand, junc_chain.juncs, - gene_id, genome, iso_fh, t_starts, t_ends, gtf_transcripts, map_fh, - read_to_final_transcript, counts_fh, seq_fh) - - return gtf_transcripts, t_starts, t_ends - -def write_gene_gtf(gtf_transcripts, t_starts, t_ends, gene_id, gtf_fh): - """Write GTF records for a gene (gene record, transcript records, and exon records).""" - first_transcript = gtf_transcripts[0] - gtf_write_row(gtf_fh, first_transcript.chrom, 'FLAIR', 'gene', min(t_starts), max(t_ends), '.', - first_transcript.strand, '.', gene_id=gene_id) - - # Write transcript and exon records - for gtf_transcript in gtf_transcripts: - # Write transcript record - print(gtf_transcript, file=gtf_fh) - - # Write exon records - for gtf_exon in gtf_transcript.exons: - print(gtf_exon, file=gtf_fh) - -def write_gene_output(gene_to_juncs_to_ends, gene_id, args, genome, iso_fh, map_fh, read_to_final_transcript, counts_fh, seq_fh, gtf_fh): - """Write all output files for a single gene (isoforms, sequences, maps, and GTF).""" - gene_isoform_data = gene_to_juncs_to_ends[gene_id] - - # Calculate total read support for the gene - gene_tot = calculate_gene_total_reads(gene_isoform_data) - - # Write isoform data and collect GTF information - gtf_transcripts, t_starts, t_ends = write_gene_isoforms( - gene_isoform_data, gene_id, gene_tot, args, genome, - iso_fh, map_fh, read_to_final_transcript, counts_fh, seq_fh) - - # Write GTF records - if gtf_transcripts: - write_gene_gtf(gtf_transcripts, t_starts, t_ends, gene_id, gtf_fh) def get_transcirpts_to_reads(temp_prefix, suffix): transcript_to_reads = {} @@ -1432,33 +1110,97 @@ def write_transcript_ends_bed(args, temp_prefix, suffix, read_to_final_transcrip for r, start, end in transcript_to_reads[t]: if r in read_to_final_transcript: t_name, chrom, strand = read_to_final_transcript[r] - ends_fh.write('\t'.join([chrom, start, end, t_name + '|' + r, '.', strand]) + '\n') + Bed(chrom, int(start), int(end), name=t_name + '|' + r, + score=0, strand=strand).write(ends_fh) def write_transcript_ends_beds(args, temp_prefix, read_to_final_transcript, ends_fh): # FIXME: these are not real TSVs for suffix in ['.matchannot.ends.tsv']: write_transcript_ends_bed(args, temp_prefix, suffix, read_to_final_transcript, ends_fh) -def predict_productivity(out_prefix, genome_fasta, gtf): - cmd = ('predictProductivity', - '-i', out_prefix + '.isoforms.bed', - '-o', out_prefix + '.isoforms.CDS', - '--gtf', gtf, - '--genome_fasta', genome_fasta, - '--longestORF') - pipettor.run(cmd) - -def _iso_passes_support_filter(args, iso, num_exons, iso_to_counts, gene_to_tot): +def _iso_passes_support_filter(args, iso, gene, num_exons, iso_to_counts, gene_to_tot): if iso not in iso_to_counts: - return False + return False, 0 else: - count = iso_to_counts[iso] - min_support = args.sjc_support if num_exons > 1 else args.se_support - return (count >= min_support) and (count / gene_to_tot[iso.split('_')[-1]]) >= args.frac_support - - -def _run_region(*, partition, gtf_data, intron_support, args): + count = iso_to_counts[iso][0] + if num_exons > 1: + return (count >= args.sjc_support) and (count / gene_to_tot[gene][0]) >= args.frac_support, (count / gene_to_tot[gene][0]) + else: + return (count >= args.se_support) and (count / gene_to_tot[gene][1]) >= args.frac_support, (count / gene_to_tot[gene][1]) + +def generate_full_set_empty_intermediate_files(file_prefix, end_norm_dist, no_align_to_annot): + suffixes = ['.firstpass.reallyunfiltered.bed', '.firstpass.unfiltered.bed', '.firstpass.bed', '.isoforms.bed', + '.isoform.read.map.txt', '.isoforms.gtf', '.isoforms.fa', '.isoform.counts.txt'] + if end_norm_dist: + suffixes.extend(['.read_ends.bed', '.matchannot.ends.tsv']) + if not no_align_to_annot: + suffixes.extend(['.matchannot.counts.txt', '.matchannot.read.map.txt']) + generate_empty_intermediate_files(file_prefix, suffixes) + +def generate_empty_intermediate_files(file_prefix, suffixes): + for s in suffixes: + out = open(file_prefix + s, 'w') + out.close() + +def calc_final_iso_support(read_ends_file, final_transcript_objs, trust_ends): + iso_to_counts = {} + gene_to_tot = {} + # FIXME: with new count sam transcripts logic, there are now no longer non-full-length transcripts in the isoform.ends.tsv + for line in open(read_ends_file): + line = line.rstrip().split('\t') + read, transcript = line[:2] + start_sj_index, start_sj_dist, start_tend_dist, end_sj_index, end_sj_dist, end_tend_dist = [int(x) if x != 'None' else None for x in line[2:]] + gene = final_transcript_objs[transcript].gene_id + if gene not in gene_to_tot: + # total spliced full-length, total full-length spliced + unspliced, total all + gene_to_tot[gene] = [0, 0, 0] + if transcript not in iso_to_counts: + iso_to_counts[transcript] = [0, 0] + if start_sj_index is None: # single exon transcript + if trust_ends: + if start_tend_dist <= TRUST_ENDS_WINDOW and end_tend_dist <= TRUST_ENDS_WINDOW: + iso_to_counts[transcript][0] += 1 + gene_to_tot[gene][1] += 1 + else: + tlen = final_transcript_objs[transcript].end - final_transcript_objs[transcript].start + rlen = tlen - (start_tend_dist + end_tend_dist) + # FIXME might not work if end_norm_dist is set - add test, or just remove end_norm_dist + if rlen > (tlen / 2): + iso_to_counts[transcript][0] += 1 + gene_to_tot[gene][1] += 1 + else: + if start_sj_index == 0 and end_sj_index == len(final_transcript_objs[transcript].juncs) - 1: + iso_to_counts[transcript][0] += 1 + gene_to_tot[gene][0] += 1 + gene_to_tot[gene][1] += 1 + else: + print('ERROR: not full-length') + iso_to_counts[transcript][1] += 1 + gene_to_tot[gene][2] += 1 + return iso_to_counts, gene_to_tot + +def write_final_isoform_output(partition, args, final_transcript_objs, iso_to_counts, gene_to_tot, annots, genome): + with open(partition.output_path('isoform.counts.txt'), 'w') as fh: + for transcript in iso_to_counts: + fh.write(f'{transcript}\t{iso_to_counts[transcript][0]}\t{iso_to_counts[transcript][1]}\n') + with open(partition.output_path('isoforms.bed'), 'w') as iso_fh, \ + open(partition.output_path('isoforms.fa'), 'w') as seq_fh: + for tname in final_transcript_objs: + # spliced isos checked against spliced total, single exon checked against full-length total + passes_support, my_frac_support = _iso_passes_support_filter(args, tname, final_transcript_objs[tname].gene_id, len(final_transcript_objs[tname].exons), iso_to_counts, gene_to_tot) + if passes_support: + thickStart, thickEnd, prodRGB, productivity = predict_prod_temp(final_transcript_objs[tname], annots.start_codon_count, + annots.gene_to_cds_starts, annots.transcript_to_nmd_except, genome) + convert_to_flair_bed(final_transcript_objs[tname], thickStart=thickStart, thickEnd=thickEnd, itemRgb=prodRGB, read_support=iso_to_counts[tname][0], + frac_support=my_frac_support, productivity=productivity).write(iso_fh) + seq_fh.write('>' + final_transcript_objs[tname].name + '\n') + seq_fh.write(final_transcript_objs[tname].get_sequence(genome) + '\n') + + +def _run_region(*, partition, gtf_data, junction_corrector, args): region = partition.region + # FIXME confusing name if taking gtf_data, + # FIXME: should only have region, so why take region arg annots = annot_data_from_gtf(gtf_data, region) # first extract reads for region as fasta @@ -1475,24 +1217,32 @@ def _run_region(*, partition, gtf_data, intron_support, args): # For comparing with amount of clipping after alignment to transcriptome # in order to check whether transcriptome alignment is comparable to or better than genomic alignment, # which can be considered to support isoform. - # used in filter_transcriptome_align - logging.info('generating genomic clipping reference') - generate_genomic_alignment_read_to_clipping_file(partition.file_prefix, bam_file, region) + + # logging.info('generating genomic clipping reference') + num_reads, clipping_file = generate_genomic_alignment_read_to_clipping_file(partition.file_prefix, bam_file, region) + + if num_reads == 0: + generate_full_set_empty_intermediate_files(partition.file_prefix, args.end_norm_dist, args.no_align_to_annot) + return # aligning to reference transcriptome, then identifying reads that match well to reference transcripts # with filter_transcriptome_align - logging.info('identifying good match to annot') - read_to_annot_transcript = \ - identify_good_match_to_annot(args, partition.file_prefix, region.name, annots, genome) + # logging.info('identifying good match to annot') + if not args.no_align_to_annot: + logging.info('aligning to transcriptome reference') + read_to_annot_transcript = identify_good_match_to_annot(args, partition.file_prefix, region.name, annots, genome) - # load splice junctions for chrom - logging.info('correcting splice junctions') - junction_corrector = setup_junction_corrector(intron_support, args.ss_window, args.junction_support) + logging.info('correcting and grouping reads, filtering isoforms') # takes in bam file, for each read attempts to correct splice junctions (removes unsupported ones), then groups reads by junction chains # this also handles read strandedness if necessary - sj_to_ends = filter_correct_group_reads(args, partition.file_prefix, region, bam_file, read_to_annot_transcript, annots, - junction_corrector) + sj_to_ends = {} + filter_correct_group_reads(bam_file=bam_file, region=region, + read_to_annot_transcript=read_to_annot_transcript, + annots=annots, junction_corrector=junction_corrector, + genome=genome, + quality=args.quality, keep_sup=args.keep_sup, + sj_to_ends=sj_to_ends) bam_file.close() # for each junction chain, clusters ends - generates junction chain x ends @@ -1500,83 +1250,109 @@ def _run_region(*, partition, gtf_data, intron_support, args): # redundant ends also separates single exon isoforms from spliced isoforms # (because they're handled differently in future step for identifying # annotated gene/isoform names) - firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE = process_juncs_to_firstpass_isos(args, partition.file_prefix, - region.name, sj_to_ends, - set()) - - # - filter isoforms - remove any that represent a subset of another - # - identified isoform - based on what args.filter is set to also generate - # - iso_to_unique_bound - a mapping of each isoform to the unique sequence - # at its ends (this is to better handle isoforms that represent junction - # subsets with additional sequence at the ends) - firstpass, iso_to_unique_bound = filter_firstpass_isos(args, firstpass_unfiltered, firstpass_junc_to_name, firstpass_SE, - annots, {}) + candidates = process_juncs_to_firstpass_isos(args, partition.file_prefix, sj_to_ends, annots, region.name) + + # filter isoforms: remove subsets, generate unique boundary sequences + firstpass, iso_to_unique_bound = filter_firstpass_isos(args, candidates, annots, {}) + if len(firstpass.keys()) > 0: - logging.info('getting gene names and writing firstpass') + # logging.info('getting gene names and writing firstpass') # this section identifies annotated gene and isoform names (primarily based on splice junction matching, secondarily by exon overlap) # also adjusts isoform strand, determines novel isoform and gene names # also normalizes transcript ends (temporarily extends ends so that transcript end alignment does not drive transcript assignment during transcriptome alignment) # writes out bed and fa files + logging.info('realigning to firstpass and getting final isoforms') if args.end_norm_dist is not None: - get_gene_names_and_write_firstpass(partition.file_prefix, region.name, firstpass, annots, genome, - normalize_ends=True, add_length_at_ends=args.end_norm_dist, unique_bound=iso_to_unique_bound) + write_firstpass(partition.file_prefix, region.name, firstpass, annots, genome, + normalize_ends=True, add_length_at_ends=args.end_norm_dist, unique_bound=iso_to_unique_bound) else: - get_gene_names_and_write_firstpass(partition.file_prefix, region.name, firstpass, annots, genome, unique_bound=iso_to_unique_bound) - logging.info('identifying good match to firstpass') + write_firstpass(partition.file_prefix, region.name, firstpass, annots, genome, unique_bound=iso_to_unique_bound) + # logging.info('identifying good match to firstpass') # aligns to firstpass transcriptome, identifies best read -> isoform alignment for each read, then gets read counts per isoform transcriptome_align_and_count(args, partition.output_path('reads.fasta'), partition.output_path('firstpass.fa'), partition.output_path('firstpass.bed'), partition.output_path('isoform.counts.txt'), - partition.output_path('isoform.read.map.txt'), False, + partition.output_path('isoform.read.map.txt'), False, # say is not annot, requires stringent, returns different end values partition.output_path('reads.genomicclipping.txt'), partition.output_path('firstpass.uniquebound.txt')) else: logging.info('no firstpass isoforms found') - # create empty files - with open(partition.output_path('firstpass.fa'), 'w') as _, \ - open(partition.output_path('firstpass.bed'), 'w') as _, \ - open(partition.output_path('isoform.counts.txt'), 'w') as _, \ - open(partition.output_path('isoform.read.map.txt'), 'w') as _: - pass - if args.output_endpos: - with open(partition.output_path('ends.tsv'), 'w') as _: - pass + generate_empty_intermediate_files(partition.file_prefix, ['.firstpass.fa', '.firstpass.bed', '.isoform.counts.txt', '.isoform.read.map.txt', '.isoform.ends.tsv']) - iso_to_counts = {} - gene_to_tot = {} - for line in open(partition.output_path('isoform.counts.txt')): - iso, counts = line.rstrip().split('\t') - gene = iso.split('_')[-1] - if gene not in gene_to_tot: - gene_to_tot[gene] = 0 - gene_to_tot[gene] += int(counts) - iso_to_counts[iso] = int(counts) - with open(partition.output_path('isoforms.bed'), 'w') as out: - for line in open(partition.output_path('firstpass.bed')): - temp = line.split('\t') - iso = temp[3] - num_exons = int(temp[-3]) - if _iso_passes_support_filter(args, iso, num_exons, iso_to_counts, gene_to_tot): - out.write(line) - bed_to_gtf(partition.output_path('isoforms.bed'), partition.output_path('isoforms.gtf')) - bed_to_sequence(partition.output_path('isoforms.bed'), args.genome, partition.output_path('isoforms.fa')) + # FIXME this is messy, shouldn't have to reorganize like this + final_transcript_objs = {} + for og_key in firstpass: + final_transcript_objs[firstpass[og_key].name] = firstpass[og_key] + iso_to_counts, gene_to_tot = calc_final_iso_support(partition.output_path('isoform.ends.tsv'), final_transcript_objs, args.trust_ends) + write_final_isoform_output(partition, args, final_transcript_objs, iso_to_counts, gene_to_tot, annots, genome) genome.close() def combine_chunks(args, output, partitions): - files_to_combine = ['.firstpass.reallyunfiltered.bed', '.firstpass.unfiltered.bed', '.firstpass.bed', - '.isoforms.bed', - '.isoform.read.map.txt', '.isoforms.gtf', '.isoforms.fa', '.isoform.counts.txt'] + files_to_combine = ['.isoforms.bed', '.isoform.read.map.txt', '.isoforms.fa', '.isoform.counts.txt'] + if args.keep_intermediate: + files_to_combine.extend(['.firstpass.reallyunfiltered.bed', '.firstpass.unfiltered.bed', '.firstpass.bed']) if args.end_norm_dist: files_to_combine.extend(('.read_ends.bed', '.matchannot.ends.tsv')) # if args.predict_cds: # files_to_combine.append('.isoforms.CDS.bed') - if not args.no_align_to_annot: - files_to_combine.extend(['.matchannot.counts.txt', '.matchannot.read.map.txt']) + # if not args.no_align_to_annot: + # files_to_combine.extend(['.matchannot.counts.txt', '.matchannot.read.map.txt']) combine_temp_files_by_suffix(output, [p.file_prefix for p in partitions], files_to_combine) +def get_new_ids(output): + iso_hash_to_ID, gene_hash_to_ID = {}, {} + iso_count, gene_count = 1, 1 + with open(output + '.isoforms.newids.bed', 'w') as fh: + for line in open(output + '.isoforms.bed'): + line = line.rstrip('\n').split('\t') + iso_hash, gene_hash = line[3], line[12] + if iso_hash not in iso_hash_to_ID: + iso_id = f'FLT{iso_count:08d}' + iso_hash_to_ID[iso_hash] = iso_id + iso_count += 1 + if gene_hash not in gene_hash_to_ID: + gene_id = f'FLG{gene_count:08d}' + gene_hash_to_ID[gene_hash] = gene_id + gene_count += 1 + line[3] = iso_hash_to_ID[iso_hash] + line[12] = gene_hash_to_ID[gene_hash] + fh.write('\t'.join(line) + '\n') + return iso_hash_to_ID + +def fix_ids_txt_file(iso_hash_to_ID, oldfile, newfile): + with open(newfile, 'w') as fh: + for line in open(oldfile): + line = line.split('\t', 1) + if line[0] in iso_hash_to_ID: # had to add this check due to having isoforms in this file that were not in bed due to not passing final filters + line[0] = iso_hash_to_ID[line[0]] + fh.write('\t'.join(line)) + +def fix_ids_fa_file(iso_hash_to_ID, oldfile, newfile): + with open(newfile, 'w') as fh: + last = False + for line in open(oldfile): + if line[0] == '>': + if line[1:].rstrip('\n') in iso_hash_to_ID: + line = '>' + iso_hash_to_ID[line[1:].rstrip('\n')] + '\n' + last = True + else: + last = False + if last: + fh.write(line) + +def fix_iso_labels(output): + iso_hash_to_ID = get_new_ids(output) + fix_ids_txt_file(iso_hash_to_ID, output + '.isoform.read.map.txt', output + '.isoform.read.map.newids.txt') + fix_ids_txt_file(iso_hash_to_ID, output + '.isoform.counts.txt', output + '.isoform.counts.newids.txt') + fix_ids_fa_file(iso_hash_to_ID, output + '.isoforms.fa', output + '.isoforms.newids.fa') + pipettor.run([('mv', output + '.isoforms.newids.bed', output + '.isoforms.bed')]) + pipettor.run([('mv', output + '.isoform.read.map.newids.txt', output + '.isoform.read.map.txt')]) + pipettor.run([('mv', output + '.isoform.counts.newids.txt', output + '.isoform.counts.txt')]) + pipettor.run([('mv', output + '.isoforms.newids.fa', output + '.isoforms.fa')]) + #### # main #### @@ -1592,29 +1368,34 @@ def flair_transcriptome(): temp_dir = make_temp_dir(args.output) - logging.info('building intron support database') - is_db = build_intron_support(args.annot_gtf, args.junction_tab, args.junction_bed) - annot_gtf_data = None if args.annot_gtf: logging.info('loading annotation GTF') - annot_gtf_data = gtf_data_parser(args.annot_gtf, attrs=GtfAttrsSet.FLAIR) + annot_gtf_data = gtf_data_parser(args.annot_gtf, attrs=GtfAttrsSet.FLAIR, include_features=TRANSCRIPT_EXON_FEATURES) + + logging.info('building intron support database') + junction_corrector = junction_corrector_factory(args.ss_window, args.junction_support, + annot_gtf_data=annot_gtf_data, + intron_beds=args.junction_bed, + star_sj_tabs=args.junction_tab) logging.info('partitioning genome') runner = partition_runner_factory(args.parallel_mode, genome, args.genome_aligned_bam, temp_dir, args.annot_gtf, args.threads, - gtf_data=annot_gtf_data, intron_support=is_db) + gtf_data=annot_gtf_data, junction_corrector=junction_corrector) logging.info(f'number of partitions: {len(runner)}') logging.info('running partitions') runner.run(_run_region, args=args) combine_chunks(args, args.output, runner.partitions) - # this needs to be done here outside of chunking because needs to load whole annotation gtf, which should only be done once - if args.predict_cds: - logging.info('predicting CDS') - # FIXME: why is this passing in annotation GTF? - predict_productivity(args.output, args.genome, args.annot_gtf) + # simplify isoform and gene ID hashes in bed file, read map, counts, and fa files + fix_iso_labels(args.output) + + # index of column with gene id in extracols, then additional column indexes + names + bed_to_gtf(args.output + '.isoforms.bed', args.output + '.isoforms.gtf', is_flair_bed=True) + + make_big_bed(genome, temp_dir + 'chrom.sizes', args.output.split('/')[-1], args.output + '.isoforms', BED_FIELDS + EXTRA_BED_FIELDS) if not args.keep_intermediate: shutil.rmtree(temp_dir) diff --git a/src/flair/flair_variantmodels.py b/src/flair/flair_variantmodels.py index 954173d9..7fb3c9a5 100644 --- a/src/flair/flair_variantmodels.py +++ b/src/flair/flair_variantmodels.py @@ -7,26 +7,20 @@ import pysam import shutil from flair import FlairInputDataError +from flair.gtf_io import gtf_record_parser, GtfAttrsSet +from flair.pycbio.hgdata.bed import Bed os.environ['OPENBLAS_NUM_THREADS'] = '1' compbase = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C', 'N': 'N', - 'R':'Y', 'Y':'R','K':'M','M':'K','S':'S','W':'W', 'B':'V','V':'B','D':'H','H':'D'} + 'R': 'Y', 'Y': 'R', 'K': 'M', 'M': 'K', 'S': 'S', 'W': 'W', + 'B': 'V', 'V': 'B', 'D': 'H', 'H': 'D'} def getStarts(gtf): starts = list() - with open(gtf) as lines: - for l in lines: - if l[0] == "#": - continue - cols = l.rstrip().split("\t") - chrom, c1, c2, strand = cols[0], int(cols[3]) - 1, int(cols[4]), cols[6] - if cols[2] == "start_codon": - gene = cols[8][cols[8].find('gene_id') + len('gene_id') + 2:] - gene = gene[:gene.find('"')] - - starts.append((chrom, c1, c2, gene, ".", strand)) - if (len(starts)) == 0: + for rec in gtf_record_parser(gtf, include_features={'start_codon'}, attrs=GtfAttrsSet.ALL): + starts.append((rec.chrom, rec.start, rec.end, rec.gene_id, ".", rec.strand)) + if len(starts) == 0: raise FlairInputDataError(f'ERROR, no start codons were found in {gtf}') return starts @@ -119,10 +113,10 @@ def extract_sample_data(manifestfile): return sampledata def process_bedline(line): - line = line.rstrip().split('\t') - thischr, iso, dir, start, esizes, estarts, end = line[0], line[3], line[5], int(line[1]), \ - [int(x) for x in line[10].split(',')[:-1]], \ - [int(x) for x in line[11].split(',')[:-1]], int(line[2]) + bed = Bed.parse(line.rstrip().split('\t')) + thischr, iso, dir, start, end = bed.chrom, bed.name, bed.strand, bed.chromStart, bed.chromEnd + esizes = [len(blk) for blk in bed.blocks] + estarts = [blk.start - start for blk in bed.blocks] exonblocks = [] # block is gstart, tstart, len if dir == '-': esizes = esizes[::-1] @@ -645,8 +639,7 @@ def getvariants(): '-i', args.bedisoforms, '-o', args.output_prefix + '.isoforms.productivity', '--gtf', args.gtf, - '--genome_fasta', args.genome, - '--longestORF') + '--genome_fasta', args.genome) pipettor.run([prodcmd]) # adjust productivity prediction to account for variants diff --git a/src/flair/flair_variantquant.py b/src/flair/flair_variantquant.py index 6441b00e..50dfcfe4 100644 --- a/src/flair/flair_variantquant.py +++ b/src/flair/flair_variantquant.py @@ -7,13 +7,14 @@ import flair.flair_variantmodels as fv os.environ['OPENBLAS_NUM_THREADS'] = '1' -compbase = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C', 'N': 'N', - 'R':'Y', 'Y':'R','K':'M','M':'K','S':'S','W':'W', 'B':'V','V':'B','D':'H','H':'D'} +compbase = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C', 'N': 'N', + 'R': 'Y', 'Y': 'R', 'K': 'M', 'M': 'K', 'S': 'S', 'W': 'W', + 'B': 'V', 'V': 'B', 'D': 'H', 'H': 'D'} def parse_var_args(): parser = argparse.ArgumentParser() - parser.add_argument('-m', '--manifest', type=str, #required=True, + parser.add_argument('-m', '--manifest', type=str, # required=True, help="[USED INSTEAD OF input_bam AND vcf] path to manifest files that points to sample names, bam files aligned to transcriptome, " "and vcf vars for that sample called on the genome. " "Each line of file should be tab separated. " @@ -27,7 +28,7 @@ def parse_var_args(): help="path to collapsed_output.bed file. default: 'flair'") parser.add_argument('-b', '--bedisoforms', help="path to transcriptome bed file") - parser.add_argument('-t', '--threshold', type=int, default=5, + parser.add_argument('-t', '--threshold', type=int, default=5, help='specify minimum total read coverage threshold to output a site') parser.add_argument('-k', '--output_all', action='store_true', help="specify this option if you want to output read counts for all putative RNA editing sites that pass the coverage threshold, regardless of whether any reads are edited") @@ -74,7 +75,7 @@ def _parse_cigar(cigar, alignstart, transcriptvars): return coveredvars -def _parse_single_bam_read(s, tempdir, vcfvars, sampleindex, tempfilename): ##add mode +def _parse_single_bam_read(s, tempdir, vcfvars, sampleindex, tempfilename): # add mode """for each read, figure out what variants it overlaps with. Then figure out whether it's modified or not at that variant""" # check for which vars are covered coveredvars = _parse_cigar(s.cigartuples, s.reference_start, vcfvars) @@ -99,7 +100,7 @@ def _parse_single_bam_read(s, tempdir, vcfvars, sampleindex, tempfilename): ##ad '\t'.join([s.reference_name, str(sampleindex) + '__' + s.query_name, ';'.join(coveredvarstrings)]) + '\n') -def read_vars_to_genome_pos_counts(tempfilenames, tempdir, outprefix, mode, sampledata, threshold, output_all): +def read_vars_to_genome_pos_counts(tempfilenames, tempdir, outprefix, mode, sampledata, threshold, output_all): # noqa: C901 - FIXME: reduce complexity samplenames = [x[0] for x in sampledata] with open(f'{outprefix}.{mode}.var.counts.tsv', 'w') as out, open(f'{outprefix}.{mode}.vargroup.counts.tsv', 'w') as out2: @@ -114,13 +115,13 @@ def read_vars_to_genome_pos_counts(tempfilenames, tempdir, outprefix, mode, samp allgenes = [] for x in allmuts: - for i in range(1, len(x)-1): + for i in range(1, len(x) - 1): if x[i] != '': allgenes.append(x[i]) - - if len(allgenes) > 0: ###only use reads that overlap annotated genes + + if len(allgenes) > 0: # only use reads that overlap annotated genes mygene = max(set(allgenes), key=allgenes.count) - + varpos = [x[0] for x in allmuts] varkey = ','.join(varpos) key = (refname, mygene, varkey) @@ -156,7 +157,7 @@ def read_vars_to_genome_pos_counts(tempfilenames, tempdir, outprefix, mode, samp outmods.append(str(totmods)) outline = [chrom, gene, str(len(outmods)), str(totpos), ','.join(outmods), varpos] out2.write('\t'.join(outline) + '\n') - + for var in vartocounts: if any([x[0] + x[1] >= threshold for x in vartocounts[var]]) and (any([x[1] > 0 for x in vartocounts[var]]) or output_all): # any modified reads in any sample varcounts = [f'{x[0]};{x[1]}' for x in vartocounts[var]] @@ -172,7 +173,7 @@ def group_annotated_ref_vars(vartoalt, chrregiontogenes, genestoboundaries, gene potgenes = fv.get_potential_genes(chrom, gpos, chrregiontogenes) overlapgenes = set() - ##THIS MAY BE THE BOTTLENECK + # THIS MAY BE THE BOTTLENECK for gene, _, _ in fv.retrieve_good_iso_pos(potgenes, genestoboundaries, gpos, genetoiso, isotoblocks): overlapgenes.add(gene) vcfvars = _add_vcf_var(vcfvars, chrom, ref, alts, gpos, ','.join(overlapgenes)) @@ -195,7 +196,7 @@ def quantvarpos(): sampledata = [['sample', args.input_bam]] else: raise ValueError("please provide either manifest or bam and vcf") - + print('done loading annot') vcfvars = {} diff --git a/src/flair/genomic_chimeras.py b/src/flair/genomic_chimeras.py deleted file mode 100644 index 868458a4..00000000 --- a/src/flair/genomic_chimeras.py +++ /dev/null @@ -1,407 +0,0 @@ -#!/usr/bin/env python3 - -import pysam, sys, argparse -from collections import defaultdict -from statistics import median - -def def_value(): - return set() - -def getCorrectGene(annot, geneannot, chr, readblocks, thisdir=None): - # print(chr, readblocks) - if chr not in annot: - return chr + '-' + str(round(readblocks[0][0], -3)) - intToCheck = set() - for start, stop in readblocks: - # for i in range(round(start, -1), round(stop, -1), 10): - for i in range(round(start, -2), round(stop, -2) + 1, 100): - intToCheck.add(i) - # for i in range(round(start, -2), round(stop, -2), 100): - # geneinttocheck.add(i) - # thisdir = '-' if is_reverse else '+' - geneOptions = {} - # secondaryGeneOptions = {} - for i in intToCheck: - if i in annot[chr]: - # if is_reverse: - # for g, dir in annot[chr][i]: - # if dir == thisdir: - # if g not in geneOptions: geneOptions[g] = 0 - # geneOptions[g] += 1 - # else: - for g, dir in annot[chr][i]: - if g not in geneOptions: - if not thisdir: geneOptions[g] = 0 - elif dir == thisdir: geneOptions[g] = 5 ##boost of 50bp for going the same direction - else: geneOptions[g] = 0 - geneOptions[g] += 1 - # print(len(intToCheck)) - # print(geneOptions) - if len(geneOptions.keys()) > 0: - bestgene, besttot = None, 0 - for g in geneOptions: - if geneOptions[g] > besttot: bestgene, besttot = g, geneOptions[g] - if besttot/len(intToCheck) > 0.5: - return bestgene - return chr + '-' + str(round(readblocks[0][0], -3)) - # for i in geneinttocheck: - # if i in geneannot[chr]: - # # if is_reverse: - # # for g, dir in geneannot[chr][i]: - # # if dir == thisdir: - # # if g not in secondaryGeneOptions: secondaryGeneOptions[g] = 0 - # # secondaryGeneOptions[g] += 1 - # # else: - # for g, dir in geneannot[chr][i]: - # if g not in secondaryGeneOptions: #secondaryGeneOptions[g] = 0 - # if not thisdir: secondaryGeneOptions[g] = 0 - # elif dir == thisdir: secondaryGeneOptions[g] = 1 ##boost of 100bp for going the same direction - # else: secondaryGeneOptions[g] = 0 - # secondaryGeneOptions[g] += 1 - # print(len(geneinttocheck)) - # print(secondaryGeneOptions) - # if len(secondaryGeneOptions.keys()) > 0: - # bestgene, besttot = None, 0 - # for g in secondaryGeneOptions: - # if secondaryGeneOptions[g] > besttot: bestgene, besttot = g, secondaryGeneOptions[g] - # if besttot / len(geneinttocheck) > 0.5: - # return bestgene - # else: - # return chr + '-' + str(round(readblocks[0][0], -3)) - # else: - # return chr + '-' + str(round(readblocks[0][0], -3)) - -# def gchimparsegtf(gtffilename): -# annot = {} -# geneannot = {} -# genetoinfo = {} -# for line in open(gtffilename): -# if line[0] != '#': -# line = line.split('\t') -# if line[2] == 'exon': -# chr, start, stop, dir = line[0], int(line[3]), int(line[4]), line[6] -# genename = line[8].split('gene_id "')[1].split('"')[0] -# # genename += '*' + line[8].split('gene_id "')[1].split('"')[0] -# if chr not in annot: annot[chr] = defaultdict(def_value) -# for i in range(round(start, -1), round(stop, -1), 10): -# # if i not in annot[chr]: annot[chr][i] = set() -# annot[chr][i].add((genename, dir)) -# elif line[2] == 'gene': -# chr, start, stop, dir = line[0], int(line[3]), int(line[4]), line[6] -# genename = line[8].split('gene_id "')[1].split('"')[0] -# # genename += '*' + line[8].split('gene_id "')[1].split('"')[0] -# genetoinfo[genename] = (chr, start, stop, dir) -# if chr not in geneannot: geneannot[chr] = defaultdict(def_value) -# for i in range(round(start, -2), round(stop, -2), 100): -# geneannot[chr][i].add((genename, dir)) -# print('done loading annot') -# return annot, geneannot, genetoinfo - - -def idGenomicChimeras(bam, annot, geneannot, genetoinfo, minsup, maxloci=10, reqdisttostart=None): - isrevtosign = {True: '-', False: '+'} - withsup = pysam.AlignmentFile(bam, "rb") - c = 0 - readToAligns = {} - for read in withsup: - if read.is_mapped and not read.is_secondary and read.has_tag('SA'): - rname = read.query_name - if rname not in readToAligns: - readToAligns[rname] = [] - # print(rname, read.get_blocks()) - refchr, refstart, refend, dir = read.reference_name, read.reference_start, read.reference_end, isrevtosign[read.is_reverse] - genename = getCorrectGene(annot, geneannot, refchr, read.get_blocks())#, isrevtosign[read.is_reverse]) # + '|' + isrevtosign[read.is_reverse] - qstart, qend = read.query_alignment_start, read.query_alignment_end - readlen = read.infer_read_length() - cigar = read.cigartuples - if cigar[0][0] == 5: ##just hard clipping - qstart += cigar[0][1] - qend += cigar[0][1] - if dir == '+': - readToAligns[rname].append([(qstart, refstart), (qend, refend), genename, dir, refchr]) - else: - readToAligns[rname].append([(readlen - qend, refend), (readlen - qstart, refstart), genename, dir, refchr]) - - interestingloci = {} - for read in readToAligns: - alignedloci = sorted(readToAligns[read]) - ###ADD: need to handle non-genic alignments - g1annot = genetoinfo[alignedloci[0][2]] if alignedloci[0][2] in genetoinfo else None - g2annot = genetoinfo[alignedloci[-1][2]] if alignedloci[-1][2] in genetoinfo else None - end1strandalignswithtranscript = True if (g1annot and alignedloci[0][0][1] < alignedloci[0][1][1] and g1annot[3] == '+') or (g1annot and alignedloci[0][0][1] > alignedloci[0][1][1] and g1annot[3] == '-') else False - end2strandalignswithtranscript = True if (g2annot and alignedloci[-1][1][1] < alignedloci[-1][0][1] and g2annot[3] == '+') or (g2annot and alignedloci[-1][1][1] > alignedloci[-1][0][1] and g2annot[3] == '-') else False - if not end1strandalignswithtranscript and not end2strandalignswithtranscript: continue - g15end = sorted(g1annot[-1], key=lambda x: abs(x - alignedloci[0][0][1]))[0] if g1annot else None ###compare to all annot transcript ends - g25end = sorted(g2annot[-1], key=lambda x: abs(x - alignedloci[-1][1][1]))[0] if g2annot else None - if (not end1strandalignswithtranscript and end2strandalignswithtranscript) or ( - end2strandalignswithtranscript and end1strandalignswithtranscript and abs( - alignedloci[-1][1][1] - g25end) < abs( - alignedloci[0][0][1] - g15end)): # alignedloci[-1][1][1] < alignedloci[0][0][1]): - alignedloci = [[x[1], x[0]] + x[2:] for x in alignedloci][ - ::-1] ###reverse so smaller transcript pos is start - readToAligns[read] = alignedloci - # print(alignedloci) - ##if end2tpos < end1tpos: alignedloci = [x[::-1] for x in alignedloci][::-1] ###reverse so smaller transcript pos is start - readToAligns[read] = alignedloci - readgenes = [x[2] for x in alignedloci] - if len(set(readgenes)) > 1: - # print(readgenes) - info = tuple(readgenes) - if info not in interestingloci: interestingloci[info] = [] - interestingloci[info].append(read) - - # fusionsout.write('\t'.join( - # ['fusionName', 'geneName', 'orderInFusion', 'geneChr', 'leftCoord', 'rightCoord', 'readSupport']) + '\n') - fusiontoinfo = {} - for l in interestingloci: - if 2 <= len(l) <= maxloci and len(interestingloci[l]) >= minsup: - numloci = len(l) - qdist, readsup = [[] for x in range(numloci-1)], 0 - alignblocks = [[[], []] for x in range(numloci)] - aligngenes = [[] for x in range(numloci)] - goodreads = [] - for r in interestingloci[l]: - if len(readToAligns[r]) == numloci: - alignedloci = readToAligns[r] - goodreads.append(r) - readsup += 1 - for i in range(numloci - 1): - qdist[i].append(alignedloci[i][1][0] - alignedloci[i + 1][0][0]) - - for i in range(numloci): - alignblocks[i][0].append(alignedloci[i][0][1]) - alignblocks[i][1].append(alignedloci[i][1][1]) - aligngenes[i].append((alignedloci[i][2], alignedloci[i][4])) ###gene, chr - if readsup >= minsup: - consistentGenes = True - # print(aligngenes) - for i in range(numloci): - if len(set(aligngenes[i])) > 1: consistentGenes = False - # print('consgenes', consistentGenes) - # if aligngenes[0][0][0].split('.')[0] == 'ENSG00000141510': print(shortgenes, 'consgenes', consistentGenes) - - if consistentGenes: # check that gene orders for all reads are consistent - ###to start, no clustering, take simple min/max - for i in range(numloci): - aligngenes[i] = list(set(aligngenes[i]))[0] - - strand = '+' if median(alignblocks[i][1]) > median(alignblocks[i][0]) else '-' - for j in range(2): - poslist = sorted(alignblocks[i][j]) - simplemed = median(poslist) - groups, g = [], [-500] - for p in poslist: - if p - g[-1] > 300: - if g[0] != -500: groups.append(g) - g = [p] - else: - g.append(p) - groups.append(g) - goodpos = [] - for g in groups: - if len(g) > 1: goodpos.extend(g) - if (strand == '+' and j == 0) or (strand == '-' and j == 1): - outpos = int(min(simplemed, min(goodpos))) - 1000 if len(goodpos) > 0 else int(simplemed) - 1000 - else: - outpos = int(max(simplemed, max(goodpos))) + 1000 if len(goodpos) > 0 else int(simplemed) + 1000 - outpos = max(0, outpos) - # print(outpos, simplemed, median(goodpos) if len(goodpos) > 0 else goodpos, goodpos, poslist) - alignblocks[i][j] = outpos - - # if median(alignblocks[i][1]) > median(alignblocks[i][0]): - # alignblocks[i][0] = int(median(alignblocks[i][0])) - 1000 - # alignblocks[i][1] = int(median(alignblocks[i][1])) + 1000 - # else: - # alignblocks[i][0] = int(median(alignblocks[i][0])) + 1000 - # alignblocks[i][1] = int(median(alignblocks[i][1])) - 1000 - - ###check that 5' gene is in the forward direction, implies plausible promoter - if aligngenes[0][0] in genetoinfo: - firstgenedir = genetoinfo[aligngenes[0][0]][3] - firstgenetstarts = genetoinfo[aligngenes[0][0]][-1] - end5 = alignblocks[0][0] #if firstgenedir == '+' else alignblocks[0][1] - if alignblocks[0][0] > alignblocks[0][1]: end5 -= 1000 - else: end5 += 1000 - mindisttostart = min([abs(end5-x) for x in firstgenetstarts]) - # print(mindisttostart, end5, firstgenetstarts) - # if aligngenes[0][0].split('.')[0] == 'ENSG00000141510': - # print(firstgenedir) - # print(firstgenetstarts) - # print(alignblocks[0]) - # print(end5) - # print([abs(end5-x) for x in firstgenetstarts]) - # print(mindisttostart) - # print(qdist) - if ((firstgenedir == '+' and alignblocks[0][0] < alignblocks[0][1]) or ( - firstgenedir == '-' and alignblocks[0][0] > alignblocks[0][1]))\ - and (reqdisttostart == None or mindisttostart <= reqdisttostart): - simscores = [] - for qdistlist in qdist: - simscore = [] - qdistlist = sorted(qdistlist) - for i in range(1, len(qdistlist)): - simscore.append(qdistlist[i] - qdistlist[i-1]) - simscores.append(median(simscore)) - # qdist = [median(x) for x in qdist] - # if aligngenes[0][0].split('.')[0] == 'ENSG00000141510': print('simscores', simscores, max([abs(min(x)) for x in qdist]), max([abs(min(x)) for x in qdist]) <= 10, max(simscores) <= 3) - if max([abs(median(x)) for x in qdist]) <= 10 or (max([abs(min(x)) for x in qdist]) <= 10 and max(simscores) <= 3): ###alignments have to either have few gaps or be very consistent - ###['fusionName', 'geneName', 'orderInFusion', 'geneChr', 'leftCoord', 'rightCoord', 'readSupport'] - # if aligngenes[0][0].split('.')[0] == 'ENSG00000141510': print(shortgenes, 'passes firstgenedir', alignblocks) - fname = '__'.join([x[0] for x in aligngenes]) - fusiontoinfo[fname] = {'reads': set(goodreads), 'disttostart':[mindisttostart], 'qdist':qdist} - for i in range(numloci): - # fusiontoinfo[fname][i] = [aligngenes[i][0], aligngenes[i][2], alignblocks[i][0], - # alignblocks[i][1]] - - fusiontoinfo[fname][aligngenes[i][0]] = [aligngenes[i][1], alignblocks[i][0], alignblocks[i][1]] - # for i in range(numloci): - # outline = ['__'.join([x[0] for x in aligngenes]), aligngenes[i][0], - # "gene" + str(i), aligngenes[i][2], alignblocks[i][0], alignblocks[i][1], - # readsup] - # if i == 0: outline.append(','.join(goodreads)) - # fusionsout.write('\t'.join([str(x) for x in outline]) + '\n') - return fusiontoinfo - # fusionsout.close() - - - -if __name__ == '__main__': - parser = argparse.ArgumentParser(description='''for identifying chimeras from genomic alignment''') - parser.add_argument('-f', '--gtf', - help='specify isoforms.gtf') - parser.add_argument('-b', '--bam', - help='filtered bam file from alignment to genome') - parser.add_argument('-o', '--output', - help='output file name') - args = parser.parse_args() - - annot, geneannot, genetoinfo = gchimparsegtf(args.gtf) - - - - - - - -# if __name__ == '__main__': -# parser = argparse.ArgumentParser(description='''for identifying chimeras from genomic alignment''') -# parser.add_argument('-f', '--gtf', -# help='specify isoforms.gtf') -# parser.add_argument('-b', '--bam', -# help='filtered bam file from alignment to genome') -# parser.add_argument('-o', '--output', -# help='output file name') -# args = parser.parse_args() -# -# annot = {} -# geneannot = {} -# genetoinfo = {} -# for line in open(args.gtf): -# if line[0] != '#': -# line = line.split('\t') -# if line[2] == 'exon': -# chr, start, stop, dir = line[0], int(line[3]), int(line[4]), line[6] -# genename = line[8].split('gene_id "')[1].split('"')[0] -# # genename += '*' + line[8].split('gene_id "')[1].split('"')[0] -# if chr not in annot: annot[chr] = defaultdict(def_value) -# for i in range(round(start, -1), round(stop, -1), 10): -# # if i not in annot[chr]: annot[chr][i] = set() -# annot[chr][i].add((genename, dir)) -# elif line[2] == 'gene': -# chr, start, stop, dir = line[0], int(line[3]), int(line[4]), line[6] -# genename = line[8].split('gene_id "')[1].split('"')[0] -# # genename += '*' + line[8].split('gene_id "')[1].split('"')[0] -# genetoinfo[genename] = (chr, start, stop, dir) -# if chr not in geneannot: geneannot[chr] = defaultdict(def_value) -# for i in range(round(start, -2), round(stop, -2), 100): -# geneannot[chr][i].add((genename, dir)) -# print('done loading annot') -# -# isrevtosign = {True: '-', False: '+'} -# fusionsout = open(args.output, 'w') -# withsup = pysam.AlignmentFile(args.bam, "rb") -# c = 0 -# readToAligns = {} -# for read in withsup: -# rname = read.query_name -# if rname not in readToAligns: -# readToAligns[rname] = [] -# # print(rname, read.get_blocks()) -# genename = getCorrectGene(annot, read.reference_name, read.get_blocks(), -# isrevtosign[read.is_reverse]) # + '|' + isrevtosign[read.is_reverse] -# refchr, refstart, refend, dir = read.reference_name, read.reference_start, read.reference_end, isrevtosign[ -# read.is_reverse] -# qstart, qend = read.query_alignment_start, read.query_alignment_end -# readlen = read.infer_read_length() -# cigar = read.cigartuples -# if cigar[0][0] == 5: ##just hard clipping -# qstart += cigar[0][1] -# qend += cigar[0][1] -# if dir == '+': -# readToAligns[rname].append(((qstart, refstart), (qend, refend), genename, dir, refchr)) -# else: -# readToAligns[rname].append(((readlen - qend, refend), (readlen - qstart, refstart), genename, dir, refchr)) -# -# interestingloci = {} -# for read in readToAligns: -# readgenes = [x[2] for x in sorted(readToAligns[read])] -# if len(set(readgenes)) > 1: -# # print(readgenes) -# info = tuple(readgenes) -# if info not in interestingloci: interestingloci[info] = [] -# interestingloci[info].append(read) -# -# fusionsout.write('\t'.join( -# ['fusionName', 'geneName', 'orderInFusion', 'geneChr', 'leftCoord', 'rightCoord', 'readSupport']) + '\n') -# -# for l in interestingloci: -# if len(l) >= 2 and len(interestingloci[l]) >= 3: -# qdist, readsup = [], 0 -# numloci = len(l) -# alignblocks = [[[], []] for x in range(numloci)] -# aligngenes = [[] for x in range(numloci)] -# goodreads = [] -# for r in interestingloci[l]: -# if len(readToAligns[r]) == numloci: -# alignedloci = sorted(readToAligns[r]) -# goodreads.append(r) -# readsup += 1 -# for i in range(numloci - 1): -# qdist.append(alignedloci[i][0][0] - alignedloci[i + 1][1][0]) -# -# for i in range(numloci): -# alignblocks[i][0].append(alignedloci[i][0][1]) -# alignblocks[i][1].append(alignedloci[i][1][1]) -# aligngenes[i].append(alignedloci[i][2:]) -# # print(l, readsup, [set(x) for x in aligngenes], alignblocks) -# if readsup >= 3: -# consistentGenes = True -# for i in range(numloci): -# if len(set(aligngenes[i])) > 1: consistentGenes = False -# if consistentGenes: # check that gene orders for all reads are consistent -# ###to start, no clustering, take simple min/max -# for i in range(numloci): -# aligngenes[i] = list(set(aligngenes[i]))[0] -# -# for i in range(numloci): -# if aligngenes[i][1] == '+': -# alignblocks[i][0] = min(alignblocks[i][0]) - 1000 -# alignblocks[i][1] = max(alignblocks[i][1]) + 1000 -# else: -# alignblocks[i][0] = max(alignblocks[i][0]) + 1000 -# alignblocks[i][1] = min(alignblocks[i][1]) - 1000 -# -# ###check that 5' gene is in the forward direction, implies plausible promoter -# if aligngenes[0][0] in genetoinfo: -# firstgenedir = genetoinfo[aligngenes[0][0]][-1] -# if (firstgenedir == '+' and alignblocks[0][0] < alignblocks[0][1]) or ( -# firstgenedir == '-' and alignblocks[0][0] > alignblocks[0][1]): -# ###['fusionName', 'geneName', 'orderInFusion', 'geneChr', 'leftCoord', 'rightCoord', 'readSupport'] -# for i in range(numloci): -# outline = ['__'.join([x[0] for x in aligngenes]), aligngenes[i][0], -# "gene" + str(i), aligngenes[i][2], alignblocks[i][0], alignblocks[i][1], -# readsup] -# if i == 0: outline.append(','.join(goodreads)) -# fusionsout.write('\t'.join([str(x) for x in outline]) + '\n') -# -# fusionsout.close() diff --git a/src/flair/gtf_io.py b/src/flair/gtf_io.py index 67d644a8..36d6ed2a 100644 --- a/src/flair/gtf_io.py +++ b/src/flair/gtf_io.py @@ -5,9 +5,9 @@ from enum import Enum from typing import Optional from collections import defaultdict -from intervaltree import IntervalTree from flair.pycbio.sys import fileOps from flair import SeqRange +from flair.interval_index import IntervalIndex StrNone = Optional[str] StrSetNone = Optional[set[str]] @@ -29,9 +29,13 @@ CDS_FEATURE = "CDS" CDS_FEATURES = frozenset([CDS_FEATURE]) -TRANSCRIPT_EXON_FEATURES = TRANSCRIPT_FEATURES | EXON_FEATURES +START_CODON_FEATURE = "start_codon" +START_CODON_FEATURES = frozenset([START_CODON_FEATURE]) -FLAIR_ATTRS = ('gene_id', 'gene_name', 'transcript_id') +TRANSCRIPT_EXON_FEATURES = TRANSCRIPT_FEATURES | EXON_FEATURES | START_CODON_FEATURES + +FLAIR_ATTRS = frozenset(('gene_id', 'gene_name', 'transcript_id')) +FLAIR_TRANSCRIPT_ATTRS = FLAIR_ATTRS | frozenset(('tag', )) _ALL_ATTR_RE = re.compile(r'(\w+)\s+(?:"([^"]*)"|([^;\s]+))') @@ -89,6 +93,10 @@ def __init__(self, chrom: str, source: str, feature: str, def gene_id(self): return self.attrs.get("gene_id") + @gene_id.setter + def gene_id(self, value): + self.attrs['gene_id'] = value + @property def gene_name(self): return self.attrs.get("gene_name") @@ -146,6 +154,18 @@ def __init__(self, chrom: str, source: str, feature: str, start: int, end: int, attrs=attrs, gene_id=gene_id, gene_name=gene_name, transcript_id=transcript_id, exon_number=exon_number) +class GtfStartCodon(GtfRecord): + """GTF start codon (start of coding sequence).""" + + def __init__(self, chrom: str, source: str, feature: str, start: int, end: int, + score: str, strand: str, frame: str, *, + attrs: Attrs = None, + gene_id: str = None, gene_name: str = None, transcript_id: str = None, + exon_number: int = None): + super().__init__(chrom, source, feature, start, end, score, strand, frame, + attrs=attrs, gene_id=gene_id, gene_name=gene_name, transcript_id=transcript_id, + exon_number=exon_number) + class GtfTranscript(GtfRecord): """GTF transcript with exons.""" def __init__(self, chrom: str, source: str, feature: str, start: int, end: int, @@ -159,6 +179,7 @@ def __init__(self, chrom: str, source: str, feature: str, start: int, end: int, self.exons: list[GtfExon] = [] self.cds_recs: list[GtfCDS] = [] + self.start_codon = None def add_exon(self, exon: GtfExon) -> None: """Add exon to transcript.""" @@ -181,14 +202,14 @@ def __init__(self, gtf_file=None): self.transcripts = [] self.transcripts_by_id: dict[str, GtfTranscript] = {} # transcripts by chrom then range overlap. - self.transcripts_by_range = defaultdict(IntervalTree) + self.transcripts_by_range = defaultdict(IntervalIndex) def add_transcript(self, transcript: GtfTranscript): if transcript.transcript_id in self.transcripts_by_id: raise GtfParseError(f"adding duplicate transcript id: `{transcript.transcript_id}'") self.transcripts.append(transcript) self.transcripts_by_id[transcript.transcript_id] = transcript - self.transcripts_by_range[transcript.chrom].addi(transcript.start, transcript.end, transcript) + self.transcripts_by_range[transcript.chrom].add(transcript.start, transcript.end, transcript) def get_transcript(self, transcript_id): """return transcript for id or None if not found""" @@ -211,8 +232,7 @@ def get_chroms(self): def iter_overlap_transcripts(self, chrom, start, end, *, strand=None): """Generator overlapping transcripts, optionally filtering for strand""" # defaultdict will handle chrom not in GTF - for interval in self.transcripts_by_range[chrom].overlap(start, end): - transcript = interval.data + for transcript in self.transcripts_by_range[chrom].overlap(start, end): if (strand is None) or (transcript.strand == strand): yield transcript @@ -250,7 +270,7 @@ def _parse_attribute_match(match: re.Match) -> tuple[str, str | int | float]: # If conversion fails, keep as string return key, unquoted_value -def _parse_all_attributes(attrs_str: str, attr_re=_ALL_ATTR_RE) -> Attrs: +def _parse_all_attributes(attrs_str: str, end_str: str, attr_re=_ALL_ATTR_RE) -> Attrs: """Parse GTF attributes string into dict.""" attrs = {} for attr_str in attr_re.finditer(attrs_str): @@ -281,13 +301,16 @@ def _find_flair_attr_value(attrs_str: str, key: str): val_end = attrs_str.find('"', val_start) return attrs_str[val_start:val_end] if val_end >= 0 else None -def _parse_flair_attributes(attrs_str: str) -> Attrs: +def _parse_flair_attributes(attrs_str: str, record_type: str) -> Attrs: """Fast-path parser for FLAIR_ATTRS using str.find() instead of regex.""" attrs = {} for key in FLAIR_ATTRS: value = _find_flair_attr_value(attrs_str, key) if value is not None: attrs[key] = value + if record_type == 'transcript': + all_tags = [x.split('"')[0] for x in attrs_str.split('tag "')[1:]] + attrs['tag'] = all_tags return attrs @@ -342,6 +365,8 @@ def _gtf_record_class(feature): return GtfExon elif feature == CDS_FEATURE: return GtfCDS + elif feature == START_CODON_FEATURE: + return GtfStartCodon else: return GtfRecord @@ -366,7 +391,7 @@ def _parse_gtf_line(line: str, include_features: StrSetNone, attrs_parser=_parse return None start, end = _parse_coordinates(fields[3], fields[4]) - attrs = attrs_parser(fields[8]) + attrs = attrs_parser(fields[8], fields[2]) _check_id_whitespace(attrs) cls = _gtf_record_class(fields[2]) @@ -431,7 +456,7 @@ def gtf_record_parser(gtf_file: str, *, include_features: StrSetNone = None, att File maybe compressed""" yield from _gtf_record_iter(gtf_file, include_features, _ATTRS_SET_TO_PARSER[attrs]) -def _load_gtf_records(gtf_file, gtf_data, transcript_id_to_exons, transcript_id_to_cds_recs, include_features, attrs_parser): +def _load_gtf_records(gtf_file, gtf_data, transcript_id_to_exons, transcript_id_to_cds_recs, transcript_id_to_start_codons, include_features, attrs_parser): for rec in _gtf_record_iter(gtf_file, include_features, attrs_parser): if isinstance(rec, GtfTranscript): gtf_data.add_transcript(rec) @@ -439,22 +464,27 @@ def _load_gtf_records(gtf_file, gtf_data, transcript_id_to_exons, transcript_id_ transcript_id_to_exons[rec.transcript_id].append(rec) elif isinstance(rec, GtfCDS): transcript_id_to_cds_recs[rec.transcript_id].append(rec) + elif isinstance(rec, GtfStartCodon): + transcript_id_to_start_codons[rec.transcript_id] = rec -def _add_children(transcript, exons, cds_recs): +def _add_children(transcript, exons, cds_recs, start_codon): if exons is not None: for exon in exons: transcript.add_exon(exon) if cds_recs is not None: for cds_rec in cds_recs: transcript.add_cds(cds_rec) + transcript.start_codon = start_codon + transcript.sort_children() -def _resolve_gtf_records(gtf_data, transcript_id_to_exons, transcript_id_to_cds_recs): +def _resolve_gtf_records(gtf_data, transcript_id_to_exons, transcript_id_to_cds_recs, transcript_id_to_start_codons): """add exon and CDS records to transcripts and sort""" for transcript in gtf_data.transcripts: _add_children(transcript, transcript_id_to_exons.get(transcript.transcript_id), - transcript_id_to_cds_recs.get(transcript.transcript_id)) + transcript_id_to_cds_recs.get(transcript.transcript_id), + transcript_id_to_start_codons.get(transcript.transcript_id)) def gtf_data_parser(gtf_file, *, include_features: StrSetNone = None, attrs: GtfAttrsSet = GtfAttrsSet.FLAIR): """parse a GTF file into a GtfData object. Use attrs=GtfAttrsSet.FLAIR @@ -463,8 +493,9 @@ def gtf_data_parser(gtf_file, *, include_features: StrSetNone = None, attrs: Gtf gtf_data = GtfData() transcript_id_to_exons = defaultdict(list) transcript_id_to_cds_recs = defaultdict(list) - _load_gtf_records(gtf_file, gtf_data, transcript_id_to_exons, transcript_id_to_cds_recs, include_features, _ATTRS_SET_TO_PARSER[attrs]) - _resolve_gtf_records(gtf_data, transcript_id_to_exons, transcript_id_to_cds_recs) + transcript_id_to_start_codons = defaultdict(lambda: None) + _load_gtf_records(gtf_file, gtf_data, transcript_id_to_exons, transcript_id_to_cds_recs, transcript_id_to_start_codons, include_features, _ATTRS_SET_TO_PARSER[attrs]) + _resolve_gtf_records(gtf_data, transcript_id_to_exons, transcript_id_to_cds_recs, transcript_id_to_start_codons) return gtf_data def gtf_write_row(gtf_fh, chrom, source, feature, start, end, score, strand, frame, *, diff --git a/src/flair/gtf_to_bed.py b/src/flair/gtf_to_bed.py index 397e9d91..048e013f 100755 --- a/src/flair/gtf_to_bed.py +++ b/src/flair/gtf_to_bed.py @@ -1,8 +1,8 @@ #!/usr/bin/env python3 -import sys -import csv -import os import argparse +from flair.gtf_io import gtf_record_parser, GtfAttrsSet +from flair.pycbio.hgdata.bed import Bed, BedBlock + def main(): parser = argparse.ArgumentParser(description='''converts a gtf to a bed, depending on the output filename extension; @@ -11,83 +11,62 @@ def main(): required.add_argument('gtf', type=str, help='annotated gtf') required.add_argument('bed', type=str, help='bed file') parser.add_argument('--include_gene', action='store_true', dest='include_gene', required=False, - help='''Include gene name in the isoform name''') + help='''Include gene name in the isoform name''') args = parser.parse_args() gtf_to_bed(args.bed, args.gtf, args.include_gene) -def write_bed_row(include_gene, iso_to_cds, prev_transcript, blockstarts, blocksizes, prev_gene, prev_chrom, prev_strand, writer): +def write_bed_row(include_gene, iso_to_cds, prev_transcript, blockstarts, blocksizes, prev_gene, prev_chrom, prev_strand, fh): blockcount = len(blockstarts) if blockcount > 1 and blockstarts[0] > blockstarts[1]: # need to reverse exons blocksizes = blocksizes[::-1] blockstarts = blockstarts[::-1] tstart, tend = blockstarts[0], blockstarts[-1] + blocksizes[-1] # target (e.g. chrom) - qsize = sum(blocksizes) # query (e.g. transcript) if include_gene: - qname = prev_transcript+'_'+prev_gene + qname = prev_transcript + '_' + prev_gene else: qname = prev_transcript - blocksizes = ','.join([str(b) for b in blocksizes]) + ',' - - relblockstarts = [block - tstart for block in blockstarts] - relblockstarts = ','.join([str(b) for b in relblockstarts]) + ',' if qname in iso_to_cds: cds_start, cds_end = iso_to_cds[qname] else: cds_start, cds_end = tstart, tend - writer.writerow([prev_chrom, tstart, tend, qname, 1000, prev_strand, cds_start, - cds_end, 0, blockcount, blocksizes, relblockstarts]) + blocks = [BedBlock(blockstarts[i], blockstarts[i] + blocksizes[i]) for i in range(blockcount)] + Bed(prev_chrom, tstart, tend, name=qname, score=1000, strand=prev_strand, + thickStart=cds_start, thickEnd=cds_end, itemRgb='0', blocks=blocks).write(fh) -def get_iso_info(gtf, adjustpos = True): +def get_iso_info(gtf): iso_to_cds = {} iso_to_exons = {} iso_to_info = {} - # prev_transcript, blockstarts, blocksizes, prev_gene, prev_chrom, prev_strand = [None, None, None, None, None, None] - for line in open(gtf): # extract all exons from the gtf, keep exons grouped by transcript - if line.startswith('#') or (len(line.rstrip()) == 0): - continue - line = line.rstrip().split('\t') - chrom, ty, start, end, strand = line[0], line[2], int(line[3]), int(line[4]), line[6] - if adjustpos: start -= 1 - if ty == 'CDS' or ty == 'exon': - this_transcript = line[8][line[8].find('transcript_id') + 15:] - this_transcript = this_transcript[:this_transcript.find('"')] - if ty == 'CDS': - if this_transcript not in iso_to_cds: - iso_to_cds[this_transcript] = [start, end] - elif end > iso_to_cds[this_transcript][1]: - iso_to_cds[this_transcript][1] = end - if ty == 'exon': - if this_transcript not in iso_to_exons: - iso_to_exons[this_transcript] = [] - prev_gene = line[8][line[8].find('gene_id') + 9:] - prev_gene = prev_gene[:prev_gene.find('"')] - prev_gene = prev_gene.replace('_', '-') - iso_to_info[this_transcript] = (chrom, strand, prev_gene) - iso_to_exons[this_transcript].append((start, end)) + for rec in gtf_record_parser(gtf, include_features={'exon', 'CDS'}, attrs=GtfAttrsSet.ALL): + if rec.feature == 'CDS': + if rec.transcript_id not in iso_to_cds: + iso_to_cds[rec.transcript_id] = [rec.start, rec.end] + elif rec.end > iso_to_cds[rec.transcript_id][1]: + iso_to_cds[rec.transcript_id][1] = rec.end + elif rec.feature == 'exon': + if rec.transcript_id not in iso_to_exons: + iso_to_exons[rec.transcript_id] = [] + gene_id = rec.gene_id.replace('_', '-') + iso_to_info[rec.transcript_id] = (rec.chrom, rec.strand, gene_id) + iso_to_exons[rec.transcript_id].append((rec.start, rec.end)) return iso_to_info, iso_to_exons, iso_to_cds def gtf_to_bed(outputfile, gtf, include_gene=False): - with open(outputfile, 'wt') as outfile: - writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) iso_to_info, iso_to_exons, iso_to_cds = get_iso_info(gtf) - for this_transcript in iso_to_exons: chrom, strand, gene = iso_to_info[this_transcript] exons = sorted(iso_to_exons[this_transcript]) blockstarts = [x[0] for x in exons] - blocksizes = [x[1]-x[0] for x in exons] - - write_bed_row(include_gene, iso_to_cds, this_transcript, blockstarts, blocksizes, gene, chrom, strand, writer) - - + blocksizes = [x[1] - x[0] for x in exons] + write_bed_row(include_gene, iso_to_cds, this_transcript, blockstarts, blocksizes, gene, chrom, strand, outfile) if __name__ == "__main__": diff --git a/src/flair/identify_annotated_gene.py b/src/flair/identify_annotated_gene.py index 6e9f0833..00b98bd2 100755 --- a/src/flair/identify_annotated_gene.py +++ b/src/flair/identify_annotated_gene.py @@ -3,15 +3,7 @@ import csv import os from flair import FlairInputDataError - -try: - psl = open(sys.argv[1]) - ref = open(sys.argv[2]) - outfilename = sys.argv[3] - genepred = sys.argv[2][-3:].lower() == 'gp' -except: - raise FlairInputDataError('usage: identify_annotated_gene.py psl ref.gtf/ref.gp isos_matched.psl') - +from flair.gtf_io import gtf_record_parser, GtfAttrsSet def get_junctions(line): junctions = set() @@ -19,8 +11,8 @@ def get_junctions(line): sizes = [int(n) - 1 for n in line[18].split(',')[:-1]] # for indexing purposes if len(starts) == 1: return - for b in range(len(starts)-1): # block - junctions.add((starts[b]+sizes[b], starts[b+1])) + for b in range(len(starts) - 1): # block + junctions.add((starts[b] + sizes[b], starts[b + 1])) return junctions @@ -28,17 +20,17 @@ def bin_search(query, data): """ Query is a coordinate interval. Binary search for the query in sorted data, which is a list of coordinates. Finishes when an overlapping value of query and data exists and returns the index in data. """ - i = int(round(len(data)/2)) # binary search prep + i = int(round(len(data) / 2)) # binary search prep lower, upper = 0, len(data) while True: if upper - lower < 2: # stop condition but not necessarily found break if data[i][1] < query[0]: lower = i - i = int(round((i + upper)/2)) + i = int(round((i + upper) / 2)) elif data[i][0] > query[1]: upper = i - i = int(round((lower + i)/2)) + i = int(round((lower + i) / 2)) else: # found break return i @@ -47,124 +39,121 @@ def bin_search(query, data): def contained(coords0, coords1, tol=0): """ complete coverage of coords0 by coords1, and coords0 can be tol larger. if coords0 is contained by coords1, then return the number of overlapping basepairs """ - if coords0[1] > coords1[0] and coords1[0] <= coords0[0]+tol and coords1[1] >= coords0[1]-tol: + if coords0[1] > coords1[0] and coords1[0] <= coords0[0] + tol and coords1[1] >= coords0[1] - tol: return min(coords1[1], coords0[1]) - max(coords1[0], coords0[0]) return -prev_transcript, prev_exon = '', '' -all_juncs = {} # matches a splice junction to gene name -all_se = {} # single exon genes -# annotated_juncs = {} # deprecated -prev_start = None -prev_end = None -junctions = None - -if genepred: # reading in annotated splice junctions - for line in ref: - line = line.rstrip().split('\t') - gene, chrom, strand, numblocks = line[0], line[1], line[2], int(line[7]) - blockstarts = [int(n) + 1 for n in line[8].split(',')[:-1]] - blockends = [int(n) for n in line[9].split(',')[:-1]] - if chrom not in all_juncs: - # annotated_juncs[chrom] = [] - all_juncs[chrom] = {} - all_se[chrom] = [] - if numblocks == 1: - all_se[chrom] += [(blockstarts[0], blockends[0])] - continue - # junctions = set() - for start, end in zip(blockstarts[1:], blockends[:-1]): - # junctions.add((end, start)) - all_juncs[chrom][(end, start)] = gene - # annotated_juncs[chrom] += [(junctions, gene)] -else: - for line in ref: # extract all exons from the gtf, keep exons grouped by transcript - if line.startswith('#'): - continue - line = line.rstrip().split('\t') - chrom, ty, start, end, strand = line[0], line[2], int(line[3]), int(line[4]), line[6] - if ty != 'exon': - continue - if chrom not in all_juncs: - # annotated_juncs[chrom] = [] - all_juncs[chrom] = {} - all_se[chrom] = [] - - if 'gene_id' in line[8]: - prev_gene = line[8][line[8].find('gene_id')+9:] - prev_gene = prev_gene[:prev_gene.find('"')] - this_transcript = line[8][line[8].find('transcript_id')+15:] - this_transcript = this_transcript[:this_transcript.find('"')] - elif 'geneid' in line[8].lower(): - prev_gene = line[8][line[8].find('geneid'):] - prev_gene = prev_gene[:prev_gene.find(',')] - this_transcript = line[8][line[8].find('transcript_id')+14:] - else: - raise ValueError('GTF format info column gene and transcript ids not recognized') - - if this_transcript != prev_transcript: - if prev_transcript: - if not junctions: # single exon gene - all_se[chrom] += [prev_exon] - # annotated_juncs[chrom] += [(junctions, prev_gene)] - junctions = set() - prev_transcript = this_transcript - elif strand == '-': - junctions.add((end, prev_start)) - all_juncs[chrom][(end, prev_start)] = prev_gene - else: - junctions.add((prev_end, start)) - all_juncs[chrom][(prev_end, start)] = prev_gene - prev_start = start - prev_end = end - prev_exon = (start, end, prev_gene) - # annotated_juncs[chrom] += [(junctions, prev_transcript)] - -for chrom in all_se: - all_se[chrom] = sorted(list(all_se[chrom]), key=lambda x: x[0]) - -with open(outfilename, 'wt') as outfile: - writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - for line in psl: - line = line.rstrip().split('\t') - - if ';' in line[9][-3:]: - line[9] = line[9][:line[9].rfind(';')] - - chrom = line[13] - if chrom not in all_juncs: - line[9] += '_chromnotinreference' - writer.writerow(line) # chrom not in the reference - continue - junctions = get_junctions(line) - - if '_EN' in line[9] or '_chr' in line[9] or '_chrom' in line[9]: # already annotated - writer.writerow(line) - continue - - gene_hits = {} - if not junctions: - exon = (int(line[15]), int(line[16])) - i = bin_search(exon, all_se[chrom]) - for e in all_se[chrom][i-2:i+2]: - overlap = contained(exon, e, 20) - if overlap: - gene_hits[e[2]] = float(overlap)/(exon[1]-exon[0]) # gene name, % overlap - else: - for j in junctions: - if j in all_juncs[chrom]: - gene = all_juncs[chrom][j] - if gene not in gene_hits: - gene_hits[gene] = 0 - gene_hits[gene] += 1 # gene name, number of hits - - if not gene_hits: - starts = [int(x) for x in line[20].split(',')[:-1]] # block/exon starts - line[9] += '_' + chrom + ':' + str(starts[0])[:-3] + '000' - writer.writerow(line) - else: - genes = sorted(gene_hits.items(), key=lambda x: x[1]) - gene = genes[-1][0] - line[9] += '_' + gene - writer.writerow(line) +# FIXME: use argparse + +def main(): # noqa C901 + try: + psl = open(sys.argv[1]) + ref = open(sys.argv[2]) + outfilename = sys.argv[3] + genepred = sys.argv[2][-3:].lower() == 'gp' + except Exception: + raise FlairInputDataError('usage: identify_annotated_gene.py psl ref.gtf/ref.gp isos_matched.psl') + + prev_transcript, prev_exon = '', '' + all_juncs = {} # matches a splice junction to gene name + all_se = {} # single exon genes + # annotated_juncs = {} # deprecated + prev_start = None + prev_end = None + junctions = None + + if genepred: # reading in annotated splice junctions # noqa: C901 - FIXME: reduce complexity + for line in ref: + line = line.rstrip().split('\t') + gene, chrom, strand, numblocks = line[0], line[1], line[2], int(line[7]) + blockstarts = [int(n) + 1 for n in line[8].split(',')[:-1]] + blockends = [int(n) for n in line[9].split(',')[:-1]] + if chrom not in all_juncs: + # annotated_juncs[chrom] = [] + all_juncs[chrom] = {} + all_se[chrom] = [] + if numblocks == 1: + all_se[chrom] += [(blockstarts[0], blockends[0])] + continue + # junctions = set() + for start, end in zip(blockstarts[1:], blockends[:-1]): + # junctions.add((end, start)) + all_juncs[chrom][(end, start)] = gene + # annotated_juncs[chrom] += [(junctions, gene)] + else: + for rec in gtf_record_parser(sys.argv[2], include_features={'exon'}, attrs=GtfAttrsSet.ALL): + chrom, start, end, strand = rec.chrom, rec.start, rec.end, rec.strand + prev_gene = rec.gene_id + this_transcript = rec.transcript_id + if chrom not in all_juncs: + all_juncs[chrom] = {} + all_se[chrom] = [] + + if this_transcript != prev_transcript: + if prev_transcript: + if not junctions: # single exon gene + all_se[chrom] += [prev_exon] + junctions = set() + prev_transcript = this_transcript + elif strand == '-': + junctions.add((end, prev_start)) + all_juncs[chrom][(end, prev_start)] = prev_gene + else: + junctions.add((prev_end, start)) + all_juncs[chrom][(prev_end, start)] = prev_gene + prev_start = start + prev_end = end + prev_exon = (start, end, prev_gene) + + for chrom in all_se: + all_se[chrom] = sorted(list(all_se[chrom]), key=lambda x: x[0]) + + with open(outfilename, 'wt') as outfile: + writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) + for line in psl: # noqa: C901 - FIXME: reduce complexity + line = line.rstrip().split('\t') + + if ';' in line[9][-3:]: + line[9] = line[9][:line[9].rfind(';')] + + chrom = line[13] + if chrom not in all_juncs: + line[9] += '_chromnotinreference' + writer.writerow(line) # chrom not in the reference + continue + junctions = get_junctions(line) + + if '_EN' in line[9] or '_chr' in line[9] or '_chrom' in line[9]: # already annotated + writer.writerow(line) + continue + + gene_hits = {} + if not junctions: + exon = (int(line[15]), int(line[16])) + i = bin_search(exon, all_se[chrom]) + for e in all_se[chrom][i - 2:i + 2]: + overlap = contained(exon, e, 20) + if overlap: + gene_hits[e[2]] = float(overlap) / (exon[1] - exon[0]) # gene name, % overlap + else: + for j in junctions: + if j in all_juncs[chrom]: + gene = all_juncs[chrom][j] + if gene not in gene_hits: + gene_hits[gene] = 0 + gene_hits[gene] += 1 # gene name, number of hits + + if not gene_hits: + starts = [int(x) for x in line[20].split(',')[:-1]] # block/exon starts + line[9] += '_' + chrom + ':' + str(starts[0])[:-3] + '000' + writer.writerow(line) + else: + genes = sorted(gene_hits.items(), key=lambda x: x[1]) + gene = genes[-1][0] + line[9] += '_' + gene + writer.writerow(line) + + +if __name__ == "__main__": + main() diff --git a/src/flair/identify_gene_isoform.py b/src/flair/identify_gene_isoform.py index 92aba5ea..9a72e41e 100755 --- a/src/flair/identify_gene_isoform.py +++ b/src/flair/identify_gene_isoform.py @@ -1,29 +1,29 @@ #!/usr/bin/env python3 -import sys import csv import os import argparse from flair.gtf_to_bed import get_iso_info +from flair.pycbio.hgdata.bed import BedReader def main(): parser = argparse.ArgumentParser(description='''identifies the most likely gene id associated with each isoform and renames the isoform''') parser.add_argument('bed', type=str, - action='store', help='isoforms in bed format') + action='store', help='isoforms in bed format') parser.add_argument('gtf', type=str, - action='store', help='annotated isoform gtf') + action='store', help='annotated isoform gtf') parser.add_argument('outfilename', type=str, - action='store', help='Name of output file') + action='store', help='Name of output file') parser.add_argument('--proportion', action='store', default=0.8, dest='proportion_annotated_covered', - type=float, help='''proportion should be a decimal < 1 specifying the % of an annotated single-exon - gene a FLAIR isoform has to cover (default=0.8)''') + type=float, help='''proportion should be a decimal < 1 specifying the % of an annotated single-exon + gene a FLAIR isoform has to cover (default=0.8)''') parser.add_argument('--annotation_reliant', action='store_true', dest='annotation_reliant', - help='name all isoforms with -* starting with -0') + help='name all isoforms with -* starting with -0') parser.add_argument('--gene_only', action='store_true', dest='gene_only', - help='only append gene name to read name') + help='only append gene name to read name') parser.add_argument('--field_name', action='store', dest='field_name', default='gene_id', - help='field name to use for gene id, e.g. gene_type or gene_name (default: gene_id)') + help='field name to use for gene id, e.g. gene_type or gene_name (default: gene_id)') args = parser.parse_args() identify_gene_isoform(gtf=args.gtf, field_name=args.field_name, outfilename=args.outfilename, @@ -34,24 +34,21 @@ def main(): def get_junctions(line): junctions = set() - starts = [int(n) + 1 for n in line[20].split(',')[:-1]] - sizes = [int(n) - 1 for n in line[18].split(',')[:-1]] # for indexing pupropses + starts = [int(n) + 1 for n in line[20].rstrip(',').split(',')] + sizes = [int(n) - 1 for n in line[18].rstrip(',').split(',')] # for indexing pupropses if len(starts) == 1: return - for b in range(len(starts)-1): # block - junctions.add((starts[b]+sizes[b], starts[b+1])) + for b in range(len(starts) - 1): # block + junctions.add((starts[b] + sizes[b], starts[b + 1])) return junctions -def get_junctions_bed12(line): +def get_junctions_bed12(bed): junctions = set() - chrstart = int(line[1]) - starts = [int(n) + chrstart + 1 for n in line[11].split(',')[:-1]] - sizes = [int(n) - 1 for n in line[10].split(',')[:-1]] - if len(starts) == 1: + if len(bed.blocks) == 1: return - for b in range(len(starts)-1): # block - junctions.add((starts[b]+sizes[b], starts[b+1])) + for b in range(len(bed.blocks) - 1): # block + junctions.add((bed.blocks[b].end, bed.blocks[b + 1].start + 1)) return junctions @@ -59,17 +56,17 @@ def bin_search(query, data): """ Query is a coordinate interval. Binary search for the query in sorted data, which is a list of coordinates. Finishes when an overlapping value of query and data exists and returns the index in data. """ - i = int(round(len(data)/2)) # binary search prep + i = int(round(len(data) / 2)) # binary search prep lower, upper = 0, len(data) while True: if upper - lower < 2: # stop condition but not necessarily found break if data[i][1] < query[0]: lower = i - i = int(round((i + upper)/2)) + i = int(round((i + upper) / 2)) elif data[i][0] > query[1]: upper = i - i = int(round((lower + i)/2)) + i = int(round((lower + i) / 2)) else: # found break return i @@ -85,7 +82,7 @@ def overlapping_bases(coords0, coords1): def update_tn_dicts(chrom, junctions, prev_transcript, prev_exon, junc_to_tn, - tn_to_juncs, all_se): + tn_to_juncs, all_se): if chrom not in junc_to_tn: junc_to_tn[chrom] = {} tn_to_juncs[chrom] = {} @@ -112,7 +109,7 @@ def update_gene_dicts(chrom, j, gene, junctions, gene_unique_juncs, junc_to_gene return junctions, gene_unique_juncs, junc_to_gene -def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proportion_annotated_covered=0.8, +def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proportion_annotated_covered=0.8, # noqa: C901 - FIXME: reduce complexity gene_only=False, annotation_reliant=False): junc_to_tn = {} # matches intron to transcript; chrom: {intron: [transcripts], ... } tn_to_juncs = {} # matches transcript to intron; i.e. chrom: {transcript_name: (junction1, junction2), ... } @@ -129,9 +126,9 @@ def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proport if chrom not in junc_to_gene: junc_to_gene[chrom] = {} junctions = set() - for i in range(len(exons)-1): - junctions, gene_unique_juncs, junc_to_gene = update_gene_dicts(chrom, (exons[i][1], exons[i+1][0]), gene, - junctions,gene_unique_juncs, junc_to_gene) + for i in range(len(exons) - 1): + junctions, gene_unique_juncs, junc_to_gene = update_gene_dicts(chrom, (exons[i][1], exons[i + 1][0]), gene, + junctions, gene_unique_juncs, junc_to_gene) junc_to_tn, tn_to_juncs, all_se = update_tn_dicts(chrom, junctions, transcript, (exons[-1][0], exons[-1][1], gene), junc_to_tn, tn_to_juncs, all_se) @@ -142,10 +139,9 @@ def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proport name_counts = {} # to avoid redundant names with open(outfilename, 'wt') as outfile: writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - for line in open(query): - line = line.rstrip().split('\t') - junctions = get_junctions_bed12(line) - chrom, name, start, end = line[0], line[3], int(line[1]), int(line[2]) + for bed in BedReader(query, fixScores=True): + junctions = get_junctions_bed12(bed) + chrom, name, start, end = bed.chrom, bed.name, bed.chromStart, bed.chromEnd if ';' in name: name = name[:name.find(';')] @@ -157,8 +153,8 @@ def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proport name = name + '-' + str(name_counts[name]) noref = chrom + ':' + str(start)[:-3] + '000' newname = name + '_' + noref - line[3] = newname - writer.writerow(line) + bed.name = newname + writer.writerow(bed.toRow()) continue gene_hits = {} @@ -166,13 +162,13 @@ def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proport if not junctions: exon = (start, end) i = bin_search(exon, all_se[chrom]) - for e in all_se[chrom][i-2:i+2]: + for e in all_se[chrom][i - 2:i + 2]: overlap = overlapping_bases(exon, e) if overlap: - proportion = float(overlap)/(exon[1]-exon[0]) # base coverage of long-read isoform by the annotated isoform - proportion2 = float(overlap)/(e[1]-e[0]) # base coverage of the annotated isoform by the long-read isoform + proportion = float(overlap) / (exon[1] - exon[0]) # base coverage of long-read isoform by the annotated isoform + proportion2 = float(overlap) / (e[1] - e[0]) # base coverage of the annotated isoform by the long-read isoform if proportion > 0.5 and proportion2 > proportion_annotated_covered: - if e[2] in gene_hits: # gene name + if e[2] in gene_hits: # gene name if proportion <= gene_hits[e[2]]: continue gene_hits[e[2]] = proportion @@ -188,13 +184,13 @@ def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proport if not gene_hits: # gene name will just be a chromosome locus gene = chrom + ':' + str(start)[:-3] + '000' else: # gene name will be whichever gene the entry has more shared junctions with - genes = sorted(gene_hits.items(), key=lambda x: x[1]) # sort by number of junctions shared with gene - if len(genes) > 1 and genes[-1][1] == genes[-2][1]: # tie, break by gene size + genes = sorted(gene_hits.items(), key=lambda x: x[1]) # sort by number of junctions shared + if len(genes) > 1 and genes[-1][1] == genes[-2][1]: # tie, break by gene size genes = sorted(genes, key=lambda x: x[0]) genes = sorted(genes, key=lambda x: x[1]) if not junctions: g = genes[-1], se_gene_tiebreaker[genes[-1][0]] - for i in reversed(range(len(genes)-1)): + for i in reversed(range(len(genes) - 1)): if genes[i][1] == g[0][1]: if se_gene_tiebreaker[genes[i][0]] > g[1]: g = genes[i], se_gene_tiebreaker[genes[i][0]] @@ -203,7 +199,7 @@ def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proport genes[-1] = g[0] else: g = genes[-1], len(gene_unique_juncs[genes[-1][0]]) - for i in reversed(range(len(genes)-1)): + for i in reversed(range(len(genes) - 1)): if genes[i][1] == g[0][1]: if len(gene_unique_juncs[genes[i][0]]) < g[1]: g = genes[i], len(gene_unique_juncs[genes[i][0]]) @@ -236,10 +232,12 @@ def identify_gene_isoform(gtf, outfilename, query, field_name='gene_id', proport name_counts[name] += 1 newname = name + '-' + str(name_counts[name]) + '_' + gene - line[3] = newname - line[8] = "20,47,181" if transcript else "232,142,23" ##blue if annotated, orange if novel - if line[9] == '1': line[8] = "242,208,17" #yellow if monoexon - writer.writerow(line) + bed.name = newname + bed.itemRgb = "20,47,181" if transcript else "232,142,23" # blue if annotated, orange if novel + if bed.blockCount == 1: + bed.itemRgb = "242,208,17" # yellow if monoexon + writer.writerow(bed.toRow()) + if __name__ == "__main__": main() diff --git a/src/flair/identify_prelim_fusions.py b/src/flair/identify_prelim_fusions.py new file mode 100644 index 00000000..f7430742 --- /dev/null +++ b/src/flair/identify_prelim_fusions.py @@ -0,0 +1,283 @@ +#!/usr/bin/env python3 + +import pysam +import argparse +from collections import Counter +from statistics import median +from flair.convert_synthetic_to_genome_bed import identify_fusion_problems + + +def binarySearch(arr, t): + if t <= arr[0]: + return arr[0] + if t >= arr[-1]: + return arr[-1] + i, j, mid = 0, len(arr) - 1, 0 + while i < j: + mid = int((i + j) / 2) + if arr[mid] == t: + return arr[mid] + elif t < arr[mid]: + if mid > 0 and t > arr[mid - 1]: + if abs(arr[mid] - t) < abs(arr[mid - 1] - t): + return arr[mid] + else: + return arr[mid - 1] + j = mid + else: + if mid < len(arr) - 1 and t < arr[mid + 1]: + if abs(arr[mid] - t) < abs(arr[mid + 1] - t): + return arr[mid] + else: + return arr[mid + 1] + i = mid + 1 + + +def getGenomicPreciseLoc(tname, bpCoord, genedir, intronLocs, intronToGenome): + closestSS = binarySearch(intronLocs[tname], bpCoord) + bpIntronEnds = intronToGenome[tname][closestSS] + genomeSS = None + diffFromSS = bpCoord - closestSS + if closestSS == 0: # start of gene + if genedir == '+': + genomeSS = bpIntronEnds[1] + else: + genomeSS = bpIntronEnds[0] + elif closestSS == max(intronLocs[tname]): # end of gene + if genedir == '+': + genomeSS = bpIntronEnds[0] + else: + genomeSS = bpIntronEnds[1] + elif genedir == '+': + if bpCoord >= closestSS: + genomeSS = bpIntronEnds[1] + else: + genomeSS = bpIntronEnds[0] + else: + if bpCoord >= closestSS: + genomeSS = bpIntronEnds[0] + else: + genomeSS = bpIntronEnds[1] + genomepos = None + if genedir == '+': + genomepos = genomeSS + diffFromSS + else: + genomepos = genomeSS - diffFromSS + return genomepos + + +def def_value(): + return set() + +def get_exon_intron_blocks(read): + align_start = read.reference_start + align_end = read.reference_end + ref_pos = align_start + intron_blocks = [] + has_match = False + for block in read.cigartuples: + if block[0] == 3: # intron + if has_match: + intron_blocks.append([ref_pos, ref_pos + block[1]]) + # this fixes weird bug if there's an intron, then an insertion, then another intron??? + elif len(intron_blocks) > 0: + intron_blocks[-1][1] += block[1] + has_match = False + ref_pos += block[1] + elif block[0] in {0, 7, 8, 2}: # consumes reference + ref_pos += block[1] + if block[0] in {0, 7, 8}: + has_match = True + intron_blocks = [tuple(x) for x in intron_blocks] + if len(intron_blocks) == 0: + exon_blocks = [(align_start, align_end),] + else: + exon_blocks = [(align_start, intron_blocks[0][0])] + [(intron_blocks[x][1], intron_blocks[x + 1][0]) for x in range(len(intron_blocks) - 1)] + [(intron_blocks[-1][1], align_end)] + return intron_blocks, exon_blocks + + +def getCorrectGene(chrom_to_gene_pos, gene_to_all_exons, juncs_to_gene, chrom, readblocks, thisdir): # noqa: C901 - FIXME: reduce complexity + intron_blocks, exon_blocks = readblocks + if chrom not in chrom_to_gene_pos: + my_gene = chrom + ':' + str(round(exon_blocks[0][0], -4)) + else: + found_genes = [] + for j in intron_blocks: + if j in juncs_to_gene[chrom]: + found_genes.extend(list(juncs_to_gene[chrom][j])) + if len(found_genes) > 0: + my_gene = Counter(found_genes).most_common()[0][0] + else: + s, e = exon_blocks[0][0], exon_blocks[-1][1] + gene_overlaps = [] + for start, end, strand, gene in chrom_to_gene_pos[chrom]: + if start > e: # assumes sorted + break + if strand == thisdir and min(e, end) > max(start, s): # require strand match + totoverlap = 0 + for es, ee in gene_to_all_exons[gene]: + overlap = min(e, ee) - max(es, s) + if overlap > 0: + totoverlap += overlap + gene_overlaps.append((totoverlap, gene)) + if len(gene_overlaps) > 0: + gene_overlaps.sort(reverse=True) + my_gene = gene_overlaps[0][1] + else: + my_gene = chrom + ':' + str(round(exon_blocks[0][0], -4)) + return my_gene + + +def id_chimeras(mode, bam, genetoinfo, chrom_to_gene_pos, gene_to_all_exons, juncs_to_gene, gene_to_paralogs, # noqa: C901 - FIXME: reduce complexity + genetoname, minsup, maxloci=10, reqdisttostart=None, maxpromiscuity=4, intronLocs=None, intronToGenome=None): + isrevtosign = {True: '-', False: '+'} + withsup = pysam.AlignmentFile(bam, "rb") + readToAligns = {} + for read in withsup: + if read.is_mapped and not read.is_secondary and read.has_tag('SA') and (mode == 'genomic' or not read.is_reverse): # if aligned to transcriptome, must match strand of transcript + rname = read.query_name + if rname not in readToAligns: + readToAligns[rname] = [] + + refstart, refend, readdir = read.reference_start, read.reference_end, isrevtosign[read.is_reverse] + qstart, qend = read.query_alignment_start, read.query_alignment_end + readlen = read.infer_read_length() + cigar = read.cigartuples + if cigar[0][0] == 5: # just hard clipping + qstart += cigar[0][1] + qend += cigar[0][1] + + if mode == 'genomic': + refchr = read.reference_name + genename = getCorrectGene(chrom_to_gene_pos, gene_to_all_exons, juncs_to_gene, refchr, get_exon_intron_blocks(read), readdir) + if readdir == '+': + readToAligns[rname].append([(qstart, refstart), (qend, refend), genename, readdir, refchr]) + else: + readToAligns[rname].append([(readlen - qend, refend), (readlen - qstart, refstart), genename, readdir, refchr]) + else: + genename = read.reference_name.split('_')[-1].split('.')[0] + tname = '_'.join(read.reference_name.split('_')[:-1]) + refchr, genedir = genetoinfo[genename][0], genetoinfo[genename][3] # can do this because already required the read to be forward strand + refstart = getGenomicPreciseLoc(tname, refstart, genedir, intronLocs, intronToGenome) + refend = getGenomicPreciseLoc(tname, refend, genedir, intronLocs, intronToGenome) + refstart, refend = min(refstart, refend), max(refstart, refend) + if genedir == '+': + readToAligns[rname].append([(qstart, refstart), (qend, refend), genename, readdir, refchr]) + else: + readToAligns[rname].append([(qstart, refend), (qend, refstart), genename, genedir, refchr]) + withsup.close() + + interestingloci = {} + for read in readToAligns: + alignedloci = sorted(readToAligns[read]) + + readgenes = [x[2] for x in alignedloci] + if 2 <= len(set(readgenes)) <= maxloci: + if readgenes[0] in gene_to_all_exons: # 5' gene is annotated + info = tuple(readgenes) + if info not in interestingloci: + interestingloci[info] = [] + interestingloci[info].append(read) + + goodcov = [] + for l in interestingloci: + if len(interestingloci[l]) >= minsup: + goodcov.append(l) + + locustopartners = {} + for fgenes in goodcov: + for i in fgenes: + other = set(fgenes) - {i, } + newother = frozenset([gene_to_paralogs[g] if g in gene_to_paralogs else g for g in other]) + if i not in locustopartners: + locustopartners[i] = set() + locustopartners[i].add(newother) + + fusiontoinfo = {} + for fgenes in goodcov: + genomic_chroms = [genetoinfo[g][0] if g in genetoinfo else g.split(':')[0] for g in fgenes] + is_good_fusion = identify_fusion_problems(fgenes, locustopartners, maxpromiscuity, genetoname, gene_to_paralogs, genomic_chroms, len(interestingloci[fgenes])) + if is_good_fusion: + numloci = len(fgenes) + qdist = [[] for x in range(numloci - 1)] + alignblocks = [[[], []] for x in range(numloci)] + goodreads = [] + for r in interestingloci[fgenes]: + if len(readToAligns[r]) == numloci: + alignedloci = sorted(readToAligns[r]) + goodreads.append(r) + for i in range(numloci - 1): + qdist[i].append(alignedloci[i][1][0] - alignedloci[i + 1][0][0]) + for i in range(numloci): + alignblocks[i][0].append(alignedloci[i][0][1]) + alignblocks[i][1].append(alignedloci[i][1][1]) + + # check that gene orders for all reads are consistent + # to start, no clustering, take simple min/max + for i in range(numloci): + strand = '+' if median(alignblocks[i][1]) > median(alignblocks[i][0]) else '-' + for j in range(2): + poslist = sorted(alignblocks[i][j]) + simplemed = median(poslist) + groups, g = [], [-500] + for p in poslist: + if p - g[-1] > 300: + if g[0] != -500: + groups.append(g) + g = [p] + else: + g.append(p) + groups.append(g) + goodpos = [] + for g in groups: + if len(g) > 1: + goodpos.extend(g) + if (strand == '+' and j == 0) or (strand == '-' and j == 1): + outpos = int(min(simplemed, min(goodpos))) - 1000 if len(goodpos) > 0 else int(simplemed) - 1000 + else: + outpos = int(max(simplemed, max(goodpos))) + 1000 if len(goodpos) > 0 else int(simplemed) + 1000 + outpos = max(0, outpos) + alignblocks[i][j] = outpos + + # check that 5' gene is in the forward direction, implies plausible promoter + if fgenes[0] in genetoinfo: + firstgenedir = genetoinfo[fgenes[0]][3] + firstgenetstarts = genetoinfo[fgenes[0]][-1] + end5 = alignblocks[0][0] # if firstgenedir == '+' else alignblocks[0][1] + if alignblocks[0][0] > alignblocks[0][1]: + end5 -= 1000 + else: + end5 += 1000 + mindisttostart = min([abs(end5 - x) for x in firstgenetstarts]) + + if ((firstgenedir == '+' and alignblocks[0][0] < alignblocks[0][1]) + or (firstgenedir == '-' and alignblocks[0][0] > alignblocks[0][1]))\ + and (reqdisttostart is None or mindisttostart <= reqdisttostart): + simscores = [] + for qdistlist in qdist: + simscore = [] + qdistlist = sorted(qdistlist) + for i in range(1, len(qdistlist)): + simscore.append(qdistlist[i] - qdistlist[i - 1]) + simscores.append(median(simscore)) + if max([abs(median(x)) for x in qdist]) <= 10 \ + or (max([abs(min(x)) for x in qdist]) <= 10 and max(simscores) <= 3): # alignments have to either have few gaps or be very consistent + fname = '__'.join(fgenes) + fusiontoinfo[fname] = {'reads': set(goodreads), 'disttostart': [mindisttostart], 'qdist': qdist} + for i in range(numloci): + fusiontoinfo[fname][fgenes[i]] = [genomic_chroms[i], alignblocks[i][0], alignblocks[i][1]] + + return fusiontoinfo + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='''for identifying chimeras from genomic alignment''') + parser.add_argument('-f', '--gtf', + help='specify isoforms.gtf') + parser.add_argument('-b', '--bam', + help='filtered bam file from alignment to genome') + parser.add_argument('-o', '--output', + help='output file name') + args = parser.parse_args() + + # annot, geneannot, genetoinfo = gchimparsegtf(args.gtf) diff --git a/src/flair/interval_index.py b/src/flair/interval_index.py new file mode 100644 index 00000000..936f723e --- /dev/null +++ b/src/flair/interval_index.py @@ -0,0 +1,59 @@ +""" +Lightweight per-chrom interval index backed by ruranges. + +Supports the build-once/query-many pattern used in flair. Intervals are +half-open ``[start, end)``; queries return the attached payload objects. +""" +import numpy as np +from ruranges import numpy as _rn + +_COORD_DTYPE = np.int64 + + +class IntervalIndex: + __slots__ = ("_starts", "_ends", "_data", + "_arr_starts", "_arr_ends", "_dirty") + + def __init__(self): + self._starts = [] + self._ends = [] + self._data = [] + self._arr_starts = None + self._arr_ends = None + self._dirty = False + + def __len__(self): + return len(self._data) + + def add(self, start, end, data): + self._starts.append(start) + self._ends.append(end) + self._data.append(data) + self._dirty = True + + def _freeze(self): + if not self._dirty and self._arr_starts is not None: + return + self._arr_starts = np.asarray(self._starts, dtype=_COORD_DTYPE) + self._arr_ends = np.asarray(self._ends, dtype=_COORD_DTYPE) + self._dirty = False + + def overlap(self, start, end, slack=0): + """Return list of payloads whose interval overlaps ``[start, end)``. + ``slack`` extends both sides of the query range.""" + if not self._data: + return [] + self._freeze() + qs = np.array([start], dtype=_COORD_DTYPE) + qe = np.array([end], dtype=_COORD_DTYPE) + idx1, _ = _rn.overlaps( + starts=self._arr_starts, ends=self._arr_ends, + starts2=qs, ends2=qe, + slack=slack, sort_output=False) + data = self._data + return [data[i] for i in idx1] + + def items(self): + "yield (start, end, data) for every interval" + for start, end, data in zip(self._starts, self._ends, self._data): + yield start, end, data diff --git a/src/flair/intron_support.py b/src/flair/intron_support.py index bf5a5a96..45230c29 100644 --- a/src/flair/intron_support.py +++ b/src/flair/intron_support.py @@ -3,9 +3,9 @@ """ import sys from collections import defaultdict -from intervaltree import IntervalTree from flair import MIN_INTRON_SIZE, MAX_INTRON_SIZE, FlairInputDataError from flair.gtf_io import GtfData +from flair.interval_index import IntervalIndex from flair.pycbio.hgdata.bed import BedReader from flair.pycbio.tsv import TsvReader @@ -34,16 +34,16 @@ class IntronSupport: Table of intron support index by both start and end positions """ def __init__(self, *, min_intron_size=MIN_INTRON_SIZE, max_intron_size=MAX_INTRON_SIZE): - # dict index by chrom of interval trees, keyed on first base of donor and last base of the acceptor sites - self.coords_maps = defaultdict(IntervalTree) + # dict index by chrom of per-chrom interval indexes, keyed on first base of donor and last base of the acceptor sites + self.coords_maps = defaultdict(IntervalIndex) self.min_intron_size = min_intron_size self.max_intron_size = max_intron_size self.chroms = set() def _find_point_strand(self, chrom, point, strand): - for entry in self.coords_maps[chrom][point]: - if entry.data.strand == strand: - return entry.data + for intron in self.coords_maps[chrom].overlap(point, point + 1): + if intron.strand == strand: + return intron return None def _find_intron(self, chrom, start, end, strand): @@ -57,8 +57,8 @@ def _find_intron(self, chrom, start, end, strand): def _add_intron(self, chrom, start, end, strand): assert start < end intron = SupportIntron(chrom, start, end, strand) - self.coords_maps[chrom].addi(start, start + 1, intron) - self.coords_maps[chrom].addi(end - 1, end, intron) + self.coords_maps[chrom].add(start, start + 1, intron) + self.coords_maps[chrom].add(end - 1, end, intron) self.chroms.add(chrom) return intron @@ -83,7 +83,7 @@ def add_support(self, chrom, start, end, strand, read_count=None): def overlap(self, chrom, start, end, flank_window=0): """Get list of overlapping introns where either ends overlaps this range with a +/-bp window""" - return [entry.data for entry in self.coords_maps[chrom].overlap(start - flank_window, end + flank_window)] + return self.coords_maps[chrom].overlap(start, end, slack=flank_window) def overlap_introns(self, chrom, start, end, flank_window=0): """get introns were splice junctions overlap each end of this range, @@ -102,19 +102,19 @@ def chroms(self): return self.coords_maps.keys() def entries(self, chrom=None): - "generator for (chrom, entries), optionally on a chrom (introns have two entries)" + "generator for (chrom, start, end, intron), optionally on a chrom (introns have two entries)" chroms = [chrom] if chrom is not None else self.chroms() for chrom in chroms: - for entry in self.coords_maps[chrom].items(): - yield chrom, entry + for start, end, intron in self.coords_maps[chrom].items(): + yield chrom, start, end, intron def introns(self, chrom=None): "generator for introns, optionally on a chrom" seen = set() # introns are in twice - for _, entry in self.entries(chrom): - if id(entry.data) not in seen: - yield entry.data - seen.add(id(entry.data)) + for _, _, _, intron in self.entries(chrom): + if id(intron) not in seen: + yield intron + seen.add(id(intron)) def subset_for_region(self, chrom, start, end): """Return a new IntronSupport with introns overlapping [start, end) on chrom. @@ -131,8 +131,8 @@ def subset_for_region(self, chrom, start, end): def dump(self, fh=sys.stderr): print("IntronSupport:", file=fh) - for chrom, entry in self.entries(): - print(f"{chrom}:{entry.begin}-{entry.end}: {entry.data}", file=fh) + for chrom, start, end, intron in self.entries(): + print(f"{chrom}:{start}-{end}: {intron}", file=fh) @staticmethod def _no_introns_loaded_error(file_name, file_desc, chrom_filter=None): @@ -144,7 +144,8 @@ def _no_introns_loaded_error(file_name, file_desc, chrom_filter=None): @staticmethod def _bed_strand_error(bed): - raise FlairInputDataError(f"Invalid strand `{bed.strand}' in BED must be `+', `-', or '.'") + raise FlairInputDataError(f"Invalid strand `{bed.strand}' in BED must be one of: " + + ", ".join([f"'{s}'" for s in _VALID_STRANDS])) def _load_intron_bed(self, bed, chrom_filter): if (chrom_filter is not None) and (bed.chrom != chrom_filter): diff --git a/src/flair/io_utils.py b/src/flair/io_utils.py new file mode 100644 index 00000000..207608d5 --- /dev/null +++ b/src/flair/io_utils.py @@ -0,0 +1,13 @@ +"""Filesystem / I/O helpers shared across FLAIR pipelines.""" + +import os + + +def make_temp_dir(out_prefix): + # FIXME: use TMPDIR unless directory explicitly specified + temp_dir = out_prefix + ".intermediate" + try: + os.makedirs(temp_dir, exist_ok=True) + except OSError as exc: + raise OSError(f"Creation of the directory `{temp_dir}' failed") from exc + return temp_dir + '/' diff --git a/src/flair/isoform_data.py b/src/flair/isoform_data.py index 60f52d60..284d0ae7 100644 --- a/src/flair/isoform_data.py +++ b/src/flair/isoform_data.py @@ -3,33 +3,76 @@ from collections import namedtuple from flair import PosRange from flair.pycbio.hgdata.bed import Bed - +from flair.flair_bed import FlairBed +from statistics import median +import pysam +import pipettor + +BED_FIELDS = [('string', 'chrom', "Reference sequence chromosome or scaffold"), + ('uint', 'chromStart', "Start position of feature on chromosome"), + ('uint', 'chromEnd', "End position of feature on chromosome"), + ('string', 'name', "Name of gene"), + ('uint', 'score', "Score"), + ('char[1]', 'strand', "+ or - for strand"), + ('uint', 'thickStart', "Coding region start"), + ('uint', 'thickEnd', "Coding region end"), + ('uint', 'itemRgb', 'An RGB value of the form R,G,B (e.g. 255,0,0)'), + ('int', 'blockCount', 'The number of blocks (exons) in the BED line'), + ('int[blockCount]', 'blockSizes', 'A comma-separated list of the block sizes. The number of items in this list should correspond to blockCount'), + ('int[blockCount]', 'chromStarts', 'A comma-separated list of block starts. All of the blockStart positions should be calculated relative to chromStart. The number of items in this list should correspond to blockCount'), + ] + +EXTRA_BED_FIELDS = [('string', 'gene_id', "unique gene ID generated by FLAIR"), + ('string', 'ref_transcript_id', "transcript_id from reference gtf file or generated by FLAIR"), + ('string', 'gene_desc', "gene_id from reference gtf file or novel gene region identified by FLAIR"), + ('int', 'read_support', "number of full-length reads supporting transcript"), + ('float', 'frac_support', "isoform support as fraction of total reads for gene"), + ('string', 'productivity', "PRO (productive), PTC (premature termination codon, i.e. unproductive), NGO (no start codon), or NST (has start codon but no stop codon)") + ] + +POLYA_MIN_FRAC = 0.6 +POLYA_SEARCH_WINDOW = 5 +POLYA_MIN_LEN = 10 +INTPRIM_MIN_FRAC = 0.6 +INTPRIM_MIN_AS = 8 +INTPRIM_SEARCH_WINDOW = 50 #### # basic types #### class Junc(PosRange): - """Stores start, end, just adds a type name to PosRange for clearer code and error messages""" + """Splice junction interval (start, end), a type alias for PosRange.""" pass -class Exon(PosRange): - """Stores start, end, just adds a type name to PosRange for clearer code and error messages""" - pass +class JuncChain(namedtuple("JuncChain", ("chrom", "strand", "juncs"))): + """A chain of splice junctions on a single chromosome and strand.""" + def __new__(cls, chrom, strand, juncs): + return super().__new__(cls, chrom, strand, tuple(juncs)) -ISO_SRC_ANNOT = 'annot' -ISO_SRC_NOVEL = 'novel' + @classmethod + def from_exons(cls, chrom, strand, exons): + """Create a JuncChain from a list of exons.""" + juncs = tuple(Junc(exons[i].end, exons[i + 1].start) + for i in range(len(exons) - 1)) + return cls(chrom, strand, juncs) -class IsoIdSrc(namedtuple("IsoIdSrc", - ("id", "src"))): - """isoform identifier along with the source of the isoform""" - # FIXME: it is unclear if this is the best way to store the information, - # this was create as a transition from iso (id) or (iso_id) (marker, id) - pass +class Exon(namedtuple("Exon", ("start", "end", "name"))): + def __new__(cls, start, end, name=None): + assert start <= end + if name is None: + name = '' + return super(Exon, cls).__new__(cls, start, end, name) + + def __len__(self): + return self.end - self.start +ISO_SRC_ANNOT = 'annot' +ISO_SRC_NOVEL = 'novel' + def exons_to_juncs(exons): """Convert exon ranges to junctions""" return [Junc(exons[i].end, exons[i + 1].start) @@ -37,7 +80,6 @@ def exons_to_juncs(exons): def bed_to_junctions(bed): - # FIXME: a junctions object might be good return [Junc(bed.blocks[i - 1].end, bed.blocks[i].start) for i in range(1, bed.blockCount)] @@ -110,6 +152,81 @@ def binary_search(query, data): return i +def make_big_bed(genome, chrom_sizes_file_name, output_name, output_prefix, my_fields): + with open(chrom_sizes_file_name, 'w') as fh: + for chrom in genome.references: + fh.write(chrom + '\t' + str(genome.get_reference_length(chrom)) + '\n') + write_as_file(my_fields, output_prefix + '.as', output_name.replace('-', '').replace('.', ''), f'FLAIR isoforms for {output_name}') + pipettor.run([('bedToBigBed', f'-as={output_prefix}.as', '-type=bed12+', f'{output_prefix}.bed', chrom_sizes_file_name, f'{output_prefix}.bb', '-sort', '-tab')]) + +def write_as_file(fields, filename, tablename, description): + with open(filename, 'w') as as_fh: + as_fh.write(f'table {tablename}\n"{description}"\n(\n') + for field in fields: + as_fh.write(field[0] + '\t' + field[1] + ';\t"' + field[2] + '"\n') + as_fh.write(')') + +def add_blocks_from_readrec(bed, readrec): + exon_starts, exon_sizes = get_bed_exons_from_juncs(readrec.juncs, readrec.start, readrec.end) + for i in range(len(exon_starts)): + blk_start = readrec.start + exon_starts[i] + bed.addBlock(blk_start, blk_start + exon_sizes[i]) + +def convert_to_bed12(readrec): + """Create and return a Bed object.""" + bed = Bed(readrec.chrom, readrec.start, readrec.end, readrec.name, + score=readrec.score, strand=readrec.strand, + thickStart=readrec.start, thickEnd=readrec.end, + itemRgb=get_rgb(readrec.strand, len(readrec.juncs))) + add_blocks_from_readrec(bed, readrec) + return bed + +def convert_to_flair_bed(readrec, thickStart=None, thickEnd=None, itemRgb=None, + read_support=None, frac_support=None, productivity=None): + if read_support is not None: + readrec.score = read_support + if itemRgb is None: + itemRgb = get_rgb(readrec.strand, len(readrec.juncs)) + bed = FlairBed(readrec.chrom, readrec.start, readrec.end, readrec.name, score=readrec.score, strand=readrec.strand, + thickStart=thickStart, thickEnd=thickEnd, itemRgb=itemRgb, + gene_id=readrec.gene_id, ref_transcript_id=readrec.ref_transcript_id, ref_gene_mappings=readrec.gene.gene_desc, + read_support=read_support, frac_support=frac_support, productivity=productivity) + add_blocks_from_readrec(bed, readrec) + return bed + +def get_exons(readrec): + """Return exons as list of Exon objects, computed from start, end, and juncs.""" + if not readrec.juncs: + return [Exon(readrec.start, readrec.end)] + exons = [Exon(readrec.start, readrec.juncs[0].start)] + for i in range(len(readrec.juncs) - 1): + exons.append(Exon(readrec.juncs[i].end, readrec.juncs[i + 1].start)) + exons.append(Exon(readrec.juncs[-1].end, readrec.end)) + return exons + + +def check_intprim(end_seq): + i = 10 + while i < len(end_seq) and end_seq[:i].count('A') / i >= INTPRIM_MIN_FRAC: + i += 1 + j = end_seq[:i].count('A') + if j < INTPRIM_MIN_AS or j / i < INTPRIM_MIN_FRAC: + return 0 + else: + return j + +def _check_polyA(end_seq): + """Check for a poly-base run using a rolling window.""" + if len(end_seq) < POLYA_SEARCH_WINDOW: + return 0 + i = POLYA_SEARCH_WINDOW + while i < len(end_seq) and end_seq[i - POLYA_SEARCH_WINDOW:i].count('A') / POLYA_SEARCH_WINDOW >= POLYA_MIN_FRAC: + i += 1 + j = end_seq[:i].rfind('A') + 1 + if j < POLYA_MIN_LEN: + return 0 + return j + class ReadRec: """Read alignment with location, junction, and metadata fields. @@ -128,17 +245,66 @@ class ReadRec: def _intern_juncs(cls, juncs): return cls._juncs_cache.setdefault(juncs, juncs) - def __init__(self, chrom, start, end, name, score, strand, juncs): + def __init__(self, chrom, strand, juncs, start, end, name, *, score=None, polyA=None, intprim=None): self.chrom = chrom + self.strand = strand + self.juncs = self._intern_juncs(juncs) self.start = start self.end = end self.name = name self.score = score + self.polyA = polyA # (left int, right int) + self.intprim = intprim # (left int, right int) + + @property + def exons(self): + return get_exons(self) + + def reset_from_exons(self, exons): + """Update ReadRec from a list of Exon objects.""" + self.start = exons[0].start + self.end = exons[-1].end + self.juncs = tuple(exons_to_juncs(sorted(exons))) + + def correct_from_annotation(self, start, end, strand, juncs): + """Update ReadRec with corrected coordinates from annotation match.""" + self.start = start + self.end = end self.strand = strand - self.juncs = self._intern_juncs(juncs) + self.juncs = tuple(juncs) + + def _get_both_intprim(read, genome): + left_intprim, right_intprim = 0, 0 + if read.reference_start > INTPRIM_SEARCH_WINDOW: + end_seq = get_reverse_complement(genome.fetch(read.reference_name, read.reference_start - INTPRIM_SEARCH_WINDOW, read.reference_start)) + left_intprim = check_intprim(end_seq) + if read.reference_end + INTPRIM_SEARCH_WINDOW < genome.get_reference_length(read.reference_name): + end_seq = genome.fetch(read.reference_name, read.reference_end, read.reference_end + INTPRIM_SEARCH_WINDOW).upper() + right_intprim = check_intprim(end_seq) + return left_intprim, right_intprim + + def _detect_poly_tails(read): + """Detect polyA tails in soft-clipped ends. + + Returns (left_polyA, right_polyA) where: + - left_polyA > 0: poly-tail at left end (- strand indicator) + - right_polyA > 0: poly-tail at right end (+ strand indicator) + + Both only polyA needs to be check, as BAM has the read reverse + complement for for reverse alignmnets. + """ + left_polyA, right_polyA = 0, 0 + read_seq = read.query_sequence + if read.cigartuples[0][0] == pysam.CIGAR_OPS.CSOFT_CLIP: + left_rev = read_seq[:read.cigartuples[0][1]][::-1] + left_polyA = _check_polyA(left_rev) + if read.cigartuples[-1][0] == pysam.CIGAR_OPS.CSOFT_CLIP: + right_seq = read_seq[-1 * read.cigartuples[-1][1]:] + right_polyA = _check_polyA(right_seq) + return left_polyA, right_polyA @classmethod - def from_read(cls, read, junc_direction=None): + def from_read(cls, read, junc_direction=None, *, genome=None): """Create a ReadRec from a pysam aligned read.""" # FIXME switch to pycbio.hgdata.cigar align_start = read.reference_start @@ -146,7 +312,7 @@ def from_read(cls, read, junc_direction=None): intron_blocks = [] has_match = False for block in read.cigartuples: - if block[0] == 3: # intron + if block[0] == pysam.CIGAR_OPS.CREF_SKIP: # intron if has_match: intron_blocks.append([ref_pos, ref_pos + block[1]]) # this fixes weird bug if there's an intron, then an insertion, then another intron??? @@ -154,57 +320,133 @@ def from_read(cls, read, junc_direction=None): intron_blocks[-1][1] += block[1] has_match = False ref_pos += block[1] - elif block[0] in {0, 7, 8, 2}: # consumes reference + elif block[0] in (pysam.CIGAR_OPS.CMATCH, pysam.CIGAR_OPS.CEQUAL, pysam.CIGAR_OPS.CDIFF, pysam.CIGAR_OPS.CDEL): # consumes reference ref_pos += block[1] - if block[0] in {0, 7, 8}: + if block[0] in (pysam.CIGAR_OPS.CMATCH, pysam.CIGAR_OPS.CEQUAL, pysam.CIGAR_OPS.CDIFF): has_match = True if junc_direction not in {'+', '-'}: junc_direction = "-" if read.is_reverse else "+" juncs = tuple(Junc(blk[0], blk[1]) for blk in intron_blocks) - return cls(read.reference_name, align_start, ref_pos, read.query_name, - read.mapping_quality, junc_direction, juncs) + left_polyA, right_polyA = cls._detect_poly_tails(read) + left_intprim, right_intprim = 0, 0 + if genome is not None: + left_intprim, right_intprim = cls._get_both_intprim(read, genome) + + return cls(read.reference_name, junc_direction, juncs, align_start, ref_pos, read.query_name, polyA=(left_polyA, right_polyA), intprim=(left_intprim, right_intprim)) + + +class Gene: + """A gene containing discovered isoforms.""" + + def __init__(self, gene_id, gene_desc, chrom, strand): + self.gene_id = gene_id + if type(gene_desc) is str or type(gene_desc) is int: + gene_desc = (str(gene_desc), ) + self.gene_desc = gene_desc + self.chrom = chrom + self.strand = strand + self.isoforms = [] + + def add_isoform(self, isoform): + """Add an isoform to this gene and set the back-reference.""" + self.isoforms.append(isoform) + isoform.gene = self + isoform.gene_id = self.gene_id + + +class Isoform: + # keep on one copy of junction chain + _juncs_cache = {} @classmethod - def from_junctions(cls, chrom, start, end, name, score, strand, juncs): - """Create a ReadRec from junction coordinates.""" - return cls(chrom, start, end, name, score, strand, tuple(juncs)) + def _intern_juncs(cls, juncs): + return cls._juncs_cache.setdefault(juncs, juncs) + + def __init__(self, chrom, strand, juncs, start=None, end=None, reads=None, gene=None, gene_id=None, ref_transcript_id=None): + self.chrom = chrom + self.strand = strand + self.juncs = self._intern_juncs(juncs) + self.start = start + self.end = end + self._name = None + self._score = None + self.reads = reads if reads is not None else [] + self.gene = gene + self.gene_id = gene_id + self.ref_transcript_id = ref_transcript_id + self.end5confidence = None + self.end3confidence = None + + @property + def name(self): + # FIXME: ideally would add chromosome and strand to this hash + # FIXME: start none might not be the best trigger. + # if self._name is None: + if self.start is None: + return str(abs(hash(tuple(self.juncs)))) + else: + return str(abs(hash(tuple(self.exons)))) + # else: + # return self._name + + @name.setter + def name(self, new_name): + self._name = new_name @property def exons(self): - """Return exons as list of Exon objects, computed from start, end, and juncs.""" - if not self.juncs: - return [Exon(self.start, self.end)] - exons = [Exon(self.start, self.juncs[0].start)] - for i in range(len(self.juncs) - 1): - exons.append(Exon(self.juncs[i].end, self.juncs[i + 1].start)) - exons.append(Exon(self.juncs[-1].end, self.end)) - return exons - - def to_bed(self): - """Create and return a Bed object.""" - exon_starts, exon_sizes = get_bed_exons_from_juncs(self.juncs, self.start, self.end) - bed = Bed(self.chrom, self.start, self.end, self.name, - score=self.score, strand=self.strand, - thickStart=self.start, thickEnd=self.end, - itemRgb=get_rgb(self.strand, len(self.juncs))) - for i in range(len(exon_starts)): - blk_start = self.start + exon_starts[i] - bed.addBlock(blk_start, blk_start + exon_sizes[i]) - return bed - - def get_bed_line(self): - """Return BED format row.""" - return self.to_bed().toRow() + if self.start is None: + self.start = int(median(self.starts)) + self.end = int(median(self.ends)) + return get_exons(self) - def get_sequence(self, genome): - return get_sequence_for_exons(genome, self.chrom, self.strand, self.exons) + @property + def starts(self): + return [x.start for x in self.reads] + + @property + def ends(self): + return [x.end for x in self.reads] + + @property + def num_reads(self): + return len(self.reads) + + @property + def score(self): + if self._score is None: + return len(self.reads) + else: + return min(self._score, 1000) + + @score.setter + def score(self, new_score): + self._score = new_score + + @property + def genomic_length(self): + if self.start is None or self.end is None: + return None + return self.end - self.start def reset_from_exons(self, exons): - """Update ReadRec from a list of Exon objects.""" + """Update Isoform from a list of Exon objects.""" self.start = exons[0].start self.end = exons[-1].end - self.juncs = self._intern_juncs(tuple(exons_to_juncs(sorted(exons)))) + self.juncs = tuple(exons_to_juncs(sorted(exons))) + + def get_sequence(self, genome): + if self.start is None or self.end is None: + return None + return get_sequence_for_exons(genome, self.chrom, self.strand, self.exons) + + @classmethod + def from_readrec(cls, readrec): + return cls(readrec.chrom, readrec.strand, readrec.juncs) - def update_from_juncs(self, new_juncs): - """Update juncs, keeping chrom, start, end, name, score, strand.""" - self.juncs = self._intern_juncs(tuple(new_juncs)) + @classmethod + def regroup(cls, iso, newstart=None, newend=None, newreads=[], newstrand=None): + """Create a new Isoform by regrouping reads from an existing one.""" + if newstrand is None: + newstrand = iso.strand + return cls(iso.chrom, newstrand, iso.juncs, newstart, newend, newreads, iso.gene, iso.gene_id, iso.ref_transcript_id) diff --git a/src/flair/junction_correct.py b/src/flair/junction_correct.py index 4da38e13..1a726615 100644 --- a/src/flair/junction_correct.py +++ b/src/flair/junction_correct.py @@ -2,10 +2,10 @@ Correction of read splice junctions from external evidence. """ import logging -import copy from math import inf from flair import PosRange -from flair.pycbio.hgdata.bed import Bed +from flair.intron_support import IntronSupport +from flair.isoform_data import Junc ## # Notes: @@ -14,8 +14,6 @@ # - A scoring method for junctions based on weighting should be considered ## - - ## # somewhat arbitrary sizes to keep from going off ends # or overlapping other introns. @@ -40,47 +38,48 @@ def __init__(self, intron_support, flank_window, min_read_support): def chroms(self): return self.intron_support.chroms - def overlap_introns(self, chrom, start, end, strand): + def overlap_introns(self, chrom, start, end): def _filter_intron(intron): - return ((intron.strand == strand) and - (intron.annot_supported or (intron.read_support_cnt > self.min_read_support))) + return intron.annot_supported or (intron.read_support_cnt > self.min_read_support) return list(filter(_filter_intron, self.intron_support.overlap_introns(chrom, start, end, self.flank_window))) - def correct_read_junctions(self, read_bed): - """correct a read based on support from introns. Return None if there - is no support for an intron.""" - assert len(read_bed.blocks) > 0 - return _correct_junctions(self, read_bed) - - def correct_read_bed(self, read_bed): - """correct a read based on support from introns. Return None if there - is no support for an intron. Return a new BED""" - new_junctions = self.correct_read_junctions(read_bed) + def correct_readrec(self, readrec): + """Correct a ReadRec's junctions and strand in place from intron support. + Returns True if corrected, False if there is no support.""" + new_junctions, strand = _correct_junctions(self, readrec) if new_junctions is None: - return None - return _build_corrected_read_bed(read_bed, new_junctions) + return False + else: + readrec.juncs = tuple(Junc(j.start, j.end) for j in new_junctions) + readrec.strand = strand + return True + + def subset_for_region(self, chrom, start, end): + """Return a JunctionCorrector object with entries overlapping [start, end) on chrom.""" + return JunctionCorrector(self.intron_support.subset_for_region(chrom, start, end), + self.flank_window, self.min_read_support) ### # intron support search ### -def _calc_possible_junction_range(read_bed, new_junctions): +def _calc_possible_junction_range(readrec, new_junctions): """prevent going off ends of read or overlapping small exons""" - min_start = read_bed.chromStart + MIN_TERMINAL_EXON_SIZE + min_start = readrec.start + MIN_TERMINAL_EXON_SIZE if len(new_junctions) > 0: # adjust for previous intron min_start = max(min_start, new_junctions[-1].end + MIN_INTERNAL_EXON_SIZE) - max_end = read_bed.chromEnd - MIN_INTERNAL_EXON_SIZE + max_end = readrec.end - MIN_INTERNAL_EXON_SIZE return (min_start, max_end) -def _filter_too_close(read_bed, new_junctions, intron_hits): +def _filter_too_close(readrec, new_junctions, intron_hits): """drop introns overlapping the previous intron or making a too short an exon at ends""" - min_start, max_end = _calc_possible_junction_range(read_bed, new_junctions) + min_start, max_end = _calc_possible_junction_range(readrec, new_junctions) return list(filter(lambda ih: (ih.start >= min_start) and (ih.end <= max_end), intron_hits)) -def _find_best_hit(strand, start, end, intron_hits): +def _find_best_intron_support(start, end, intron_hits): """Pick an intron as `best' This prefers annotated introns, then read-support introns with the larger number of reads. """ @@ -105,46 +104,78 @@ def _collect_closest_hits(start, end, intron_hits): closest_introns.append(intron) return closest_introns -def _correct_junction(corrector, read_bed, start, end, new_junctions): - """add and update an intron junctions. Return False if any are not supported.""" +def _correct_junction(corrector, readrec, start, end, new_junctions): + """Add a corrected intron junction. Return intron record used or + None if not supported.""" - intron_hits = corrector.overlap_introns(read_bed.chrom, start, end, read_bed.strand) + intron_hits = corrector.overlap_introns(readrec.chrom, start, end) if intron_hits is None: - logging.debug(f"No intron support for '{read_bed.name}' {read_bed.chrom}:{start}-{end}") - return False - intron_hits = _filter_too_close(read_bed, new_junctions, intron_hits) + logging.debug(f"Read: '{readrec.name}': no intron support for {readrec.chrom}:{start}-{end}") + return None + intron_hits = _filter_too_close(readrec, new_junctions, intron_hits) if len(intron_hits) == 0: - logging.debug("Supporting introns too close to ends or another intron for " - f"'{read_bed.name}' {read_bed.chrom}:{start}-{end}") - return False - best_intron = _find_best_hit(read_bed.strand, start, end, intron_hits) + logging.debug(f"Read: '{readrec.name}': supporting introns too close to ends or another intron for " + f"{readrec.chrom}:{start}-{end}") + return None + best_intron = _find_best_intron_support(start, end, intron_hits) new_junctions.append(PosRange(best_intron.start, best_intron.end)) - return True + return best_intron -def _correct_junctions(corrector, read_bed): - """create a list of new introns for a read, or None if can't be correct""" +def _determine_strand(readrec, intron_supports): + """Determine the strand from the IntronSupport objects use for + splice junction correction, or None if there are conflicts. + Junctions with strand of '.' don't go into the calculation. + """ + strand = None + for intron_support in intron_supports: + if intron_support.strand != '.': + if strand is None: + strand = intron_support.strand + elif intron_support.strand != strand: + logging.debug(f"Read: '{readrec.name}': conflicting strands in junction support") + return None + if strand is None: + # all unknown strand + logging.debug(f"Read: '{readrec.name}': all of the {len(intron_supports)} intron have unknown splice junction so strand can not be determined") + return None + return strand + +def _correct_junctions(corrector, readrec): + """Create a list of new junctions for a read and determine + strand. Returns (None, None) if can't be corrected or strands are inconsistent""" new_junctions = [] - prev_end = read_bed.blocks[0].end - for blk in read_bed.blocks[1:]: - if not _correct_junction(corrector, read_bed, prev_end, blk.start, - new_junctions): - return None - prev_end = blk.end - return new_junctions - -### -# create correct bed -### -def _build_corrected_read_bed(read_bed, new_junctions): - new_bed = Bed(read_bed.chrom, read_bed.chromStart, read_bed.chromEnd, - read_bed.name, score=read_bed.score, strand=read_bed.strand, - thickStart=read_bed.thickStart, thickEnd=read_bed.thickEnd, - itemRgb=read_bed.itemRgb, - extraCols=copy.deepcopy(read_bed.extraCols), - numStdCols=read_bed.numStdCols) - prev_end = read_bed.chromStart - for junction in new_junctions: - new_bed.addBlock(prev_end, junction.start) - prev_end = junction.end - new_bed.addBlock(prev_end, read_bed.chromEnd) - return new_bed + intron_supports = [] + for junc in readrec.juncs: + intron_support = _correct_junction(corrector, readrec, junc.start, junc.end, + new_junctions) + if intron_support is None: + return None, None + intron_supports.append(intron_support) + + strand = _determine_strand(readrec, intron_supports) + if strand is None: + return None, None + return new_junctions, strand + +def _intron_file_spec_normalize(file_spec): + "make single file, multiple files, or None into a list/tuple" + if file_spec is None: + return () + elif isinstance(file_spec, str): + return (file_spec,) + else: + return file_spec + +def junction_corrector_factory(ss_window, min_read_support, *, + annot_gtf_data=None, intron_beds=None, star_sj_tabs=None): + """Create a JunctionCorrector and load splice junction evidence. + The intron_beds and star_sj_tabs can be either a single file or + a list of files""" + is_db = IntronSupport() + for intron_bed in _intron_file_spec_normalize(intron_beds): + is_db.load_introns_bed(intron_bed) + for star_sj_tab in _intron_file_spec_normalize(star_sj_tabs): + is_db.load_star(star_sj_tab) + if annot_gtf_data is not None: + is_db.load_gtf(annot_gtf_data) + return JunctionCorrector(is_db, ss_window, min_read_support) diff --git a/src/flair/junctions_from_sam.py b/src/flair/junctions_from_sam.py index 36677345..fa5158f1 100755 --- a/src/flair/junctions_from_sam.py +++ b/src/flair/junctions_from_sam.py @@ -23,18 +23,18 @@ # intron_exon_jctn_counts.py. Used for quantifying intron retention, # alternative donor, and alternative acceptor events. -import sys import optparse import math import re import pysam import logging from flair import FlairInputDataError +from flair.pycbio.hgdata.bed import Bed -############# +############## # CONSTANTS # -############# -#IE_SCRIPT = "/h/angela/bin/intron_exon_jctn_counts.py" +############## +# IE_SCRIPT = "/h/angela/bin/intron_exon_jctn_counts.py" DEF_NAME = "junctions_from_sam" K_RGB_STR = "0,0,0" @@ -50,15 +50,15 @@ MAX_CHAR = 60 -CIGAR_OPER = {0:"M", - 1:"I", - 2:"D", - 3:"N", - 4:"S", - 5:"H", - 6:"P", - 7:"=", - 8:"X"} +CIGAR_OPER = {0: "M", + 1: "I", + 2: "D", + 3: "N", + 4: "S", + 5: "H", + 6: "P", + 7: "=", + 8: "X"} ################# # END CONSTANTS # @@ -118,7 +118,7 @@ def __init__(self, name, chr, chromStart, chromEnd, strand, first_block, second_ self.intron_start = intron_start self.intron_end = intron_end - def updateJcnInfo(self, name, chr, chromStart, chromEnd, strand, first_block, second_block, intron_start, intron_end, verbosity=False, multiJcnBlock=None): + def updateJcnInfo(self, name, chr, chromStart, chromEnd, strand, first_block, second_block, intron_start, intron_end, verbosity=False, multiJcnBlock=None): # noqa: C901 - FIXME: reduce complexity # Check that name, chromosome, strand are the same if not chr.startswith("chr"): chr = "chr" + chr @@ -172,7 +172,7 @@ def updateJcnInfo(self, name, chr, chromStart, chromEnd, strand, first_block, se ######## # MAIN # ######## -def main(): +def main(): # noqa: C901 - FIXME: reduce complexity opt_parser = OptionParser() @@ -396,7 +396,7 @@ def main(): m_count = cigar.count('M') # Check if it is a genome read - if m_count == 1: # A GENOME READ + if m_count == 1: # A GENOME READ pass this_read_len = int(cigar.rstrip("M")) @@ -404,9 +404,9 @@ def main(): if this_read_len != read_len: raise ValueError(f"Expecting reads of length: {read_len} not {this_read_len}") - #chr_end = chr_start + this_read_len - 1 + # chr_end = chr_start + this_read_len - 1 - #genome_line = "%s\t%s\t%d\t%d\n" % (q_name, chr, chr_start, chr_end) + # genome_line = "%s\t%s\t%d\t%d\n" % (q_name, chr, chr_start, chr_end) # if paired_end_exists: # if isPairedRead(flag): # paired_end_genome_file.write(genome_line) @@ -415,7 +415,7 @@ def main(): # else: # genome_file.write(genome_line) - else: # A JUNCTION READ + else: # A JUNCTION READ n_count = cigar.count("N") if n_count == 0: @@ -486,8 +486,8 @@ def main(): # Need to make multiple jcn_str for each intron jcn_str = "%s|%s:%d-%d" % (jcn_tag, chr, - chr_start + upstr_len, - chr_start + upstr_len + intron_len - 1) + chr_start + upstr_len, + chr_start + upstr_len + intron_len - 1) # Check for odd junctions that are aligned toward the # beginning of the chromosome, which causes problems later @@ -557,20 +557,17 @@ def main(): confident_jcns.add("%s:%d-%d" % (jcn2JcnInfo[jcn_str].chr, jcn2JcnInfo[jcn_str].intron_start, jcn2JcnInfo[jcn_str].intron_end)) - intron_left = jcn_str[jcn_str.find(':')+1:jcn_str.find('-')] - intron_right = jcn_str[jcn_str.find('-')+1:] + intron_left = jcn_str[jcn_str.find(':') + 1:jcn_str.find('-')] + intron_right = jcn_str[jcn_str.find('-') + 1:] if jcn2JcnInfo[jcn_str].strand in {'+', '-'}: strandFlag = True jcn_strand = jcn2JcnInfo[jcn_str].strand else: jcn_strand = '.' - bed_line = '\t'.join([jcn2JcnInfo[jcn_str].chr, - intron_left, - str(int(intron_right)-1), - '.', - str(min(1000, len(jcn2JcnInfo[jcn_str].block_list))), - jcn_strand]) + '\n' - junction_bed_file.write(bed_line) + num_blocks = min(1000, len(jcn2JcnInfo[jcn_str].block_list)) + bed = Bed(jcn2JcnInfo[jcn_str].chr, int(intron_left), int(intron_right) - 1, + name='.', score=num_blocks, strand=jcn_strand) + bed.write(junction_bed_file) junction_bed_file.close() # Print out junction to read file for paired end reads @@ -581,7 +578,7 @@ def main(): # jcn2qname_file.write(outline) # jcn2qname_file.close() - if strandFlag == False: + if strandFlag is False: logging.info('WARNING, no stranded junctions were found.') @@ -608,14 +605,14 @@ def convert2SAMLine(bam_file, read_obj): rnext = read_obj.rnext pnext = read_obj.pnext tlen = read_obj.tlen - except: + except Exception: rnext = read_obj.mrnm pnext = read_obj.mpos tlen = read_obj.isize try: rname = bam_file.getrname(read_obj.tid) - except: + except Exception: rname = None samline = "%s\t%d\t%s\t%d\t%d\t%s\t%s\t%d\t%d\t%s\t%s" % (read_obj.qname, @@ -667,21 +664,21 @@ def extended_to_simple_cigar(cigar): prevnum += num else: if prevop != 'N': - newcigar += str(prevnum)+'M' + newcigar += str(prevnum) + 'M' else: - newcigar += str(prevnum)+'N' + newcigar += str(prevnum) + 'N' prevnum = num prevop = op if prevop != 'N': - newcigar += str(prevnum)+'M' + newcigar += str(prevnum) + 'M' else: - newcigar += str(prevnum)+'N' + newcigar += str(prevnum) + 'N' return newcigar def formatLine(line): - line = line.replace("\r","") - line = line.replace("\n","") + line = line.replace("\r", "") + line = line.replace("\n", "") return line diff --git a/src/flair/lift_transcriptome_aligned_bam_to_genome.py b/src/flair/lift_transcriptome_aligned_bam_to_genome.py index 1f3c01a2..41966927 100644 --- a/src/flair/lift_transcriptome_aligned_bam_to_genome.py +++ b/src/flair/lift_transcriptome_aligned_bam_to_genome.py @@ -1,20 +1,17 @@ import pysam import sys - -def bed_line_to_info(line): - line = line.rstrip().split('\t') - chrom, start, end, iso, strand = line[0], int(line[1]), int(line[2]), line[3], line[5] - esizes, estarts = [int(x) for x in line[-2].rstrip(',').split(',')], \ - [int(x) for x in line[-1].rstrip(',').split(',')] - return chrom, start, end, iso, strand, esizes, estarts +from flair.isoform_data import get_reverse_complement +from flair.pycbio.hgdata.bed import BedReader def get_iso_info_from_bed(file): isotoinfo = {} - for line in open(file): - chrom, start, end, iso, strand, esizes, estarts = bed_line_to_info(line) - isizes = [estarts[i+1]-(esizes[i] + estarts[i]) for i in range(len(esizes)-1)] - isotoinfo[iso] = {'chrom':chrom, 'strand':strand, 'start':start, 'end':end, 'esizes':esizes, 'introns':isizes} + for bed in BedReader(file, fixScores=True): + chrom, start, end, iso, strand = bed.chrom, bed.chromStart, bed.chromEnd, bed.name, bed.strand + esizes = [len(blk) for blk in bed.blocks] + estarts = [blk.start - start for blk in bed.blocks] + isizes = [estarts[i + 1] - (esizes[i] + estarts[i]) for i in range(len(esizes) - 1)] + isotoinfo[iso] = {'chrom': chrom, 'strand': strand, 'start': start, 'end': end, 'esizes': esizes, 'introns': isizes} return isotoinfo def convert_start_pos(isoinfo, isostart): @@ -23,11 +20,11 @@ def convert_start_pos(isoinfo, isostart): if isoinfo['strand'] == '-': esizes, introns = esizes[::-1], introns[::-1] for i in range(len(esizes)): - if isostart < sum(esizes[:i+1]): + if isostart < sum(esizes[:i + 1]): if isoinfo['strand'] == '+': return isoinfo['start'] + isostart + sum(introns[:i]) else: - return isoinfo['end'] - (isostart + sum(introns[:i])) ###this is now the end position of the transcript on the genome + return isoinfo['end'] - (isostart + sum(introns[:i])) # this is now the end position of the transcript on the genome def add_introns_to_block(exonbounds, introns, tpos, blocktype, blocklen, newcigar): @@ -35,7 +32,7 @@ def add_introns_to_block(exonbounds, introns, tpos, blocktype, blocklen, newciga if tpos <= exonbounds[e] < tpos + blocklen: if exonbounds[e] - tpos > 0: newcigar.append((blocktype, exonbounds[e] - tpos)) - newcigar.append((3, introns[e])) ##insert intron + newcigar.append((3, introns[e])) # insert intron blocklen -= exonbounds[e] - tpos tpos += exonbounds[e] - tpos tpos += blocklen @@ -48,38 +45,31 @@ def convert_cigar(isoinfo, cigar, startpos): introns = isoinfo['introns'] if isoinfo['strand'] == '-': esizes, introns = esizes[::-1], introns[::-1] - exonbounds = [sum(esizes[:i+1]) for i in range(len(esizes)-1)] ##excludes last exon, that boundary is not intronic + exonbounds = [sum(esizes[:i + 1]) for i in range(len(esizes) - 1)] # excludes last exon, that boundary is not intronic for blocktype, blocklen in cigar: - if blocktype in {0,2,3,7,8}: #consumes reference - #check if this crosses an exon boundary + if blocktype in {0, 2, 3, 7, 8}: # consumes reference + # check if this crosses an exon boundary exonbounds, tpos, blocktype, blocklen, newcigar = add_introns_to_block(exonbounds, introns, tpos, blocktype, blocklen, newcigar) - if blocklen > 0: ##insertions always written, but don't alter tpos. Also write any remaining part of block + if blocklen > 0: # insertions always written, but don't alter tpos. Also write any remaining part of block newcigar.append((blocktype, blocklen)) - if isoinfo['strand'] == '-': newcigar = newcigar[::-1]###on the negative strand, must reverse cigar string + if isoinfo['strand'] == '-': + newcigar = newcigar[::-1] # on the negative strand, must reverse cigar string return newcigar def generate_new_segment(s=None, newname=None, newseq=None, newquals=None, newflag=None, newtags=None, newrefid=None, newrefstart=None, newcigart=None, newmapq=None): a = pysam.AlignedSegment() - a.query_name = newname if newname != None else s.query_name - a.query_sequence = newseq if newseq != None else s.query_sequence - a.flag = newflag if newflag != None else s.flag - a.mapping_quality = newmapq if newmapq != None else s.mapping_quality - a.query_qualities = newquals if newquals != None else s.query_qualities - a.tags = newtags if newtags != None else s.tags - a.reference_id = newrefid if newrefid != None else s.reference_id - a.reference_start = newrefstart if newrefstart != None else s.reference_start - a.cigartuples = newcigart if newcigart != None else s.cigartuples + a.query_name = newname if newname is not None else s.query_name + a.query_sequence = newseq if newseq is not None else s.query_sequence + a.flag = newflag if newflag is not None else s.flag + a.mapping_quality = newmapq if newmapq is not None else s.mapping_quality + a.query_qualities = newquals if newquals is not None else s.query_qualities + a.tags = newtags if newtags is not None else s.tags + a.reference_id = newrefid if newrefid is not None else s.reference_id + a.reference_start = newrefstart if newrefstart is not None else s.reference_start + a.cigartuples = newcigart if newcigart is not None else s.cigartuples return a -compbase = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C', 'N': 'N', - 'R':'Y', 'Y':'R','K':'M','M':'K','S':'S','W':'W', 'B':'V','V':'B','D':'H','H':'D'} -def revcomp(seq): - newseq = [] - for base in seq.upper(): newseq.append(compbase[base]) - return ''.join(newseq[::-1]) - - isoformbed = sys.argv[1] transcriptomebam = sys.argv[2] @@ -96,7 +86,7 @@ def revcomp(seq): outchroms = outfile.references -###CURRENTLY NONE OF THIS WORKS FOR NEGATIVE STRAND READS +# CURRENTLY NONE OF THIS WORKS FOR NEGATIVE STRAND READS for s in samfile: if s.is_mapped: thisisoinfo = isotoinfo[s.reference_name] @@ -107,10 +97,10 @@ def revcomp(seq): a = generate_new_segment(s, newrefid=newrefid, newrefstart=newrefstart, newcigart=newcigart) else: newcigart = convert_cigar(thisisoinfo, s.cigartuples, s.reference_start) - totalaligneddist = sum([x[1] for x in newcigart if x[0] not in {1,4,5}]) - newrefstart = newrefstart - totalaligneddist ##was read end, correct to read start + totalaligneddist = sum([x[1] for x in newcigart if x[0] not in {1, 4, 5}]) + newrefstart = newrefstart - totalaligneddist # was read end, correct to read start newflag = s.flag - 16 if s.is_reverse else s.flag + 16 - newseq = revcomp(s.query_sequence) if s.query_sequence else None + newseq = get_reverse_complement(s.query_sequence) if s.query_sequence else None newquals = s.query_qualities[::-1] if s.query_qualities else None a = generate_new_segment(s, newrefid=newrefid, newrefstart=newrefstart, newcigart=newcigart, newflag=newflag, newquals=newquals, newseq=newseq) @@ -125,4 +115,4 @@ def revcomp(seq): # pysam.sort('-o', f'{sample}.flairomealigned.mygenomelift.sorted.bam', f'{sample}.flairomealigned.mygenomelift.bam') # pysam.index(f'{sample}.flairomealigned.mygenomelift.sorted.bam') pysam.sort('-o', f'{outprefix}.genomelift.sorted.bam', f'{outprefix}.genomelift.bam') -pysam.index(f'{outprefix}.genomelift.sorted.bam') \ No newline at end of file +pysam.index(f'{outprefix}.genomelift.sorted.bam') diff --git a/src/flair/make_synthetic_fusion_reference.py b/src/flair/make_synthetic_fusion_reference.py index 8958de37..cb9f2669 100644 --- a/src/flair/make_synthetic_fusion_reference.py +++ b/src/flair/make_synthetic_fusion_reference.py @@ -1,7 +1,8 @@ -import sys, os, argparse -from statistics import median -import itertools +import argparse import pysam +from flair.isoform_data import get_reverse_complement +from flair.gtf_io import gtf_record_parser, gtf_write_row, GtfAttrsSet +from flair.pycbio.hgdata.bed import BedReader parser = argparse.ArgumentParser(description='make synthetic fusion reference') parser.add_argument('-c', '--chimbp', action='store', help='bed file of fusion breakpoints') @@ -10,77 +11,75 @@ parser.add_argument('-o', '--output', action='store', help='output file prefix') args = parser.parse_args() -prefix = args.output#'.'.join(args.chimbp.split('.')[:-2]) +prefix = args.output # '.'.join(args.chimbp.split('.')[:-2]) -def revComp(seq): - newseq = '' - comp = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C', 'N':'N'} - for char in seq[::-1].upper(): - newseq += comp[char] - return newseq -#####DONELoad in transcriptome and genome breakpoints and process them into one list of breakpoint locations -####DONEGo through transcript reference and load in gene start/end locations -####DONE figure out if any predicted breakpoints are in the same intron node and collapse them -####Cut genes at all predicted breakpoints, label with gene names and cut locations, make synthetic fasta -####make synthetic annotation for these sequences +# DONE Load in transcriptome and genome breakpoints and process them into one list of breakpoint locations +# DONE Go through transcript reference and load in gene start/end locations +# DONE figure out if any predicted breakpoints are in the same intron node and collapse them +# DONE Cut genes at all predicted breakpoints, label with gene names and cut locations, make synthetic fasta +# DONE make synthetic annotation for these sequences -###check if any reads map to wrong orientation of fusion loci +# check if any reads map to wrong orientation of fusion loci allBP = {} fgenes = {} transcripts = {} -###['fusionName', 'geneName', 'orderInFusion', 'geneChr', 'breakpointCoord', 'outerEdgeCoord', 'readSupport'] -for line in open(args.chimbp):#'31-01-2023DRR059313-transcriptomeChimericBreakpoints-correctDir.tsv'): - chrom, start, end, name, score, strand = line.rstrip().split('\t')[:6] - start, end = max(0, int(start)), max(0, int(end)) +# ['fusionName', 'geneName', 'orderInFusion', 'geneChr', 'breakpointCoord', 'outerEdgeCoord', 'readSupport'] +for bed in BedReader(args.chimbp, numStdCols=6, fixScores=True): + chrom, name, score, strand = bed.chrom, bed.name, bed.score, bed.strand + start, end = max(0, bed.chromStart), max(0, bed.chromEnd) gene, fusion = name.split('__') fusion = tuple(fusion.split('--')) - if fusion not in allBP: allBP[fusion] = [] - if strand == '+': allBP[fusion].append((gene, chrom, start, end)) - else: allBP[fusion].append((gene, chrom, end, start)) - if gene not in transcripts: transcripts[gene] = {} - if gene not in fgenes: fgenes[gene] = [chrom, start, end, strand] + if fusion not in allBP: + allBP[fusion] = [] + if strand == '+': + allBP[fusion].append((gene, chrom, start, end)) + else: + allBP[fusion].append((gene, chrom, end, start)) + if gene not in transcripts: + transcripts[gene] = {} + if gene not in fgenes: + fgenes[gene] = [chrom, start, end, strand] else: fgenes[gene][1] = min(start, fgenes[gene][1]) fgenes[gene][2] = max(end, fgenes[gene][2]) -genome=pysam.FastaFile(args.g) -print('loaded genome') - -####To make synthetic transcriptome: -####DONE Get transcript/exon annotation for fusion genes -#### all annotation is recorded in plain left-right direction -####Filter this annotation to 5'/3' ends based on each breakpoint -#### Convert annotation values to be 0-based depending on start of gene (5' end) or breakpoint location (3' end) -#### Make sure to flip - strand values accordingly -####When making synthetic references, simulatneously make gtf annotation file - make sure to convert 3' side values based on - -for line in open(args.a):#'/private/groups/brookslab/reference_annotations/gencode.v38.annotation.gtf'): - if line[0] != '#': - line = line.split('\t') - if line[2] == 'gene' or line[2] == 'exon' or line[2] == 'start_codon': - genename = line[8].split('gene_id "')[1].split('"')[0] - genename = genename.replace('_','-') - # genename += '*' + line[8].split('gene_id "')[1].split('"')[0] - if genename in fgenes: - if line[2] == 'gene': - ###learned that can't assume that transcript appears in anno only once - two diff ENSG can have same hugo name - fgenes[genename] = (line[0], min([int(line[3]) - 501, fgenes[genename][1]]), max([int(line[4])+500, fgenes[genename][2]]), line[6]) - elif line[2] == 'exon' or line[2] == 'start_codon': - tname = line[8].split('transcript_id "')[1].split('"')[0] - if tname not in transcripts[genename]: transcripts[genename][tname] = [] - if line[6] == '+': transcripts[genename][tname].append((int(line[3])-1, int(line[4]), line[2])) - else: transcripts[genename][tname].insert(0,(int(line[3])-1, int(line[4]), line[2])) +genome = pysam.FastaFile(args.g) +# print('loaded genome') + +# To make synthetic transcriptome: +# DONE Get transcript/exon annotation for fusion genes +# all annotation is recorded in plain left-right direction +# Filter this annotation to 5'/3' ends based on each breakpoint +# Convert annotation values to be 0-based depending on start of gene (5' end) or breakpoint location (3' end) +# Make sure to flip - strand values accordingly +# When making synthetic references, simulatneously make gtf annotation file - make sure to convert 3' side values based on + +for rec in gtf_record_parser(args.a, include_features={'gene', 'exon', 'start_codon'}, attrs=GtfAttrsSet.ALL): + genename = rec.gene_id.replace('_', '-').split('.')[0] + if genename in fgenes: + if rec.feature == 'gene': + # learned that can't assume that transcript appears in anno only once - two diff ENSG can have same hugo name + fgenes[genename] = (rec.chrom, min([rec.start - 500, fgenes[genename][1]]), max([rec.end + 500, fgenes[genename][2]]), rec.strand) + elif rec.feature in ('exon', 'start_codon'): + tname = rec.transcript_id + if tname not in transcripts[genename]: + transcripts[genename][tname] = [] + if rec.strand == '+': + transcripts[genename][tname].append((rec.start, rec.end, rec.feature)) + else: + transcripts[genename][tname].insert(0, (rec.start, rec.end, rec.feature)) # print(transcripts) -print('loaded transcripts') +# print('loaded transcripts') -out = open(prefix + '-syntheticFusionGenome.fa', 'w')#'syntheticFusionGenomeAttempt4.fa', 'w') -annoOut = open(prefix + '-syntheticReferenceAnno.gtf', 'w')#'syntheticReferenceAnnoAttempt1.gtf', 'w') -# sjOut = open(prefix + '-syntheticReferenceSJ.bed', 'w')#'syntheticReferenceAnnoAttempt1.gtf', 'w') -bpOut = open(prefix + '-syntheticBreakpointLoc.bed', 'w')#'syntheticFusionBreakpointLoc.bed', 'w') +out = open(prefix + '-syntheticFusionGenome.fa', 'w') # 'syntheticFusionGenomeAttempt4.fa', 'w') +annoOut = open(prefix + '-syntheticReferenceAnno.gtf', 'w') # 'syntheticReferenceAnnoAttempt1.gtf', 'w') +# sjOut = open(prefix + '-syntheticReferenceSJ.bed', 'w') # 'syntheticReferenceAnnoAttempt1.gtf', 'w') +bpOut = open(prefix + '-syntheticBreakpointLoc.bed', 'w') # 'syntheticFusionBreakpointLoc.bed', 'w') c = 0 -for fusion in allBP: +isocount = 1 +for fusion in allBP: # noqa: C901 - FIXME: reduce complexity # print(fusion) allisochunks = [] labels, sequence = [], [] @@ -89,76 +88,82 @@ def revComp(seq): for order in range(len(fusion)): isochunks = {} gene, thisChr, leftbound, rightbound = allBP[fusion][order] - if order == 0: #5' gene, correct end to 5' end of gene - if leftbound < rightbound: leftbound = fgenes[gene][1] - else: leftbound = fgenes[gene][2] + if order == 0: # 5' gene, correct end to 5' end of gene + if leftbound < rightbound: + leftbound = fgenes[gene][1] + else: + leftbound = fgenes[gene][2] elif order == len(fusion) - 1: - if leftbound < rightbound: rightbound = fgenes[gene][2] - else: rightbound = fgenes[gene][1] - - if leftbound < rightbound: sequence.append(genome.fetch(thisChr, leftbound, rightbound))#genome[thisChr][leftbound:rightbound]) - else: sequence.append(revComp(genome.fetch(thisChr, rightbound, leftbound)))#genome[thisChr][rightbound:leftbound])) + if leftbound < rightbound: + rightbound = fgenes[gene][2] + else: + rightbound = fgenes[gene][1] + + if leftbound < rightbound: + sequence.append(genome.fetch(thisChr, leftbound, rightbound)) # genome[thisChr][leftbound:rightbound]) + else: + sequence.append(get_reverse_complement(genome.fetch(thisChr, rightbound, leftbound))) # genome[thisChr][rightbound:leftbound])) labels.append('..'.join([str(x) for x in [gene, thisChr, leftbound, rightbound]])) - ###Add a justends isoform here - chunksize = abs(leftbound-rightbound) + # Add a justends isoform here + chunksize = abs(leftbound - rightbound) percentchange = int(chunksize * 0.1) - isochunks['justends-' + str(c)] = [(percentchange+startLoc, (chunksize-percentchange)+startLoc, 'exon'),] + isochunks['justends-' + str(c)] = [(percentchange + startLoc, (chunksize - percentchange) + startLoc, 'exon'),] c += 1 for tname in transcripts[gene]: isochunks[tname] = [] - if leftbound < rightbound: ###positive strand transcript + if leftbound < rightbound: # positive strand transcript for exon in transcripts[gene][tname]: synthexon = None - ###check if exon is within bounds of fusion + # check if exon is within bounds of fusion if exon[0] >= leftbound and exon[1] <= rightbound and (order == 0 or exon[2] == 'exon'): - synthexon = [(exon[0]-leftbound)+startLoc, (exon[1]-leftbound) + startLoc, exon[2]] - if synthexon: isochunks[tname].append(tuple(synthexon)) - else: #negative strand transcript + synthexon = [(exon[0] - leftbound) + startLoc, (exon[1] - leftbound) + startLoc, exon[2]] + if synthexon: + isochunks[tname].append(tuple(synthexon)) + else: # negative strand transcript for exon in reversed(transcripts[gene][tname]): synthexon = None - ###check if exon is within bounds of fusion + # check if exon is within bounds of fusion if exon[0] >= rightbound and exon[1] <= leftbound and (order == 0 or exon[2] == 'exon'): - synthexon = [(leftbound-exon[1]) + startLoc, (leftbound-exon[0]) + startLoc, exon[2]] - if synthexon: isochunks[tname].append(tuple(synthexon)) + synthexon = [(leftbound - exon[1]) + startLoc, (leftbound - exon[0]) + startLoc, exon[2]] + if synthexon: + isochunks[tname].append(tuple(synthexon)) allstartloc.append(startLoc) - startLoc = startLoc + abs(rightbound-leftbound) + startLoc = startLoc + abs(rightbound - leftbound) seqlen = len(''.join(sequence)) - # print(order, isochunks) allisochunks.append(isochunks) - finalisochunks = [[] for x in range(len(fusion))] + # finalisochunks = [[] for x in range(len(fusion))] + finalisochunks = [] for order in range(len(fusion)): seen = [] for iso in list(allisochunks[order].keys()): - if not(allisochunks[order][iso] == [] or allisochunks[order][iso] in seen): - # allisochunks[order].pop(iso) - finalisochunks[order].append([iso, allisochunks[order][iso]]) + if allisochunks[order][iso] != [] and len([x for x in allisochunks[order][iso] if x[2] == 'exon']) > 1 and allisochunks[order][iso] not in seen: + # finalisochunks[order].append([iso, allisochunks[order][iso]]) + finalisochunks.append([iso, allisochunks[order][iso]]) seen.append(allisochunks[order][iso]) - # print(order, len(finalisochunks[order]), finalisochunks[order]) fusionname = '--'.join(labels) geneid = '--'.join(fusion) fusionchrname = '--'.join(['..'.join(x.split('*')) for x in fusion]) - # print(fusion) - # print(fusionchrname) out.write('>' + fusionchrname + '\n') out.write(''.join(sequence) + '\n') for s in range(1, len(fusion)): bpOut.write('\t'.join([fusionchrname, str(allstartloc[s]), str(allstartloc[s]), 'breakpoint-' + str(s) + '--' + fusionname]) + '\n') - annoOut.write('\t'.join([fusionchrname, 'SYNTHFUSION', 'gene', '1', str(len(''.join(sequence))), '.', '+', '.','gene_id "' + geneid + '"']) + '\n') - - finalisocomb = list(itertools.product(*finalisochunks)) - # print(len(finalisocomb)) - for isocomb in finalisocomb: - isonames = [x[0] for x in isocomb] - isoexons = [x[1] for x in isocomb] - transcriptid = '_'.join(isonames) - annoOut.write('\t'.join( - [fusionchrname, 'SYNTHFUSION', 'transcript', str(isoexons[0][0][0] + 1), str(isoexons[-1][-1][1]), '.', '+', '.', '; '.join(['gene_id "' + geneid + '"','transcript_id "' + transcriptid + '"'])]) + '\n') - for exonset in isoexons: - for exon in exonset: - annoOut.write('\t'.join([fusionchrname, 'SYNTHFUSION', exon[2], str(exon[0] + 1), str(exon[1]), '.', '+', '.', '; '.join(['gene_id "' + geneid + '"','transcript_id "' + transcriptid + '"'])]) + '\n') + gtf_write_row(annoOut, fusionchrname, 'SYNTHFUSION', 'gene', 0, len(''.join(sequence)), None, '+', None, + gene_id=geneid) + + seen = set() + for isocomb in finalisochunks: + isoexons = isocomb[1] + transcriptid = str(isocount) + '-' + isocomb[0] + isocount += 1 + seen.add(transcriptid) + gtf_write_row(annoOut, fusionchrname, 'SYNTHFUSION', 'transcript', isoexons[0][0], isoexons[-1][1], None, '+', None, + gene_id=geneid, transcript_id=transcriptid) + for exon in isoexons: + gtf_write_row(annoOut, fusionchrname, 'SYNTHFUSION', exon[2], exon[0], exon[1], None, '+', None, + gene_id=geneid, transcript_id=transcriptid) out.close() diff --git a/src/flair/mark_intron_retention.py b/src/flair/mark_intron_retention.py index 489250d2..0352f601 100755 --- a/src/flair/mark_intron_retention.py +++ b/src/flair/mark_intron_retention.py @@ -3,70 +3,76 @@ import csv import os from flair import FlairInputDataError - -try: - bedfh = open(sys.argv[1]) - outfilename = sys.argv[2] - txtout = sys.argv[3] -except: - raise FlairInputDataError('usage: mark_intron_retention in.bed out_isoforms.bed out_introns.txt') - +from flair.pycbio.hgdata.bed import BedReader def overlap(coords0, coords1): return coords1[0] >= coords0[0] and coords1[0] <= coords0[1] or \ - coords1[1] >= coords0[0] and coords1[1] <= coords0[1] + coords1[1] >= coords0[0] and coords1[1] <= coords0[1] -isoforms = {} -for line in bedfh: - line = line.rstrip().split('\t') - chrom, name, start, end, strand = line[0], line[3], int(line[1]), int(line[2]), line[5] - blockstarts = [int(n) + start for n in line[11].split(',')[:-1]] - blocksizes = [int(n) for n in line[10].split(',')[:-1]] - if chrom not in isoforms: - isoforms[chrom] = {} - isoforms[chrom][name] = {} - isoforms[chrom][name]['entry'] = line - isoforms[chrom][name]['sizes'] = blocksizes - isoforms[chrom][name]['strand'] = strand - isoforms[chrom][name]['starts'] = blockstarts - isoforms[chrom][name]['range'] = start, end - isoforms[chrom][name]['ir'] = False # detection of intron retention event +# FIXME: use argparse -introncoords = set() -allcoords = set() +def main():: # noqa C901 + try: + bedfh = open(sys.argv[1]) + outfilename = sys.argv[2] + txtout = sys.argv[3] + except Exception: + raise FlairInputDataError('usage: mark_intron_retention in.bed out_isoforms.bed out_introns.txt') -for chrom in isoforms: - for iname0 in isoforms[chrom]: - for iname1 in isoforms[chrom]: # compare with all other isoforms to find IR - if iname0 == iname1: - continue - if not overlap(isoforms[chrom][iname0]['range'], isoforms[chrom][iname1]['range']): - continue - starts0, sizes0 = isoforms[chrom][iname0]['starts'], isoforms[chrom][iname0]['sizes'] - starts1, sizes1 = isoforms[chrom][iname1]['starts'], isoforms[chrom][iname1]['sizes'] - prev5 = starts1[0]+sizes1[0] # previous 5' end of isoform1's intron - for start1, size1 in zip(starts1[1:], sizes1[1:]): - if start1 - prev5 < 100: # do not count exons spanning introns smaller than 100 bp - prev5 = start1+size1 - continue - for start0, size0 in zip(starts0, sizes0): - allcoords.add((chrom, str(prev5), (start1), isoforms[chrom][iname1]['strand'])) - if start0 < prev5 + 10 and start0+size0 > start1-10: # if isoform 0 has exon where isoform 1 has intron - isoforms[chrom][iname0]['ir'] = True - introncoords.add((chrom, str(prev5), (start1), isoforms[chrom][iname0]['strand'])) - prev5 = start1+size1 + isoforms = {} + for bed in BedReader(bedfh, fixScores=True): + chrom, name, start, end, strand = bed.chrom, bed.name, bed.chromStart, bed.chromEnd, bed.strand + blockstarts = [blk.start for blk in bed.blocks] + blocksizes = [len(blk) for blk in bed.blocks] + if chrom not in isoforms: + isoforms[chrom] = {} + isoforms[chrom][name] = {} + isoforms[chrom][name]['entry'] = bed.toRow() + isoforms[chrom][name]['sizes'] = blocksizes + isoforms[chrom][name]['strand'] = strand + isoforms[chrom][name]['starts'] = blockstarts + isoforms[chrom][name]['range'] = start, end + isoforms[chrom][name]['ir'] = False # detection of intron retention event + + introncoords = set() + allcoords = set() -with open(outfilename, 'wt') as outfile: - writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) for chrom in isoforms: - for name in isoforms[chrom]: - if isoforms[chrom][name]['ir']: - writer.writerow(isoforms[chrom][name]['entry'] + [1]) - else: - writer.writerow(isoforms[chrom][name]['entry'] + [0]) + for iname0 in isoforms[chrom]: + for iname1 in isoforms[chrom]: # compare with all other isoforms to find IR + if iname0 == iname1: + continue + if not overlap(isoforms[chrom][iname0]['range'], isoforms[chrom][iname1]['range']): + continue + starts0, sizes0 = isoforms[chrom][iname0]['starts'], isoforms[chrom][iname0]['sizes'] + starts1, sizes1 = isoforms[chrom][iname1]['starts'], isoforms[chrom][iname1]['sizes'] + prev5 = starts1[0] + sizes1[0] # previous 5' end of isoform1's intron + for start1, size1 in zip(starts1[1:], sizes1[1:]): + if start1 - prev5 < 100: # do not count exons spanning introns smaller than 100 bp + prev5 = start1 + size1 + continue + for start0, size0 in zip(starts0, sizes0): + allcoords.add((chrom, str(prev5), (start1), isoforms[chrom][iname1]['strand'])) + if start0 < prev5 + 10 and start0 + size0 > start1 - 10: # if isoform 0 has exon where isoform 1 has intron + isoforms[chrom][iname0]['ir'] = True + introncoords.add((chrom, str(prev5), (start1), isoforms[chrom][iname0]['strand'])) + prev5 = start1 + size1 + + with open(outfilename, 'wt') as outfile: + writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) + for chrom in isoforms: + for name in isoforms[chrom]: + if isoforms[chrom][name]['ir']: + writer.writerow(isoforms[chrom][name]['entry'] + [1]) + else: + writer.writerow(isoforms[chrom][name]['entry'] + [0]) + + with open(txtout, 'wt') as outfile: + writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) + for intron in introncoords: + writer.writerow(intron) + -with open(txtout, 'wt') as outfile: - writer = csv.writer(outfile, delimiter='\t', lineterminator=os.linesep) - for intron in introncoords: - writer.writerow(intron) +if __name__ == "__main__": + main() diff --git a/src/flair/partition_runner.py b/src/flair/partition_runner.py index 7876e6cd..4653aed6 100644 --- a/src/flair/partition_runner.py +++ b/src/flair/partition_runner.py @@ -7,6 +7,7 @@ """ import os import re +import shutil import pickle import multiprocessing as mp import pipettor @@ -14,7 +15,15 @@ from flair.pycbio.hgdata.bed import BedReader _GTF_DATA_PKL = 'gtf_data.pkl' -_INTRON_SUPPORT_PKL = 'intron_support.pkl' +_JUNCTION_CORRECTOR_PKL = 'junction_corrector.pkl' + + +def combine_temp_files_by_suffix(output, temp_prefixes, suffixes): + for filesuffix in suffixes: + with open(output + filesuffix, 'wb') as combined_fh: + for temp_prefix in temp_prefixes: + with open(temp_prefix + filesuffix, 'rb') as in_fh: + shutil.copyfileobj(in_fh, combined_fh, 1024 * 1024 * 10) def parallel_mode_parse(parser, parallel_mode): @@ -45,12 +54,12 @@ class Partition: GtfData and IntronSupport are pickled to temp_dir at construction and loaded on demand by the partition runner wrapper. """ - def __init__(self, region, temp_dir, *, gtf_data=None, intron_support=None): + def __init__(self, region, temp_dir, *, gtf_data=None, junction_corrector=None): self.region = region self.temp_dir = temp_dir os.makedirs(temp_dir, exist_ok=True) self._pickle(gtf_data, _GTF_DATA_PKL) - self._pickle(intron_support, _INTRON_SUPPORT_PKL) + self._pickle(junction_corrector, _JUNCTION_CORRECTOR_PKL) def _pickle(self, obj, name): if obj is not None: @@ -68,9 +77,9 @@ def load_gtf_data(self): """Load and return the pickled GtfData, or None if not present.""" return self._unpickle(_GTF_DATA_PKL) - def load_intron_support(self): + def load_junction_corrector(self): """Load and return the pickled IntronSupport, or None if not present.""" - return self._unpickle(_INTRON_SUPPORT_PKL) + return self._unpickle(_JUNCTION_CORRECTOR_PKL) def temp_path(self, suffix): """Return a path inside this partition's temp_dir with the given suffix.""" @@ -98,7 +107,7 @@ def _call_partition_func(packed): partition, func, func_kwargs = packed func(partition=partition, gtf_data=partition.load_gtf_data(), - intron_support=partition.load_intron_support(), + junction_corrector=partition.load_junction_corrector(), **func_kwargs) @@ -133,26 +142,27 @@ class PartitionRunner: per-partition temp directories under work_dir. Call run() to apply a function to each partition. """ - def __init__(self, regions, work_dir, *, gtf_data=None, intron_support=None, threads=1): + def __init__(self, regions, work_dir, *, gtf_data=None, junction_corrector=None, threads=1): """ Args: - regions: iterable of SeqRange objects - work_dir: root directory; per-partition subdirectories are created here - gtf_data: GtfData to subset and pickle per region, or None - intron_support: IntronSupport to subset and pickle per region, or None - threads: number of parallel workers used by run() + regions: iterable of SeqRange objects + work_dir: root directory; per-partition subdirectories are created here + gtf_data: GtfData to subset and pickle per region, or None + junction_corrector: JunctionCorrector to subset and pickle per region, or None + threads: number of parallel workers used by run() """ os.makedirs(work_dir, exist_ok=True) self.work_dir = work_dir self.threads = threads self.partitions = [] + region_gtf = region_jc = None for region in regions: - region_gtf = (gtf_data.subset_for_region(region.name, region.start, region.end) - if gtf_data is not None else None) - region_is = (intron_support.subset_for_region(region.name, region.start, region.end) - if intron_support is not None else None) + if gtf_data is not None: + region_gtf = gtf_data.subset_for_region(region.name, region.start, region.end) + if junction_corrector is not None: + region_jc = junction_corrector.subset_for_region(region.name, region.start, region.end) self.partitions.append(Partition(region, _region_temp_dir(work_dir, region), - gtf_data=region_gtf, intron_support=region_is)) + gtf_data=region_gtf, junction_corrector=region_jc)) def __iter__(self): return iter(self.partitions) @@ -167,7 +177,7 @@ def run(self, func, **kwargs): partition -- Partition for this region; provides region, temp_dir, output_path(), and file_prefix gtf_data -- GtfData subset for the region, or None - intron_support -- IntronSupport subset for the region, or None + junction_corrector -- JunctionCorrector subset for the region, or None **kwargs -- any additional keyword arguments passed to run() Side effects (e.g. writing files to partition.temp_dir) are the @@ -189,7 +199,7 @@ def _region_temp_dir(work_dir, region): def partition_runner_factory(parallel_mode, genome, genome_aligned_bam, work_dir, annot_gtf, threads, *, - gtf_data=None, intron_support=None): + gtf_data=None, junction_corrector=None): """Create a PartitionRunner, choosing bychrom or byregion based on parallel_mode. parallel_mode is a tuple as returned by parallel_mode_parse: @@ -200,4 +210,4 @@ def partition_runner_factory(parallel_mode, genome, genome_aligned_bam, work_dir for chrom in genome.references] else: regions = _run_flair_partition(genome_aligned_bam, annot_gtf, threads) - return PartitionRunner(regions, work_dir, gtf_data=gtf_data, intron_support=intron_support, threads=threads) + return PartitionRunner(regions, work_dir, gtf_data=gtf_data, junction_corrector=junction_corrector, threads=threads) diff --git a/src/flair/plot_isoform_usage.py b/src/flair/plot_isoform_usage.py index a369eb15..4d9f48dc 100755 --- a/src/flair/plot_isoform_usage.py +++ b/src/flair/plot_isoform_usage.py @@ -2,13 +2,13 @@ import os import argparse os.environ['OPENBLAS_NUM_THREADS'] = '1' -import numpy as np -import matplotlib +import numpy as np # noqa: E402 +import matplotlib # noqa: E402 matplotlib.use("Agg") -import sys -import matplotlib.pyplot as plt -import matplotlib.patches as mplpatches -from flair import FlairInputDataError +import matplotlib.pyplot as plt # noqa: E402 +import matplotlib.patches as mplpatches # noqa: E402 +from flair import FlairInputDataError # noqa: E402 + def parse_args(): desc = '''The script will produce two images, one of the isoform models and another of the usage proportions. @@ -35,12 +35,14 @@ def parse_args(): isoforms at once or change the palette used. each line contains a hex color for each isoform''') return parser.parse_args() + hex_colors = ['#ba748a', '#3498db', "#34495e"] name_colors = ['xkcd:windows blue', 'xkcd:faded green', 'xkcd:dusty purple', 'xkcd:amber'] gray = "xkcd:greyish" reverse_complement = {'C': 'G', 'G': 'C', 'A': 'T', 'T': 'A'} -def parse_bed(bedfh, *, names=False, keepiso=set()): + +def parse_bed(bedfh, *, names=False, keepiso=set()): # noqa: C901 - FIXME: reduce complexity info = [] usednames = [] lowbound, upbound = 1e9, 0 @@ -54,7 +56,7 @@ def parse_bed(bedfh, *, names=False, keepiso=set()): if '_' in name[-4:]: # for isoforms with productivity appended to the name flag = name[name.rfind('_') + 1:] if flag not in ['PRO', 'PTC']: - flag = 'Z'+flag # ngo and nstop are alphabetically after pro and ptc + flag = 'Z' + flag # ngo and nstop are alphabetically after pro and ptc name = name[:name.rfind('_')] elif '_PTC' in name: flag = 'PTC' @@ -97,9 +99,9 @@ def parse_bed(bedfh, *, names=False, keepiso=set()): def pack(data, rev=True, color=False, tosort=True): - starts = [max(d[1]) for d in data] if rev else [min(d[1]) for d in data] # sort by right or left end + starts = [max(d[1]) for d in data] if rev else [min(d[1]) for d in data] # sort by right or left end if tosort: - data = [d for (s,d) in sorted(zip(starts, data))] + data = [d for (s, d) in sorted(zip(starts, data))] else: data = [d for s, d in zip(starts, data)] packed = [[data[0]]] @@ -121,64 +123,64 @@ def pack(data, rev=True, color=False, tosort=True): return packed -def plot_blocks(data, panel, names, iso_to_variant, upper, lower, strand, base_colors, height=.5, l=0.8): +def plot_blocks(data, panel, names, iso_to_variant, upper, lower, strand, base_colors, height=.5, l=0.8): # noqa: C901 - FIXME: reduce complexity panel.set_xlim(1, upper - lower + 2) if strand == '-': # flip axes so that the isoforms are plotted 5' -> 3' panel.set_xlim(upper - lower + 2, 1) - panel.set_ylim(-.6, len(data) * 2-.4) + panel.set_ylim(-.6, len(data) * 2 - .4) panel.tick_params(axis='both', which='both', - bottom=False, labelbottom=False, - left=False, labelleft=False, - right=False, labelright=False, - top=False, labeltop=False) + bottom=False, labelbottom=False, + left=False, labelleft=False, + right=False, labelright=False, + top=False, labeltop=False) di = 0 # data index - #ni = 0 # name index unused + # ni = 0 # name index unused ew = 1.5 # edgewidth on all blocks - for i in range(0, len(data)*2, 2): # each line + for i in range(0, len(data) * 2, 2): # each line read = data[di] for j in range(len(read)): # plot isoform block line = read[j] sizes, starts, color, flag, iso_name = line[0], line[1], line[2], line[3], line[4][:line[4].rfind('_')] - iso_start = data[di][0+j][1][0] - iso_end = data[di][0+j][1][-1]+data[di][0+j][0][-1] + iso_start = data[di][0 + j][1][0] + iso_end = data[di][0 + j][1][-1] + data[di][0 + j][0][-1] if strand == '+': - reverse_text_alignment = iso_start/(upper - lower) > 0.81 + reverse_text_alignment = iso_start / (upper - lower) > 0.81 x = iso_start if not reverse_text_alignment else iso_end else: - reverse_text_alignment = iso_end/(upper - lower) < 0.19 + reverse_text_alignment = iso_end / (upper - lower) < 0.19 x = iso_end if not reverse_text_alignment else iso_start if reverse_text_alignment: # plot iso name - panel.text(x, i-height/2 + 1, iso_name, fontsize=8, ha='right', va='center') + panel.text(x, i - height / 2 + 1, iso_name, fontsize=8, ha='right', va='center') else: - panel.text(x, i-height/2 + 1, iso_name, fontsize=8, ha='left', va='center') + panel.text(x, i - height / 2 + 1, iso_name, fontsize=8, ha='left', va='center') for k in range(len(sizes)): # each block of each read if flag == 'PRO': - rectangle = mplpatches.Rectangle([starts[k], i - height/2], - sizes[k], height, facecolor=color, linewidth=ew, edgecolor=color, zorder=10) + rectangle = mplpatches.Rectangle([starts[k], i - height / 2], + sizes[k], height, facecolor=color, linewidth=ew, edgecolor=color, zorder=10) panel.add_patch(rectangle) elif flag == 'PTC': - rectangle = mplpatches.Rectangle([starts[k], i - height/2], - sizes[k], height, facecolor='none', edgecolor=color, - linewidth=ew, zorder=10,hatch='////') + rectangle = mplpatches.Rectangle([starts[k], i - height / 2], + sizes[k], height, facecolor='none', edgecolor=color, + linewidth=ew, zorder=10, hatch='////') panel.add_patch(rectangle) - rectangle = mplpatches.Rectangle([starts[k], i - height/2], - sizes[k], height, facecolor=color, linewidth=0, zorder=10,alpha=0.2) + rectangle = mplpatches.Rectangle([starts[k], i - height / 2], + sizes[k], height, facecolor=color, linewidth=0, zorder=10, alpha=0.2) panel.add_patch(rectangle) else: - rectangle = mplpatches.Rectangle([starts[k], i - height/2], - sizes[k], height, facecolor='none', edgecolor=color, linewidth=ew, zorder=10,alpha=1) + rectangle = mplpatches.Rectangle([starts[k], i - height / 2], + sizes[k], height, facecolor='none', edgecolor=color, linewidth=ew, zorder=10, alpha=1) panel.add_patch(rectangle) - rectangle = mplpatches.Rectangle([starts[k], i - height/2], - sizes[k], height, facecolor=color, linewidth=0, zorder=10,alpha=0.2) + rectangle = mplpatches.Rectangle([starts[k], i - height / 2], + sizes[k], height, facecolor=color, linewidth=0, zorder=10, alpha=0.2) panel.add_patch(rectangle) if k > 0: - panel.plot([starts[k-1]+sizes[k-1], starts[k]], [i]*2, 'k-', lw=l) + panel.plot([starts[k - 1] + sizes[k - 1], starts[k]], [i] * 2, 'k-', lw=l) if iso_name in iso_to_variant: for var in iso_to_variant[iso_name]: @@ -186,13 +188,14 @@ def plot_blocks(data, panel, names, iso_to_variant, upper, lower, strand, base_c basecol = base_colors[reverse_complement[var[3]]] else: basecol = base_colors[var[3]] - rectangle = mplpatches.Rectangle([var[1], i - height/2-.2], - (upper-lower)/500, height+.4, facecolor=basecol, linewidth=0, zorder=10,alpha=.8) + rectangle = mplpatches.Rectangle([var[1], i - height / 2 - .2], + (upper - lower) / 500, height + .4, facecolor=basecol, linewidth=0, zorder=10, alpha=.8) panel.add_patch(rectangle) di += 1 -def plot_isoform_usage(args): + +def plot_isoform_usage(args): # noqa: C901 - FIXME: reduce complexity args = parse_args() bedfh = open(args.isoforms) counts_matrix = open(args.counts_matrix) @@ -209,20 +212,20 @@ def plot_isoform_usage(args): keepiso = {} # isoforms that they have a sufficient proportion of reads mapping to them sample_ids = counts_matrix.readline().rstrip().split('\t')[1:] proportions = [] - totals = [0]*len(sample_ids) + totals = [0] * len(sample_ids) - figwidth = 1 + len(sample_ids)*7/10 - plt.figure(figsize=(figwidth,6)) # proportion usage figure - figstart = 0.7/figwidth + figwidth = 1 + len(sample_ids) * 7 / 10 + plt.figure(figsize=(figwidth, 6)) # proportion usage figure + figstart = 0.7 / figwidth - panel = plt.axes([figstart, 0.11, 1-figstart-0.02, 0.88], frameon=False) # plotting the proportion of expression - panel.tick_params(axis='both',which='both', - bottom=True, labelbottom=True, - left=True, labelleft=True, - right=False, labelright=False, - top=False, labeltop=False, labelsize=8) + panel = plt.axes([figstart, 0.11, 1 - figstart - 0.02, 0.88], frameon=False) # plotting the proportion of expression + panel.tick_params(axis='both', which='both', + bottom=True, labelbottom=True, + left=True, labelleft=True, + right=False, labelright=False, + top=False, labeltop=False, labelsize=8) - gray_bar = [['lowexpr']+[0]*len(sample_ids)+[gray]] # the minor isoform bar is gray + gray_bar = [['lowexpr'] + [0] * len(sample_ids) + [gray]] # the minor isoform bar is gray for line in counts_matrix: line = line.rstrip().split('\t') @@ -231,11 +234,11 @@ def plot_isoform_usage(args): counts = [float(x) for x in line[1:]] if all(x < args.min_reads for x in counts): for i in range(len(sample_ids)): - gray_bar[0][i+1] += counts[i] # add to gray bar bc expression is too low + gray_bar[0][i + 1] += counts[i] # add to gray bar bc expression is too low for i in range(len(sample_ids)): totals[i] += counts[i] continue - proportions += [[line[0]]+counts+[sum(counts)]] + proportions += [[line[0]] + counts + [sum(counts)]] colori = 0 proportions = sorted(proportions, key=lambda x: x[-1], reverse=True) # sort by expression @@ -247,9 +250,9 @@ def plot_isoform_usage(args): totals[i] += counts[i] if colori == len(color_palette): # add to gray bar bc colors ran out for i in range(len(sample_ids)): - gray_bar[0][i+1] += counts[i] + gray_bar[0][i + 1] += counts[i] continue - proportions_color += [p+[color_palette[colori]]] + proportions_color += [p + [color_palette[colori]]] keepiso[p[0]] = color_palette[colori] colori += 1 @@ -259,51 +262,50 @@ def plot_isoform_usage(args): raise FlairInputDataError('''Needs more than 1 isoform with sufficient representation, check gene_name in your counts file, then try toggling min_reads''') - proportions = sorted(proportions, key=lambda x:x[1])[::-1] - heights = [0]*len(sample_ids) + proportions = sorted(proportions, key=lambda x: x[1])[::-1] + heights = [0] * len(sample_ids) for iso in proportions: for i in range(len(sample_ids)): if totals[i] == 0: continue - percentage = iso[1+i]/totals[i]*100 - rectangle = mplpatches.Rectangle([i+1-0.4, heights[i]], - width=0.9, height=percentage, facecolor=iso[-1], linewidth=0) + percentage = iso[1 + i] / totals[i] * 100 + rectangle = mplpatches.Rectangle([i + 1 - 0.4, heights[i]], + width=0.9, height=percentage, facecolor=iso[-1], linewidth=0) panel.add_patch(rectangle) if percentage >= 7.5: # add usage percentage - panel.text(i+1+.07, heights[i] + percentage/2, str(round(percentage,1))+'%', - fontsize=10, ha='center',va='center',color='white') + panel.text(i + 1 + .07, heights[i] + percentage / 2, str(round(percentage, 1)) + '%', + fontsize=10, ha='center', va='center', color='white') if percentage >= 12.25: # add read num - if iso[1+i] == 1: - panel.text(i+1.45, heights[i]+1.75, str(int(iso[1+i]))+' read', - fontsize=6, ha='right',va='center',color='white') + if iso[1 + i] == 1: + panel.text(i + 1.45, heights[i] + 1.75, str(int(iso[1 + i])) + ' read', + fontsize=6, ha='right', va='center', color='white') else: - panel.text(i+1.44, heights[i]+1.75, str(int(iso[1+i]))+' reads', - fontsize=6, ha='right',va='center',color='white') + panel.text(i + 1.44, heights[i] + 1.75, str(int(iso[1 + i])) + ' reads', + fontsize=6, ha='right', va='center', color='white') heights[i] += percentage xlim = len(sample_ids) + 0.5 # guide lines every 20% - panel.plot([-1, xlim], [0, 0], 'r--', lw=.75, alpha=.3, zorder=0) - panel.plot([-1, xlim], [20, 20], 'r--', lw=.75, alpha=.3, zorder=0) - panel.plot([-1, xlim], [40, 40], 'r--', lw=.75, alpha=.3, zorder=0) - panel.plot([-1, xlim], [60, 60], 'r--', lw=.75, alpha=.3, zorder=0) - panel.plot([-1, xlim], [80, 80], 'r--', lw=.75, alpha=.3, zorder=0) + panel.plot([-1, xlim], [0, 0], 'r--', lw=.75, alpha=.3, zorder=0) + panel.plot([-1, xlim], [20, 20], 'r--', lw=.75, alpha=.3, zorder=0) + panel.plot([-1, xlim], [40, 40], 'r--', lw=.75, alpha=.3, zorder=0) + panel.plot([-1, xlim], [60, 60], 'r--', lw=.75, alpha=.3, zorder=0) + panel.plot([-1, xlim], [80, 80], 'r--', lw=.75, alpha=.3, zorder=0) panel.plot([-1, xlim], [100, 100], 'r--', lw=.75, alpha=.3, zorder=0) - panel.set_xticks(np.arange(1,xlim)) + panel.set_xticks(np.arange(1, xlim)) panel.set_xticklabels(sample_ids, rotation=20, ha='right') panel.set_xlim(0.5, xlim) panel.set_ylim(0, 100) panel.set_ylabel('Percent Usage', fontsize=12) # plt.savefig(args.o+'_proportion.pdf', transparent=True, dpi=600) # uncomment to output as pdf - plt.savefig(args.o+'_usage.png', dpi=600) + plt.savefig(args.o + '_usage.png', dpi=600) # plotting isoform structures panel = plt.axes([0.005, 0.015, .99, 0.97], frameon=True) # annotation - isoforms, lower, upper, strand, names = parse_bed(bedfh, keepiso=keepiso) - isoforms = sorted(isoforms,key=lambda x: x[3], reverse=True) # sort by productivity + isoforms = sorted(isoforms, key=lambda x: x[3], reverse=True) # sort by productivity packed = pack(isoforms, rev=False, tosort=False) iso_to_variant = {} @@ -320,16 +322,17 @@ def plot_isoform_usage(args): iso_name = k[:k.rfind('_')] if iso_name not in iso_to_variant: iso_to_variant[iso_name] = [] - iso_to_variant[iso_name] += [(line[0], int(line[1])-lower, line[3], line[4])] - + iso_to_variant[iso_name] += [(line[0], int(line[1]) - lower, line[3], line[4])] plot_blocks(packed, panel, names, iso_to_variant, upper, lower, strand, base_colors, l=1) # plt.savefig(args.o+'_bars.pdf', transparent=True, dpi=600) # uncomment to output as pdf - plt.savefig(args.o+'_isoforms.png', dpi=600) + plt.savefig(args.o + '_isoforms.png', dpi=600) + def main(): plot_isoform_usage(parse_args()) + if __name__ == "__main__": main() diff --git a/src/flair/predictProductivity.py b/src/flair/predictProductivity.py index 2ae607eb..75aff209 100755 --- a/src/flair/predictProductivity.py +++ b/src/flair/predictProductivity.py @@ -16,59 +16,152 @@ # Hot Imports & Global Variable ######################################################################## - -import sys import pipettor import os -from pycbio.sys import fileOps +import argparse from flair import FlairInputDataError -######################################################################## -# CommandLine -######################################################################## - - -class CommandLine(object): - ''' - Handle the command line, usage and help requests. - CommandLine uses argparse, now standard in 2.7 and beyond. - it implements a standard command line argument parser with various argument options, - and a standard usage and help, - attributes: - myCommandLine.args is a dictionary which includes each of the available command line arguments as - myCommandLine.args['option'] - - methods: - - ''' - - def __init__(self, inOpts=None): - ''' - CommandLine constructor. - Implements a parser to interpret the command line argv string using argparse. - ''' - import argparse - self.parser = argparse.ArgumentParser(description='used to predict coding sequence and amino acid sequence of novel isoforms based on annotated start codons') - # Add args - self.parser.add_argument('-i', "--input_isoforms", action='store', required=True, help='Input collapsed isoforms in bed12 format.') - self.parser.add_argument('-g', "--gtf", action='store', required=True, help='Gencode annotation file.') - self.parser.add_argument('-f', "--genome_fasta", action='store', required=True, help='Fasta file containing transcript sequences.') - self.parser.add_argument('-o', "--output", action='store', required=True, help='prefix of output files') - self.parser.add_argument("--quiet", action='store_false', required=False, default=True, help='Do not display progress') - self.parser.add_argument("--append_column", action='store_true', required=False, default=False, help='Append prediction as an additional column in file') - - self.group = self.parser.add_mutually_exclusive_group(required=True) - self.group.add_argument('--firstTIS', action='store_true', default=False, help='Defined ORFs by the first annotated TIS.') - self.group.add_argument('--longestORF',action='store_true', default=False, help='Defined ORFs by the longest open reading frame.') - - if inOpts is None: - self.args = vars(self.parser.parse_args()) +from flair.gtf_io import gtf_record_parser, GtfAttrsSet +from flair.pycbio.hgdata.bed import Bed, BedReader +from flair.pycbio.sys import fileOps +# from flair.isoform_data import BED_FIELDS, make_big_bed +from flair.bed_to_gtf import bed_to_gtf +from flair.flair_bed import FlairBed + +STOP_CODON_SEQS = set(['TAA', 'TGA', 'TAG']) +MAX_DIST_FROM_EXON_EDGE_FOR_PTC = 55 +PRODUCTIVITY_COLORS = {"PRO": "103,169,207", "PTC": "239,138,98", "NST": "0,0,0", "NGO": "0,0,0"} + +def parse_args(): + parser = argparse.ArgumentParser(description='used to predict coding sequence and amino acid sequence of novel isoforms based on annotated start codons') + # Add args + parser.add_argument('-i', "--input_isoforms", action='store', required=True, help='Input collapsed isoforms in bed12 format.') + parser.add_argument('-g', "--gtf", action='store', required=True, help='Gencode annotation file.') + parser.add_argument('-f', "--genome_fasta", action='store', required=True, help='Fasta file containing transcript sequences.') + parser.add_argument('-o', "--output", action='store', required=True, help='prefix of output files') + parser.add_argument("--is_flair_bed", action='store_true', help='specify if input is a bed12+ file generated by flair, ' + 'will add productivity to flair bed productivity column') + + return parser.parse_args() + + +########## +# START NEW CODE FOR TRANSCRIPTOME +########## + +# FIXME: add predictProd here +# to do predict productivity: +# DONE load start codons (CDS start pos) and nmd exceptions from gtf +# DONE (iso.get_sequence) get iso ID to transcript sequence dict +# get iso id to: genomic exon coords list (currently have this in both left->right (exons) and 5'->3' (allExons), probably don't need both +# exon sizes list (5' to 3') +# DONE get all annot starts that fall in exons (genomic position) +# for each start in transcript +# DONE get relative position of start on transcript +# identify stop position based on stop codon found by scanning sequence +# identify whether the stop is a PTC +# sort all found orfs by length, pick longest +# set thickStart, thickEnd, and color, add productivity column to bed +# write out + +def get_annot_start_codons(transcript, gene_to_cds_starts): + my_annot_starts = set() + for gene in transcript.gene.gene_desc: + if gene in gene_to_cds_starts: + my_annot_starts.update(gene_to_cds_starts[gene]) + return my_annot_starts + +def identify_start_exon_index(my_exons, annot_start): + start_exon_index = None + for i, e in enumerate(my_exons): + if e.start <= annot_start <= e.end: + start_exon_index = i + break + return start_exon_index + +def calc_transcript_rel_start_pos(annot_start, exon_sizes, my_exons, start_exon_index, strand): + if strand == '+': + rel_start = sum(exon_sizes[:start_exon_index]) + (annot_start - my_exons[start_exon_index].start) + else: + rel_start = sum(exon_sizes[start_exon_index + 1:]) + (my_exons[start_exon_index].end - annot_start) + return rel_start + +def calc_stop_codon_pos(seq_from_start): + stop_reached = False + for stop_codon_pos in range(0, len(seq_from_start), 3): + if seq_from_start[stop_codon_pos:stop_codon_pos + 3] in STOP_CODON_SEQS: + stop_reached = True + break + return stop_reached, stop_codon_pos + +def calc_ptc(exon_sizes, orf_end_pos, ref_transcript_id, transcript_to_nmd_except): + is_ptc = True + if ref_transcript_id in transcript_to_nmd_except and transcript_to_nmd_except[ref_transcript_id]: + is_ptc = False + elif orf_end_pos > sum(exon_sizes[:-2]) and orf_end_pos > sum(exon_sizes[:-1]) - MAX_DIST_FROM_EXON_EDGE_FOR_PTC: + is_ptc = False + return "PTC" if is_ptc else "PRO" + +def calc_genomic_end_pos(my_exons, exon_sizes, orf_end_pos, strand): + curr_start = 0 + genomic_end_pos = None + for i in range(len(my_exons)): + if curr_start <= orf_end_pos < curr_start + exon_sizes[i]: + if strand == '+': + genomic_end_pos = my_exons[i].start + (orf_end_pos - curr_start) + else: + genomic_end_pos = my_exons[i].end - (orf_end_pos - curr_start) + curr_start += exon_sizes[i] + return genomic_end_pos + +def identify_prod_from_start(orfs, annot_start, rel_start, my_exons, exon_sizes, my_seq, strand, ref_transcript_id, + transcript_to_nmd_except): + five_UTR, seq_from_start = my_seq[:rel_start], my_seq[rel_start:].upper() + stop_reached, stop_codon_pos = calc_stop_codon_pos(seq_from_start) + if not stop_reached: + transcript_end = my_exons[-1].end if strand == "+" else my_exons[0].start + orfs.append(["NST", annot_start, transcript_end, len(five_UTR) + stop_codon_pos - rel_start, rel_start]) + else: + orf_end_pos = len(five_UTR) + stop_codon_pos + 3 + # order exon sizes from 5' to 3' + if strand == '-': + exon_sizes = exon_sizes[::-1] + my_exons = my_exons[::-1] + ptc = calc_ptc(exon_sizes, orf_end_pos, ref_transcript_id, transcript_to_nmd_except) + genomic_end_pos = calc_genomic_end_pos(my_exons, exon_sizes, orf_end_pos, strand) + orfs.append([ptc, annot_start, genomic_end_pos, orf_end_pos - rel_start, rel_start]) + +def identify_best_orf_from_starts(transcript, my_annot_starts, my_seq, transcript_to_nmd_except): + my_exons = sorted(transcript.exons) # sorted from left to right on genome + exon_sizes = [x.end - x.start for x in my_exons] + orfs = [] + for annot_start in my_annot_starts: + start_exon_index = identify_start_exon_index(my_exons, annot_start) + if start_exon_index is not None: + rel_start = calc_transcript_rel_start_pos(annot_start, exon_sizes, my_exons, start_exon_index, transcript.strand) + identify_prod_from_start(orfs, annot_start, rel_start, my_exons, exon_sizes, my_seq, transcript.strand, + transcript.ref_transcript_id, transcript_to_nmd_except) + if len(orfs) == 0: + orfs.append(["NGO", sorted(my_exons)[0].start, sorted(my_exons)[0].start, 0, 0]) + orfs.sort(key=lambda x: x[3], reverse=True) + return orfs[0] + +def predict_prod_temp(transcript, start_codon_count, gene_to_cds_starts, transcript_to_nmd_except, genome): + my_prod = None + thickStart, thickEnd, prodRGB = None, None, None + if start_codon_count > 0: # annotations exist and contain start codons + my_annot_starts = get_annot_start_codons(transcript, gene_to_cds_starts) + my_orf = identify_best_orf_from_starts(transcript, my_annot_starts, transcript.get_sequence(genome), transcript_to_nmd_except) + prodRGB = PRODUCTIVITY_COLORS[my_orf[0]] + if transcript.strand == '+': + thickStart, thickEnd = my_orf[1], my_orf[2] else: - self.args = vars(self.parser.parse_args(inOpts)) + thickStart, thickEnd = my_orf[2], my_orf[1] + my_prod = my_orf[0] + return thickStart, thickEnd, prodRGB, my_prod - -######################################################################## -# Isoform -######################################################################## +########## +# END NEW CODE FOR TRANSCRIPTOME +########## class Isoform(object): ''' @@ -85,10 +178,10 @@ def __init__(self, name=None, seq=None): self.pro = "UNK" self.chrom = "" - self.sequence = seq - self.exons = set() - self.starts = set() - self.orfs = list() + self.sequence = seq + self.exons = set() + self.starts = set() + self.orfs = list() self.exonSizes = list() self.ptcpoint = '' self.allEsizes = list() @@ -101,26 +194,18 @@ def __init__(self, name=None, seq=None): def getStarts(gtf): - # starts = list() - starts = fileOps.tmpFileGet('predictProd_starts', suffix='.bed') + starts = fileOps.tmpFileGet(prefix='predictProd_starts_intermediate', suffix='.bed') scount = 0 out = open(starts, 'w') tnamenmdexcep = set() - with open(gtf) as lines: - for l in lines: - if l[0] == "#": continue - cols = l.rstrip().split("\t") - chrom, c1, c2, strand = cols[0], int(cols[3])-1, int(cols[4]), cols[6] - if cols[2] == "start_codon": - gene = cols[8][cols[8].find('gene_id')+len('gene_id')+2:] - gene = gene[:gene.find('"')] - scount += 1 - out.write('\t'.join([str(x) for x in [chrom,c1,c2,gene,".",strand]]) + '\n') - # starts.append((chrom,c1,c2,gene,".",strand)) - if cols[2] == 'transcript': - if 'NMD_exception' in cols[8]: - transcript = cols[8].split('transcript_id "')[1].split('"')[0] - tnamenmdexcep.add(transcript) + for rec in gtf_record_parser(gtf, include_features={'start_codon', 'transcript'}, attrs=GtfAttrsSet.ALL): + if rec.feature == 'start_codon': + scount += 1 + Bed(rec.chrom, rec.start, rec.end, name=rec.gene_id, + score=0, strand=rec.strand).write(out) + elif rec.feature == 'transcript': + if 'NMD_exception' in str(rec.attrs): + tnamenmdexcep.add(rec.transcript_id) out.close() if scount == 0: raise FlairInputDataError(f'ERROR, no start codons were found in {gtf}') @@ -145,7 +230,7 @@ def split_iso_gene(iso_gene): else: splitchar = '_' iso = iso_gene[:iso_gene.rfind(splitchar)] - gene = iso_gene[iso_gene.rfind(splitchar)+1:] + gene = iso_gene[iso_gene.rfind(splitchar) + 1:] return iso, gene @@ -160,36 +245,36 @@ def getSeqs(bed, genome): if len(entry) > 0: read, seq = entry.split() # accommodate different bedtools versions - they use different separators - iso = read.split('::')[0] iso = iso.split("(")[0] - if iso[:10] == 'fusiongene': iso = '_'.join(iso.split('_')[1:]) + if iso[:10] == 'fusiongene': + iso = '_'.join(iso.split('_')[1:]) if iso not in isoDict: - isoDict[iso] = Isoform(iso,seq) + isoDict[iso] = Isoform(iso, seq) else: isoDict[iso].sequence = isoDict[iso].sequence + seq return isoDict -def getStartRelPos(genomicStartPos,exon, exons, isoObj): +def getStartRelPos(genomicStartPos, exon, exons, isoObj): ''' is handed a genomic position, the exon it occurs in, all exons, and returns the position relative to all exons ''' exonNum = exons.index(exon) - isoObj.exonSizes = [x[1]-x[0] for x in exons] + isoObj.exonSizes = [x[1] - x[0] for x in exons] # First get start position relative to transcript sequence. if isoObj.strand == "+": relativeStart = genomicStartPos - exons[exonNum][0] + sum([x for x in isoObj.exonSizes[:exonNum]]) elif isoObj.strand == "-": # print('calc', sum(isoObj.exonSizes), genomicStartPos - exons[exonNum][0], sum(isoObj.exonSizes[:exonNum]), sum(isoObj.exonSizes) - (genomicStartPos - exons[exonNum][0] + sum(isoObj.exonSizes[:exonNum]))) - relativeStart = sum(isoObj.exonSizes) - (genomicStartPos - exons[exonNum][0] + sum(isoObj.exonSizes[:exonNum])) #- 3 + relativeStart = sum(isoObj.exonSizes) - (genomicStartPos - exons[exonNum][0] + sum(isoObj.exonSizes[:exonNum])) # - 3 return relativeStart -def checkPTC(orfEndPos, exonSizes, allExons, nmdexcep, isoname): +def checkPTC(orfEndPos, exonSizes, allExons, nmdexcep, isoname): # noqa: C901 - FIXME: reduce complexity ''' takes a transcript sequence position, and list of exon sizes to detemine if that position occurs more than 55nucleotides away from a splice junction. @@ -198,16 +283,16 @@ def checkPTC(orfEndPos, exonSizes, allExons, nmdexcep, isoname): ''' stopDistFromExon = None exonWithStop = None - ptc = None + ptc = None genomicPos = int() - distance = 0 + distance = 0 maxdistfromexonedge = 55 - for num,e in enumerate(exonSizes,0): + for num, e in enumerate(exonSizes, 0): distance += e # if the stop codon is in the last exon, then not ptc. - if num == len(exonSizes)-1: + if num == len(exonSizes) - 1: ptc = False if exonWithStop is None: exonWithStop = num @@ -224,55 +309,59 @@ def checkPTC(orfEndPos, exonSizes, allExons, nmdexcep, isoname): # allow stop codon in second to last exon if fusion breakpoint between second to last and last exon if allExons[-2][3] != allExons[-1][3]: - if num == len(exonSizes)-2: + if num == len(exonSizes) - 2: ptc = False break - elif distToJunc > maxdistfromexonedge or num < len(exonSizes)-3: + elif distToJunc > maxdistfromexonedge or num < len(exonSizes) - 3: ptc = True break - if distToJunc > maxdistfromexonedge or num < len(exonSizes)-2: + if distToJunc > maxdistfromexonedge or num < len(exonSizes) - 2: ptc = True break - if len(exonSizes) == 1: ptcpointont = 0 + if len(exonSizes) == 1: + ptcpointont = 0 elif allExons[-2][3] != allExons[-1][3]: - if len(exonSizes) == 2: ptcpointont = 0 - elif exonSizes[-3] < maxdistfromexonedge: ptcpointont = sum(exonSizes[:-3]) - else: ptcpointont = sum(exonSizes[:-2]) - maxdistfromexonedge - elif exonSizes[-2] < maxdistfromexonedge: ptcpointont = sum(exonSizes[:-2]) - else: ptcpointont = sum(exonSizes[:-1]) - maxdistfromexonedge - - isoname = '_'.join(isoname.split('_')[:-1]) - if isoname[-2] == '-': isoname = isoname[:-2] + if len(exonSizes) == 2: + ptcpointont = 0 + elif exonSizes[-3] < maxdistfromexonedge: + ptcpointont = sum(exonSizes[:-3]) + else: + ptcpointont = sum(exonSizes[:-2]) - maxdistfromexonedge + elif exonSizes[-2] < maxdistfromexonedge: + ptcpointont = sum(exonSizes[:-2]) + else: + ptcpointont = sum(exonSizes[:-1]) - maxdistfromexonedge + + # FIXME will need to re-test that a bunch of this works with new isoform ids that don't contain gene + # isoname = '_'.join(isoname.split('_')[:-1]) + if isoname[-2] == '-': + isoname = isoname[:-2] if isoname in nmdexcep: ptc, ptcpointont = False, 0 exonsWithStop = allExons[exonWithStop] - left,right,strand,fusionindex = exonsWithStop + left, right, strand, fusionindex = exonsWithStop genomicPos = right - stopDistFromExon if strand == "+" else left + stopDistFromExon return genomicPos, ptc, ptcpointont -def get_exons(bedline): - gstart = int(bedline[1]) - esizes, estarts = [int(x) for x in bedline[10].rstrip(',').split(',')], \ - [int(x) for x in bedline[11].rstrip(',').split(',')], - return [(gstart+estarts[i], gstart+estarts[i]+esizes[i]) for i in range(len(esizes))] +def get_exons_from_bed(bed_rec): + return [(blk.start, blk.end) for blk in bed_rec.blocks] -def predict(bed, starts, isoDict, nmdexcep): +def predict(bed, starts, isoDict, nmdexcep): # noqa: C901 - FIXME: reduce complexity fusiondict = {} - for line in open(bed): - line = line.rstrip().split('\t') - transcript_id = line[3] - strand = line[5] + for bed_rec in BedReader(bed, fixScores=True): + transcript_id = bed_rec.name + strand = bed_rec.strand fusionindex = 'NA' - for exonCoord in get_exons(line): - elen = exonCoord[1]-exonCoord[0] + for exonCoord in get_exons_from_bed(bed_rec): + elen = exonCoord[1] - exonCoord[0] if transcript_id[:10] == 'fusiongene' or fusionindex != 'NA': - ##HAVE TO FIRST AGGREGATE BASED ON THE STRAND OF THE LOCUS, THEN CAN COMBINE LOCI + # HAVE TO FIRST AGGREGATE BASED ON THE STRAND OF THE LOCUS, THEN CAN COMBINE LOCI if transcript_id[:10] == 'fusiongene': fusionindex = transcript_id.split('_')[0] transcript_id = '_'.join(transcript_id.split('_')[1:]) @@ -280,7 +369,7 @@ def predict(bed, starts, isoDict, nmdexcep): if transcript_id not in fusiondict: fusiondict[transcript_id] = {} if fusionindex not in fusiondict[transcript_id]: - fusiondict[transcript_id][fusionindex] = {'exons':[], 'esizes':[]} + fusiondict[transcript_id][fusionindex] = {'exons': [], 'esizes': []} if strand == '+': fusiondict[transcript_id][fusionindex]['esizes'].append(elen) fusiondict[transcript_id][fusionindex]['exons'].append((exonCoord[0], exonCoord[1], strand, fusionindex)) @@ -306,25 +395,35 @@ def predict(bed, starts, isoDict, nmdexcep): pipettor.run([bedtools_cmd], stdout=dr) os.remove(starts) - for intersection in dr.data.split('\n'): - if len(intersection) > 0: - intersection = intersection.split('\t') - read = intersection[3] - if read[:10] == 'fusiongene' and read[10] != '1': continue # only getting starts for 5' genes - if read[:10] == 'fusiongene': read = '_'.join(read.split('_')[1:]) - overlap = intersection[-1] - goStart = int(intersection[-6]) if intersection[5] == '+' else int(intersection[-5]) - if intersection[5] != intersection[-2]: overlap = '0' ##if start is not on same strand, doesn't count - isoDict[read].strand = intersection[5] - isoDict[read].chrom = intersection[0] - - for exonCoord in get_exons(intersection): + for intersection_line in dr.data.split('\n'): + if len(intersection_line) > 0: + intersection = intersection_line.split('\t') + bed_a = Bed.parse(intersection[:12]) + # B record is BED6 at indices 12-17, overlap at index 18 + # adjusting to count second record from the end of the line to accomodate for additional columns in isoform bed file + b_start = int(intersection[-6]) + b_end = int(intersection[-5]) + b_strand = intersection[-2] + overlap = intersection[-1] + + read = bed_a.name + if read[:10] == 'fusiongene' and read[10] != '1': + continue # only getting starts for 5' genes + if read[:10] == 'fusiongene': + read = '_'.join(read.split('_')[1:]) + goStart = b_start if bed_a.strand == '+' else b_end + if bed_a.strand != b_strand: + overlap = '0' # if start is not on same strand, doesn't count + isoDict[read].strand = bed_a.strand + isoDict[read].chrom = bed_a.chrom + + for exonCoord in get_exons_from_bed(bed_a): isoDict[read].exons.add(exonCoord) if overlap == "3" and exonCoord[0] <= goStart <= exonCoord[1]: - isoDict[read].starts.add((exonCoord,goStart)) + isoDict[read].starts.add((exonCoord, goStart)) - stops = set(['TAA','TGA','TAG']) - for iso,o in isoDict.items(): + stops = set(['TAA', 'TGA', 'TAG']) + for iso, o in isoDict.items(): exons = list(o.exons) exons.sort() if len(o.starts) < 1: @@ -332,13 +431,14 @@ def predict(bed, starts, isoDict, nmdexcep): else: for start in o.starts: - exon,startPos = start - relativeStart = getStartRelPos(startPos,exon,exons,o) - fiveUTR,rest = o.sequence[:relativeStart], o.sequence[relativeStart:].upper() + exon, startPos = start + relativeStart = getStartRelPos(startPos, exon, exons, o) + fiveUTR, rest = o.sequence[:relativeStart], o.sequence[relativeStart:].upper() # Next find first stop codon stopReached = False for i in range(0, len(rest), 3): - if rest[i:i+3] in stops: + if rest[i:i + 3] in stops: + # print(iso, rest[:i+3]) stopReached = True break @@ -347,12 +447,12 @@ def predict(bed, starts, isoDict, nmdexcep): # therefore, i+3 should be longer than the entire potential orf is a stop was never reached. # lets call these nonstop, or nst for now. if not stopReached: - orfEndPos = len(fiveUTR)+i - o.orfs.append(["NST", startPos, exons[-1][-1] if o.strand == "+" else exons[0][0], orfEndPos-relativeStart, relativeStart]) + orfEndPos = len(fiveUTR) + i + o.orfs.append(["NST", startPos, exons[-1][-1] if o.strand == "+" else exons[0][0], orfEndPos - relativeStart, relativeStart]) # else if a stop was reached... else: - orfEndPos = len(fiveUTR)+i+3 + orfEndPos = len(fiveUTR) + i + 3 genomicStopPos, ptc, ptcdecidingpoint = checkPTC(orfEndPos, o.allEsizes, o.allExons, nmdexcep, iso) ptc = "PTC" if ptc else "PRO" o.orfs.append([ptc, startPos, genomicStopPos, orfEndPos - relativeStart, relativeStart]) @@ -389,73 +489,79 @@ def translate(seq): return protein -def main(): - ''' - maine - ''' - - # Command Line Stuff... - myCommandLine = CommandLine() - bed = myCommandLine.args['input_isoforms'] - genome = myCommandLine.args['genome_fasta'] - gtf = myCommandLine.args['gtf'] - output = myCommandLine.args['output'] - extra_col = myCommandLine.args['append_column'] - - if myCommandLine.args['firstTIS']: - defineORF = 'first' - elif myCommandLine.args['longestORF']: - defineORF = 'longest' +def predict_productivity(gtf, genome, bed, output, is_flair_bed): # noqa: C901 - FIXME: reduce complexity + if is_flair_bed: + shortbedname = bed.split('.bed')[0] + '.shortcols.bed' + pipettor.run([('cut', '-f', '1-12', bed)], stdout=open(shortbedname, 'w')) else: - raise FlairInputDataError('** ERR. Select method for ORF definition with --firstTIS or --longestORF') + shortbedname = bed - starts, nmdexcep = getStarts(gtf) - isoformObjs = getSeqs(bed, genome) - isoformObjs = predict(bed, starts, isoformObjs, nmdexcep) + starts, nmdexcep = getStarts(gtf) + isoformObjs = getSeqs(shortbedname, genome) + isoformObjs = predict(shortbedname, starts, isoformObjs, nmdexcep) - beaut = {"PRO":"103,169,207", "PTC":"239,138,98", "NST":"0,0,0","NGO":"0,0,0"} + beaut = {"PRO": "103,169,207", "PTC": "239,138,98", "NST": "0,0,0", "NGO": "0,0,0"} bedout = open(output + '.bed', 'w') infoout = open(output + '.info.tsv', 'w') infoout.write('\t'.join(['#isoname', 'tstartont', 'tendont', 'ptcpointont', 'AAseq']) + '\n') - with open(bed) as lines: - for line in lines: - bedCols = line.rstrip().split() - if bedCols[3][:10] == 'fusiongene': isoname = '_'.join(bedCols[3].split('_')[1:]) - else: isoname = bedCols[3] - isoObj = isoformObjs[isoname] - - if defineORF == 'longest': - isoObj.orfs.sort(key=lambda x: x[3], reverse=True) - elif defineORF == 'first': - isoObj.orfs.sort(key=lambda x: x[4]) - pro,start,end,orfLen, tisPos = isoObj.orfs[0] - - if extra_col: - bedCols += [pro] - else: - iso, gene = split_iso_gene(bedCols[3]) - bedCols[3] = "%s_%s_%s" % (iso, pro, gene) + my_bed_class = FlairBed if is_flair_bed else Bed + for bed_rec in BedReader(bed, fixScores=True, bedClass=my_bed_class): + if bed_rec.name[:10] == 'fusiongene': + isoname = '_'.join(bed_rec.name.split('_')[1:]) + else: + isoname = bed_rec.name + isoObj = isoformObjs[isoname] - bedCols[8] = beaut[pro] - if 'fusiongene' in bedCols[3]: - if not int(bedCols[1]) < start < int(bedCols[2]) and not int(bedCols[1]) < end < int(bedCols[2]): - bedCols[6],bedCols[7] = bedCols[1], bedCols[1] - else: - if bedCols[5] == '+': - if int(bedCols[1]) < start < int(bedCols[2]): bedCols[6] = str(start) - if int(bedCols[1]) < end < int(bedCols[2]): bedCols[7] = str(end) - else: - if int(bedCols[1]) < start < int(bedCols[2]): bedCols[7] = str(start) - if int(bedCols[1]) < end < int(bedCols[2]): bedCols[6] = str(end) + # if defineORF == 'longest': + isoObj.orfs.sort(key=lambda x: x[3], reverse=True) + # elif defineORF == 'first': + # isoObj.orfs.sort(key=lambda x: x[4]) + pro, start, end, orfLen, tisPos = isoObj.orfs[0] + + if is_flair_bed: + bed_rec.productivity = pro + else: + bed_rec.extraCols = [pro] + + bed_rec.itemRgb = beaut[pro] + if 'fusiongene' in bed_rec.name: + if not bed_rec.chromStart < start < bed_rec.chromEnd and not bed_rec.chromStart < end < bed_rec.chromEnd: + bed_rec.thickStart, bed_rec.thickEnd = bed_rec.chromStart, bed_rec.chromStart else: - if isoObj.strand == "+": - bedCols[6],bedCols[7] = str(start),str(end) + if bed_rec.strand == '+': + if bed_rec.chromStart < start < bed_rec.chromEnd: + bed_rec.thickStart = start + if bed_rec.chromStart < end < bed_rec.chromEnd: + bed_rec.thickEnd = end else: - bedCols[7],bedCols[6] = str(start),str(end) - bedout.write("\t".join(bedCols) + '\n') - infoout.write('\t'.join([bedCols[3], str(tisPos), str(tisPos+orfLen), str(isoObj.ptcpoint), translate(isoObj.sequence[tisPos:tisPos+orfLen])]) + '\n') + if bed_rec.chromStart < start < bed_rec.chromEnd: + bed_rec.thickEnd = start + if bed_rec.chromStart < end < bed_rec.chromEnd: + bed_rec.thickStart = end + else: + if isoObj.strand == "+": + bed_rec.thickStart, bed_rec.thickEnd = start, end + else: + bed_rec.thickEnd, bed_rec.thickStart = start, end + bed_rec.write(bedout) + infoout.write('\t'.join([bed_rec.name, pro, str(tisPos), str(tisPos + orfLen), str(isoObj.ptcpoint), translate(isoObj.sequence[tisPos:tisPos + orfLen])]) + '\n') + bedout.close() + infoout.close() + + # genome = pysam.FastaFile(genome) + # make_big_bed(genome, output + '.chrom.sizes', output.split('/')[-1], output, my_fields) + # genome.close() + if is_flair_bed: + pipettor.run(('rm', shortbedname)) # , output + '.chrom.sizes')) + + bed_to_gtf(output + '.bed', output + '.gtf', is_flair_bed=is_flair_bed) + + +def main(): + args = parse_args() + predict_productivity(args.gtf, args.genome_fasta, args.input_isoforms, args.output, args.is_flair_bed) if __name__ == "__main__": diff --git a/src/flair/predict_aaseq_withvar.py b/src/flair/predict_aaseq_withvar.py index 9c3cd7e5..e427aebb 100755 --- a/src/flair/predict_aaseq_withvar.py +++ b/src/flair/predict_aaseq_withvar.py @@ -1,7 +1,6 @@ #! /usr/bin/env python3 import sys -import argparse def translate(seq): @@ -24,18 +23,22 @@ def translate(seq): 'TGC': 'C', 'TGT': 'C', 'TGA': '_', 'TGG': 'W', } protein = "" - if len(seq) % 3 != 0: seq = seq[:(len(seq)//3)*3] + if len(seq) % 3 != 0: + seq = seq[:(len(seq) // 3) * 3] # print(len(seq), len(seq) % 3, (len(seq)%3)*3) # print(seq) if len(seq) % 3 == 0: for i in range(0, len(seq), 3): codon = seq[i:i + 3] - if 'N' in codon: protein += '?' - else: protein += table[codon] + if 'N' in codon: + protein += '?' + else: + protein += table[codon] stoppos = protein.find('_') # print(protein) - if stoppos >= 0: protein = protein[:stoppos+1] + if stoppos >= 0: + protein = protein[:stoppos + 1] return protein @@ -47,6 +50,7 @@ def __init__(self, aaseq, s, e, p, ptc): self.origpro = p self.ptcpoint = ptc + referencetranscriptfile = sys.argv[1] modtranscriptsfile = sys.argv[2] outfile = sys.argv[3] @@ -56,71 +60,83 @@ def __init__(self, aaseq, s, e, p, ptc): for line in open(referencetranscriptfile): if line[0] != '#': line = line.rstrip().split('\t') - if len(line) == 3: line += ['',''] - elif len(line) == 4: line.append('') - tinfo, orfstart, orfstop, ptcpoint, seq = line + if len(line) == 4: + line += ['', ''] + elif len(line) == 5: + line.append('') + tinfo, propred, orfstart, orfstop, ptcpoint, seq = line tinfo = tinfo.split('_') - tname, propred, gname = '_'.join(tinfo[:-2]), tinfo[-2], tinfo[-1] - if 'fusiongene' in tname: tname = '_'.join(tname.split('_')[1:]) + tname, gname = '_'.join(tinfo[:-1]), tinfo[-1] + if 'fusiongene' in tname: + tname = '_'.join(tname.split('_')[1:]) transcriptToInfo[(tname, gname)] = TranscriptInfo(seq, int(orfstart), int(orfstop), propred, ptcpoint) out = open(outfile, 'w') last = None -for line in open(modtranscriptsfile): - if line[0] == '>': last = line[1:].rstrip().split(' ') +for line in open(modtranscriptsfile): # noqa: C901 - FIXME: reduce complexity + if line[0] == '>': + last = line[1:].rstrip().split(' ') else: predProd = None modseq = line.rstrip() # tinfo, genomevars, seqvars, support = last - if len(last) == 2: tinfo, seqvars = last - else: tinfo, seqvars = last[0], '' - if seqvars == 'nomuts': seqvars = '' + if len(last) == 2: + tinfo, seqvars = last + else: + tinfo, seqvars = last[0], '' + if seqvars == 'nomuts': + seqvars = '' temp = '-'.join(tinfo.split('-')[1:]) tname = '_'.join(temp.split('_')[:-1]) gname = temp.split('_')[-1] - if last[0] == '1-flairiso23973-1_ENSG00000105173.14--chr19-27666000': print(tname, gname, (tname, gname) in transcriptToInfo) - if (tname, gname) not in transcriptToInfo: continue + if last[0] == '1-flairiso23973-1_ENSG00000105173.14--chr19-27666000': + print(tname, gname, (tname, gname) in transcriptToInfo) + if (tname, gname) not in transcriptToInfo: + continue thist = transcriptToInfo[(tname, gname)] newpredseq = thist.aaseq has5utrvars, has3utrvars = False, False # print(tname) - if len(seqvars) == 0: ###no change from original isoform + if len(seqvars) == 0: # no change from original isoform predProd = thist.origpro else: # chr2..-..65312507..2862..S..A - #chr2..-..65312507..2862..S..A,chr2..-..65313771..1598..S..C + # chr2..-..65312507..2862..S..A,chr2..-..65313771..1598..S..C seqvars = [x.split('..') for x in seqvars.split(',')] for i in range(len(seqvars)): - #seqvars[i][0] = int(seqvars[i][0]) + # seqvars[i][0] = int(seqvars[i][0]) seqvars[i] = [int(seqvars[i][3]), seqvars[i][4], seqvars[i][5]] seqvars.sort() if thist.origstart == thist.origstop: thist.origstart = len(modseq) thist.origstop = len(modseq) - if thist.ptcpoint == '': thist.ptcpoint = 0 - else: thist.ptcpoint = int(thist.ptcpoint) + if thist.ptcpoint == '': + thist.ptcpoint = 0 + else: + thist.ptcpoint = int(thist.ptcpoint) posToVar = {} for pos, ref, alt in seqvars: if ref == 'I' or ref == 'D': posToVar[pos] = (ref, alt) refseqpostomodseqpos = {} - modseqpos, refseqpos = 0,0 + modseqpos, refseqpos = 0, 0 while modseqpos <= len(modseq): if modseqpos in posToVar: ref, alt = posToVar[modseqpos] - if ref == 'I': modseqpos += len(alt) + if ref == 'I': + modseqpos += len(alt) elif ref == 'D': for i in range(int(alt)): - refseqpostomodseqpos[refseqpos+i] = modseqpos + refseqpostomodseqpos[refseqpos + i] = modseqpos refseqpos += int(alt) refseqpostomodseqpos[refseqpos] = modseqpos modseqpos += 1 refseqpos += 1 newptcpoint = refseqpostomodseqpos[thist.ptcpoint] - ###Is there a base change before the predicted start? + # Is there a base change before the predicted start? prestartvars = [x for x in seqvars if x[0] < thist.origstart] hasnovelstart = False startposchange = 0 # FIXME: never used. @@ -128,7 +144,7 @@ def __init__(self, aaseq, s, e, p, ptc): if len(prestartvars) > 0: for pos, ref, alt in prestartvars: - checkstart, checkend = pos-2, pos+3 + checkstart, checkend = pos - 2, pos + 3 if ref == 'I': checkend += len(alt) startposchange += len(alt) @@ -137,24 +153,25 @@ def __init__(self, aaseq, s, e, p, ptc): checkseq = modseq[checkstart:checkend] hasstart = checkseq.find('ATG') if hasstart >= 0: - newstart=checkstart + hasstart + newstart = checkstart + hasstart newpredseq = translate(modseq[newstart:]) hasnovelstart = True if newpredseq[-1] != '_': predProd = 'NST' else: - newend = newstart + ((len(newpredseq))*3) + newend = newstart + ((len(newpredseq)) * 3) if newend < newptcpoint: predProd = 'PTC' - else: ##same length or longer + else: # same length or longer predProd = 'PRO' continue - ####Add code to get new end and AA sequence and predict productivity - ###decide if want to look at all potential novel starts or just the first one - if len([x for x in seqvars if x[0] < newstart]) > 0 and newstart != len(modseq): has5utrvars = True ####only if there is actually a start + # Add code to get new end and AA sequence and predict productivity + # decide if want to look at all potential novel starts or just the first one + if len([x for x in seqvars if x[0] < newstart]) > 0 and newstart != len(modseq): + has5utrvars = True # only if there is actually a start if not hasnovelstart and thist.origstart == len(modseq): predProd = 'NGO' - elif not hasnovelstart and thist.origstart != len(modseq): #do not execute if there was no original AA sequence + elif not hasnovelstart and thist.origstart != len(modseq): # do not execute if there was no original AA sequence poststartvars = [x for x in seqvars if x[0] >= thist.origstart] if len(poststartvars) > 0: newpredseq = translate(modseq[refseqpostomodseqpos[thist.origstart]:refseqpostomodseqpos[thist.origstop]]) @@ -165,13 +182,16 @@ def __init__(self, aaseq, s, e, p, ptc): else: newend = newstart + ((len(newpredseq)) * 3) if newend < newptcpoint: - predProd = 'PTC' ###Do we care about how early the stop is? Maybe as long as protein is still 50% of original length? + predProd = 'PTC' # Do we care about how early the stop is? Maybe as long as protein is still 50% of original length? else: predProd = 'PRO' else: predProd = thist.origpro - if len([x for x in seqvars if x[0] >= newend]) > 0 and newend != len(modseq): has3utrvars = True + if len([x for x in seqvars if x[0] >= newend]) > 0 and newend != len(modseq): + has3utrvars = True utrvars = [] - if has5utrvars: utrvars.append('5utr') - if has3utrvars: utrvars.append('3utr') - out.write('\t'.join([tinfo, predProd, ','.join(utrvars), newpredseq]) + '\n') + if has5utrvars: + utrvars.append('5utr') + if has3utrvars: + utrvars.append('3utr') + out.write('\t'.join([tinfo, predProd, ','.join(utrvars), newpredseq]) + '\n') diff --git a/src/flair/pycbio/__init__.py b/src/flair/pycbio/__init__.py index e9c53f85..a5ddb2ab 100644 --- a/src/flair/pycbio/__init__.py +++ b/src/flair/pycbio/__init__.py @@ -1,11 +1,9 @@ # Copyright 2006-2025 Mark Diekhans -import traceback -from io import StringIO class NoStackError: """When added as an additional base class to an Exception, stack traces should not be printed to users expect for debug logging. These are - normally caused by user input where print the stack is not helpful. + normally caused by user input errors where print the stack is not helpful. """ __slots__ = () @@ -13,32 +11,14 @@ class PycbioException(Exception): """Base class for Pycbio exceptions.""" pass +class PycbioDataError(PycbioException, NoStackError): + """Indicates an data format error or related error. The pycbio.sys.cli.ErrorHandler + facility will not generate stacktrace by default.""" + pass + class PycbioOptionalFeatureException(PycbioException, NoStackError): """Thrown to indicate an optional feature is missing""" def __init__(self, feature, reason): super(PycbioOptionalFeatureException, self).__init__(f"{feature} is disabled due to {reason}") self.feature = feature self.reason = reason - -def _exceptionPrintNoTraceback(exc, file, indent): - depth = 0 - while exc: - if depth > 0: - prefix = depth * ' ' if indent else '' - file.write(f"{prefix}Caused by: ") - file.write(f"{type(exc).__name__}: {exc}\n") - exc = exc.__cause__ or exc.__context__ - depth += 1 - -def exceptionPrint(exc, *, file=None, showTraceback=True, indent=True): - """print a chained exception following causal chain""" - if showTraceback: - traceback.print_exception(exc, file=file) - else: - _exceptionPrintNoTraceback(exc, file, indent) - -def exceptionFormat(exc, *, showTraceback=True, indent=True): - """format a chained exception following causal chain""" - fh = StringIO() - exceptionPrint(exc, file=fh, showTraceback=showTraceback, indent=indent) - return fh.getvalue() diff --git a/src/flair/pycbio/hgdata/autoSql.py b/src/flair/pycbio/hgdata/autoSql.py index f2aa724a..29c76508 100644 --- a/src/flair/pycbio/hgdata/autoSql.py +++ b/src/flair/pycbio/hgdata/autoSql.py @@ -1,6 +1,9 @@ # Copyright 2006-2025 Mark Diekhans """support classes for parsing autoSql generated objects""" +## +# string array +## def strArraySplit(commaStr): "parser for comma-separated string list into a list" if len(commaStr) == 0: @@ -15,17 +18,19 @@ def strArraySplit(commaStr): def strArrayJoin(strs): - "formatter for a list into a comma separated string" - if strs is not None: - return ",".join(strs) + "," - else: + """formatter for a list of values into a comma separated string, not-str values are + converted to a string""" + if strs is None: return "," + return ",".join([str(s) for s in strs]) + "," # TSV typeMap tuple for str arrays strArrayType = (strArraySplit, strArrayJoin) - +## +# int arrays +## def intArraySplit(commaStr): "parser for comma-separated string list into a list of ints" ints = [] diff --git a/src/flair/pycbio/hgdata/bed.py b/src/flair/pycbio/hgdata/bed.py index e1217093..8159f6c3 100644 --- a/src/flair/pycbio/hgdata/bed.py +++ b/src/flair/pycbio/hgdata/bed.py @@ -1,13 +1,14 @@ # Copyright 2006-2025 Mark Diekhans import copy -from collections import deque, defaultdict, namedtuple +from collections import defaultdict, namedtuple from flair.pycbio import PycbioException from flair.pycbio.sys.color import Color from flair.pycbio.tsv.tabFile import TabFile, TabFileReader -from flair.pycbio.hgdata.autoSql import intArraySplit, intArrayJoin +from flair.pycbio.hgdata.autoSql import intArraySplit, intArrayJoin, strArrayJoin # FIXME: not complete, needs tests # FIXME: really need a better way to deal with derived classes than extraCols +# FIXME: FLAIR uses is an example of issues bed12Columns = ("chrom", "chromStart", "chromEnd", "name", "score", "strand", "thickStart", @@ -24,7 +25,15 @@ def defaultIfNone(v, dflt=""): def encodeRow(row): """convert a list of values to a list of strings, making None empty. """ - return [str(v) if v is not None else "" for v in row] + erow = [] + for v in row: + if v is None: + erow.append("") + elif isinstance(v, (list, tuple)): + erow.append(strArrayJoin(v)) + else: + erow.append(str(v)) + return erow def _fmtItemRgb(itemRgb): "allows itemRgb to be a Color, None, a number, or a string" @@ -54,8 +63,9 @@ class Bed: Columns maybe sparsely specified, with ones up to numStdCols defaulted. For BEDs with extra columns not handled by derived are stored in extraCols. - If extra columns is a tuple, include namedtuple, it is stored as-is, otherwise - a copy is stored. + If extra columns is a tuple, it is stored as-is, otherwise a copy is stored. + Non-string fields are converted to string on output. None is converted to + an empty string. itemRgb can be a string or Color object """ @@ -64,7 +74,7 @@ class Bed: "extraCols", "numStdCols") def __init__(self, chrom, chromStart, chromEnd, name=None, *, score=None, strand=None, - thickStart=None, thickEnd=None, itemRgb=None, blocks=None, extraCols=None, + thickStart=None, thickEnd=None, itemRgb=None, blocks=None, extraCols=(), numStdCols=None): self.chrom = chrom self.chromStart = chromStart @@ -76,7 +86,7 @@ def __init__(self, chrom, chromStart, chromEnd, name=None, *, score=None, strand self.thickEnd = thickEnd self.itemRgb = itemRgb self.blocks = copy.copy(blocks) - self.extraCols = extraCols if isinstance(extraCols, tuple) else copy.copy(extraCols) + self.extraCols = tuple(extraCols) # copies unless it is already a tuple self.numStdCols = self._calcNumStdCols(numStdCols) def _calcNumStdCols(self, specNumStdCols): @@ -120,11 +130,7 @@ def addBlock(self, start, end): @property def numColumns(self): """Returns the number of columns in the BED when formatted as a row.""" - # exclude extraCols - n = self.numStdCols - if self.extraCols is not None: - n += len(self.extraCols) - return n + return self.numStdCols + len(self.extraCols) def _getBlockColumns(self): relStarts = [] @@ -152,7 +158,7 @@ def toRow(self): row.append(_fmtItemRgb(self.itemRgb)) if self.numStdCols >= 10: row.extend(self._getBlockColumns() if self.blocks is not None else self._defaultBlockColumns()) - if self.extraCols is not None: + if len(self.extraCols) > 0: row.extend(encodeRow(self.extraCols)) return row @@ -167,7 +173,7 @@ def _parseBlockColumns(chromStart, row): return blocks @classmethod - def _parse(cls, row, numStdCols=None, *, fixScores=False): + def _parse(cls, row, numStdCols=None, *, fixScores=False, skipExtraCols=False): assert (numStdCols is None) or (3 <= numStdCols <= 12) if numStdCols is None: numStdCols = min(len(row), 12) @@ -209,23 +215,23 @@ def _parse(cls, row, numStdCols=None, *, fixScores=False): blocks = Bed._parseBlockColumns(chromStart, row) else: blocks = None - if len(row) > numStdCols: + if (not skipExtraCols) and (len(row) > numStdCols): extraCols = row[numStdCols:] else: - extraCols = None + extraCols = () return cls(chrom, chromStart, chromEnd, name=name, score=score, strand=strand, thickStart=thickStart, thickEnd=thickEnd, itemRgb=itemRgb, blocks=blocks, extraCols=extraCols, numStdCols=numStdCols) @classmethod - def parse(cls, row, numStdCols=None, *, fixScores=False): + def parse(cls, row, numStdCols=None, *, fixScores=False, skipExtraCols=False): """Parse a list of BED columns, as strings, into a Bed object. If self.numStdCols is specified, only those columns are parsed and the remainder goes into extraCols. Floating point scores are converted to ints to match UCSC browser behavior. If fixScores is True, non-numeric scores are converted to zero rather than generating an error.""" try: - return cls._parse(row, numStdCols=numStdCols, fixScores=fixScores) + return cls._parse(row, numStdCols=numStdCols, fixScores=fixScores, skipExtraCols=skipExtraCols) except Exception as ex: raise BedException(f"parsing of BED row failed: {row}") from ex @@ -245,7 +251,10 @@ def end(self): @property def blockCount(self): - return len(self.blocks) + if self.blocks is None: + return 0 + else: + return len(self.blocks) @property def span(self): @@ -276,6 +285,10 @@ def write(self, fh): fh.write(str(self)) fh.write('\n') + def addExtraCols(self, cols): + """append extra column values""" + self.extraCols += tuple(cols) + @staticmethod def genome_sort_key(bed): return bed.chrom, bed.chromStart @@ -311,7 +324,7 @@ def getByName(self, name): else: return () -def bedFromPsl(psl, *, extraCols=None): +def bedFromPsl(psl, *, extraCols=()): "create a BED12 from PSL, optionally adding extra columns" if psl.tStrand == '-': psl = psl.reverseComplement() @@ -323,66 +336,30 @@ def bedFromPsl(psl, *, extraCols=None): ### # bedMergeBlocks ### -def _bedMergeCheckCompat(bed0, bed): - if bed.numStdCols != bed0.numStdCols: - raise BedException(f"attempt to merge BEDs number of standard columns: {bed.name}: {bed.numStdCols} != {bed0.name} {bed0.numStdCols}") - if bed.chrom != bed0.chrom: - raise BedException(f"attempt to merge BEDs on different chromosomes: {bed.name}: {bed.chrom} != {bed0.name} {bed0.chrom}") - if bed.strand != bed0.strand: - raise BedException(f"attempt to merge BEDs on different strands: {bed.name}: {bed.strand} != {bed0.name} {bed0.strand}") - -def _bedMergeBuildCursors(beds): - """Build a vector of cursors and validated sequence and strand compatibility""" - cursors = [] +def _bedMergeCollectBlocks(beds, stranded): + """Collect all blocks from BEDs and validate compatibility.""" bed0 = beds[0] - minStart = bed0.chromStart - maxEnd = bed0.chromEnd - for bed in beds: - _bedMergeCheckCompat(bed0, bed) - cursors.append(deque(bed.blocks)) - minStart = min(bed.chromStart, minStart) - maxEnd = max(bed.chromEnd, maxEnd) - return cursors, minStart, maxEnd - -def _bedMergeFindNextStart(cursors): - """locate the lowest starting position, or None if all cursors are empty""" - nextStart = None - for cursor in cursors: - if (len(cursor) > 0) and ((nextStart is None) or (cursor[0].start < nextStart)): - nextStart = cursor[0].start - return nextStart - -def _bedMergePass(cursors, mergeBlkEnd): - """make on pass over cursors, seeing if range can be updated with - overlapping or adjacent blocks. Since processed blocks are removed, from - cursor, the block at the head of the cursor must either overlap or be - after the block. Multiple passed handle transitive joins. - """ - updated = False - for cursor in cursors: - if (len(cursor) > 0) and (cursor[0].start <= mergeBlkEnd): - mergeBlkEnd = max(cursor[0].end, mergeBlkEnd) - cursor.popleft() - updated = True - return mergeBlkEnd, updated - -def _bedMergeBuildBlk(cursors, mergeBlkStart): - "build one block" - mergeBlkEnd = mergeBlkStart + 1 - while True: - mergeBlkEnd, updated = _bedMergePass(cursors, mergeBlkEnd) - if not updated: - break - return BedBlock(mergeBlkStart, mergeBlkEnd) - -def _bedMergeBuildBlks(cursors): - "build all blocks, run untils cursors are empty" - mergedBlocks = [] - nextStart = _bedMergeFindNextStart(cursors) - while nextStart is not None: - mergedBlocks.append(_bedMergeBuildBlk(cursors, nextStart)) - nextStart = _bedMergeFindNextStart(cursors) - return mergedBlocks + all_blocks = list(bed0.blocks) + for bed in beds[1:]: + if bed.numStdCols != bed0.numStdCols: + raise BedException(f"attempt to merge BEDs number of standard columns: {bed.name}: {bed.numStdCols} != {bed0.name} {bed0.numStdCols}") + if bed.chrom != bed0.chrom: + raise BedException(f"attempt to merge BEDs on different chromosomes: {bed.name}: {bed.chrom} != {bed0.name} {bed0.chrom}") + if stranded and (bed.strand != bed0.strand): + raise BedException(f"attempt to merge BEDs on different strands: {bed.name}: {bed.strand} != {bed0.name} {bed0.strand}") + all_blocks.extend(bed.blocks) + return all_blocks + +def _bedMergeBlocks(all_blocks): + """Sort and merge overlapping/adjacent blocks""" + all_blocks.sort(key=lambda b: b.start) + merged = [] + for blk in all_blocks: + if merged and blk.start <= merged[-1].end: + merged[-1] = BedBlock(merged[-1].start, max(merged[-1].end, blk.end)) + else: + merged.append(blk) + return merged def _bedMergeThickBounds(beds, maxEnd): thickStart = thickEnd = None @@ -396,18 +373,22 @@ def _bedMergeThickBounds(beds, maxEnd): thickStart = thickEnd = maxEnd return thickStart, thickEnd -def bedMergeBlocks(name, beds): +def bedMergeBlocks(name, beds, *, stranded=True): """Merge blocks from multiple BED into a single BED. The BEDs must be on - the same sequence and strand. The thickStart and thickStop will be the - minimum and maximum seen, unless they are zero length, in which case, it - will remain zero length. Useful with RangeFinder merge functionality.""" + the same sequence. If stranded is True (default), BEDs must be on the same + strand; if False, different strands are allowed and the result strand is '+'. + The thickStart and thickStop will be the minimum and maximum seen, unless + they are zero length, in which case, it will remain zero length. + Useful with RangeFinder merge functionality.""" if len(beds) == 0: raise BedException("can't merge list with no BEDs") - cursors, minStart, maxEnd = _bedMergeBuildCursors(beds) - mergedBlocks = _bedMergeBuildBlks(cursors) - thickStart, thickEnd = _bedMergeThickBounds(beds, maxEnd) + all_blocks = _bedMergeCollectBlocks(beds, stranded) + mergedBlocks = _bedMergeBlocks(all_blocks) + chromStart, chromEnd = mergedBlocks[0].start, mergedBlocks[-1].end + thickStart, thickEnd = _bedMergeThickBounds(beds, chromEnd) bed0 = beds[0] - return Bed(bed0.chrom, minStart, maxEnd, name=name, strand=bed0.strand, + strand = bed0.strand if stranded else '+' + return Bed(bed0.chrom, chromStart, chromEnd, name=name, strand=strand, thickStart=thickStart, thickEnd=thickEnd, itemRgb=bed0.itemRgb, blocks=mergedBlocks, numStdCols=12) diff --git a/src/flair/pycbio/sys/cli.py b/src/flair/pycbio/sys/cli.py index 78aa6a21..ab469610 100644 --- a/src/flair/pycbio/sys/cli.py +++ b/src/flair/pycbio/sys/cli.py @@ -61,11 +61,12 @@ def splitOptionsArgs(parser, parsed_args): args[name] = value return opts, args -def parseOptsArgs(parser, args=None, namespace=None): +def parseOptsArgs(parser, *, args=None, namespace=None): """Call argparse parse_args and return (opts, args)""" return splitOptionsArgs(parser, parser.parse_args(args, namespace)) -def parseArgsWithLogging(parser, args=None, namespace=None): +def parseArgsWithLogging(parser, *, args=None, namespace=None, defaultLevel=logging.WARNING, + inclSyslog=False): """Call argparse.parse_args and return args. Add logging command options if they are not already there and configuring logging after parsing. This handles common cases. @@ -73,7 +74,7 @@ def parseArgsWithLogging(parser, args=None, namespace=None): WARNING: this does not work with sub-parsers """ if not loggingOps.haveCmdOptions(parser): - loggingOps.addCmdOptions(parser) + loggingOps.addCmdOptions(parser, defaultLevel=defaultLevel, inclSyslog=inclSyslog) args = parser.parse_args(args, namespace) loggingOps.setupFromCmd(args) return args @@ -85,7 +86,7 @@ def parseOptsArgsWithLogging(parser, args=None, namespace=None): WARNING: this does not work with sub-parsers """ - return splitOptionsArgs(parser, parseArgsWithLogging(parser, args, namespace)) + return splitOptionsArgs(parser, parseArgsWithLogging(parser, args=args, namespace=namespace)) ### # error handling diff --git a/src/flair/pycbio/sys/fileOps.py b/src/flair/pycbio/sys/fileOps.py index 7cd4553b..ab6580c9 100644 --- a/src/flair/pycbio/sys/fileOps.py +++ b/src/flair/pycbio/sys/fileOps.py @@ -76,7 +76,7 @@ def rmTree(root): def isCompressed(path): "determine if a file appears to be compressed by extension" - return path.endswith(".gz") or path.endswith(".bz2") or path.endswith(".Z") + return path.endswith(".gz") or path.endswith(".bgz") or path.endswith(".bz2") or path.endswith(".Z") def compressCmd(path, *, bgzip=False): @@ -84,15 +84,14 @@ def compressCmd(path, *, bgzip=False): to the `cat' command, so that it just gets written through""" if path.endswith(".Z"): raise PycbioException("writing compress .Z files not supported") + + if path.endswith(".bgz") or bgzip: + return ["bgzip"] if path.endswith(".gz"): - if bgzip: - return ["bgzip"] - elif which("pigz"): + if which("pigz"): return ["pigz"] else: return ["gzip"] - if bgzip: - raise PycbioException(f"bgzip requested however file does not end in `.gz': `{path}'") if path.endswith(".bz2"): return ["bzip2"] else: @@ -108,9 +107,8 @@ def compressBaseName(path): def decompressCmd(path): """"return the command to decompress the file to stdout, or default if not compressed, which defaults to the `cat' command, so that it just gets written through""" - if path.endswith(".gz") and which("unpigz"): - return ["unpigz", "-c"] - elif path.endswith(".Z") or path.endswith(".gz"): + # FIXME: default MacOS zcat doesn't recongize .gz + if path.endswith(".gz") or path.endswith(".bgz") or path.endswith(".Z"): return ["zcat"] elif path.endswith(".bz2"): return ["bzcat"] @@ -352,6 +350,7 @@ def atomicTmpFile(finalPath): /dev/stdout), it is returned unchanged and atomicTmpInstall will do nothing. The output directory will be created if it doesn't exist. Thread-safe.""" + # FIXME: not that test name for function: atomicCreate ? # note: this can't use tmpFileGet, since file should not be created or be private finalDir = osp.dirname(osp.normpath(finalPath)) # maybe empty if finalDir == '/dev': diff --git a/src/flair/pycbio/sys/loggingOps.py b/src/flair/pycbio/sys/loggingOps.py index 657d3b8f..47a21ad6 100644 --- a/src/flair/pycbio/sys/loggingOps.py +++ b/src/flair/pycbio/sys/loggingOps.py @@ -113,7 +113,7 @@ def setupNullLogger(logger, level=logging.INFO): return setupLogger(logger, handler) -def addCmdOptions(parser, *, defaultLevel=logging.INFO, inclSyslog=False): +def addCmdOptions(parser, *, defaultLevel=logging.WARNING, inclSyslog=False): """ Add command line options related to logging. None of these are defaulted, as one might need to determine if they were explicitly set. The use case diff --git a/src/flair/pycbio/tsv/__init__.py b/src/flair/pycbio/tsv/__init__.py index 4877804c..c6ad3d82 100644 --- a/src/flair/pycbio/tsv/__init__.py +++ b/src/flair/pycbio/tsv/__init__.py @@ -1,24 +1,25 @@ # Copyright 2006-2025 Mark Diekhans -"""" TSV (Tab Separated File) parsing""" +"""TSV (Tab Separated File) reading and writing""" from flair.pycbio import PycbioException class TsvError(PycbioException): - "Error from reading or parsing a TSV file" + "Error from reading, writing, or parsing a TSV file" def __init__(self, msg, reader=None): if (reader is not None): msg = str(reader.fileName) + ":" + str(reader.lineNum) + ": " + msg super(TsvError, self).__init__(msg) -from flair.pycbio.tsv.tsvRow import TsvRow, tsvRowToDict -from flair.pycbio.tsv.tsvReader import TsvReader, strOrNoneType, intOrNoneType, printf_basic_dialect +from flair.pycbio.tsv.tsvRow import TsvRow, tsvRowToDict, tsvRowGetColumnSpecs, tsvRowGetColumns +from flair.pycbio.tsv.tsvReader import TsvReader, strOrNoneType, intOrNoneType, floatOrNoneType, printf_basic_dialect +from flair.pycbio.tsv.tsvWriter import TsvWriter from flair.pycbio.tsv.tabFile import TabFile from flair.pycbio.tsv.tabFile import TabFileReader -__all__ = (TsvError.__name__, TsvRow.__name__, TsvReader.__name__, +__all__ = (TsvError.__name__, TsvRow.__name__, TsvReader.__name__, TsvWriter.__name__, "strOrNoneType", "intOrNoneType", "floatOrNoneType", TabFile.__name__, TabFileReader.__name__, - tsvRowToDict.__name__, + tsvRowToDict.__name__, tsvRowGetColumnSpecs.__name__, tsvRowGetColumns.__name__, printf_basic_dialect.__name__) diff --git a/src/flair/pycbio/tsv/tsvColumns.py b/src/flair/pycbio/tsv/tsvColumns.py new file mode 100644 index 00000000..b3505fbb --- /dev/null +++ b/src/flair/pycbio/tsv/tsvColumns.py @@ -0,0 +1,67 @@ +# Copyright 2006-2025 Mark Diekhans +"""TSV column and type information shared by TsvReader and TsvWriter.""" +from flair.pycbio.tsv import TsvError + + +class ColumnSpecs: + """Column names, types, and formatting information for TSV data. + Disconnected from reader/writer to allow rows to be pickled.""" + __slots__ = ("columns", "extColumns", "columnMap", "types") + + def __init__(self, columns, extColumns, columnMap, types): + self.columns = columns + self.extColumns = extColumns + self.columnMap = columnMap + self.types = types + + def fmtValue(self, iCol, value): + """Format a single value using the column type if available.""" + if self.types is not None: + ct = self.types[iCol] + if ct is not None: + if isinstance(ct, tuple): + return ct[1](value) + elif value is None: + return "" + else: + return str(value) + if value is None: + return "" + return str(value) + + def formatRow(self, row): + "format row to a list of strings given specified types" + return [self.fmtValue(iCol, row[iCol]) for iCol in range(len(self.columns))] + + +def _getColTypes(columns, typeMap, defaultColType): + "save col types as column indexed list" + if typeMap is not None: + return [typeMap.get(col, defaultColType) for col in columns] + elif defaultColType is not None: + return len(columns) * [defaultColType] + else: + return None + +def _setupColumns(columnNames, columnNameMapper): + # n.b. columns could be passed in from client, must copy + i = 0 + columns = [] + extColumns = [] if columnNameMapper is not None else columns + colMap = {} + for col in columnNames: + if columnNameMapper is not None: + extColumns.append(col) + col = columnNameMapper(col) + columns.append(col) + if col in colMap: + raise TsvError("Duplicate column name: '{}'".format(col)) + colMap[col] = i + i += 1 + return columns, extColumns, colMap + +def columnsSpecBuild(columnNames, typeMap, defaultColType, columnNameMapper=None): + """Build a ColumnSpecs from column names, optional typeMap, and optional name mapper.""" + columns, extColumns, columnMap = _setupColumns(columnNames, columnNameMapper) + colTypes = _getColTypes(columns, typeMap, defaultColType) + return ColumnSpecs(columns, extColumns, columnMap, colTypes) diff --git a/src/flair/pycbio/tsv/tsvReader.py b/src/flair/pycbio/tsv/tsvReader.py index 6c228130..9a4fbf2d 100644 --- a/src/flair/pycbio/tsv/tsvReader.py +++ b/src/flair/pycbio/tsv/tsvReader.py @@ -5,25 +5,27 @@ from flair.pycbio.sys import fileOps from flair.pycbio.tsv.tsvRow import TsvRow from flair.pycbio.tsv import TsvError +from flair.pycbio.tsv.tsvColumns import columnsSpecBuild csv.field_size_limit(sys.maxsize) -# typeMap converter for str types were empty represents None +# typeMap converter for str types where empty represents None strOrNoneType = (lambda v: None if (v == "") else v, lambda v: "" if (v is None) else v) -# typeMap converter for int types were empty represents None +# typeMap converter for int types where empty represents None intOrNoneType = (lambda v: None if (v == "") else int(v), lambda v: "" if (v is None) else str(v)) +# typeMap converter for float types where empty represents None floatOrNoneType = (lambda v: None if (v == "") else float(v), lambda v: "" if (v is None) else str(v)) class printf_basic_dialect(csv.Dialect): - """Describes the usual properties for TSV files generated by printf, etc. Common - in bioinformatics. Quotes can be included in data, etc. + """Describes the usual properties for TSV files generated by printf, etc. + Quotes can be included in data, etc. """ delimiter = '\t' quotechar = None @@ -37,89 +39,17 @@ def _dehashHeader(row): # sometimes there is a space after # row[0] = row[0][1:].strip() -class ColumnSpecs: - """Information about columns that is disconnect from the reader. - This allows rows to pickled with minimal inforation.""" - __slots = ("columns", "extColumns", "columnMap", "colTypes") - - def __init__(self, columns, extColumns, columnMap, types): - self.columns = columns - self.extColumns = extColumns - self.columnMap = columnMap - self.types = types - - def _fmtColWithTypes(self, row, iCol): - col = row[iCol] - if col is None: - return "" - ct = self.types[iCol] - if type(ct) is tuple: - return ct[1](col) - else: - return str(col) - - def _fmtRowWithTypes(self, row): - outrow = [] - for iCol in range(len(self.columns)): - outrow.append(self._fmtColWithTypes(row, iCol)) - return outrow - - def _fmtRowNoTypes(self, row): - outrow = [] - for iCol in range(len(self.columns)): - col = row[iCol] - outrow.append(str(col) if col is not None else '') - return outrow - - def formatRow(self, row): - "format row to a list of strings given specified types" - if self.types is not None: - return self._fmtRowWithTypes(row) - else: - return self._fmtRowNoTypes(row) - -def _getColTypes(columns, typeMap, defaultColType): - "save col types as column indexed list" - if typeMap is not None: - return [typeMap.get(col, defaultColType) for col in columns] - elif defaultColType is not None: - return len(columns) * [defaultColType] - else: - return None - -def _setupColumns(columnNames, columnNameMapper): - # n.b. columns could be passed in from client, must copy - i = 0 - columns = [] - extColumns = [] if columnNameMapper is not None else columns - colMap = {} - for col in columnNames: - if columnNameMapper is not None: - extColumns.append(col) - col = columnNameMapper(col) - columns.append(col) - if col in colMap: - raise TsvError("Duplicate column name: '{}'".format(col)) - colMap[col] = i - i += 1 - return columns, extColumns, colMap - -def _columnsSpecBuild(columnNames, typeMap, defaultColType, columnNameMapper): - "columns maybe either specified or from the header" - columns, extColumns, columnMap = _setupColumns(columnNames, columnNameMapper) - colTypes = _getColTypes(columns, typeMap, defaultColType) - return ColumnSpecs(columns, extColumns, columnMap, colTypes) - class TsvReader: """Class for reading TSV files. Reads header and builds column name to - column index map. After a next, object contains a row and each column - becomes a field name. It is also can be indexed by column name or int - index. Columns can be automatically type converted by column name. This - can also read from a dbapi cursor object (must set allowEmpty to true) + column index map. Iterating yields TsvRow objects (or custom rowClass) + with columns accessible as attributes. Columns can be automatically + type-converted via typeMap. If the first character of the header is '#', the '#' and following spaces are ignored and not part of the first column name. + + Can be used as a context manager. """ def __init__(self, fileName, *, rowClass=None, typeMap=None, defaultColType=None, @@ -161,16 +91,16 @@ def __init__(self, fileName, *, rowClass=None, typeMap=None, defaultColType=None try: self._openTsv(fileName, inFh, dialect, encoding, errors) except Exception as ex: - self._closeTsv() + self.close() raise TsvError(f"open of TSV failed {fileName}") from ex if columns is None: columns = self._readHeader(allowEmpty) - self.columnSpecs = _columnsSpecBuild(columns, typeMap, defaultColType, columnNameMapper) + self.columnSpecs = columnsSpecBuild(columns, typeMap, defaultColType, columnNameMapper) @property def columns(self): - "column names after name mapping" + "column names" return self.columnSpecs.columns def _openTsv(self, fileName, inFh, dialect, encoding, errors): @@ -182,18 +112,18 @@ def _openTsv(self, fileName, inFh, dialect, encoding, errors): self._shouldClose = True self._reader = csv.reader(self.inFh, dialect=dialect) - def _closeTsv(self): - "close if we opened the file" - if self._shouldClose: - self.close() - def close(self): - """force close of the file if open, even if this object didn't open - it. Normally, close is handled when end of file is reached""" - if self.inFh is not None: + """Close the file if this object opened it.""" + if self._shouldClose and self.inFh is not None: self.inFh.close() self.inFh = None + def __enter__(self): + return self + + def __exit__(self, *exc_info): + self.close() + @property def lineNum(self): return self._reader.line_num @@ -245,7 +175,7 @@ def __iter__(self): except Exception as ex: raise TsvError("Error reading TSV row", self) from ex finally: - self._closeTsv() + self.close() def formatRow(self, row): "format row to a list of strings given specified types" diff --git a/src/flair/pycbio/tsv/tsvRow.py b/src/flair/pycbio/tsv/tsvRow.py index cadb2a20..20d89e1b 100644 --- a/src/flair/pycbio/tsv/tsvRow.py +++ b/src/flair/pycbio/tsv/tsvRow.py @@ -1,4 +1,5 @@ # Copyright 2006-2025 Mark Diekhans +"""TSV row objects with column values accessible as attributes.""" # FIXME: danger of dump, etc, methods conflicting with columns. maybe # a better convention to avoid collisions or make these functions rather @@ -7,11 +8,6 @@ # FIXME: need way to get raw row with Nones for sql # FIXME: this could actually be a dict-like object since py3 -def tsvRowToDict(row): - """convert a TSV row to a dict""" - return {col: getattr(row, col) for col in row._columnSpecs_.columns} - - class TsvRow: "Row of a TSV where columns are fields." # n.b.: doesn't inherit from list, as this results in columns in two @@ -33,7 +29,7 @@ def __getitem__(self, key): def __setitem__(self, key, val): "set a column by string key or numeric index" if isinstance(key, int): - setattr(self, self._columnSpecs.columns[key], val) + setattr(self, self._columnSpecs_.columns[key], val) else: setattr(self, key, val) @@ -92,3 +88,17 @@ def dump(self, fh): fh.write(str(col)) i += 1 fh.write("\n") + + +def tsvRowToDict(row): + """convert a TSV row to a dict""" + return {col: getattr(row, col) for col in row._columnSpecs_.columns} + + +def tsvRowGetColumnSpecs(row): + """return the hidden ColumnSpecs object""" + return row._columnSpecs_ + +def tsvRowGetColumns(row): + """return the hidden ColumnSpecs object""" + return row._columnSpecs_.columns diff --git a/src/flair/pycbio/tsv/tsvWriter.py b/src/flair/pycbio/tsv/tsvWriter.py new file mode 100644 index 00000000..e533f598 --- /dev/null +++ b/src/flair/pycbio/tsv/tsvWriter.py @@ -0,0 +1,144 @@ +# Copyright 2006-2025 Mark Diekhans +"""TSV writing classes""" +import csv +from flair.pycbio.sys import fileOps +from flair.pycbio.tsv import TsvError +from flair.pycbio.tsv.tsvRow import TsvRow +from flair.pycbio.tsv.tsvColumns import ColumnSpecs, columnsSpecBuild + + +class TsvWriter: + """Class for writing TSV files with column definitions and optional + type formatting. Supports writing from dicts, lists, tuples, + namedtuples, TsvRow objects, or any object with attributes matching + column names. + + If the input is a list or tuple, values are assumed to be in column order. + For dicts and objects with attributes, values are looked up by column name. + + Supports writing to compressed files (.gz, .bz2) via opengz. + Can be used as a context manager. + """ + + def __init__(self, fileName, *, columns=None, typeMap=None, defaultColType=None, + columnSpecs=None, outFh=None, dialect=csv.excel_tab, encoding=None, + errors=None): + """ + :param fileName: Path to the output TSV file, unless `outFh` is provided. + :param columns: List of column names. If omitted but `typeMap` is given, + columns are taken from `typeMap` keys in insertion order. + :param typeMap: Dictionary mapping column names to either a type or a + (parseFunc, formatFunc) tuple. Only the formatFunc is used for writing. + :param defaultColType: Type to use for columns not listed in `typeMap`. + :param columnSpecs: A pre-built `ColumnSpecs` to use directly. Mutually + exclusive with `columns`, `typeMap`, and `defaultColType`. A + `ColumnSpecs` can be obtained from a `TsvReader` (via + `reader.columnSpecs`) or a `TsvRow` (via `tsvRowGetColumnSpecs(row)`), + making it easy to write a TSV with the same schema as one being read. + :param outFh: An open file-like object to write to instead of `fileName`. + It will not be closed automatically. + :param dialect: A `csv.Dialect` instance or dialect name. + :param encoding: Optional text encoding (e.g., 'utf-8'). + :param errors: Optional error handling strategy. + """ + self.fileName = fileName + self.columnSpecs = self._resolveColumnSpecs(columns, typeMap, defaultColType, columnSpecs) + self.outFh = None + self._shouldClose = False + self._open(fileName, outFh, dialect, encoding, errors) + self._writeHeader() + + @staticmethod + def _resolveColumnSpecs(columns, typeMap, defaultColType, columnSpecs): + if columnSpecs is not None: + if columns is not None or typeMap is not None or defaultColType is not None: + raise TsvError("columnSpecs cannot be combined with columns, " + "typeMap, or defaultColType") + if not isinstance(columnSpecs, ColumnSpecs): + raise TsvError("columnSpecs must be a ColumnSpecs instance") + return columnSpecs + if columns is None: + if typeMap is None: + raise TsvError("must specify columns, typeMap, or columnSpecs") + columns = list(typeMap.keys()) + return columnsSpecBuild(columns, typeMap, defaultColType) + + @property + def columns(self): + "column names" + return self.columnSpecs.columns + + def _open(self, fileName, outFh, dialect, encoding, errors): + if outFh is not None: + self.outFh = outFh + self._shouldClose = False + else: + self.outFh = fileOps.opengz(fileName, "w", encoding=encoding, errors=errors) + self._shouldClose = True + self._writer = csv.writer(self.outFh, dialect=dialect, lineterminator='\n') + + def close(self): + """Close the file if this object opened it.""" + if self._shouldClose and self.outFh is not None: + self.outFh.close() + self.outFh = None + + def __enter__(self): + return self + + def __exit__(self, *exc_info): + self.close() + + def _writeHeader(self): + """Write the column header line.""" + self._writer.writerow(self.columns) + + def _rowFromSequence(self, row): + """Format a list/tuple, assuming values are in column order.""" + return [self.columnSpecs.fmtValue(i, row[i]) for i in range(len(self.columns))] + + def _rowFromMapping(self, row): + """Format a dict-like object, looking up values by column name.""" + return [self.columnSpecs.fmtValue(i, row[col]) for i, col in enumerate(self.columns)] + + def _rowFromObject(self, row): + """Format an object with attributes matching column names.""" + return [self.columnSpecs.fmtValue(i, getattr(row, col)) for i, col in enumerate(self.columns)] + + def _formatRow(self, row): + """Convert a row to a list of formatted strings.""" + if isinstance(row, dict): + return self._rowFromMapping(row) + elif isinstance(row, TsvRow): + return self._rowFromObject(row) + elif isinstance(row, tuple) and hasattr(row, '_fields'): + # namedtuple — use attribute names, not positions + return self._rowFromObject(row) + elif isinstance(row, (list, tuple)): + return self._rowFromSequence(row) + else: + # object with attributes + return self._rowFromObject(row) + + def writeRow(self, row): + """Write a single row. Row can be a list, tuple, dict, TsvRow, + or any object with attributes matching column names.""" + self._writer.writerow(self._formatRow(row)) + + def writeColumns(self, **kwargs): + """Write a row using keyword arguments for column values. + Columns not present in kwargs are written as empty strings (the type + formatter is not invoked). An explicitly-passed None is still routed + through the formatter.""" + row = [] + for i, col in enumerate(self.columns): + if col in kwargs: + row.append(self.columnSpecs.fmtValue(i, kwargs[col])) + else: + row.append("") + self._writer.writerow(row) + + def writeRows(self, rows): + """Write multiple rows.""" + for row in rows: + self.writeRow(row) diff --git a/src/flair/read_correction.py b/src/flair/read_correction.py new file mode 100644 index 00000000..79d5ce96 --- /dev/null +++ b/src/flair/read_correction.py @@ -0,0 +1,70 @@ +"""Shared filter + junction-correction + grouping for FLAIR pipelines.""" + +import logging + +from flair.isoform_data import Junc, ReadRec +from flair.read_processing import should_process_read, add_corrected_read_to_groups + + +def _correct_and_group_read(read, *, read_to_annot_transcript, annots, + junction_corrector, sj_to_ends, genome, + keep_single_exon): + """Correct a single read's splice junctions and add it to sj_to_ends groups. + + Spliced and single-exon reads are fundamentally different: + - Spliced: junctions corrected from annotation or intron support, strand from correction + - Single-exon: no correction, strand resolved later in group_se_by_overlap + + keep_single_exon=False drops single-exon reads (both reads without juncs + and reads matching annotated single-exon transcripts). + """ + readrec = ReadRec.from_read(read, genome=genome) + + # annotated spliced: correct junctions and strand from annotation + if read.query_name in read_to_annot_transcript: + # FIXME more id assumptions + tid, startindex, startdist, endindex, enddist = read_to_annot_transcript[read.query_name] + transcript = '_'.join(tid.split('_')[:-1]) + gene = tid.split('_')[-1] + exons = annots.transcript_to_exons[(transcript, gene)] + annot_juncs = [(exons[x].end, exons[x + 1].start) for x in range(len(exons) - 1)] + if len(annot_juncs) > 0: + newstart = annot_juncs[startindex][0] - startdist + newend = annot_juncs[endindex][1] + enddist + juncs = tuple([Junc(x[0], x[1]) for x in annot_juncs[startindex:endindex + 1]]) + readrec.correct_from_annotation(newstart, newend, annots.gene_to_strand[gene], juncs) + add_corrected_read_to_groups(readrec, sj_to_ends) + return + + # unannotated spliced: correct junctions and strand from intron support + if readrec.juncs: + if junction_corrector.correct_readrec(readrec): + add_corrected_read_to_groups(readrec, sj_to_ends) + else: + logging.debug(f"read dropped: junction correction failed: {readrec.name}") + return + + # single-exon: no correction, strand resolved later in group_se_by_overlap + if keep_single_exon: + add_corrected_read_to_groups(readrec, sj_to_ends) + else: + logging.debug(f"read dropped: single-exon: {readrec.name}") + + +def filter_correct_group_reads(*, bam_file, region, read_to_annot_transcript, + annots, junction_corrector, genome, + quality, keep_sup, sj_to_ends, + allow_secondary=False, allow_outside_range=False, + keep_single_exon=True): + """Filter reads, correct splice junctions, and group by junction chain. + sj_to_ends is mutated in place.""" + for read in bam_file.fetch(region.name, region.start, region.end): + if should_process_read(read, region, quality, keep_sup, + allow_secondary, allow_outside_range): + _correct_and_group_read(read, + read_to_annot_transcript=read_to_annot_transcript, + annots=annots, + junction_corrector=junction_corrector, + sj_to_ends=sj_to_ends, + genome=genome, + keep_single_exon=keep_single_exon) diff --git a/src/flair/read_processing.py b/src/flair/read_processing.py index 28e2f428..d99d2f4f 100644 --- a/src/flair/read_processing.py +++ b/src/flair/read_processing.py @@ -1,54 +1,70 @@ """Shared read-processing logic for FLAIR modules.""" +import logging import pysam -from flair.isoform_data import ReadRec, Junc +import pipettor +from flair.isoform_data import Isoform -def should_process_read(read, region, min_quality, keep_sup, allow_secondary): +def should_process_read(read, region, min_quality, keep_sup, allow_secondary, allow_outside_range=False): """Check if read passes filtering criteria for processing""" if read.mapping_quality < min_quality: + logging.debug(f"read dropped: low quality ({read.mapping_quality} < {min_quality}): {read.query_name}") return False if read.is_secondary and not allow_secondary: + logging.debug(f"read dropped: secondary alignment: {read.query_name}") return False if read.is_supplementary and not keep_sup: + logging.debug(f"read dropped: supplementary alignment: {read.query_name}") return False if read.reference_name != region.name: + logging.debug(f"read dropped: wrong reference ({read.reference_name} != {region.name}): {read.query_name}") return False - if not (region.start <= read.reference_start and read.reference_end <= region.end): + if not (region.start <= read.reference_start and read.reference_end <= region.end) and not allow_outside_range: + logging.debug(f"read dropped: outside region range ({read.reference_start}-{read.reference_end} not in {region.start}-{region.end}): {read.query_name}") return False return True -def add_corrected_read_to_groups(corrected_read, sj_to_ends): - """Add a corrected read to the junction-to-ends mapping""" - junc_key = tuple(sorted(corrected_read.juncs)) - if junc_key not in sj_to_ends: - sj_to_ends[junc_key] = [] - sj_to_ends[junc_key].append(corrected_read) +def get_sequence_from_bed(genome, input_bed, output_fa): + bed_cmd = ('bedtools', 'getfasta', '-nameOnly', '-s', '-split', + '-fi', genome, + '-bed', input_bed, + '-fo', output_fa) + pipettor.run([bed_cmd]) + out = open(output_fa.split('.fa')[0] + '.fixed.fa', 'w') + for line in open(output_fa): + if line[0] == '>': + line = line.split('(')[0] + '\n' + out.write(line) + out.close() + pipettor.run([('mv', output_fa.split('.fa')[0] + '.fixed.fa', output_fa)]) -def read_correct_to_readrec(junction_corrector, read): - # FIXME: remove unnecessary initial build of ReadRec and make junctions from - # read, correct, and then make bed - readrec = ReadRec.from_read(read) - corrected_bed = junction_corrector.correct_read_bed(readrec.to_bed()) - if corrected_bed is None: - return None - readrec.juncs = ReadRec._intern_juncs(tuple(Junc(corrected_bed.blocks[i].end, corrected_bed.blocks[i + 1].start) - for i in range(len(corrected_bed.blocks) - 1))) - return readrec +def add_corrected_read_to_groups(corrected_read, sj_to_ends): + """Add a corrected read to the junction-to-ends mapping. + Key is (chrom, juncs) where juncs is () for single-exon reads. + Single-exon strand is resolved later in group_se_by_overlap.""" + junc_key = (corrected_read.chrom, tuple(sorted(corrected_read.juncs))) + if junc_key not in sj_to_ends: + sj_to_ends[junc_key] = Isoform.from_readrec(corrected_read) + sj_to_ends[junc_key].reads.append(corrected_read) def generate_genomic_alignment_read_to_clipping_file(temp_prefix, bam_file, region): + c = 0 + # use both soft and hard-clipping because some alignments (secondary, maybe supplementary) can be hard-clipped + clipping_types = (pysam.CIGAR_OPS.CSOFT_CLIP, pysam.CIGAR_OPS.CHARD_CLIP) with open(temp_prefix + '.reads.genomicclipping.txt', 'w') as clipping_fh: for read in bam_file.fetch(region.name, region.start, region.end): if not read.is_secondary and not read.is_supplementary: + c += 1 name = read.query_name cigar = read.cigartuples - tot_clipped = 0 - if cigar[0][0] in {4, 5}: - tot_clipped += cigar[0][1] - if cigar[-1][0] in {4, 5}: - tot_clipped += cigar[-1][1] - clipping_fh.write(name + '\t' + str(tot_clipped) + '\n') - return temp_prefix + '.reads.genomicclipping.txt' + left_clipping, right_clipping = 0, 0 + if cigar[0][0] in clipping_types: + left_clipping = cigar[0][1] + if cigar[-1][0] in clipping_types: + right_clipping = cigar[-1][1] + clipping_fh.write(name + '\t' + str(left_clipping) + '\t' + str(right_clipping) + '\n') + return c, temp_prefix + '.reads.genomicclipping.txt' diff --git a/src/flair/remove_internal_priming.py b/src/flair/remove_internal_priming.py index 4bace3e0..69a4ae74 100644 --- a/src/flair/remove_internal_priming.py +++ b/src/flair/remove_internal_priming.py @@ -1,69 +1,108 @@ #!/usr/bin/env python3 -import sys -import argparse +""" +Detect and filter internal priming artifacts in long-read RNA-seq data. + +Internal priming occurs when the oligo-dT primer used during cDNA synthesis +binds to a genomic A-rich region within a transcript rather than at the true +polyA tail, producing a truncated read that falsely appears to end at that +internal site. +""" + from bisect import bisect_left -import pysam def checkIsNearAnnotEnd(read3endpos, annotends): """ - Implements binary search for nearest transcript end, return true if pos is <=200bp from nearest end + Check if read3endpos is within 200bp of a known annotated transcript end. + Uses binary search on the sorted annotends list. Returns True if the read + likely ends at a real polyA site rather than an internal priming artifact. """ pos1 = bisect_left(annotends, read3endpos) - if pos1 == len(annotends): return abs(annotends[pos1 - 1] - read3endpos) <= 200 + if pos1 == len(annotends): + return abs(annotends[pos1 - 1] - read3endpos) <= 200 disttoend = min(abs(annotends[pos1 - 1] - read3endpos), abs(annotends[pos1] - read3endpos)) return disttoend <= 200 -###add annotation-reliant check for transcript end, implement binary search def checkInternalPriming(read3endpos, thischr, genome, reqfreq, threshold): """ - Checks the genomic sequence adjacent to the read end position for a stretch of As with - a frequency >= reqfreq and a length >= threshold + Check whether the genomic sequence near the read's 3' end contains an A/T-rich + stretch that could have caused internal priming. + + Fetches a 60bp window centered on read3endpos and scans sub-windows of + varying sizes. For each window, counts the dominant base (A or T) frequency. + Returns True if any window of length >= threshold has A/T frequency >= reqfreq, + indicating a genomic polyA/polyT stretch that could cause internal priming. """ genomeseqnearend = genome.fetch(thischr, max(read3endpos - 30, 0), min(read3endpos + 30, genome.get_reference_length(thischr))).upper() - # FIXME: maxfreq never used - maxlen, maxfreq = 0, 0 - if len(genomeseqnearend) > threshold*2: - halfseqlen = int(len(genomeseqnearend)/2) - for i in list(range(-1 * halfseqlen, -1*threshold)) + list(range(threshold, halfseqlen)): + maxlen = 0 + if len(genomeseqnearend) > threshold * 2: + halfseqlen = int(len(genomeseqnearend) / 2) + # Scan windows anchored at the center (read3endpos), growing outward + # in both directions. Negative i values produce windows extending left + # of center; positive i values extend right. The min/max swap ensures + # the slice is always [lower:upper] regardless of sign. + for i in list(range(-1 * halfseqlen, -1 * threshold)) + list(range(threshold, halfseqlen)): thisseq = genomeseqnearend[min(i + halfseqlen, halfseqlen): max(i + halfseqlen, halfseqlen)] + # count whichever of A or T is more frequent (handles both strands) thiscount = max(thisseq.count('A'), thisseq.count('T')) thisfreq = thiscount / len(thisseq) if len(thisseq) > 0 else 0 if thisfreq >= reqfreq and len(thisseq) > maxlen: - maxlen, maxfreq = len(thisseq), thisfreq + maxlen = len(thisseq) return maxlen >= threshold +# FIXME: misleading name — returns True when read should be KEPT (no internal +# priming detected), not when internal priming is removed. A name like +# passesInternalPrimingFilter would be clearer. def removeinternalpriming(refname, refstart, refend, isrev, genome, annottranscriptends, annotexons, threshold, fracAs): """ - Given info from a an aligned bam read, check whether it has internal priming - refname, refstart, refend, isrev - all info about read alignment - genome: pysam.FastaFile object - annottranscriptends: [genomic alignment only] dictionary of chrom to sorted list of transcript end pos - annotexons: [transcriptomic alignment only] dictionary of transcript name to list of exon lengths - threshold: max length of stretch of As before something is internal priming - fracAs: minimum frequency of As in sequence to qualify as polyA (6/8 bp=A -> threshold=0.75) + Determine if a read should be kept (True) or discarded as internally primed (False). + + Two modes based on alignment type: + - Transcriptomic alignment (annottranscriptends is empty/None): uses annotexons + to check if the read's 3' end is near the transcript end, then falls through + to genomic A-rich check. + - Genomic alignment (annottranscriptends provided): checks if read's 3' end is + near an annotated transcript end (real polyA site). + + In both cases, if no evidence of a real polyA site is found, the read is + discarded as internally primed (returns False). """ read3endpos = refend if not isrev else refstart - # if aligned to transcriptome, check distance to transcript end - # if read end is close enough to transcript end, return True (no internal priming) + if not annottranscriptends: + # --- Transcriptomic alignment path --- + # Check if read's 3' end is near the transcript end based on exon structure if annotexons and refname in annotexons: theseexons = annotexons[refname] - # multi exon transcript + # multi-exon: keep if 3' end is within the last exon + # (sum of exon lengths minus last exon = start of last exon in transcript coords) if len(theseexons) > 1 and read3endpos > sum(theseexons) - theseexons[-1]: return True - # single exon transcript - elif len(theseexons) == 1 and read3endpos >= theseexons[0]-200: + # single-exon: keep if 3' end is within 200bp of transcript end + elif len(theseexons) == 1 and read3endpos >= theseexons[0] - 200: return True - # if read doesn't have stretch of As beyond threshold, doesn't have internal priming, - # The refname check is from #629 when this is called on a transcriptome alignment - # FIXME: this function should not be called on a transcriptome alignment - if ((refname not in genome.references) or - (not checkInternalPriming(read3endpos, refname, genome, fracAs, threshold))): - return True + + # Fall-through: read didn't pass the near-end check (or had no exon annotation). + # Check genomic sequence for A-rich stretch. If no A-rich stretch found, keep the read. + # FIXME: this uses transcript coordinates (refname/read3endpos) as if they were + # genomic coordinates, which is incorrect for transcriptomic alignments. + # The refname check (from issue #629) is a workaround: if refname isn't a + # chromosome in the genome, skip the check and keep the read. + # FIXME: checking for known chromosome should happen much earlier + if ((refname not in genome.references) or + (not checkInternalPriming(read3endpos, refname, genome, fracAs, threshold))): + return True + elif annottranscriptends and refname in annottranscriptends: + # --- Genomic alignment path --- + # If read's 3' end is near a known transcript end, this is likely a real + # polyA site, so keep the read even if the genomic sequence is A-rich. + # FIXME: if not near an annotated end, falls through to return False + # without checking genomic A-richness — asymmetric with the transcriptomic + # path above, which does check. Reads on chromosomes with no annotated + # ends also fall through to False without any A-richness check. isnearannotend = checkIsNearAnnotEnd(read3endpos, annottranscriptends[refname]) if isnearannotend: return True diff --git a/src/flair/synthetic_splice_sites.py b/src/flair/synthetic_splice_sites.py index b85139be..8f70329b 100644 --- a/src/flair/synthetic_splice_sites.py +++ b/src/flair/synthetic_splice_sites.py @@ -1,13 +1,15 @@ import sys from collections import Counter import pysam +from flair.gtf_io import gtf_record_parser, GtfAttrsSet +from flair.pycbio.hgdata.bed import BedReader alignedbedfile = sys.argv[1] referencegtffile = sys.argv[2] outfilename = sys.argv[3] refbpfile = sys.argv[4] -sjwiggle = int(sys.argv[5]) #15 -readcov = int(sys.argv[6]) #2 +sjwiggle = int(sys.argv[5]) # 15 +readcov = int(sys.argv[6]) # 2 refgenomefile = sys.argv[7] def grouper(iterable): @@ -23,17 +25,16 @@ def grouper(iterable): if group: yield group + fusiontoannotsj = {} -for line in open(referencegtffile): - line = line.rstrip().split('\t', 5) - if line[2] == 'exon': - if line[0] not in fusiontoannotsj: fusiontoannotsj[line[0]] = set() - fusiontoannotsj[line[0]].add((int(line[3]), int(line[4]))) +for rec in gtf_record_parser(referencegtffile, include_features={'exon'}, attrs=GtfAttrsSet.FLAIR): + if rec.chrom not in fusiontoannotsj: + fusiontoannotsj[rec.chrom] = set() + fusiontoannotsj[rec.chrom].add((rec.start + 1, rec.end)) # keep 1-based to match original fusiontobp = {} -for line in open(refbpfile): - line = line.rstrip().split('\t') - fusiontobp[line[0]] = int(line[1]) +for bed in BedReader(refbpfile, numStdCols=3): + fusiontobp[bed.chrom] = bed.chromStart genome = pysam.FastaFile(refgenomefile) @@ -44,12 +45,10 @@ def grouper(iterable): reconsideredss = {} c = 0 introns_to_reads = {} -for line in open(alignedbedfile): - line = line.rstrip().split('\t') - thischr, iso, strand, start, esizes, estarts = line[0], line[3], line[5], int(line[1]), \ - [int(x) for x in line[10].rstrip(',').split(',')], [ int(x) for x in line[11].rstrip(',').split(',')] - for i in range(len(esizes) - 1): - thisintron = tuple([thischr, start + estarts[i] + esizes[i] , start + estarts[i + 1] + 1]) +for bed in BedReader(alignedbedfile, fixScores=True): + thischr, iso, strand, start = bed.chrom, bed.name, bed.strand, bed.chromStart + for i in range(len(bed.blocks) - 1): + thisintron = tuple([thischr, bed.blocks[i].end, bed.blocks[i + 1].start + 1]) if thisintron not in introns_to_reads: introns_to_reads[thisintron] = 0 introns_to_reads[thisintron] += 1 @@ -59,27 +58,26 @@ def grouper(iterable): thisintron = list(thisintron) foundSJ = False - if genome.fetch(thischr, thisintron[1], thisintron[1]+2) == 'GT' and \ - genome.fetch(thischr, thisintron[2]-3, thisintron[2]-1) == 'AG': + if genome.fetch(thischr, thisintron[1], thisintron[1] + 2) == 'GT' and \ + genome.fetch(thischr, thisintron[2] - 3, thisintron[2] - 1) == 'AG': foundSJ = True strand = '+' - elif genome.fetch(thischr, thisintron[1], thisintron[1]+2) == 'CT' and \ - genome.fetch(thischr, thisintron[2]-3, thisintron[2]-1) == 'AC': + elif genome.fetch(thischr, thisintron[1], thisintron[1] + 2) == 'CT' and \ + genome.fetch(thischr, thisintron[2] - 3, thisintron[2] - 1) == 'AC': foundSJ = True strand = '-' thisintron.append(strand) # print(thisintron, readcount, foundSJ, thisintron[1] <= fusiontobp[thischr] <= thisintron[2]) - - if thisintron[1] <= fusiontobp[thischr] <= thisintron[2] or foundSJ: ##only process introns that have correct motifs OR cross the fusion breakpoint + if thisintron[1] <= fusiontobp[thischr] <= thisintron[2] or foundSJ: # only process introns that have correct motifs OR cross the fusion breakpoint + close_ref = False if thischr in fusiontoannotsj: # closestdist, closestpos = 1000, None - close_ref = False for sj in fusiontoannotsj[thischr]: d1 = abs(thisintron[1] - sj[0]) d2 = abs(thisintron[2] - sj[1]) - if d1 <= sjwiggle and d2 <= sjwiggle:#== 0: + if d1 <= sjwiggle and d2 <= sjwiggle: # == 0: # print(iso, thisintron[i], genome.fetch(thischr, thisintron[i], thisintron[i]+2)) # if i == 1: print(iso, thisintron[i], genome.fetch(thischr, thisintron[i], thisintron[i]+2)) # else: print(iso, thisintron[i], genome.fetch(thischr, thisintron[i]-3, thisintron[i]-1)) @@ -88,9 +86,10 @@ def grouper(iterable): break # print(close_ref) if not close_ref: - if thischr not in chrtonovelss: chrtonovelss[thischr] = [] - chrtonovelss[thischr].extend([thisintron[1]*readcount]) - chrtonovelss[thischr].extend([thisintron[2]*readcount]) + if thischr not in chrtonovelss: + chrtonovelss[thischr] = [] + chrtonovelss[thischr].extend([thisintron[1] * readcount]) + chrtonovelss[thischr].extend([thisintron[2] * readcount]) reconsideredss[tuple(thisintron)] = readcount @@ -103,11 +102,13 @@ def grouper(iterable): groupsize = len(group) finalpos = [] for pos, count in Counter(group).most_common(): - if count >= readcov and count >= groupsize/10: ###needs to also be 1/10 of locus + if count >= readcov and count >= groupsize / 10: # needs to also be 1/10 of locus isdifferent = True for fp in finalpos: - if fp-sjwiggle <= pos <= fp+sjwiggle: isdifferent = False - if isdifferent: finalpos.append(pos) + if fp - sjwiggle <= pos <= fp + sjwiggle: + isdifferent = False + if isdifferent: + finalpos.append(pos) for fp in finalpos: chrtogoodss[chr].add(fp) @@ -117,18 +118,21 @@ def grouper(iterable): readcount = reconsideredss[thisintron] thisintron = list(thisintron) thischr = thisintron[0] - for i in range(1, 3): ##checking each splice site - ###FIXME currently processing each splice site individually + for i in range(1, 3): # checking each splice site + # FIXME currently processing each splice site individually closestdist, closestpos = 1000, None if thischr in chrtogoodss: for sj in chrtogoodss[thischr]: thisdist = abs(thisintron[i] - sj) if thisdist <= sjwiggle: - if thisdist < closestdist: closestdist, closestpos = thisdist, sj - if closestpos: thisintron[i] = closestpos + if thisdist < closestdist: + closestdist, closestpos = thisdist, sj + if closestpos: + thisintron[i] = closestpos thisintron[2] -= 1 thisintron = tuple(thisintron) - if thisintron not in splicejunctosupport: splicejunctosupport[thisintron] = 0 + if thisintron not in splicejunctosupport: + splicejunctosupport[thisintron] = 0 splicejunctosupport[thisintron] += readcount diff --git a/src/flair/transcriptomic_chimeras.py b/src/flair/transcriptomic_chimeras.py deleted file mode 100644 index 369efb7c..00000000 --- a/src/flair/transcriptomic_chimeras.py +++ /dev/null @@ -1,246 +0,0 @@ -#!/usr/bin/env python3 - -import pysam, sys, argparse -from statistics import median - - -# FIXME: this exist else where. -def binarySearch(arr, t): - if t <= arr[0]: return arr[0] - if t >= arr[-1]: return arr[-1] - i, j, mid = 0, len(arr) - 1, 0 - while i < j: - mid = int((i + j) / 2) - if arr[mid] == t: - return arr[mid] - elif t < arr[mid]: - if mid > 0 and t > arr[mid - 1]: - if abs(arr[mid] - t) < abs(arr[mid - 1] - t): - return arr[mid] - else: - return arr[mid - 1] - j = mid - else: - if mid < len(arr) - 1 and t < arr[mid + 1]: - if abs(arr[mid] - t) < abs(arr[mid + 1] - t): - return arr[mid] - else: - return arr[mid + 1] - i = mid + 1 - - -def getGenomicPreciseLoc(tname, bpCoord, genedir, intronLocs, intronToGenome): - closestSS = binarySearch(intronLocs[tname], bpCoord) - bpIntronEnds = intronToGenome[tname][closestSS] - genomeSS = None - diffFromSS = bpCoord-closestSS - if closestSS == 0: ##start of gene - if genedir == '+': genomeSS = bpIntronEnds[1] - else: genomeSS = bpIntronEnds[0] - elif closestSS == max(intronLocs[tname]): ###end of gene - if genedir == '+': genomeSS = bpIntronEnds[0] - else: genomeSS = bpIntronEnds[1] - elif genedir == '+': - if bpCoord >= closestSS: genomeSS = bpIntronEnds[1] - else: genomeSS = bpIntronEnds[0] - else: - if bpCoord >= closestSS: genomeSS = bpIntronEnds[0] - else: genomeSS = bpIntronEnds[1] - genomepos = None - if genedir == '+': genomepos = genomeSS + diffFromSS - else: genomepos = genomeSS - diffFromSS - return genomepos - -def parsegtftranscriptomic(gtffilename): - geneannot = {} - genetoinfo = {} - for line in open(gtffilename): - if line.startswith('#'): - continue - line = line.rstrip().split('\t') - chrom, ty, start, end, strand = line[0], line[2], int(line[3]) - 1, int(line[4]), line[6] - if ty in {'gene', 'exon'}: - gene_id = line[8].split('gene_id "')[1].split('"')[0] - gene_id = gene_id.replace('_', '-') - if ty == 'gene': - geneannot[gene_id] = (chrom, start, end, strand) - else: - transcript_id = line[8].split('transcript_id "')[1].split('"')[0] - if gene_id not in genetoinfo: genetoinfo[gene_id] = {} - if transcript_id not in genetoinfo[gene_id]: genetoinfo[gene_id][transcript_id] = [] - genetoinfo[gene_id][transcript_id].append((start, end)) - - intronLocs, intronToGenome = {}, {} - for g in genetoinfo: - chrom, start, end, strand = geneannot[g] - for t in genetoinfo[g]: - myexons = sorted(genetoinfo[g][t]) - last = myexons[-1] - mylocs = [[0, myexons[0][0] - 500, myexons[0][0]]] ##add start of transcript - runningtot = 0 - for i in range(len(myexons) - 1): - runningtot += myexons[i][1] - myexons[i][0] ##add size of last exon - mylocs.append([runningtot, myexons[i][1], myexons[i + 1][0]]) ##add intron - runningtot += myexons[-1][1] - myexons[-1][0] - mylocs.append([runningtot, myexons[-1][1], myexons[-1][1] + 500]) - if strand == '-': - mylocs = [[runningtot - mylocs[x][0], mylocs[x][1], mylocs[x][2]] for x in range(len(mylocs))] - intronLocs[t] = sorted([x[0] for x in mylocs]) - intronToGenome[t] = {x[0]: (x[1], x[2]) for x in mylocs} - print('loaded annot') - return geneannot, intronLocs, intronToGenome - - - -def idTranscriptomicChimeras(bam, genetoinfo, intronLocs, intronToGenome, minsup, maxloci=10, reqdisttostart=None): - isrevtosign = {True: '-', False: '+'} - withsup = pysam.AlignmentFile(bam, "rb") - c = 0 - readToAligns = {} - for read in withsup.fetch(): - rname = read.query_name - if rname not in readToAligns: - readToAligns[rname] = [] - # genename = read.reference_name.split('|')[1] - # tname = read.reference_name.split('|')[4] - ###if aligning to annotated_transcripts.fa ##need to add better flexibility for formatting here - # tname, genename = read.reference_name.split('_') - genename = read.reference_name.split('_')[-1] - tname = '_'.join(read.reference_name.split('_')[:-1]) - genedir = genetoinfo[genename][3] - refstart, refend, dir = read.reference_start, read.reference_end, isrevtosign[read.is_reverse] - refstart = getGenomicPreciseLoc(tname, refstart, genedir, intronLocs, intronToGenome) - refend = getGenomicPreciseLoc(tname, refend, genedir, intronLocs, intronToGenome) - qstart, qend = read.query_alignment_start, read.query_alignment_end - refchr = genetoinfo[genename][0] - readlen = read.infer_read_length() - cigar = read.cigartuples - if cigar[0][0] == 5: ##just hard clipping - qstart += cigar[0][1] - qend += cigar[0][1] - if dir == '+': - readToAligns[rname].append([(qstart, refstart), (qend, refend), genename, genedir, refchr]) - else: - readToAligns[rname].append( - [(readlen - qend, refend), (readlen - qstart, refstart), genename, genedir, refchr]) - print('processed bam file') - interestingloci = {} - for read in readToAligns: - alignedloci = sorted(readToAligns[read]) - g1annot, g2annot = genetoinfo[alignedloci[0][2]], genetoinfo[alignedloci[-1][2]] - # g1strand, g2strand, g15ends, g25ends = g1annot[3], g2annot - end1strandalignswithtranscript = True if (alignedloci[0][0][1] < alignedloci[0][1][1] and g1annot[3] == '+') or (alignedloci[0][0][1] > alignedloci[0][1][1] and g1annot[3] == '-') else False - end2strandalignswithtranscript = True if (alignedloci[-1][1][1] < alignedloci[-1][0][1] and g2annot[3] == '+') or (alignedloci[-1][1][1] > alignedloci[-1][0][1] and g2annot[3] == '-') else False - if not end1strandalignswithtranscript and not end2strandalignswithtranscript: continue - g15end = sorted(g1annot[-1], key=lambda x:abs(x-alignedloci[0][0][1]))[0] ###compare to all annot transcript ends - g25end = sorted(g2annot[-1], key=lambda x:abs(x-alignedloci[-1][1][1]))[0] - if (not end1strandalignswithtranscript and end2strandalignswithtranscript) or (end2strandalignswithtranscript and end1strandalignswithtranscript and abs(alignedloci[-1][1][1] - g25end) < abs(alignedloci[0][0][1] - g15end)): #alignedloci[-1][1][1] < alignedloci[0][0][1]): - alignedloci = [[x[1], x[0]] + x[2:] for x in alignedloci][::-1] ###reverse so smaller transcript pos is start - readToAligns[read] = alignedloci - readgenes = [x[2] for x in alignedloci] - # print(read, readToAligns[read]) - if len(set(readgenes)) > 1: - info = tuple(readgenes) - if info not in interestingloci: interestingloci[info] = [] - interestingloci[info].append(read) - - fusiontoinfo = {} - # fusionsout.write('\t'.join( - # ['fusionName', 'geneName', 'orderInFusion', 'geneChr', 'leftCoord', 'rightCoord', 'readSupport']) + '\n') - for l in interestingloci: - if len(interestingloci[l]) >= minsup and 2 <= len(l) <= maxloci: - numloci = len(l) - qdist, readsup = [[] for x in range(numloci-1)], 0 - alignblocks = [[[], []] for x in range(numloci)] - aligngenes = [[] for x in range(numloci)] - mygenetoinfo = [genetoinfo[x] for x in l] - genesep = True - - for i in range(numloci): - for j in range(numloci): - if i != j: - if not (mygenetoinfo[i][0] != mygenetoinfo[j][0] or - max(0, min(mygenetoinfo[i][2], mygenetoinfo[j][2]) - max(mygenetoinfo[i][1], - mygenetoinfo[j][1])) == 0): - genesep = False - goodreads = [] - # print('genesep', genesep) - if genesep: - for r in interestingloci[l]: - if len(readToAligns[r]) == numloci: - alignedloci = readToAligns[r] - goodreads.append(r) - readsup += 1 - for i in range(numloci - 1): - qdist[i].append(alignedloci[i][1][0] - alignedloci[i + 1][0][0]) - for i in range(numloci): ###getting genomic positions - alignblocks[i][0].append(alignedloci[i][0][1]) - alignblocks[i][1].append(alignedloci[i][1][1]) - aligngenes[i].append(tuple(alignedloci[i][2:])) - # print(alignblocks) - # print(aligngenes) - if readsup >= minsup: - consistentGenes = True - for i in range(numloci): - if len(set(aligngenes[i])) > 1: consistentGenes = False - # print('consgenes', consistentGenes) - if consistentGenes: # check that the 5' gene and 3' gene are consistent - ###to start, no clustering, take simple min/max - for i in range(numloci): - aligngenes[i] = list(set(aligngenes[i]))[0] - - strand = '+' if median(alignblocks[i][1]) > median(alignblocks[i][0]) else '-' - for j in range(2): - poslist = sorted(alignblocks[i][j]) - simplemed = median(poslist) - groups, g = [], [-500] - for p in poslist: - if p - g[-1] > 300: - if g[0] != -500: groups.append(g) - g = [p] - else: g.append(p) - groups.append(g) - goodpos = [] - for g in groups: - if len(g) > 1: goodpos.extend(g) - - if (strand == '+' and j == 0) or (strand == '-' and j == 1): - outpos = int(min(simplemed, min(goodpos))) - 1000 if len(goodpos) > 0 else int(simplemed) - 1000 - else: outpos = int(max(simplemed, max(goodpos))) + 1000 if len(goodpos) > 0 else int(simplemed) + 1000 - alignblocks[i][j] = outpos - - # if median(alignblocks[i][1]) > median(alignblocks[i][0]): ##positive strand - # alignblocks[i][0] = int(median(alignblocks[i][0])) - 1000 - # alignblocks[i][1] = int(median(alignblocks[i][1])) + 1000 - # else: - # alignblocks[i][0] = int(median(alignblocks[i][0])) + 1000 - # alignblocks[i][1] = int(median(alignblocks[i][1])) - 1000 - - ###check that 5' gene is in the forward direction, implies plausible promoter - firstgenedir = genetoinfo[aligngenes[0][0]][3] - firstgenetstarts = genetoinfo[aligngenes[0][0]][-1] - end5 = alignblocks[0][0] - if alignblocks[0][0] > alignblocks[0][1]: end5 -= 1000 - else: end5 += 1000 - mindisttostart = min([abs(end5 - x) for x in firstgenetstarts]) - # print(mindisttostart, end5, firstgenetstarts) - qdist = [median(x) for x in qdist] - if ((firstgenedir == '+' and alignblocks[0][0] < alignblocks[0][1]) or ( - firstgenedir == '-' and alignblocks[0][0] > alignblocks[0][1])) \ - and (reqdisttostart == None or mindisttostart <= reqdisttostart) and max([abs(x) for x in qdist]) <= 10: - # firstgenedir = genetoinfo[aligngenes[0][0]][3] - # # print(firstgenedir, alignblocks[0]) - # if (firstgenedir == '+' and alignblocks[0][0] < alignblocks[0][1]) or ( - # firstgenedir == '-' and alignblocks[0][0] > alignblocks[0][1]): - ###['fusionName', 'geneName', 'orderInFusion', 'geneChr', 'leftCoord', 'rightCoord', 'readSupport'] - fname = '__'.join([x[0] for x in aligngenes]) - fusiontoinfo[fname] = {'reads': set(goodreads), 'disttostart':[mindisttostart], 'qdist':qdist} - for i in range(numloci): - # fusiontoinfo[fname][i] = [aligngenes[i][0], aligngenes[i][2], alignblocks[i][0], alignblocks[i][1]] - fusiontoinfo[fname][aligngenes[i][0]] = [aligngenes[i][2], alignblocks[i][0], alignblocks[i][1]] - # outline = ['__'.join([x[0] for x in aligngenes]), aligngenes[i][0], - # "gene" + str(i), aligngenes[i][2], alignblocks[i][0], alignblocks[i][1], - # readsup] - # if i == 0: outline.append(','.join(goodreads)) - # fusionsout.write('\t'.join([str(x) for x in outline]) + '\n') - return fusiontoinfo diff --git a/test/Makefile b/test/Makefile index 36506c1a..0443b64e 100644 --- a/test/Makefile +++ b/test/Makefile @@ -38,6 +38,13 @@ endif # all targets ## default: + @echo "=====" + @echo "===== to see all targets: make help" + @echo "=====" + ${MAKE} test + + +help: @echo To run all tests, use: >&2 @echo " " make test >&2 @echo To run tests without R depedencies, use: >&2 @@ -61,19 +68,18 @@ default: @echo "build test case hub" >&2 @echo " " make test-hub >&2 @echo " " make make hub-check huburl=https://public.gi.ucsc.edu/~you/flair/test/hub/hub.txt >&2 - @exit 1 test: ${MAKE} test-base test-with-R test-base: - ${MAKE} align-tests quantify-tests \ + ${MAKE} align-tests quantify-tests bed-to-gtf-tests \ combine-tests predict-productivity-tests diff-iso-usage-tests \ plot-usage-tests transcriptome-tests fusion-tests variants-tests \ spliceevents-tests partition-tests lib-tests test-no-align: - ${MAKE} quantify-tests \ + ${MAKE} quantify-tests bed-to-gtf-tests \ combine-tests predict-productivity-tests diff-iso-usage-tests \ plot-usage-tests transcriptome-tests fusion-tests variants-tests \ spliceevents-tests partition-tests lib-tests @@ -191,6 +197,11 @@ SEG1_ISOFORMS_BED = expected/test-collapse-seg1.isoforms.bed ## # mutant splice site, BED is truth ## +DDX5_READTHROUGH_FQ = input/DDX5_readthrough.badread40x.fastq +DDX5_READTHROUGH_BAM = output/DDX5_readthrough_sim_badread40x.bam +DDX5_READTHROUGH_ANNOT = input/DDX5_POLG2_gencode38.gtf +DDX5_READTHROUGH_SJ = input/DDX5_readthrough_IPSJ.bed + KRAS_MUT_SPLICE_FQ = input/KRAS_sim_genomic_mut_driven_splicing.badreadsimPB.fastq KRAS_MUT_SPLICE_BAM = output/KRAS_sim_genomic_mut_driven_splicing.badreadsimPB.bam KRAS_MUT_SPLICE_SJ_BED = input/KRAS_sim_genomic_mut_driven_splicing.badreadsimPB.sj.bed @@ -209,6 +220,10 @@ define cmp_expect diff $E/$(1) $O/$(1) endef +define cmp_expect_bed_simple + diff <(cut -f 1,2,3,6,10,11,12 $E/$(1)) <(cut -f 1,2,3,6,10,11,12 $O/$(1)) +endef + ## # Expected and output are sorted in cases where the order is not stable. In # this case, we first test for the file as sorted input subsitution failure @@ -389,13 +404,32 @@ test-diffsplice-help: mkdirs $(call cmp_expect,$@.out) +bed-to-gtf-tests: test-bed-to-gtf test-bed-to-gtf-cds test-bed-to-gtf-extracols + +test-bed-to-gtf : mkdirs + bed_to_gtf $(BASIC_ISOFORMS_BED) > $O/$@.gtf + $(call cmp_expect,$@.gtf) + +test-bed-to-gtf-cds : + bed_to_gtf $E/test-predict-productivity.bed > $O/$@.gtf + $(call cmp_expect,$@.gtf) + +test-bed-to-gtf-extracols : + bed_to_gtf --is_flair_bed $E/test-transcriptome.isoforms.bed > $O/$@.gtf + $(call cmp_expect,$@.gtf) + ## # PREDICT PRODUCTIVITY ## -predict-productivity-tests: test-predict-productivity test-predict-productivity-help +predict-productivity-tests: test-predict-productivity test-predict-productivity-extracols test-predict-productivity-help test-predict-productivity : mkdirs ${GENOME_FA} - predictProductivity -i $(BASIC_ISOFORMS_BED) -g $(BASIC_ANNOTATION) -f ${GENOME_FA} -o $O/$@ --longestORF + predictProductivity -i $(BASIC_ISOFORMS_BED) -g $(BASIC_ANNOTATION) -f ${GENOME_FA} -o $O/$@ + $(call cmp_expect,$@.bed) + $(call cmp_expect,$@.info.tsv) + +test-predict-productivity-extracols : mkdirs ${GENOME_FA} + predictProductivity -i $E/test-transcriptome-noannot.isoforms.bed -g $(BASIC_ANNOTATION) -f ${GENOME_FA} -o $O/$@ --is_flair_bed $(call cmp_expect,$@.bed) $(call cmp_expect,$@.info.tsv) @@ -434,50 +468,75 @@ test-plot-usage-help: mkdirs # flair transcriptome ### -transcriptome-tests: test-transcriptome test-transcriptome-partition test-transcriptome-noannot test-transcriptome-predcds \ - test-transcriptome-seg1 test-transcripome-mutant-splice test-transcriptome-help +transcriptome-tests: test-transcriptome test-transcriptome-partition test-transcriptome-lowannot test-transcriptome-noannot \ + test-transcriptome-seg1 test-transcripome-mutant-splice test-transcriptome-readthrough test-transcriptome-mult-ends \ + test-transcriptome-trust-ends test-transcriptome-mult-ends-trust-ends test-transcriptome-help update-transcriptome-tests: - for tname in "test-transcriptome" "test-transcriptome-partition" "test-transcriptome-noannot" "test-transcriptome-predcds" "test-transcriptome-seg1" "test-transcriptome-ends"; \ + for tname in "test-transcriptome" "test-transcriptome-partition" "test-transcriptome-lowannot" "test-transcriptome-noannot" \ + "test-transcriptome-seg1" "test-transcripome-mutant-splice" "test-transcriptome-readthrough" "test-transcriptome-mult-ends" \ + "test-transcriptome-trust-ends" "test-transcriptome-mult-ends-trust-ends"; \ do \ cp $O/$$tname.isoforms.bed $E/$$tname.isoforms.bed; \ cp $O/$$tname.isoforms.gtf $E/$$tname.isoforms.gtf; \ - cp $O/$$tname.isoform.read.map.txt $E/$$tname.isoform.read.map.txt; \ done + cp $O/test-transcriptome.isoforms.as $E/test-transcriptome.isoforms.as test-transcriptome: mkdirs ${TEST_ALIGN_BAM} - flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} --junction_tab ${BASIC_SHORTREAD_JUNCTIONS} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --keep_intermediate + flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} --junction_tab ${BASIC_SHORTREAD_JUNCTIONS} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --keep_intermediate +# $(call cmp_expect_bed_simple,$@.isoforms.bed) $(diff_bed_gtf) -# FIXME: not working -test-transcriptome-ends: mkdirs ${TEST_ALIGN_BAM} - flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} --junction_tab ${BASIC_SHORTREAD_JUNCTIONS} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --end_norm_dist 500 --output_endpos +test-transcriptome-trust-ends: mkdirs ${TEST_ALIGN_BAM} + flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} --junction_tab ${BASIC_SHORTREAD_JUNCTIONS} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --trust_ends +# $(call cmp_expect_bed_simple,$@.isoforms.bed) + $(diff_bed_gtf) + +test-transcriptome-mult-ends: mkdirs ${TEST_ALIGN_BAM} + flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} --junction_tab ${BASIC_SHORTREAD_JUNCTIONS} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --max_ends 5 --keep_intermediate +# $(call cmp_expect_bed_simple,$@.isoforms.bed) + $(diff_bed_gtf) + +test-transcriptome-mult-ends-trust-ends: mkdirs ${TEST_ALIGN_BAM} + flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} --junction_tab ${BASIC_SHORTREAD_JUNCTIONS} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --max_ends 5 --trust_ends +# $(call cmp_expect_bed_simple,$@.isoforms.bed) $(diff_bed_gtf) test-transcriptome-partition: mkdirs ${TEST_ALIGN_BAM} flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} --junction_tab ${BASIC_SHORTREAD_JUNCTIONS} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --parallel_mode byregion +# $(call cmp_expect_bed_simple,$@.isoforms.bed) $(diff_bed_gtf) -test-transcriptome-noannot: mkdirs ${TEST_ALIGN_BAM} - flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --no_align_to_annot +test-transcriptome-lowannot: mkdirs ${TEST_ALIGN_BAM} + intronProspector --genome-fasta=${GENOME_FA} --intron-bed6=$O/$@.IPjunctions.bed -C 0.0 ${TEST_ALIGN_BAM} + flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} -t 4 -f $(BASIC_ANNOTATION) --junction_bed $O/$@.IPjunctions.bed --junction_support 2 -o $O/$@ --no_align_to_annot --sjc_support 3 +# $(call cmp_expect_bed_simple,$@.isoforms.bed) $(diff_bed_gtf) -test-transcriptome-predcds: mkdirs ${TEST_ALIGN_BAM} - flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ --predict_cds +test-transcriptome-noannot: mkdirs ${TEST_ALIGN_BAM} + intronProspector --genome-fasta=${GENOME_FA} --intron-bed6=$O/$@.IPjunctions.bed -C 0.0 ${TEST_ALIGN_BAM} + flair transcriptome -b ${TEST_ALIGN_BAM} -g ${GENOME_FA} -t 4 -o $O/$@ --junction_bed $O/$@.IPjunctions.bed --junction_support 2 --sjc_support 3 +# $(call cmp_expect_bed_simple,$@.isoforms.bed) $(diff_bed_gtf) - $(call cmp_expect,$@.isoforms.CDS.bed) -# FIXME: doesn't work, returns nothing. Need to debug later test-transcriptome-seg1: mkdirs ${SEG1_ALIGN_BAM} flair transcriptome -b ${SEG1_ALIGN_BAM} -g ${GENOME_FA} -t 4 -f $(SEG1_ANNOTATION) -o $O/$@ +# $(call cmp_expect_bed_simple,$@.isoforms.bed) $(diff_bed_gtf) # test of an artifical mutated splice site. test-transcripome-mutant-splice: mkdirs ${KRAS_MUT_SPLICE_BAM} flair transcriptome -b ${KRAS_MUT_SPLICE_BAM} -g ${GENOME_FA} \ --junction_bed=${KRAS_MUT_SPLICE_SJ_BED} \ - -t 4 -f ${BASIC_ANNOTATION} -o $O/$@ + -t 4 -f ${BASIC_ANNOTATION} -o $O/$@ --sjc_support 2 +# $(call cmp_expect_bed_simple,$@.isoforms.bed) + $(diff_bed_gtf) + +#test of an artificial read through transcript +test-transcriptome-readthrough: mkdirs ${DDX5_READTHROUGH_BAM} + flair transcriptome -b ${DDX5_READTHROUGH_BAM} -g ${GENOME_FA} -f ${DDX5_READTHROUGH_ANNOT} -o $O/$@ --junction_bed=${DDX5_READTHROUGH_SJ} --sjc_support 2 +# $(call cmp_expect_bed_simple,$@.isoforms.bed) $(diff_bed_gtf) @@ -487,6 +546,12 @@ ${KRAS_MUT_SPLICE_BAM}: ${KRAS_MUT_SPLICE_FQ} ${GENOME_FA} --genome ${GENOME_FA} -t 4 -o $(basename ${KRAS_MUT_SPLICE_BAM} .bam) \ --minfragmentsize 40 --maxintronlen 350k +#DDX5_readthrough.badread40x.fastq +${DDX5_READTHROUGH_BAM}: ${DDX5_READTHROUGH_FQ} ${GENOME_FA} + @mkdir -p $O + flair align -r ${DDX5_READTHROUGH_FQ} \ + --genome ${GENOME_FA} -t 4 -o $(basename ${DDX5_READTHROUGH_BAM} .bam) \ + --minfragmentsize 40 --maxintronlen 350k test-transcriptome-help: mkdirs flair transcriptome --help > $O/$@.out @@ -529,25 +594,24 @@ test-variants-help: mkdirs ERGIC3_KRAS_SIM_FA_GZ = $O/ERGIC3_KRAS_sim_fusion.badread20x.stranded.fastq.gz FUSION_TEST_SHARED_OUT = $O/fusion_tests FUSION_TEST_BAM = ${FUSION_TEST_SHARED_OUT}.bam -FUSION_TEST_CHIMERIC_BAM = ${FUSION_TEST_SHARED_OUT}_chimeric.bam fusion-tests: test-fusion test-fusion-pary test-fusion-help -test-fusion: mkdirs ${GENOME_FA} ${ERGIC3_KRAS_SIM_FA_GZ} ${FUSION_TEST_CHIMERIC_BAM} - flair fusion -g ${GENOME_FA} -f $(BASIC_ANNOTATION) -r ${ERGIC3_KRAS_SIM_FA_GZ} -b ${FUSION_TEST_CHIMERIC_BAM} --maxloci 4 -o $O/$@ -s 2 +test-fusion: mkdirs ${GENOME_FA} ${ERGIC3_KRAS_SIM_FA_GZ} ${FUSION_TEST_BAM} + flair fusion -g ${GENOME_FA} -f $(BASIC_ANNOTATION) -b ${FUSION_TEST_BAM} --maxloci 4 -o $O/$@ -s 2 diff <(sort <(cut -f 1,2,3,5,6,7,8,9,10,11,12 $E/$@.fusions.isoforms.bed)) <(sort <(cut -f 1,2,3,5,6,7,8,9,10,11,12 $O/$@.fusions.isoforms.bed)) diff <(sort <(grep -v ">" $E/$@.fusions.isoforms.fa)) <(sort <(grep -v ">" $O/$@.fusions.isoforms.fa)) -test-fusion-pary: mkdirs ${GENOME_FA} ${ERGIC3_KRAS_SIM_FA_GZ} ${FUSION_TEST_CHIMERIC_BAM} - flair fusion -g ${GENOME_FA} -f $I/parY.annotation.gtf -r ${ERGIC3_KRAS_SIM_FA_GZ} -b ${FUSION_TEST_CHIMERIC_BAM} --maxloci 4 -o $O/$@ -s 2 +test-fusion-pary: mkdirs ${GENOME_FA} ${ERGIC3_KRAS_SIM_FA_GZ} ${FUSION_TEST_BAM} + flair fusion -g ${GENOME_FA} -f $I/parY.annotation.gtf -b ${FUSION_TEST_BAM} --maxloci 4 -o $O/$@ -s 2 $(call cmp_expect_sort,$@.fusions.isoforms.bed) $(call cmp_expect_sort,$@.fusions.isoforms.fa) -${FUSION_TEST_BAM} ${FUSION_TEST_CHIMERIC_BAM}&: ${ERGIC3_KRAS_SIM_FA_GZ} ${GENOME_FA} +${FUSION_TEST_BAM}: ${ERGIC3_KRAS_SIM_FA_GZ} ${GENOME_FA} @mkdir -p $O flair align -r $I/ERGIC3_KRAS_sim_fusion.badread20x.stranded.fastq \ --genome ${GENOME_FA} -t 4 -o ${FUSION_TEST_SHARED_OUT} \ - --filtertype separate --minfragmentsize 40 --maxintronlen 350k + --minfragmentsize 40 --maxintronlen 350k test-fusion-help: mkdirs flair fusion --help > $O/$@.out @@ -561,11 +625,14 @@ ${ERGIC3_KRAS_SIM_FA_GZ}: $I/ERGIC3_KRAS_sim_fusion.badread20x.stranded.fastq ### # flair spliceevents ### -spliceevents-tests: test-spliceevents +spliceevents-tests: test-spliceevents test-spliceevents-extraannot test-spliceevents: mkdirs ${TEST_ALIGN_BAM} python3 ../src/flair/flair_spliceevents.py -m $I/spliceevents.manifest.tsv -g ${GENOME_FA} -t 4 -f $(BASIC_ANNOTATION) -o $O/$@ +test-spliceevents-extraannot: mkdirs ${TEST_ALIGN_BAM} + python3 ../src/flair/flair_spliceevents.py -m $I/spliceevents.manifest.tsv -g ${GENOME_FA} -t 4 -f $(BASIC_ANNOTATION) --annot_basic $(BASIC_ANNOTATION) -o $O/$@ + # FIXME: orphan, this does not work and is not referenced; is this still needed # the annotation file is there test-refseq: mkdirs @@ -629,14 +696,18 @@ ${BASIC_ISOFORMS_OUT_FAI}: ${BASIC_ISOFORMS_OUT_FA} ## # test hub (work in progress) +# +# make hub-check huburl=https://hgwdev.gi.ucsc.edu/~markd/flair/flair-mddev/test/hub/hub.txt ## HUB_OUT_DIR = $O/hg38 HG38_CHROMS = https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/hg38.chromAlias.bb TEST_TRANSCRIPOME_MUTANT_SPLICE_BB = output/test-transcripome-mutant-splice.isoforms.bb +TEST_TRANSCRIPTOME_SEG1_BB = output/test-transcriptome-seg1.isoforms.bb -test-hub: ${KRAS_MUT_SPLICE_BB} ${KRAS_MUT_SPLICE_SJ_BB} ${TEST_TRANSCRIPOME_MUTANT_SPLICE_BB} +test-hub: ${KRAS_MUT_SPLICE_BB} ${KRAS_MUT_SPLICE_SJ_BB} ${TEST_TRANSCRIPOME_MUTANT_SPLICE_BB} \ + ${TEST_TRANSCRIPTOME_SEG1_BB} $O/%.bb: $O/%.bed bedToBigBed -sort -sizesIsChromAliasBb $< ${HG38_CHROMS} $@ diff --git a/test/compare_sjc.py b/test/compare_sjc.py new file mode 100644 index 00000000..0b33c431 --- /dev/null +++ b/test/compare_sjc.py @@ -0,0 +1,78 @@ +import sys +from flair.pycbio.hgdata.bed import BedReader + +expected, output = sys.argv[1], sys.argv[2] + + +def parse_bed(file): + sjc_to_ends = {} + for bed in BedReader(file, fixScores=True): + junctions = tuple((bed.blocks[i].end, bed.blocks[i + 1].start) for i in range(len(bed.blocks) - 1)) + if junctions not in sjc_to_ends: + sjc_to_ends[junctions] = {} + sjc_to_ends[junctions][(bed.chromStart, bed.chromEnd)] = bed.score + return sjc_to_ends + + +def parse_dict_keys_to_shared(a, b): + ak = set(a.keys()) + bk = set(b.keys()) + + shared = ak & bk + a_only = ak - bk + b_only = bk - ak + return shared, a_only, b_only + + +expected_sjc_to_ends = parse_bed(expected) +output_sjc_to_ends = parse_bed(output) + +shared_sjc, expected_sjc, output_sjc = parse_dict_keys_to_shared(expected_sjc_to_ends, output_sjc_to_ends) + +s_ends, e_ends, o_ends = 0, 0, 0 +e_sjc, o_sjc = 0, 0 +for sjc in shared_sjc: + shared_ends, expected_ends, output_ends = parse_dict_keys_to_shared(expected_sjc_to_ends[sjc], output_sjc_to_ends[sjc]) + for s, e in shared_ends: + s_ends += 1 + ec, oc = expected_sjc_to_ends[sjc][(s, e)], output_sjc_to_ends[sjc][(s, e)] + print(f'shared SJC and ends: e_s:{s} o_s:{s} e_e:{e} o_e:{e} exp_c:{ec} out_c:{oc} {sjc}') + + if len(expected_ends) == 1 and len(output_ends) == 1: + e_s, e_e = list(expected_ends)[0] + o_s, o_e = list(output_ends)[0] + if abs(e_s - o_s) < 300 and abs(e_e - o_e) < 300: + s_ends += 1 + print(f'shared SJC and ends: e_s:{e_s} o_s:{o_s} e_e:{e_e} o_e:{o_e} exp_c:{ec} out_c:{oc} {sjc}') + else: + e_ends += 1 + o_ends += 1 + print(f'shared SJC different ends: e_s:{e_s} o_s:{o_s} e_e:{e_e} o_e:{o_e} exp_c:{ec} out_c:{oc} {sjc}') + + else: + for s, e in expected_ends: + e_ends += 1 + ec = expected_sjc_to_ends[sjc][(s, e)] + print(f'shared SJC, ends expected only: s:{s} e:{e} exp_c:{ec} {sjc}') + for s, e in output_ends: + o_ends += 1 + oc = output_sjc_to_ends[sjc][(s, e)] + print(f'shared SJC, ends output only: s:{s} e:{e} out_c:{oc} {sjc}') + +for sjc in expected_sjc: + for s, e in expected_sjc_to_ends[sjc]: + e_sjc += 1 + ec = expected_sjc_to_ends[sjc][(s, e)] + print(f'expected only SJC and ends: s:{s} e:{e} exp_c:{ec} {sjc}') + +for sjc in output_sjc: + for s, e in output_sjc_to_ends[sjc]: + o_sjc += 1 + oc = output_sjc_to_ends[sjc][(s, e)] + print(f'output only SJC and ends: s:{s} e:{e} out_c:{oc} {sjc}') + +print(f'shared SJC and ends: {s_ends} isoforms') +print(f'shared SJC, ends expected only: {e_ends} isoforms') +print(f'shared SJC, ends output only: {o_ends} isoforms') +print(f'expected only SJC and ends: {e_sjc} isoforms') +print(f'expected only SJC and ends: {o_sjc} isoforms') diff --git a/test/expected/test-bed-to-gtf-cds.gtf b/test/expected/test-bed-to-gtf-cds.gtf new file mode 100644 index 00000000..18c4d487 --- /dev/null +++ b/test/expected/test-bed-to-gtf-cds.gtf @@ -0,0 +1,215 @@ +chr12 FLAIR gene 25205246 25250929 . - . gene_id "ENSG00000133703.12"; +chr12 FLAIR transcript 25205246 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "0"; +chr12 FLAIR 3UTR 25205246 25209794 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "0"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "0"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "1"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "1"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "2"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "2"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "3"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "3"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "3"; +chr12 FLAIR exon 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "4"; +chr12 FLAIR 5UTR 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "4"; +chr12 FLAIR transcript 25205246 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "0"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "0"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "1"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "1"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "1"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "2"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "2"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "3"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "3"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "4"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "4"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "4"; +chr12 FLAIR exon 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "5"; +chr12 FLAIR 5UTR 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "5"; +chr12 FLAIR transcript 25205246 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "0"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "0"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "1"; +chr12 FLAIR 3UTR 25225614 25225761 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "1"; +chr12 FLAIR CDS 25225762 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "1"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "2"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "2"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "2"; +chr12 FLAIR exon 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "3"; +chr12 FLAIR 5UTR 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "3"; +chr17 FLAIR gene 64498254 64506289 . - . gene_id "ENSG00000108654.15"; +chr17 FLAIR transcript 64498254 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; +chr17 FLAIR exon 64498254 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "0"; +chr17 FLAIR 3UTR 64498254 64499922 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "0"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "0"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "1"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "1"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "2"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "2"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "3"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "3"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "4"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "4"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "5"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "5"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "6"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "6"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "7"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "7"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "8"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "8"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "9"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "9"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "10"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "10"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "11"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "11"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "12"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "12"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "12"; +chr17 FLAIR transcript 64499616 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; +chr17 FLAIR exon 64499616 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "0"; +chr17 FLAIR 3UTR 64499616 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "0"; +chr17 FLAIR exon 64500549 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "1"; +chr17 FLAIR 3UTR 64500549 64502004 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "1"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "1"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "2"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "2"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "3"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "3"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "4"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "4"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "5"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "5"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "6"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "6"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "7"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "7"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "8"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "8"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "9"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "9"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "10"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "10"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "11"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "11"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "11"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; +chr17 FLAIR exon 64499622 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "0"; +chr17 FLAIR 3UTR 64499622 64499922 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "0"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "0"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "1"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "1"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "2"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "2"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "3"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "3"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "4"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "4"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "5"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "5"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "6"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "6"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "7"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "7"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "8"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "8"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "9"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "9"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "10"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "10"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "11"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "11"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "11"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; +chr17 FLAIR exon 64499622 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "0"; +chr17 FLAIR 3UTR 64499622 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "0"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "1"; +chr17 FLAIR 3UTR 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "1"; +chr17 FLAIR exon 64501057 64501143 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "2"; +chr17 FLAIR 3UTR 64501057 64501143 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "2"; +chr17 FLAIR exon 64501261 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "3"; +chr17 FLAIR 3UTR 64501261 64502004 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "3"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "3"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "4"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "4"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "5"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "5"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "6"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "6"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "7"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "7"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "8"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "8"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "9"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "9"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "10"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "10"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "11"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "11"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "12"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "12"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "13"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "13"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "13"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "0"; +chr17 FLAIR 3UTR 64499622 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "0"; +chr17 FLAIR exon 64502162 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "1"; +chr17 FLAIR 3UTR 64502162 64502921 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "1"; +chr17 FLAIR CDS 64502922 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "1"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "2"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "2"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "3"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "3"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "4"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "4"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "5"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "5"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "6"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "6"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "7"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "7"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "8"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "8"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "8"; +chr20 FLAIR gene 35542021 35557634 . + . gene_id "ENSG00000125991.19"; +chr20 FLAIR transcript 35542021 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; +chr20 FLAIR exon 35542021 35542185 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "0"; +chr20 FLAIR 5UTR 35542021 35542097 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "0"; +chr20 FLAIR start_codon 35542098 35542100 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; +chr20 FLAIR CDS 35542098 35542185 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "0"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "1"; +chr20 FLAIR CDS 35542323 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "1"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "2"; +chr20 FLAIR CDS 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "2"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "3"; +chr20 FLAIR CDS 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "3"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "4"; +chr20 FLAIR CDS 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "4"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "5"; +chr20 FLAIR CDS 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "5"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "6"; +chr20 FLAIR CDS 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "6"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "7"; +chr20 FLAIR CDS 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "7"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "8"; +chr20 FLAIR CDS 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "8"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "9"; +chr20 FLAIR CDS 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "9"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "10"; +chr20 FLAIR CDS 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "10"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "11"; +chr20 FLAIR CDS 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "11"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "12"; +chr20 FLAIR CDS 35557425 35557504 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "12"; +chr20 FLAIR 3UTR 35557505 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "12"; diff --git a/test/expected/test-bed-to-gtf-extracols.gtf b/test/expected/test-bed-to-gtf-extracols.gtf new file mode 100644 index 00000000..017e5d78 --- /dev/null +++ b/test/expected/test-bed-to-gtf-extracols.gtf @@ -0,0 +1,144 @@ +chr12 FLAIR gene 25205246 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25205246 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR transcript 25205247 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25205247 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 3UTR 25205247 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr17 FLAIR gene 64499620 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64499620 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64499620 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR 3UTR 64499620 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR 3UTR 64499622 64502004 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr20 FLAIR gene 35542078 35557634 . + . gene_id "FLG00000003"; +chr20 FLAIR transcript 35542078 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542078 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR 5UTR 35542078 35542097 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR start_codon 35542098 35542100 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542098 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35557425 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35557425 35557504 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR 3UTR 35557505 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "11"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; diff --git a/test/expected/test-bed-to-gtf.gtf b/test/expected/test-bed-to-gtf.gtf new file mode 100644 index 00000000..a251b767 --- /dev/null +++ b/test/expected/test-bed-to-gtf.gtf @@ -0,0 +1,100 @@ +chr12 FLAIR gene 25205246 25250929 . - . gene_id "ENSG00000133703.12"; +chr12 FLAIR transcript 25205246 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "0"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "1"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "2"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "3"; +chr12 FLAIR exon 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "4"; +chr12 FLAIR transcript 25205246 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "0"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "1"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "2"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "3"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "4"; +chr12 FLAIR exon 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "5"; +chr12 FLAIR transcript 25205246 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "0"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "1"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "2"; +chr12 FLAIR exon 25250751 25250929 . - . gene_id "ENSG00000133703.12"; transcript_id "m54284U_201123_202240/28902124/ccs-0"; exon_number "3"; +chr17 FLAIR gene 64498254 64506289 . - . gene_id "ENSG00000108654.15"; +chr17 FLAIR transcript 64498254 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; +chr17 FLAIR exon 64498254 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "0"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "1"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "2"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "3"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "4"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "5"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "6"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "7"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "8"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "9"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "10"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "11"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "12"; +chr17 FLAIR transcript 64499616 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; +chr17 FLAIR exon 64499616 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "0"; +chr17 FLAIR exon 64500549 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "1"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "2"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "3"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "4"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "5"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "6"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "7"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "8"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "9"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "10"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000581230.5"; exon_number "11"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; +chr17 FLAIR exon 64499622 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "0"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "1"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "2"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "3"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "4"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "5"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "6"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "7"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "8"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "9"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "10"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/160760815/ccs-0"; exon_number "11"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; +chr17 FLAIR exon 64499622 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "0"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "1"; +chr17 FLAIR exon 64501057 64501143 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "2"; +chr17 FLAIR exon 64501261 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "3"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "4"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "5"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "6"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "7"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "8"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "9"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "10"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "11"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "12"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/60948670/ccs-0"; exon_number "13"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "0"; +chr17 FLAIR exon 64502162 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "1"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "2"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "3"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "4"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "5"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "6"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "7"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/132317757/ccs-0"; exon_number "8"; +chr20 FLAIR gene 35542021 35557634 . + . gene_id "ENSG00000125991.19"; +chr20 FLAIR transcript 35542021 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; +chr20 FLAIR exon 35542021 35542185 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "0"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "1"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "2"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "3"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "4"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "5"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "6"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "7"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "8"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "9"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "10"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "11"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "12"; diff --git a/test/expected/test-fusion-help.out b/test/expected/test-fusion-help.out index 9f9945a3..69d5992c 100644 --- a/test/expected/test-fusion-help.out +++ b/test/expected/test-fusion-help.out @@ -1,16 +1,13 @@ -usage: fusion [-h] -g GENOME -f GTF -r READS [READS ...] -b GENOMECHIMBAM - [--transcriptchimbam TRANSCRIPTCHIMBAM] [-o OUTPUT] [-t THREADS] - [--minfragmentsize MINFRAGMENTSIZE] [-s SUPPORT] - [--maxloci MAXLOCI] [--keep_intermediate] +usage: fusion [-h] -g GENOME -f GTF -b GENOME_ALIGNED_BAM [-o OUTPUT] + [-t THREADS] [--minfragmentsize MINFRAGMENTSIZE] [-s SUPPORT] + [--maxloci MAXLOCI] [--max_dist_to_TSS MAX_DIST_TO_TSS] + [--min_dist_between_bp MIN_DIST_BETWEEN_BP] + [--keep_intermediate] options: -h, --help show this help message and exit -f GTF, --gtf GTF GTF annotation file, used for renaming FLAIR isoforms to annotated isoforms and adjusting TSS/TESs - --transcriptchimbam TRANSCRIPTCHIMBAM - Optional: bam file of chimeric reads from - transcriptomic alignment. If not provided, this will - be made for you -o OUTPUT, --output OUTPUT output file name base for FLAIR isoforms (default: flair.collapse) @@ -23,15 +20,19 @@ options: minimum number of supporting reads for a fusion (3) --maxloci MAXLOCI max loci detected in fusion. Set higher for detection of 3-gene+ fusions + --max_dist_to_TSS MAX_DIST_TO_TSS + maximum allowed distance of 5' alignment to TSS of + annotated transcript. To not check this, set to -1 + --min_dist_between_bp MIN_DIST_BETWEEN_BP + minimum allowed distance between breakpoints when they + are on the same strand. Removes read-through + transcripts. --keep_intermediate keep intermediate and temporary files for debugging purposes required named arguments: -g GENOME, --genome GENOME FastA of reference genome - -r READS [READS ...], --reads READS [READS ...] - FASTA/FASTQ files of raw reads, can specify multiple - files - -b GENOMECHIMBAM, --genomechimbam GENOMECHIMBAM + -b GENOME_ALIGNED_BAM, --genome_aligned_bam GENOME_ALIGNED_BAM bam file of chimeric reads from genomic alignment from flair align diff --git a/test/expected/test-fusion-pary.fusions.isoforms.bed b/test/expected/test-fusion-pary.fusions.isoforms.bed index c1167274..761af9f4 100644 --- a/test/expected/test-fusion-pary.fusions.isoforms.bed +++ b/test/expected/test-fusion-pary.fusions.isoforms.bed @@ -1,4 +1,4 @@ -chr20 35542078 35548864 gene1_fusioniso1_ENSG00000125991.19-PAR-Y--ENSG00000133703.12-PAR-Y 1000 + 35542078 35548864 0 7 107,71,88,120,94,166,57 0,244,434,743,5333,6430,6729 -chr12 25205245 25227413 gene2_fusioniso1_ENSG00000125991.19-PAR-Y--ENSG00000133703.12-PAR-Y 1000 - 25223105 25245273 0 4 4666,124,160,180 0,10191,20368,21988 -chr20 35542078 35548864 gene1_fusioniso2_ENSG00000125991.19-PAR-Y--ENSG00000133703.12-PAR-Y 1000 + 35542078 35548864 0 7 107,71,88,120,94,166,57 0,244,434,743,5333,6430,6729 -chr12 25205245 25227413 gene2_fusioniso2_ENSG00000125991.19-PAR-Y--ENSG00000133703.12-PAR-Y 1000 - 25223105 25245273 0 3 4666,160,180 0,20368,21988 +chr20 35542078 35548865 gene1_fusioniso1_ENSG00000125991--ENSG00000133703 1000 + 35542078 35548865 0 7 107,71,88,120,94,166,58, 0,244,434,743,5333,6430,6729, +chr12 25205245 25227412 gene2_fusioniso1_ENSG00000125991--ENSG00000133703 1000 - 25223106 25245273 0 4 4666,124,160,179, 0,10191,20368,21988, +chr20 35542078 35548865 gene1_fusioniso2_ENSG00000125991--ENSG00000133703 1000 + 35542078 35548865 0 7 107,71,88,120,94,166,58, 0,244,434,743,5333,6430,6729, +chr12 25205245 25227412 gene2_fusioniso2_ENSG00000125991--ENSG00000133703 1000 - 25223106 25245273 0 3 4666,160,179, 0,20368,21988, diff --git a/test/expected/test-fusion-pary.fusions.isoforms.fa b/test/expected/test-fusion-pary.fusions.isoforms.fa index e3cc401e..a40be9bc 100644 --- a/test/expected/test-fusion-pary.fusions.isoforms.fa +++ b/test/expected/test-fusion-pary.fusions.isoforms.fa @@ -1,4 +1,4 @@ ->fusioniso1_ENSG00000125991.19-PAR-Y--ENSG00000133703.12-PAR-Y -CCCTTTCCGGCCGGTCCCCATGGAGGCGCTGGGGAAGCTGAAGCAGTTCGATGCCTACCCCAAGACTTTGGAGGACTTCCGGGTCAAGACCTGCGGGGGCGCCACCGTGACCATTGTCAGTGGCCTTCTCATGCTGCTACTGTTCCTGTCCGAGCTGCAGTATTACCTCACCACGGAGGTGCATCCTGAGCTCTACGTGGACAAGTCGCGGGGAGATAAACTGAAGATCAACATCGATGTACTTTTTCCGCACATGCCTTGTGCCTATCTGAGTATTGATGCCATGGATGTGGCCGGAGAACAGCAGCTGGATGTGGAACACAACCTGTTCAAGCAACGACTAGATAAAGATGGCATCCCCGTGAGCTCAGAGGCTGAGCGGCATGAGCTTGGGAAAGTCGAGGTGACGGTGTTTGACCCTGACTCCCTGGACCCTGATCGCTGTGAGAGCTGCTATGGTGCTGAGGCAGAAGATATCAAGTGCTGTAACACCTGTGAAGATGTGCGGGAGGCATATCGCCGTAGAGGCTGGGCCTTCAAGAACCCAGATACTATTGAGCAGTGCCGGCGAGAGGGCTTCAGCCAGAAGATGCAGGAGCAGAAGAATGAAGGCTGCCAGGTGTATGGCTTCTTGGAAGTCAATAAGGTGGCCGGAAACTTCCACTTTGCCCCTGGGAAGAGCTTCCAGCAGTCCCATGTGCACGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAGAACAAATTAAAAGAGTTAAGGACTCTGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTTCTTACCAATTGTGAATGTTGGTGTGAAACAAATTAATGAAGCTTTTGAATCATCCCTATTCTGTGTTTTATCTAGTCACATAAATGGATTAATTACTAATTTCAGTTGAGACCTTCTAATTGGTTTTTACTGAAACATTGAGGGAACACAAATTTATGGGCTTCCTGATGATGATTCTTCTAGGCATCATGTCCTATAGTTTGTCATCCCTGATGAATGTAAAGTTACACTGTTCACAAAGGTTTTGTCTCCTTTCCACTGCTATTAGTCATGGTCACTCTCCCCAAAATATTATATTTTTTCTATAAAAAGAAAAAAATGGAAAAAAATTACAAGGCAATGGAAACTATTATAAGGCCATTTCCTTTTCACATTAGATAAATTACTATAAAGACTCCTAATAGCTTTTCCTGTTAAGGCAGACCCAGTATGAAATGGGGATTATTATAGCAACCATTTTGGGGCTATATTTACATGCTACTAAATTTTTATAATAATTGAAAAGATTTTAACAAGTATAAAAAATTCTCATAGGAATTAAATGTAGTCTCCCTGTGTCAGACTGCTCTTTCATAGTATAACTTTAAATCTTTTCTTCAACTTGAGTCTTTGAAGATAGTTTTAATTCTGCTTGTGACATTAAAAGATTATTTGGGCCAGTTATAGCTTATTAGGTGTTGAAGAGACCAAGGTTGCAAGGCCAGGCCCTGTGTGAACCTTTGAGCTTTCATAGAGAGTTTCACAGCATGGACTGTGTCCCCACGGTCATCCAGTGTTGTCATGCATTGGTTAGTCAAAATGGGGAGGGACTAGGGCAGTTTGGATAGCTCAACAAGATACAATCTCACTCTGTGGTGGTCCTGCTGACAAATCAAGAGCATTGCTTTTGTTTCTTAAGAAAACAAACTCTTTTTTAAAAATTACTTTTAAATATTAACTCAAAAGTTGAGATTTTGGGGTGGTGGTGTGCCAAGACATTAATTTTTTTTTTAAACAATGAAGTGAAAAAGTTTTACAATCTCTAGGTTTGGCTAGTTCTCTTAACACTGGTTAAATTAACATTGCATAAACACTTTTCAAGTCTGATCCATATTTAATAATGCTTTAAAATAAAAATAAAAACAATCCTTTTGATAAATTTAAAATGTTACTTATTTTAAAATAAATGAAGTGAGATGGCATGGTGAGGTGAAAGTATCACTGGACTAGGAAGAAGGTGACTTAGGTTCTAGATAGGTGTCTTTTAGGACTCTGATTTTGAGGACATCACTTACTATCCATTTCTTCATGTTAAAAGAAGTCATCTCAAACTCTTAGTTTTTTTTTTTTACAACTATGTAATTTATATTCCATTTACATAAGGATACACTTATTTGTCAAGCTCAGCACAATCTGTAAATTTTTAACCTATGTTACACCATCTTCAGTGCCAGTCTTGGGCAAAATTGTGCAAGAGGTGAAGTTTATATTTGAATATCCATTCTCGTTTTAGGACTCTTCTTCCATATTAGTGTCATCTTGCCTCCCTACCTTCCACATGCCCCATGACTTGATGCAGTTTTAATACTTGTAATTCCCCTAACCATAAGATTTACTGCTGCTGTGGATATCTCCATGAAGTTTTCCCACTGAGTCACATCAGAAATGCCCTACATCTTATTTCCTCAGGGCTCAAGAGAATCTGACAGATACCATAAAGGGATTTGACCTAATCACTAATTTTCAGGTGGTGGCTGATGCTTTGAACATCTCTTTGCTGCCCAATCCATTAGCGACAGTAGGATTTTTCAAACCTGGTATGAATAGACAGAACCCTATCCAGTGGAAGGAGAATTTAATAAAGATAGTGCTGAAAGAATTCCTTAGGTAATCTATAACTAGGACTACTCCTGGTAACAGTAATACATTCCATTGTTTTAGTAACCAGAAATCTTCATGCAATGAAAAATACTTTAATTCATGAAGCTTACTTTTTTTTTTTGGTGTCAGAGTCTCGCTCTTGTCACCCAGGCTGGAATGCAGTGGCGCCATCTCAGCTCACTGCAACCTCCATCTCCCAGGTTCAAGCGATTCTCGTGCCTCGGCCTCCTGAGTAGCTGGGATTACAGGCGTGTGCCACTACACTCAACTAATTTTTGTATTTTTAGGAGAGACGGGGTTTCACCCTGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAAGTGATTCACCCACCTTGGCCTCATAAACCTGTTTTGCAGAACTCATTTATTCAGCAAATATTTATTGAGTGCCTACCAGATGCCAGTCACCACACAAGGCACTGGGTATATGGTATCCCCAAACAAGAGACATAATCCCGGTCCTTAGGTAGTGCTAGTGTGGTCTGTAATATCTTACTAAGGCCTTTGGTATACGACCCAGAGATAACACGATGCGTATTTTAGTTTTGCAAAGAAGGGGTTTGGTCTCTGTGCCAGCTCTATAATTGTTTTGCTACGATTCCACTGAAACTCTTCGATCAAGCTACTTTATGTAAATCACTTCATTGTTTTAAAGGAATAAACTTGATTATATTGTTTTTTTATTTGGCATAACTGTGATTCTTTTAGGACAATTACTGTACACATTAAGGTGTATGTCAGATATTCATATTGACCCAAATGTGTAATATTCCAGTTTTCTCTGCATAAGTAATTAAAATATACTTAAAAATTAATAGTTTTATCTGGGTACAAATAAACAGGTGCCTGAACTAGTTCACAGACAAGGAAACTTCTATGTAAAAATCACTATGATTTCTGAATTGCTATGTGAAACTACAGATCTTTGGAACACTGTTTAGGTAGGGTGTTAAGACTTACACAGTACCTCGTTTCTACACAGAGAAAGAAATGGCCATACTTCAGGAACTGCAGTGCTTATGAGGGGATATTTAGGCCTCTTGAATTTTTGATGTAGATGGGCATTTTTTTAAGGTAGTGGTTAATTACCTTTATGTGAACTTTGAATGGTTTAACAAAAGATTTGTTTTTGTAGAGATTTTAAAGGGGGAGAATTCTAGAAATAAATGTTACCTAATTATTACAGCCTTAAAGACAAAAATCCTTGTTGAAGTTTTTTTAAAAAAAGCTAAATTACATAGACTTAGGCATTAACATGTTTGTGGAAGAATATAGCAGACGTATATTGTATCATTTGAGTGAATGTTCCCAAGTAGGCATTCTAGGCTCTATTTAACTGAGTCACACTGCATAGGAATTTAGAACCTAACTTTTATAGGTTATCAAAACTGTTGTCACCATTGCACAATTTTGTCCTAATATATACATAGAAACTTTGTGGGGCATGTTAAGTTACAGTTTGCACAAGTTCATCTCATTTGTATTCCATTGATTTTTTTTTTCTTCTAAACATTTTTTCTTCAAACAGTATATAACTTTTTTTAGGGGATTTTTTTTTAGACAGCAAAAACTATCTGAAGATTTCCATTTGTCAAAAAGTAATGATTTCTTGATAATTGTGTAGTAATGTTTTTTAGAACCCAGCAGTTACCTTAAAGCTGAATTTATATTTAGTAACTTCTGTGTTAATACTGGATAGCATGAATTCTGCATTGAGAAACTGAATAGCTGTCATAAAATGAAACTTTCTTTCTAAAGAAAGATACTCACATGAGTTCTTGAAGAATAGTCATAACTAGATTAAGATCTGTGTTTTAGTTTAATAGTTTGAAGTGCCTGTTTGGGATAATGATAGGTAATTTAGATGAATTTAGGGGAAAAAAAAGTTATCTGCAGATATGTTGAGGGCCCATCTCTCCCCCCACACCCCCACAGAGCTAACTGGGTTACAGTGTTTTATCCGAAAGTTTCCAATTCCACTGTCTTGTGTTTTCATGTTGAAAATACTTTTGCATTTTTCCTTTGAGTGCCAATTTCTTACTAGTACTATTTCTTAATGTAACATGTTTACCTGGAATGTATTTTAACTATTTTTGTATAGTGTAAACTGAAACATGCACATTTTGTACATTGTGCTTTCTTTTGTGGGACATATGCAGTGTGATCCAGTTGTTTTCCATCATTTGGTTGCGCTGACCTAGGAATGTTGGTCATATCAAACATTAAAAATGACCACTCTTTTAATTGAAATTAACTTTTAAATGTTTATAGGAGTATGTGCTGTGAAGTGATCTAAAATTTGTAATATTTTTGTCATGAACTGTACTACTCCTAATTATTGTAATGTAATAAAAATAGTTACAGTGAC ->fusioniso2_ENSG00000125991.19-PAR-Y--ENSG00000133703.12-PAR-Y +>fusioniso1_ENSG00000125991--ENSG00000133703 CCCTTTCCGGCCGGTCCCCATGGAGGCGCTGGGGAAGCTGAAGCAGTTCGATGCCTACCCCAAGACTTTGGAGGACTTCCGGGTCAAGACCTGCGGGGGCGCCACCGTGACCATTGTCAGTGGCCTTCTCATGCTGCTACTGTTCCTGTCCGAGCTGCAGTATTACCTCACCACGGAGGTGCATCCTGAGCTCTACGTGGACAAGTCGCGGGGAGATAAACTGAAGATCAACATCGATGTACTTTTTCCGCACATGCCTTGTGCCTATCTGAGTATTGATGCCATGGATGTGGCCGGAGAACAGCAGCTGGATGTGGAACACAACCTGTTCAAGCAACGACTAGATAAAGATGGCATCCCCGTGAGCTCAGAGGCTGAGCGGCATGAGCTTGGGAAAGTCGAGGTGACGGTGTTTGACCCTGACTCCCTGGACCCTGATCGCTGTGAGAGCTGCTATGGTGCTGAGGCAGAAGATATCAAGTGCTGTAACACCTGTGAAGATGTGCGGGAGGCATATCGCCGTAGAGGCTGGGCCTTCAAGAACCCAGATACTATTGAGCAGTGCCGGCGAGAGGGCTTCAGCCAGAAGATGCAGGAGCAGAAGAATGAAGGCTGCCAGGTGTATGGCTTCTTGGAAGTCAATAAGGTGGCCGGAAACTTCCACTTTGCCCCTGGGAAGAGCTTCCAGCAGTCCCATGTGCACGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAGAACAAATTAAAAGAGTTAAGGACTCTGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGAGAGTGGAGGATGCTTTTTATACATTGGTGAGAGAGATCCGACAATACAGATTGAAAAAAATCAGCAAAGAAGAAAAGACTCCTGGCTGTGTGAAAATTAAAAAATGCATTATAATGTAATCTGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTTCTTACCAATTGTGAATGTTGGTGTGAAACAAATTAATGAAGCTTTTGAATCATCCCTATTCTGTGTTTTATCTAGTCACATAAATGGATTAATTACTAATTTCAGTTGAGACCTTCTAATTGGTTTTTACTGAAACATTGAGGGAACACAAATTTATGGGCTTCCTGATGATGATTCTTCTAGGCATCATGTCCTATAGTTTGTCATCCCTGATGAATGTAAAGTTACACTGTTCACAAAGGTTTTGTCTCCTTTCCACTGCTATTAGTCATGGTCACTCTCCCCAAAATATTATATTTTTTCTATAAAAAGAAAAAAATGGAAAAAAATTACAAGGCAATGGAAACTATTATAAGGCCATTTCCTTTTCACATTAGATAAATTACTATAAAGACTCCTAATAGCTTTTCCTGTTAAGGCAGACCCAGTATGAAATGGGGATTATTATAGCAACCATTTTGGGGCTATATTTACATGCTACTAAATTTTTATAATAATTGAAAAGATTTTAACAAGTATAAAAAATTCTCATAGGAATTAAATGTAGTCTCCCTGTGTCAGACTGCTCTTTCATAGTATAACTTTAAATCTTTTCTTCAACTTGAGTCTTTGAAGATAGTTTTAATTCTGCTTGTGACATTAAAAGATTATTTGGGCCAGTTATAGCTTATTAGGTGTTGAAGAGACCAAGGTTGCAAGGCCAGGCCCTGTGTGAACCTTTGAGCTTTCATAGAGAGTTTCACAGCATGGACTGTGTCCCCACGGTCATCCAGTGTTGTCATGCATTGGTTAGTCAAAATGGGGAGGGACTAGGGCAGTTTGGATAGCTCAACAAGATACAATCTCACTCTGTGGTGGTCCTGCTGACAAATCAAGAGCATTGCTTTTGTTTCTTAAGAAAACAAACTCTTTTTTAAAAATTACTTTTAAATATTAACTCAAAAGTTGAGATTTTGGGGTGGTGGTGTGCCAAGACATTAATTTTTTTTTTAAACAATGAAGTGAAAAAGTTTTACAATCTCTAGGTTTGGCTAGTTCTCTTAACACTGGTTAAATTAACATTGCATAAACACTTTTCAAGTCTGATCCATATTTAATAATGCTTTAAAATAAAAATAAAAACAATCCTTTTGATAAATTTAAAATGTTACTTATTTTAAAATAAATGAAGTGAGATGGCATGGTGAGGTGAAAGTATCACTGGACTAGGAAGAAGGTGACTTAGGTTCTAGATAGGTGTCTTTTAGGACTCTGATTTTGAGGACATCACTTACTATCCATTTCTTCATGTTAAAAGAAGTCATCTCAAACTCTTAGTTTTTTTTTTTTACAACTATGTAATTTATATTCCATTTACATAAGGATACACTTATTTGTCAAGCTCAGCACAATCTGTAAATTTTTAACCTATGTTACACCATCTTCAGTGCCAGTCTTGGGCAAAATTGTGCAAGAGGTGAAGTTTATATTTGAATATCCATTCTCGTTTTAGGACTCTTCTTCCATATTAGTGTCATCTTGCCTCCCTACCTTCCACATGCCCCATGACTTGATGCAGTTTTAATACTTGTAATTCCCCTAACCATAAGATTTACTGCTGCTGTGGATATCTCCATGAAGTTTTCCCACTGAGTCACATCAGAAATGCCCTACATCTTATTTCCTCAGGGCTCAAGAGAATCTGACAGATACCATAAAGGGATTTGACCTAATCACTAATTTTCAGGTGGTGGCTGATGCTTTGAACATCTCTTTGCTGCCCAATCCATTAGCGACAGTAGGATTTTTCAAACCTGGTATGAATAGACAGAACCCTATCCAGTGGAAGGAGAATTTAATAAAGATAGTGCTGAAAGAATTCCTTAGGTAATCTATAACTAGGACTACTCCTGGTAACAGTAATACATTCCATTGTTTTAGTAACCAGAAATCTTCATGCAATGAAAAATACTTTAATTCATGAAGCTTACTTTTTTTTTTTGGTGTCAGAGTCTCGCTCTTGTCACCCAGGCTGGAATGCAGTGGCGCCATCTCAGCTCACTGCAACCTCCATCTCCCAGGTTCAAGCGATTCTCGTGCCTCGGCCTCCTGAGTAGCTGGGATTACAGGCGTGTGCCACTACACTCAACTAATTTTTGTATTTTTAGGAGAGACGGGGTTTCACCCTGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAAGTGATTCACCCACCTTGGCCTCATAAACCTGTTTTGCAGAACTCATTTATTCAGCAAATATTTATTGAGTGCCTACCAGATGCCAGTCACCACACAAGGCACTGGGTATATGGTATCCCCAAACAAGAGACATAATCCCGGTCCTTAGGTAGTGCTAGTGTGGTCTGTAATATCTTACTAAGGCCTTTGGTATACGACCCAGAGATAACACGATGCGTATTTTAGTTTTGCAAAGAAGGGGTTTGGTCTCTGTGCCAGCTCTATAATTGTTTTGCTACGATTCCACTGAAACTCTTCGATCAAGCTACTTTATGTAAATCACTTCATTGTTTTAAAGGAATAAACTTGATTATATTGTTTTTTTATTTGGCATAACTGTGATTCTTTTAGGACAATTACTGTACACATTAAGGTGTATGTCAGATATTCATATTGACCCAAATGTGTAATATTCCAGTTTTCTCTGCATAAGTAATTAAAATATACTTAAAAATTAATAGTTTTATCTGGGTACAAATAAACAGGTGCCTGAACTAGTTCACAGACAAGGAAACTTCTATGTAAAAATCACTATGATTTCTGAATTGCTATGTGAAACTACAGATCTTTGGAACACTGTTTAGGTAGGGTGTTAAGACTTACACAGTACCTCGTTTCTACACAGAGAAAGAAATGGCCATACTTCAGGAACTGCAGTGCTTATGAGGGGATATTTAGGCCTCTTGAATTTTTGATGTAGATGGGCATTTTTTTAAGGTAGTGGTTAATTACCTTTATGTGAACTTTGAATGGTTTAACAAAAGATTTGTTTTTGTAGAGATTTTAAAGGGGGAGAATTCTAGAAATAAATGTTACCTAATTATTACAGCCTTAAAGACAAAAATCCTTGTTGAAGTTTTTTTAAAAAAAGCTAAATTACATAGACTTAGGCATTAACATGTTTGTGGAAGAATATAGCAGACGTATATTGTATCATTTGAGTGAATGTTCCCAAGTAGGCATTCTAGGCTCTATTTAACTGAGTCACACTGCATAGGAATTTAGAACCTAACTTTTATAGGTTATCAAAACTGTTGTCACCATTGCACAATTTTGTCCTAATATATACATAGAAACTTTGTGGGGCATGTTAAGTTACAGTTTGCACAAGTTCATCTCATTTGTATTCCATTGATTTTTTTTTTCTTCTAAACATTTTTTCTTCAAACAGTATATAACTTTTTTTAGGGGATTTTTTTTTAGACAGCAAAAACTATCTGAAGATTTCCATTTGTCAAAAAGTAATGATTTCTTGATAATTGTGTAGTAATGTTTTTTAGAACCCAGCAGTTACCTTAAAGCTGAATTTATATTTAGTAACTTCTGTGTTAATACTGGATAGCATGAATTCTGCATTGAGAAACTGAATAGCTGTCATAAAATGAAACTTTCTTTCTAAAGAAAGATACTCACATGAGTTCTTGAAGAATAGTCATAACTAGATTAAGATCTGTGTTTTAGTTTAATAGTTTGAAGTGCCTGTTTGGGATAATGATAGGTAATTTAGATGAATTTAGGGGAAAAAAAAGTTATCTGCAGATATGTTGAGGGCCCATCTCTCCCCCCACACCCCCACAGAGCTAACTGGGTTACAGTGTTTTATCCGAAAGTTTCCAATTCCACTGTCTTGTGTTTTCATGTTGAAAATACTTTTGCATTTTTCCTTTGAGTGCCAATTTCTTACTAGTACTATTTCTTAATGTAACATGTTTACCTGGAATGTATTTTAACTATTTTTGTATAGTGTAAACTGAAACATGCACATTTTGTACATTGTGCTTTCTTTTGTGGGACATATGCAGTGTGATCCAGTTGTTTTCCATCATTTGGTTGCGCTGACCTAGGAATGTTGGTCATATCAAACATTAAAAATGACCACTCTTTTAATTGAAATTAACTTTTAAATGTTTATAGGAGTATGTGCTGTGAAGTGATCTAAAATTTGTAATATTTTTGTCATGAACTGTACTACTCCTAATTATTGTAATGTAATAAAAATAGTTACAGTGAC +>fusioniso2_ENSG00000125991--ENSG00000133703 +CCCTTTCCGGCCGGTCCCCATGGAGGCGCTGGGGAAGCTGAAGCAGTTCGATGCCTACCCCAAGACTTTGGAGGACTTCCGGGTCAAGACCTGCGGGGGCGCCACCGTGACCATTGTCAGTGGCCTTCTCATGCTGCTACTGTTCCTGTCCGAGCTGCAGTATTACCTCACCACGGAGGTGCATCCTGAGCTCTACGTGGACAAGTCGCGGGGAGATAAACTGAAGATCAACATCGATGTACTTTTTCCGCACATGCCTTGTGCCTATCTGAGTATTGATGCCATGGATGTGGCCGGAGAACAGCAGCTGGATGTGGAACACAACCTGTTCAAGCAACGACTAGATAAAGATGGCATCCCCGTGAGCTCAGAGGCTGAGCGGCATGAGCTTGGGAAAGTCGAGGTGACGGTGTTTGACCCTGACTCCCTGGACCCTGATCGCTGTGAGAGCTGCTATGGTGCTGAGGCAGAAGATATCAAGTGCTGTAACACCTGTGAAGATGTGCGGGAGGCATATCGCCGTAGAGGCTGGGCCTTCAAGAACCCAGATACTATTGAGCAGTGCCGGCGAGAGGGCTTCAGCCAGAAGATGCAGGAGCAGAAGAATGAAGGCTGCCAGGTGTATGGCTTCTTGGAAGTCAATAAGGTGGCCGGAAACTTCCACTTTGCCCCTGGGAAGAGCTTCCAGCAGTCCCATGTGCACGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAGAACAAATTAAAAGAGTTAAGGACTCTGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTTCTTACCAATTGTGAATGTTGGTGTGAAACAAATTAATGAAGCTTTTGAATCATCCCTATTCTGTGTTTTATCTAGTCACATAAATGGATTAATTACTAATTTCAGTTGAGACCTTCTAATTGGTTTTTACTGAAACATTGAGGGAACACAAATTTATGGGCTTCCTGATGATGATTCTTCTAGGCATCATGTCCTATAGTTTGTCATCCCTGATGAATGTAAAGTTACACTGTTCACAAAGGTTTTGTCTCCTTTCCACTGCTATTAGTCATGGTCACTCTCCCCAAAATATTATATTTTTTCTATAAAAAGAAAAAAATGGAAAAAAATTACAAGGCAATGGAAACTATTATAAGGCCATTTCCTTTTCACATTAGATAAATTACTATAAAGACTCCTAATAGCTTTTCCTGTTAAGGCAGACCCAGTATGAAATGGGGATTATTATAGCAACCATTTTGGGGCTATATTTACATGCTACTAAATTTTTATAATAATTGAAAAGATTTTAACAAGTATAAAAAATTCTCATAGGAATTAAATGTAGTCTCCCTGTGTCAGACTGCTCTTTCATAGTATAACTTTAAATCTTTTCTTCAACTTGAGTCTTTGAAGATAGTTTTAATTCTGCTTGTGACATTAAAAGATTATTTGGGCCAGTTATAGCTTATTAGGTGTTGAAGAGACCAAGGTTGCAAGGCCAGGCCCTGTGTGAACCTTTGAGCTTTCATAGAGAGTTTCACAGCATGGACTGTGTCCCCACGGTCATCCAGTGTTGTCATGCATTGGTTAGTCAAAATGGGGAGGGACTAGGGCAGTTTGGATAGCTCAACAAGATACAATCTCACTCTGTGGTGGTCCTGCTGACAAATCAAGAGCATTGCTTTTGTTTCTTAAGAAAACAAACTCTTTTTTAAAAATTACTTTTAAATATTAACTCAAAAGTTGAGATTTTGGGGTGGTGGTGTGCCAAGACATTAATTTTTTTTTTAAACAATGAAGTGAAAAAGTTTTACAATCTCTAGGTTTGGCTAGTTCTCTTAACACTGGTTAAATTAACATTGCATAAACACTTTTCAAGTCTGATCCATATTTAATAATGCTTTAAAATAAAAATAAAAACAATCCTTTTGATAAATTTAAAATGTTACTTATTTTAAAATAAATGAAGTGAGATGGCATGGTGAGGTGAAAGTATCACTGGACTAGGAAGAAGGTGACTTAGGTTCTAGATAGGTGTCTTTTAGGACTCTGATTTTGAGGACATCACTTACTATCCATTTCTTCATGTTAAAAGAAGTCATCTCAAACTCTTAGTTTTTTTTTTTTACAACTATGTAATTTATATTCCATTTACATAAGGATACACTTATTTGTCAAGCTCAGCACAATCTGTAAATTTTTAACCTATGTTACACCATCTTCAGTGCCAGTCTTGGGCAAAATTGTGCAAGAGGTGAAGTTTATATTTGAATATCCATTCTCGTTTTAGGACTCTTCTTCCATATTAGTGTCATCTTGCCTCCCTACCTTCCACATGCCCCATGACTTGATGCAGTTTTAATACTTGTAATTCCCCTAACCATAAGATTTACTGCTGCTGTGGATATCTCCATGAAGTTTTCCCACTGAGTCACATCAGAAATGCCCTACATCTTATTTCCTCAGGGCTCAAGAGAATCTGACAGATACCATAAAGGGATTTGACCTAATCACTAATTTTCAGGTGGTGGCTGATGCTTTGAACATCTCTTTGCTGCCCAATCCATTAGCGACAGTAGGATTTTTCAAACCTGGTATGAATAGACAGAACCCTATCCAGTGGAAGGAGAATTTAATAAAGATAGTGCTGAAAGAATTCCTTAGGTAATCTATAACTAGGACTACTCCTGGTAACAGTAATACATTCCATTGTTTTAGTAACCAGAAATCTTCATGCAATGAAAAATACTTTAATTCATGAAGCTTACTTTTTTTTTTTGGTGTCAGAGTCTCGCTCTTGTCACCCAGGCTGGAATGCAGTGGCGCCATCTCAGCTCACTGCAACCTCCATCTCCCAGGTTCAAGCGATTCTCGTGCCTCGGCCTCCTGAGTAGCTGGGATTACAGGCGTGTGCCACTACACTCAACTAATTTTTGTATTTTTAGGAGAGACGGGGTTTCACCCTGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAAGTGATTCACCCACCTTGGCCTCATAAACCTGTTTTGCAGAACTCATTTATTCAGCAAATATTTATTGAGTGCCTACCAGATGCCAGTCACCACACAAGGCACTGGGTATATGGTATCCCCAAACAAGAGACATAATCCCGGTCCTTAGGTAGTGCTAGTGTGGTCTGTAATATCTTACTAAGGCCTTTGGTATACGACCCAGAGATAACACGATGCGTATTTTAGTTTTGCAAAGAAGGGGTTTGGTCTCTGTGCCAGCTCTATAATTGTTTTGCTACGATTCCACTGAAACTCTTCGATCAAGCTACTTTATGTAAATCACTTCATTGTTTTAAAGGAATAAACTTGATTATATTGTTTTTTTATTTGGCATAACTGTGATTCTTTTAGGACAATTACTGTACACATTAAGGTGTATGTCAGATATTCATATTGACCCAAATGTGTAATATTCCAGTTTTCTCTGCATAAGTAATTAAAATATACTTAAAAATTAATAGTTTTATCTGGGTACAAATAAACAGGTGCCTGAACTAGTTCACAGACAAGGAAACTTCTATGTAAAAATCACTATGATTTCTGAATTGCTATGTGAAACTACAGATCTTTGGAACACTGTTTAGGTAGGGTGTTAAGACTTACACAGTACCTCGTTTCTACACAGAGAAAGAAATGGCCATACTTCAGGAACTGCAGTGCTTATGAGGGGATATTTAGGCCTCTTGAATTTTTGATGTAGATGGGCATTTTTTTAAGGTAGTGGTTAATTACCTTTATGTGAACTTTGAATGGTTTAACAAAAGATTTGTTTTTGTAGAGATTTTAAAGGGGGAGAATTCTAGAAATAAATGTTACCTAATTATTACAGCCTTAAAGACAAAAATCCTTGTTGAAGTTTTTTTAAAAAAAGCTAAATTACATAGACTTAGGCATTAACATGTTTGTGGAAGAATATAGCAGACGTATATTGTATCATTTGAGTGAATGTTCCCAAGTAGGCATTCTAGGCTCTATTTAACTGAGTCACACTGCATAGGAATTTAGAACCTAACTTTTATAGGTTATCAAAACTGTTGTCACCATTGCACAATTTTGTCCTAATATATACATAGAAACTTTGTGGGGCATGTTAAGTTACAGTTTGCACAAGTTCATCTCATTTGTATTCCATTGATTTTTTTTTTCTTCTAAACATTTTTTCTTCAAACAGTATATAACTTTTTTTAGGGGATTTTTTTTTAGACAGCAAAAACTATCTGAAGATTTCCATTTGTCAAAAAGTAATGATTTCTTGATAATTGTGTAGTAATGTTTTTTAGAACCCAGCAGTTACCTTAAAGCTGAATTTATATTTAGTAACTTCTGTGTTAATACTGGATAGCATGAATTCTGCATTGAGAAACTGAATAGCTGTCATAAAATGAAACTTTCTTTCTAAAGAAAGATACTCACATGAGTTCTTGAAGAATAGTCATAACTAGATTAAGATCTGTGTTTTAGTTTAATAGTTTGAAGTGCCTGTTTGGGATAATGATAGGTAATTTAGATGAATTTAGGGGAAAAAAAAGTTATCTGCAGATATGTTGAGGGCCCATCTCTCCCCCCACACCCCCACAGAGCTAACTGGGTTACAGTGTTTTATCCGAAAGTTTCCAATTCCACTGTCTTGTGTTTTCATGTTGAAAATACTTTTGCATTTTTCCTTTGAGTGCCAATTTCTTACTAGTACTATTTCTTAATGTAACATGTTTACCTGGAATGTATTTTAACTATTTTTGTATAGTGTAAACTGAAACATGCACATTTTGTACATTGTGCTTTCTTTTGTGGGACATATGCAGTGTGATCCAGTTGTTTTCCATCATTTGGTTGCGCTGACCTAGGAATGTTGGTCATATCAAACATTAAAAATGACCACTCTTTTAATTGAAATTAACTTTTAAATGTTTATAGGAGTATGTGCTGTGAAGTGATCTAAAATTTGTAATATTTTTGTCATGAACTGTACTACTCCTAATTATTGTAATGTAATAAAAATAGTTACAGTGAC diff --git a/test/expected/test-fusion.fusions.isoforms.bed b/test/expected/test-fusion.fusions.isoforms.bed index 0cfc76e6..761af9f4 100644 --- a/test/expected/test-fusion.fusions.isoforms.bed +++ b/test/expected/test-fusion.fusions.isoforms.bed @@ -1,4 +1,4 @@ -chr20 35542078 35548864 gene1_fusioniso1_ENSG00000125991.19--ENSG00000133703.12 1000 + 35542078 35548864 0 7 107,71,88,120,94,166,57 0,244,434,743,5333,6430,6729 -chr12 25205245 25227413 gene2_fusioniso1_ENSG00000125991.19--ENSG00000133703.12 1000 - 25223105 25245273 0 4 4666,124,160,180 0,10191,20368,21988 -chr20 35542078 35548864 gene1_fusioniso2_ENSG00000125991.19--ENSG00000133703.12 1000 + 35542078 35548864 0 7 107,71,88,120,94,166,57 0,244,434,743,5333,6430,6729 -chr12 25205245 25227413 gene2_fusioniso2_ENSG00000125991.19--ENSG00000133703.12 1000 - 25223105 25245273 0 3 4666,160,180 0,20368,21988 +chr20 35542078 35548865 gene1_fusioniso1_ENSG00000125991--ENSG00000133703 1000 + 35542078 35548865 0 7 107,71,88,120,94,166,58, 0,244,434,743,5333,6430,6729, +chr12 25205245 25227412 gene2_fusioniso1_ENSG00000125991--ENSG00000133703 1000 - 25223106 25245273 0 4 4666,124,160,179, 0,10191,20368,21988, +chr20 35542078 35548865 gene1_fusioniso2_ENSG00000125991--ENSG00000133703 1000 + 35542078 35548865 0 7 107,71,88,120,94,166,58, 0,244,434,743,5333,6430,6729, +chr12 25205245 25227412 gene2_fusioniso2_ENSG00000125991--ENSG00000133703 1000 - 25223106 25245273 0 3 4666,160,179, 0,20368,21988, diff --git a/test/expected/test-fusion.fusions.isoforms.fa b/test/expected/test-fusion.fusions.isoforms.fa index 9f925679..a40be9bc 100644 --- a/test/expected/test-fusion.fusions.isoforms.fa +++ b/test/expected/test-fusion.fusions.isoforms.fa @@ -1,4 +1,4 @@ ->fusioniso1_ENSG00000125991.19--ENSG00000133703.12 -CCCTTTCCGGCCGGTCCCCATGGAGGCGCTGGGGAAGCTGAAGCAGTTCGATGCCTACCCCAAGACTTTGGAGGACTTCCGGGTCAAGACCTGCGGGGGCGCCACCGTGACCATTGTCAGTGGCCTTCTCATGCTGCTACTGTTCCTGTCCGAGCTGCAGTATTACCTCACCACGGAGGTGCATCCTGAGCTCTACGTGGACAAGTCGCGGGGAGATAAACTGAAGATCAACATCGATGTACTTTTTCCGCACATGCCTTGTGCCTATCTGAGTATTGATGCCATGGATGTGGCCGGAGAACAGCAGCTGGATGTGGAACACAACCTGTTCAAGCAACGACTAGATAAAGATGGCATCCCCGTGAGCTCAGAGGCTGAGCGGCATGAGCTTGGGAAAGTCGAGGTGACGGTGTTTGACCCTGACTCCCTGGACCCTGATCGCTGTGAGAGCTGCTATGGTGCTGAGGCAGAAGATATCAAGTGCTGTAACACCTGTGAAGATGTGCGGGAGGCATATCGCCGTAGAGGCTGGGCCTTCAAGAACCCAGATACTATTGAGCAGTGCCGGCGAGAGGGCTTCAGCCAGAAGATGCAGGAGCAGAAGAATGAAGGCTGCCAGGTGTATGGCTTCTTGGAAGTCAATAAGGTGGCCGGAAACTTCCACTTTGCCCCTGGGAAGAGCTTCCAGCAGTCCCATGTGCACGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAGAACAAATTAAAAGAGTTAAGGACTCTGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTTCTTACCAATTGTGAATGTTGGTGTGAAACAAATTAATGAAGCTTTTGAATCATCCCTATTCTGTGTTTTATCTAGTCACATAAATGGATTAATTACTAATTTCAGTTGAGACCTTCTAATTGGTTTTTACTGAAACATTGAGGGAACACAAATTTATGGGCTTCCTGATGATGATTCTTCTAGGCATCATGTCCTATAGTTTGTCATCCCTGATGAATGTAAAGTTACACTGTTCACAAAGGTTTTGTCTCCTTTCCACTGCTATTAGTCATGGTCACTCTCCCCAAAATATTATATTTTTTCTATAAAAAGAAAAAAATGGAAAAAAATTACAAGGCAATGGAAACTATTATAAGGCCATTTCCTTTTCACATTAGATAAATTACTATAAAGACTCCTAATAGCTTTTCCTGTTAAGGCAGACCCAGTATGAAATGGGGATTATTATAGCAACCATTTTGGGGCTATATTTACATGCTACTAAATTTTTATAATAATTGAAAAGATTTTAACAAGTATAAAAAATTCTCATAGGAATTAAATGTAGTCTCCCTGTGTCAGACTGCTCTTTCATAGTATAACTTTAAATCTTTTCTTCAACTTGAGTCTTTGAAGATAGTTTTAATTCTGCTTGTGACATTAAAAGATTATTTGGGCCAGTTATAGCTTATTAGGTGTTGAAGAGACCAAGGTTGCAAGGCCAGGCCCTGTGTGAACCTTTGAGCTTTCATAGAGAGTTTCACAGCATGGACTGTGTCCCCACGGTCATCCAGTGTTGTCATGCATTGGTTAGTCAAAATGGGGAGGGACTAGGGCAGTTTGGATAGCTCAACAAGATACAATCTCACTCTGTGGTGGTCCTGCTGACAAATCAAGAGCATTGCTTTTGTTTCTTAAGAAAACAAACTCTTTTTTAAAAATTACTTTTAAATATTAACTCAAAAGTTGAGATTTTGGGGTGGTGGTGTGCCAAGACATTAATTTTTTTTTTAAACAATGAAGTGAAAAAGTTTTACAATCTCTAGGTTTGGCTAGTTCTCTTAACACTGGTTAAATTAACATTGCATAAACACTTTTCAAGTCTGATCCATATTTAATAATGCTTTAAAATAAAAATAAAAACAATCCTTTTGATAAATTTAAAATGTTACTTATTTTAAAATAAATGAAGTGAGATGGCATGGTGAGGTGAAAGTATCACTGGACTAGGAAGAAGGTGACTTAGGTTCTAGATAGGTGTCTTTTAGGACTCTGATTTTGAGGACATCACTTACTATCCATTTCTTCATGTTAAAAGAAGTCATCTCAAACTCTTAGTTTTTTTTTTTTACAACTATGTAATTTATATTCCATTTACATAAGGATACACTTATTTGTCAAGCTCAGCACAATCTGTAAATTTTTAACCTATGTTACACCATCTTCAGTGCCAGTCTTGGGCAAAATTGTGCAAGAGGTGAAGTTTATATTTGAATATCCATTCTCGTTTTAGGACTCTTCTTCCATATTAGTGTCATCTTGCCTCCCTACCTTCCACATGCCCCATGACTTGATGCAGTTTTAATACTTGTAATTCCCCTAACCATAAGATTTACTGCTGCTGTGGATATCTCCATGAAGTTTTCCCACTGAGTCACATCAGAAATGCCCTACATCTTATTTCCTCAGGGCTCAAGAGAATCTGACAGATACCATAAAGGGATTTGACCTAATCACTAATTTTCAGGTGGTGGCTGATGCTTTGAACATCTCTTTGCTGCCCAATCCATTAGCGACAGTAGGATTTTTCAAACCTGGTATGAATAGACAGAACCCTATCCAGTGGAAGGAGAATTTAATAAAGATAGTGCTGAAAGAATTCCTTAGGTAATCTATAACTAGGACTACTCCTGGTAACAGTAATACATTCCATTGTTTTAGTAACCAGAAATCTTCATGCAATGAAAAATACTTTAATTCATGAAGCTTACTTTTTTTTTTTGGTGTCAGAGTCTCGCTCTTGTCACCCAGGCTGGAATGCAGTGGCGCCATCTCAGCTCACTGCAACCTCCATCTCCCAGGTTCAAGCGATTCTCGTGCCTCGGCCTCCTGAGTAGCTGGGATTACAGGCGTGTGCCACTACACTCAACTAATTTTTGTATTTTTAGGAGAGACGGGGTTTCACCCTGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAAGTGATTCACCCACCTTGGCCTCATAAACCTGTTTTGCAGAACTCATTTATTCAGCAAATATTTATTGAGTGCCTACCAGATGCCAGTCACCACACAAGGCACTGGGTATATGGTATCCCCAAACAAGAGACATAATCCCGGTCCTTAGGTAGTGCTAGTGTGGTCTGTAATATCTTACTAAGGCCTTTGGTATACGACCCAGAGATAACACGATGCGTATTTTAGTTTTGCAAAGAAGGGGTTTGGTCTCTGTGCCAGCTCTATAATTGTTTTGCTACGATTCCACTGAAACTCTTCGATCAAGCTACTTTATGTAAATCACTTCATTGTTTTAAAGGAATAAACTTGATTATATTGTTTTTTTATTTGGCATAACTGTGATTCTTTTAGGACAATTACTGTACACATTAAGGTGTATGTCAGATATTCATATTGACCCAAATGTGTAATATTCCAGTTTTCTCTGCATAAGTAATTAAAATATACTTAAAAATTAATAGTTTTATCTGGGTACAAATAAACAGGTGCCTGAACTAGTTCACAGACAAGGAAACTTCTATGTAAAAATCACTATGATTTCTGAATTGCTATGTGAAACTACAGATCTTTGGAACACTGTTTAGGTAGGGTGTTAAGACTTACACAGTACCTCGTTTCTACACAGAGAAAGAAATGGCCATACTTCAGGAACTGCAGTGCTTATGAGGGGATATTTAGGCCTCTTGAATTTTTGATGTAGATGGGCATTTTTTTAAGGTAGTGGTTAATTACCTTTATGTGAACTTTGAATGGTTTAACAAAAGATTTGTTTTTGTAGAGATTTTAAAGGGGGAGAATTCTAGAAATAAATGTTACCTAATTATTACAGCCTTAAAGACAAAAATCCTTGTTGAAGTTTTTTTAAAAAAAGCTAAATTACATAGACTTAGGCATTAACATGTTTGTGGAAGAATATAGCAGACGTATATTGTATCATTTGAGTGAATGTTCCCAAGTAGGCATTCTAGGCTCTATTTAACTGAGTCACACTGCATAGGAATTTAGAACCTAACTTTTATAGGTTATCAAAACTGTTGTCACCATTGCACAATTTTGTCCTAATATATACATAGAAACTTTGTGGGGCATGTTAAGTTACAGTTTGCACAAGTTCATCTCATTTGTATTCCATTGATTTTTTTTTTCTTCTAAACATTTTTTCTTCAAACAGTATATAACTTTTTTTAGGGGATTTTTTTTTAGACAGCAAAAACTATCTGAAGATTTCCATTTGTCAAAAAGTAATGATTTCTTGATAATTGTGTAGTAATGTTTTTTAGAACCCAGCAGTTACCTTAAAGCTGAATTTATATTTAGTAACTTCTGTGTTAATACTGGATAGCATGAATTCTGCATTGAGAAACTGAATAGCTGTCATAAAATGAAACTTTCTTTCTAAAGAAAGATACTCACATGAGTTCTTGAAGAATAGTCATAACTAGATTAAGATCTGTGTTTTAGTTTAATAGTTTGAAGTGCCTGTTTGGGATAATGATAGGTAATTTAGATGAATTTAGGGGAAAAAAAAGTTATCTGCAGATATGTTGAGGGCCCATCTCTCCCCCCACACCCCCACAGAGCTAACTGGGTTACAGTGTTTTATCCGAAAGTTTCCAATTCCACTGTCTTGTGTTTTCATGTTGAAAATACTTTTGCATTTTTCCTTTGAGTGCCAATTTCTTACTAGTACTATTTCTTAATGTAACATGTTTACCTGGAATGTATTTTAACTATTTTTGTATAGTGTAAACTGAAACATGCACATTTTGTACATTGTGCTTTCTTTTGTGGGACATATGCAGTGTGATCCAGTTGTTTTCCATCATTTGGTTGCGCTGACCTAGGAATGTTGGTCATATCAAACATTAAAAATGACCACTCTTTTAATTGAAATTAACTTTTAAATGTTTATAGGAGTATGTGCTGTGAAGTGATCTAAAATTTGTAATATTTTTGTCATGAACTGTACTACTCCTAATTATTGTAATGTAATAAAAATAGTTACAGTGAC ->fusioniso2_ENSG00000125991.19--ENSG00000133703.12 +>fusioniso1_ENSG00000125991--ENSG00000133703 CCCTTTCCGGCCGGTCCCCATGGAGGCGCTGGGGAAGCTGAAGCAGTTCGATGCCTACCCCAAGACTTTGGAGGACTTCCGGGTCAAGACCTGCGGGGGCGCCACCGTGACCATTGTCAGTGGCCTTCTCATGCTGCTACTGTTCCTGTCCGAGCTGCAGTATTACCTCACCACGGAGGTGCATCCTGAGCTCTACGTGGACAAGTCGCGGGGAGATAAACTGAAGATCAACATCGATGTACTTTTTCCGCACATGCCTTGTGCCTATCTGAGTATTGATGCCATGGATGTGGCCGGAGAACAGCAGCTGGATGTGGAACACAACCTGTTCAAGCAACGACTAGATAAAGATGGCATCCCCGTGAGCTCAGAGGCTGAGCGGCATGAGCTTGGGAAAGTCGAGGTGACGGTGTTTGACCCTGACTCCCTGGACCCTGATCGCTGTGAGAGCTGCTATGGTGCTGAGGCAGAAGATATCAAGTGCTGTAACACCTGTGAAGATGTGCGGGAGGCATATCGCCGTAGAGGCTGGGCCTTCAAGAACCCAGATACTATTGAGCAGTGCCGGCGAGAGGGCTTCAGCCAGAAGATGCAGGAGCAGAAGAATGAAGGCTGCCAGGTGTATGGCTTCTTGGAAGTCAATAAGGTGGCCGGAAACTTCCACTTTGCCCCTGGGAAGAGCTTCCAGCAGTCCCATGTGCACGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAGAACAAATTAAAAGAGTTAAGGACTCTGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGAGAGTGGAGGATGCTTTTTATACATTGGTGAGAGAGATCCGACAATACAGATTGAAAAAAATCAGCAAAGAAGAAAAGACTCCTGGCTGTGTGAAAATTAAAAAATGCATTATAATGTAATCTGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTTCTTACCAATTGTGAATGTTGGTGTGAAACAAATTAATGAAGCTTTTGAATCATCCCTATTCTGTGTTTTATCTAGTCACATAAATGGATTAATTACTAATTTCAGTTGAGACCTTCTAATTGGTTTTTACTGAAACATTGAGGGAACACAAATTTATGGGCTTCCTGATGATGATTCTTCTAGGCATCATGTCCTATAGTTTGTCATCCCTGATGAATGTAAAGTTACACTGTTCACAAAGGTTTTGTCTCCTTTCCACTGCTATTAGTCATGGTCACTCTCCCCAAAATATTATATTTTTTCTATAAAAAGAAAAAAATGGAAAAAAATTACAAGGCAATGGAAACTATTATAAGGCCATTTCCTTTTCACATTAGATAAATTACTATAAAGACTCCTAATAGCTTTTCCTGTTAAGGCAGACCCAGTATGAAATGGGGATTATTATAGCAACCATTTTGGGGCTATATTTACATGCTACTAAATTTTTATAATAATTGAAAAGATTTTAACAAGTATAAAAAATTCTCATAGGAATTAAATGTAGTCTCCCTGTGTCAGACTGCTCTTTCATAGTATAACTTTAAATCTTTTCTTCAACTTGAGTCTTTGAAGATAGTTTTAATTCTGCTTGTGACATTAAAAGATTATTTGGGCCAGTTATAGCTTATTAGGTGTTGAAGAGACCAAGGTTGCAAGGCCAGGCCCTGTGTGAACCTTTGAGCTTTCATAGAGAGTTTCACAGCATGGACTGTGTCCCCACGGTCATCCAGTGTTGTCATGCATTGGTTAGTCAAAATGGGGAGGGACTAGGGCAGTTTGGATAGCTCAACAAGATACAATCTCACTCTGTGGTGGTCCTGCTGACAAATCAAGAGCATTGCTTTTGTTTCTTAAGAAAACAAACTCTTTTTTAAAAATTACTTTTAAATATTAACTCAAAAGTTGAGATTTTGGGGTGGTGGTGTGCCAAGACATTAATTTTTTTTTTAAACAATGAAGTGAAAAAGTTTTACAATCTCTAGGTTTGGCTAGTTCTCTTAACACTGGTTAAATTAACATTGCATAAACACTTTTCAAGTCTGATCCATATTTAATAATGCTTTAAAATAAAAATAAAAACAATCCTTTTGATAAATTTAAAATGTTACTTATTTTAAAATAAATGAAGTGAGATGGCATGGTGAGGTGAAAGTATCACTGGACTAGGAAGAAGGTGACTTAGGTTCTAGATAGGTGTCTTTTAGGACTCTGATTTTGAGGACATCACTTACTATCCATTTCTTCATGTTAAAAGAAGTCATCTCAAACTCTTAGTTTTTTTTTTTTACAACTATGTAATTTATATTCCATTTACATAAGGATACACTTATTTGTCAAGCTCAGCACAATCTGTAAATTTTTAACCTATGTTACACCATCTTCAGTGCCAGTCTTGGGCAAAATTGTGCAAGAGGTGAAGTTTATATTTGAATATCCATTCTCGTTTTAGGACTCTTCTTCCATATTAGTGTCATCTTGCCTCCCTACCTTCCACATGCCCCATGACTTGATGCAGTTTTAATACTTGTAATTCCCCTAACCATAAGATTTACTGCTGCTGTGGATATCTCCATGAAGTTTTCCCACTGAGTCACATCAGAAATGCCCTACATCTTATTTCCTCAGGGCTCAAGAGAATCTGACAGATACCATAAAGGGATTTGACCTAATCACTAATTTTCAGGTGGTGGCTGATGCTTTGAACATCTCTTTGCTGCCCAATCCATTAGCGACAGTAGGATTTTTCAAACCTGGTATGAATAGACAGAACCCTATCCAGTGGAAGGAGAATTTAATAAAGATAGTGCTGAAAGAATTCCTTAGGTAATCTATAACTAGGACTACTCCTGGTAACAGTAATACATTCCATTGTTTTAGTAACCAGAAATCTTCATGCAATGAAAAATACTTTAATTCATGAAGCTTACTTTTTTTTTTTGGTGTCAGAGTCTCGCTCTTGTCACCCAGGCTGGAATGCAGTGGCGCCATCTCAGCTCACTGCAACCTCCATCTCCCAGGTTCAAGCGATTCTCGTGCCTCGGCCTCCTGAGTAGCTGGGATTACAGGCGTGTGCCACTACACTCAACTAATTTTTGTATTTTTAGGAGAGACGGGGTTTCACCCTGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAAGTGATTCACCCACCTTGGCCTCATAAACCTGTTTTGCAGAACTCATTTATTCAGCAAATATTTATTGAGTGCCTACCAGATGCCAGTCACCACACAAGGCACTGGGTATATGGTATCCCCAAACAAGAGACATAATCCCGGTCCTTAGGTAGTGCTAGTGTGGTCTGTAATATCTTACTAAGGCCTTTGGTATACGACCCAGAGATAACACGATGCGTATTTTAGTTTTGCAAAGAAGGGGTTTGGTCTCTGTGCCAGCTCTATAATTGTTTTGCTACGATTCCACTGAAACTCTTCGATCAAGCTACTTTATGTAAATCACTTCATTGTTTTAAAGGAATAAACTTGATTATATTGTTTTTTTATTTGGCATAACTGTGATTCTTTTAGGACAATTACTGTACACATTAAGGTGTATGTCAGATATTCATATTGACCCAAATGTGTAATATTCCAGTTTTCTCTGCATAAGTAATTAAAATATACTTAAAAATTAATAGTTTTATCTGGGTACAAATAAACAGGTGCCTGAACTAGTTCACAGACAAGGAAACTTCTATGTAAAAATCACTATGATTTCTGAATTGCTATGTGAAACTACAGATCTTTGGAACACTGTTTAGGTAGGGTGTTAAGACTTACACAGTACCTCGTTTCTACACAGAGAAAGAAATGGCCATACTTCAGGAACTGCAGTGCTTATGAGGGGATATTTAGGCCTCTTGAATTTTTGATGTAGATGGGCATTTTTTTAAGGTAGTGGTTAATTACCTTTATGTGAACTTTGAATGGTTTAACAAAAGATTTGTTTTTGTAGAGATTTTAAAGGGGGAGAATTCTAGAAATAAATGTTACCTAATTATTACAGCCTTAAAGACAAAAATCCTTGTTGAAGTTTTTTTAAAAAAAGCTAAATTACATAGACTTAGGCATTAACATGTTTGTGGAAGAATATAGCAGACGTATATTGTATCATTTGAGTGAATGTTCCCAAGTAGGCATTCTAGGCTCTATTTAACTGAGTCACACTGCATAGGAATTTAGAACCTAACTTTTATAGGTTATCAAAACTGTTGTCACCATTGCACAATTTTGTCCTAATATATACATAGAAACTTTGTGGGGCATGTTAAGTTACAGTTTGCACAAGTTCATCTCATTTGTATTCCATTGATTTTTTTTTTCTTCTAAACATTTTTTCTTCAAACAGTATATAACTTTTTTTAGGGGATTTTTTTTTAGACAGCAAAAACTATCTGAAGATTTCCATTTGTCAAAAAGTAATGATTTCTTGATAATTGTGTAGTAATGTTTTTTAGAACCCAGCAGTTACCTTAAAGCTGAATTTATATTTAGTAACTTCTGTGTTAATACTGGATAGCATGAATTCTGCATTGAGAAACTGAATAGCTGTCATAAAATGAAACTTTCTTTCTAAAGAAAGATACTCACATGAGTTCTTGAAGAATAGTCATAACTAGATTAAGATCTGTGTTTTAGTTTAATAGTTTGAAGTGCCTGTTTGGGATAATGATAGGTAATTTAGATGAATTTAGGGGAAAAAAAAGTTATCTGCAGATATGTTGAGGGCCCATCTCTCCCCCCACACCCCCACAGAGCTAACTGGGTTACAGTGTTTTATCCGAAAGTTTCCAATTCCACTGTCTTGTGTTTTCATGTTGAAAATACTTTTGCATTTTTCCTTTGAGTGCCAATTTCTTACTAGTACTATTTCTTAATGTAACATGTTTACCTGGAATGTATTTTAACTATTTTTGTATAGTGTAAACTGAAACATGCACATTTTGTACATTGTGCTTTCTTTTGTGGGACATATGCAGTGTGATCCAGTTGTTTTCCATCATTTGGTTGCGCTGACCTAGGAATGTTGGTCATATCAAACATTAAAAATGACCACTCTTTTAATTGAAATTAACTTTTAAATGTTTATAGGAGTATGTGCTGTGAAGTGATCTAAAATTTGTAATATTTTTGTCATGAACTGTACTACTCCTAATTATTGTAATGTAATAAAAATAGTTACAGTGAC +>fusioniso2_ENSG00000125991--ENSG00000133703 +CCCTTTCCGGCCGGTCCCCATGGAGGCGCTGGGGAAGCTGAAGCAGTTCGATGCCTACCCCAAGACTTTGGAGGACTTCCGGGTCAAGACCTGCGGGGGCGCCACCGTGACCATTGTCAGTGGCCTTCTCATGCTGCTACTGTTCCTGTCCGAGCTGCAGTATTACCTCACCACGGAGGTGCATCCTGAGCTCTACGTGGACAAGTCGCGGGGAGATAAACTGAAGATCAACATCGATGTACTTTTTCCGCACATGCCTTGTGCCTATCTGAGTATTGATGCCATGGATGTGGCCGGAGAACAGCAGCTGGATGTGGAACACAACCTGTTCAAGCAACGACTAGATAAAGATGGCATCCCCGTGAGCTCAGAGGCTGAGCGGCATGAGCTTGGGAAAGTCGAGGTGACGGTGTTTGACCCTGACTCCCTGGACCCTGATCGCTGTGAGAGCTGCTATGGTGCTGAGGCAGAAGATATCAAGTGCTGTAACACCTGTGAAGATGTGCGGGAGGCATATCGCCGTAGAGGCTGGGCCTTCAAGAACCCAGATACTATTGAGCAGTGCCGGCGAGAGGGCTTCAGCCAGAAGATGCAGGAGCAGAAGAATGAAGGCTGCCAGGTGTATGGCTTCTTGGAAGTCAATAAGGTGGCCGGAAACTTCCACTTTGCCCCTGGGAAGAGCTTCCAGCAGTCCCATGTGCACGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAGAACAAATTAAAAGAGTTAAGGACTCTGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTTCTTACCAATTGTGAATGTTGGTGTGAAACAAATTAATGAAGCTTTTGAATCATCCCTATTCTGTGTTTTATCTAGTCACATAAATGGATTAATTACTAATTTCAGTTGAGACCTTCTAATTGGTTTTTACTGAAACATTGAGGGAACACAAATTTATGGGCTTCCTGATGATGATTCTTCTAGGCATCATGTCCTATAGTTTGTCATCCCTGATGAATGTAAAGTTACACTGTTCACAAAGGTTTTGTCTCCTTTCCACTGCTATTAGTCATGGTCACTCTCCCCAAAATATTATATTTTTTCTATAAAAAGAAAAAAATGGAAAAAAATTACAAGGCAATGGAAACTATTATAAGGCCATTTCCTTTTCACATTAGATAAATTACTATAAAGACTCCTAATAGCTTTTCCTGTTAAGGCAGACCCAGTATGAAATGGGGATTATTATAGCAACCATTTTGGGGCTATATTTACATGCTACTAAATTTTTATAATAATTGAAAAGATTTTAACAAGTATAAAAAATTCTCATAGGAATTAAATGTAGTCTCCCTGTGTCAGACTGCTCTTTCATAGTATAACTTTAAATCTTTTCTTCAACTTGAGTCTTTGAAGATAGTTTTAATTCTGCTTGTGACATTAAAAGATTATTTGGGCCAGTTATAGCTTATTAGGTGTTGAAGAGACCAAGGTTGCAAGGCCAGGCCCTGTGTGAACCTTTGAGCTTTCATAGAGAGTTTCACAGCATGGACTGTGTCCCCACGGTCATCCAGTGTTGTCATGCATTGGTTAGTCAAAATGGGGAGGGACTAGGGCAGTTTGGATAGCTCAACAAGATACAATCTCACTCTGTGGTGGTCCTGCTGACAAATCAAGAGCATTGCTTTTGTTTCTTAAGAAAACAAACTCTTTTTTAAAAATTACTTTTAAATATTAACTCAAAAGTTGAGATTTTGGGGTGGTGGTGTGCCAAGACATTAATTTTTTTTTTAAACAATGAAGTGAAAAAGTTTTACAATCTCTAGGTTTGGCTAGTTCTCTTAACACTGGTTAAATTAACATTGCATAAACACTTTTCAAGTCTGATCCATATTTAATAATGCTTTAAAATAAAAATAAAAACAATCCTTTTGATAAATTTAAAATGTTACTTATTTTAAAATAAATGAAGTGAGATGGCATGGTGAGGTGAAAGTATCACTGGACTAGGAAGAAGGTGACTTAGGTTCTAGATAGGTGTCTTTTAGGACTCTGATTTTGAGGACATCACTTACTATCCATTTCTTCATGTTAAAAGAAGTCATCTCAAACTCTTAGTTTTTTTTTTTTACAACTATGTAATTTATATTCCATTTACATAAGGATACACTTATTTGTCAAGCTCAGCACAATCTGTAAATTTTTAACCTATGTTACACCATCTTCAGTGCCAGTCTTGGGCAAAATTGTGCAAGAGGTGAAGTTTATATTTGAATATCCATTCTCGTTTTAGGACTCTTCTTCCATATTAGTGTCATCTTGCCTCCCTACCTTCCACATGCCCCATGACTTGATGCAGTTTTAATACTTGTAATTCCCCTAACCATAAGATTTACTGCTGCTGTGGATATCTCCATGAAGTTTTCCCACTGAGTCACATCAGAAATGCCCTACATCTTATTTCCTCAGGGCTCAAGAGAATCTGACAGATACCATAAAGGGATTTGACCTAATCACTAATTTTCAGGTGGTGGCTGATGCTTTGAACATCTCTTTGCTGCCCAATCCATTAGCGACAGTAGGATTTTTCAAACCTGGTATGAATAGACAGAACCCTATCCAGTGGAAGGAGAATTTAATAAAGATAGTGCTGAAAGAATTCCTTAGGTAATCTATAACTAGGACTACTCCTGGTAACAGTAATACATTCCATTGTTTTAGTAACCAGAAATCTTCATGCAATGAAAAATACTTTAATTCATGAAGCTTACTTTTTTTTTTTGGTGTCAGAGTCTCGCTCTTGTCACCCAGGCTGGAATGCAGTGGCGCCATCTCAGCTCACTGCAACCTCCATCTCCCAGGTTCAAGCGATTCTCGTGCCTCGGCCTCCTGAGTAGCTGGGATTACAGGCGTGTGCCACTACACTCAACTAATTTTTGTATTTTTAGGAGAGACGGGGTTTCACCCTGTTGGCCAGGCTGGTCTCGAACTCCTGACCTCAAGTGATTCACCCACCTTGGCCTCATAAACCTGTTTTGCAGAACTCATTTATTCAGCAAATATTTATTGAGTGCCTACCAGATGCCAGTCACCACACAAGGCACTGGGTATATGGTATCCCCAAACAAGAGACATAATCCCGGTCCTTAGGTAGTGCTAGTGTGGTCTGTAATATCTTACTAAGGCCTTTGGTATACGACCCAGAGATAACACGATGCGTATTTTAGTTTTGCAAAGAAGGGGTTTGGTCTCTGTGCCAGCTCTATAATTGTTTTGCTACGATTCCACTGAAACTCTTCGATCAAGCTACTTTATGTAAATCACTTCATTGTTTTAAAGGAATAAACTTGATTATATTGTTTTTTTATTTGGCATAACTGTGATTCTTTTAGGACAATTACTGTACACATTAAGGTGTATGTCAGATATTCATATTGACCCAAATGTGTAATATTCCAGTTTTCTCTGCATAAGTAATTAAAATATACTTAAAAATTAATAGTTTTATCTGGGTACAAATAAACAGGTGCCTGAACTAGTTCACAGACAAGGAAACTTCTATGTAAAAATCACTATGATTTCTGAATTGCTATGTGAAACTACAGATCTTTGGAACACTGTTTAGGTAGGGTGTTAAGACTTACACAGTACCTCGTTTCTACACAGAGAAAGAAATGGCCATACTTCAGGAACTGCAGTGCTTATGAGGGGATATTTAGGCCTCTTGAATTTTTGATGTAGATGGGCATTTTTTTAAGGTAGTGGTTAATTACCTTTATGTGAACTTTGAATGGTTTAACAAAAGATTTGTTTTTGTAGAGATTTTAAAGGGGGAGAATTCTAGAAATAAATGTTACCTAATTATTACAGCCTTAAAGACAAAAATCCTTGTTGAAGTTTTTTTAAAAAAAGCTAAATTACATAGACTTAGGCATTAACATGTTTGTGGAAGAATATAGCAGACGTATATTGTATCATTTGAGTGAATGTTCCCAAGTAGGCATTCTAGGCTCTATTTAACTGAGTCACACTGCATAGGAATTTAGAACCTAACTTTTATAGGTTATCAAAACTGTTGTCACCATTGCACAATTTTGTCCTAATATATACATAGAAACTTTGTGGGGCATGTTAAGTTACAGTTTGCACAAGTTCATCTCATTTGTATTCCATTGATTTTTTTTTTCTTCTAAACATTTTTTCTTCAAACAGTATATAACTTTTTTTAGGGGATTTTTTTTTAGACAGCAAAAACTATCTGAAGATTTCCATTTGTCAAAAAGTAATGATTTCTTGATAATTGTGTAGTAATGTTTTTTAGAACCCAGCAGTTACCTTAAAGCTGAATTTATATTTAGTAACTTCTGTGTTAATACTGGATAGCATGAATTCTGCATTGAGAAACTGAATAGCTGTCATAAAATGAAACTTTCTTTCTAAAGAAAGATACTCACATGAGTTCTTGAAGAATAGTCATAACTAGATTAAGATCTGTGTTTTAGTTTAATAGTTTGAAGTGCCTGTTTGGGATAATGATAGGTAATTTAGATGAATTTAGGGGAAAAAAAAGTTATCTGCAGATATGTTGAGGGCCCATCTCTCCCCCCACACCCCCACAGAGCTAACTGGGTTACAGTGTTTTATCCGAAAGTTTCCAATTCCACTGTCTTGTGTTTTCATGTTGAAAATACTTTTGCATTTTTCCTTTGAGTGCCAATTTCTTACTAGTACTATTTCTTAATGTAACATGTTTACCTGGAATGTATTTTAACTATTTTTGTATAGTGTAAACTGAAACATGCACATTTTGTACATTGTGCTTTCTTTTGTGGGACATATGCAGTGTGATCCAGTTGTTTTCCATCATTTGGTTGCGCTGACCTAGGAATGTTGGTCATATCAAACATTAAAAATGACCACTCTTTTAATTGAAATTAACTTTTAAATGTTTATAGGAGTATGTGCTGTGAAGTGATCTAAAATTTGTAATATTTTTGTCATGAACTGTACTACTCCTAATTATTGTAATGTAATAAAAATAGTTACAGTGAC diff --git a/test/expected/test-predict-productivity-extracols.bed b/test/expected/test-predict-productivity-extracols.bed new file mode 100644 index 00000000..979228f9 --- /dev/null +++ b/test/expected/test-predict-productivity-extracols.bed @@ -0,0 +1,7 @@ +chr12 25205245 25250912 FLT00000001 19 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 chr12:25205245-25250920:-, 19 0.1329 PRO +chr12 25205246 25250919 FLT00000002 115 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 chr12:25205245-25250920:-, 115 0.8042 PRO +chr17 64499619 64506289 FLT00000003 463 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 chr17:64498255-64506914:-, 463 0.8297 PRO +chr17 64499621 64506289 FLT00000004 42 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 chr17:64498255-64506914:-, 42 0.0753 PRO +chr20 35542077 35557633 FLT00000005 59 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 chr20:35542077-35557634:+, 59 0.831 PRO +chr20 35542189 35557634 FLT00000006 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 chr20:35542077-35557634:+, 7 0.0986 NGO +chr20 35542440 35557632 FLT00000007 5 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 chr20:35542077-35557634:+, 5 0.0704 NGO diff --git a/test/expected/test-predict-productivity-extracols.info.tsv b/test/expected/test-predict-productivity-extracols.info.tsv new file mode 100644 index 00000000..001b9155 --- /dev/null +++ b/test/expected/test-predict-productivity-extracols.info.tsv @@ -0,0 +1,8 @@ +#isoname tstartont tendont ptcpointont AAseq +FLT00000001 PRO 173 743 692 MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHHYREQIKRVKDSEDVPMVLVGNKCDLPSRTVDTKQAQDLARSYGIPFIETSAKTRQRVEDAFYTLVREIRQYRLKKISKEEKTPGCVKIKKCIIM_ +FLT00000002 PRO 180 747 575 MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHHYREQIKRVKDSEDVPMVLVGNKCDLPSRTVDTKQAQDLARSYGIPFIETSAKTRQGVDDAFYTLVREIRKHKEKMSKDGKKKKKKSKTKCVIM_ +FLT00000003 PRO 170 2015 1556 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLDVEDVKFVINYDYPNSSEDYIHRIGRTARSTKTGTAYTFFTPNNIKQVSDLISVLREANQAINPKLLQLVEDRGSGRSRGRGGMKDDRRDRYSAGKRGGFNTFRDRENYDRGYSSLLKRDFGAKTQNGVYSAANYTNGSFGSNFVSAGIQTSFRTGNPTGTYQNGYDSTQQYGSNVPNMHNGMNQQAYAYPATAAAPMIGYPMPTGYSQ_ +FLT00000004 PRO 170 1391 1271 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLG_ +FLT00000005 PRO 20 1172 1037 MEALGKLKQFDAYPKTLEDFRVKTCGGATVTIVSGLLMLLLFLSELQYYLTTEVHPELYVDKSRGDKLKINIDVLFPHMPCAYLSIDAMDVAGEQQLDVEHNLFKQRLDKDGIPVSSEAERHELGKVEVTVFDPDSLDPDRCESCYGAEAEDIKCCNTCEDVREAYRRRGWAFKNPDTIEQCRREGFSQKMQEQKNEGCQVYGFLEVNKVAGNFHFAPGKSFQQSHVHVHDLQSFGLDNINMTHYIQHLSFGEDYPGIVNPLDHTNVTAPQASMMFQYFVKVVPTVYMKVDGEVLRTNQFSVTRHEKVANGLLGDQGLPGVFVLYELSPMMVKLTEKHRSFTHFLTGVCAIIGGMFTVAGLIDSLIYHSARAIQKKIDLGKTT_ +FLT00000006 NGO 0 0 +FLT00000007 NGO 0 0 diff --git a/test/expected/test-predict-productivity-help.out b/test/expected/test-predict-productivity-help.out index 2ab757b0..d3e5583f 100644 --- a/test/expected/test-predict-productivity-help.out +++ b/test/expected/test-predict-productivity-help.out @@ -1,6 +1,5 @@ usage: predictProductivity [-h] -i INPUT_ISOFORMS -g GTF -f GENOME_FASTA -o - OUTPUT [--quiet] [--append_column] - (--firstTIS | --longestORF) + OUTPUT [--is_flair_bed] used to predict coding sequence and amino acid sequence of novel isoforms based on annotated start codons @@ -14,7 +13,5 @@ options: Fasta file containing transcript sequences. -o OUTPUT, --output OUTPUT prefix of output files - --quiet Do not display progress - --append_column Append prediction as an additional column in file - --firstTIS Defined ORFs by the first annotated TIS. - --longestORF Defined ORFs by the longest open reading frame. + --is_flair_bed specify if input is a bed12+ file generated by flair, + will add productivity to flair bed productivity column diff --git a/test/expected/test-predict-productivity.bed b/test/expected/test-predict-productivity.bed index 91e59494..7fa8822b 100644 --- a/test/expected/test-predict-productivity.bed +++ b/test/expected/test-predict-productivity.bed @@ -1,9 +1,9 @@ -chr12 25205245 25250929 ENST00000311936.8_PRO_ENSG00000133703.12 1000 - 25209794 25245384 103,169,207 5 4666,160,179,122,179, 0,20368,21988,40028,45505, -chr12 25205245 25250929 ENST00000256078.9_PRO_ENSG00000133703.12 1000 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,179, 0,10191,20368,21988,40028,45505, -chr17 64498253 64506289 ENST00000225792.10_PRO_ENSG00000108654.15 1000 - 64499922 64506119 103,169,207 13 2073,225,60,62,111,173,161,142,66,134,97,166,214, 0,2295,3756,3908,4185,4672,4934,5176,5549,5729,5968,6423,7822, -chr17 64499615 64506289 ENST00000581230.5_PTC_ENSG00000108654.15 1000 - 64502004 64506119 239,138,98 12 711,1521,62,111,173,161,142,66,134,97,166,214, 0,933,2546,2823,3310,3572,3814,4187,4367,4606,5061,6460, -chr20 35542020 35557634 ENST00000348547.6_PRO_ENSG00000125991.19 1000 + 35542097 35557504 103,169,207 13 165,71,88,120,94,166,58,32,97,65,137,56,210, 0,302,492,801,5391,6488,6787,13023,14012,14186,14952,15173,15404, -chr12 25205245 25250929 m54284U_201123_202240/28902124/ccs-0_PTC_ENSG00000133703.12 60 - 25225761 25245384 239,138,98 4 4666,160,122,179, 0,20368,40028,45505, -chr17 64499621 64506289 m54284U_201123_202240/160760815/ccs-0_PRO_ENSG00000108654.15 60 - 64499922 64506119 103,169,207 12 705,60,62,111,173,161,142,66,134,97,166,214, 0,2388,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, -chr17 64499621 64506289 m54284U_201123_202240/60948670/ccs-0_PTC_ENSG00000108654.15 60 - 64502004 64506119 239,138,98 14 705,225,87,809,62,111,173,161,142,66,134,97,166,214, 0,927,1435,1639,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, -chr17 64499621 64506289 m54284U_201123_202240/132317757/ccs-0_PTC_ENSG00000108654.15 60 - 64502921 64506119 239,138,98 9 2448,937,161,142,66,134,97,166,214, 0,2540,3566,3808,4181,4361,4600,5055,6454, +chr12 25205245 25250929 ENST00000311936.8_ENSG00000133703.12 1000 - 25209794 25245384 103,169,207 5 4666,160,179,122,179, 0,20368,21988,40028,45505, PRO +chr12 25205245 25250929 ENST00000256078.9_ENSG00000133703.12 1000 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,179, 0,10191,20368,21988,40028,45505, PRO +chr17 64498253 64506289 ENST00000225792.10_ENSG00000108654.15 1000 - 64499922 64506119 103,169,207 13 2073,225,60,62,111,173,161,142,66,134,97,166,214, 0,2295,3756,3908,4185,4672,4934,5176,5549,5729,5968,6423,7822, PRO +chr17 64499615 64506289 ENST00000581230.5_ENSG00000108654.15 1000 - 64502004 64506119 239,138,98 12 711,1521,62,111,173,161,142,66,134,97,166,214, 0,933,2546,2823,3310,3572,3814,4187,4367,4606,5061,6460, PTC +chr20 35542020 35557634 ENST00000348547.6_ENSG00000125991.19 1000 + 35542097 35557504 103,169,207 13 165,71,88,120,94,166,58,32,97,65,137,56,210, 0,302,492,801,5391,6488,6787,13023,14012,14186,14952,15173,15404, PRO +chr12 25205245 25250929 m54284U_201123_202240/28902124/ccs-0_ENSG00000133703.12 60 - 25225761 25245384 239,138,98 4 4666,160,122,179, 0,20368,40028,45505, PTC +chr17 64499621 64506289 m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 60 - 64499922 64506119 103,169,207 12 705,60,62,111,173,161,142,66,134,97,166,214, 0,2388,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, PRO +chr17 64499621 64506289 m54284U_201123_202240/60948670/ccs-0_ENSG00000108654.15 60 - 64502004 64506119 239,138,98 14 705,225,87,809,62,111,173,161,142,66,134,97,166,214, 0,927,1435,1639,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, PTC +chr17 64499621 64506289 m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 60 - 64502921 64506119 239,138,98 9 2448,937,161,142,66,134,97,166,214, 0,2540,3566,3808,4181,4361,4600,5055,6454, PTC diff --git a/test/expected/test-predict-productivity.info.tsv b/test/expected/test-predict-productivity.info.tsv index c1c458e5..42a1791c 100644 --- a/test/expected/test-predict-productivity.info.tsv +++ b/test/expected/test-predict-productivity.info.tsv @@ -1,10 +1,10 @@ #isoname tstartont tendont ptcpointont AAseq -ENST00000311936.8_PRO_ENSG00000133703.12 190 757 585 MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHHYREQIKRVKDSEDVPMVLVGNKCDLPSRTVDTKQAQDLARSYGIPFIETSAKTRQGVDDAFYTLVREIRKHKEKMSKDGKKKKKKSKTKCVIM_ -ENST00000256078.9_PRO_ENSG00000133703.12 190 760 709 MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHHYREQIKRVKDSEDVPMVLVGNKCDLPSRTVDTKQAQDLARSYGIPFIETSAKTRQRVEDAFYTLVREIRQYRLKKISKEEKTPGCVKIKKCIIM_ -ENST00000225792.10_PRO_ENSG00000108654.15 170 2015 1556 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLDVEDVKFVINYDYPNSSEDYIHRIGRTARSTKTGTAYTFFTPNNIKQVSDLISVLREANQAINPKLLQLVEDRGSGRSRGRGGMKDDRRDRYSAGKRGGFNTFRDRENYDRGYSSLLKRDFGAKTQNGVYSAANYTNGSFGSNFVSAGIQTSFRTGNPTGTYQNGYDSTQQYGSNVPNMHNGMNQQAYAYPATAAAPMIGYPMPTGYSQ_ -ENST00000581230.5_PTC_ENSG00000108654.15 170 1391 2792 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLG_ -ENST00000348547.6_PRO_ENSG00000125991.19 77 1229 1094 MEALGKLKQFDAYPKTLEDFRVKTCGGATVTIVSGLLMLLLFLSELQYYLTTEVHPELYVDKSRGDKLKINIDVLFPHMPCAYLSIDAMDVAGEQQLDVEHNLFKQRLDKDGIPVSSEAERHELGKVEVTVFDPDSLDPDRCESCYGAEAEDIKCCNTCEDVREAYRRRGWAFKNPDTIEQCRREGFSQKMQEQKNEGCQVYGFLEVNKVAGNFHFAPGKSFQQSHVHVHDLQSFGLDNINMTHYIQHLSFGEDYPGIVNPLDHTNVTAPQASMMFQYFVKVVPTVYMKVDGEVLRTNQFSVTRHEKVANGLLGDQGLPGVFVLYELSPMMVKLTEKHRSFTHFLTGVCAIIGGMFTVAGLIDSLIYHSARAIQKKIDLGKTT_ -m54284U_201123_202240/28902124/ccs-0_PTC_ENSG00000133703.12 190 313 406 MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIERTN_ -m54284U_201123_202240/160760815/ccs-0_PRO_ENSG00000108654.15 170 1790 1331 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLGRSRGRGGMKDDRRDRYSAGKRGGFNTFRDRENYDRGYSSLLKRDFGAKTQNGVYSAANYTNGSFGSNFVSAGIQTSFRTGNPTGTYQNGYDSTQQYGSNVPNMHNGMNQQAYAYPATAAAPMIGYPMPTGYSQ_ -m54284U_201123_202240/60948670/ccs-0_PTC_ENSG00000108654.15 170 1391 2392 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLG_ -m54284U_201123_202240/132317757/ccs-0_PTC_ENSG00000108654.15 170 1157 1862 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEK_ +ENST00000311936.8_ENSG00000133703.12 PRO 190 757 585 MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHHYREQIKRVKDSEDVPMVLVGNKCDLPSRTVDTKQAQDLARSYGIPFIETSAKTRQGVDDAFYTLVREIRKHKEKMSKDGKKKKKKSKTKCVIM_ +ENST00000256078.9_ENSG00000133703.12 PRO 190 760 709 MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIEDSYRKQVVIDGETCLLDILDTAGQEEYSAMRDQYMRTGEGFLCVFAINNTKSFEDIHHYREQIKRVKDSEDVPMVLVGNKCDLPSRTVDTKQAQDLARSYGIPFIETSAKTRQRVEDAFYTLVREIRQYRLKKISKEEKTPGCVKIKKCIIM_ +ENST00000225792.10_ENSG00000108654.15 PRO 170 2015 1556 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLDVEDVKFVINYDYPNSSEDYIHRIGRTARSTKTGTAYTFFTPNNIKQVSDLISVLREANQAINPKLLQLVEDRGSGRSRGRGGMKDDRRDRYSAGKRGGFNTFRDRENYDRGYSSLLKRDFGAKTQNGVYSAANYTNGSFGSNFVSAGIQTSFRTGNPTGTYQNGYDSTQQYGSNVPNMHNGMNQQAYAYPATAAAPMIGYPMPTGYSQ_ +ENST00000581230.5_ENSG00000108654.15 PTC 170 1391 2792 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLG_ +ENST00000348547.6_ENSG00000125991.19 PRO 77 1229 1094 MEALGKLKQFDAYPKTLEDFRVKTCGGATVTIVSGLLMLLLFLSELQYYLTTEVHPELYVDKSRGDKLKINIDVLFPHMPCAYLSIDAMDVAGEQQLDVEHNLFKQRLDKDGIPVSSEAERHELGKVEVTVFDPDSLDPDRCESCYGAEAEDIKCCNTCEDVREAYRRRGWAFKNPDTIEQCRREGFSQKMQEQKNEGCQVYGFLEVNKVAGNFHFAPGKSFQQSHVHVHDLQSFGLDNINMTHYIQHLSFGEDYPGIVNPLDHTNVTAPQASMMFQYFVKVVPTVYMKVDGEVLRTNQFSVTRHEKVANGLLGDQGLPGVFVLYELSPMMVKLTEKHRSFTHFLTGVCAIIGGMFTVAGLIDSLIYHSARAIQKKIDLGKTT_ +m54284U_201123_202240/28902124/ccs-0_ENSG00000133703.12 PTC 190 313 406 MTEYKLVVVGAGGVGKSALTIQLIQNHFVDEYDPTIERTN_ +m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 PRO 170 1790 1331 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLGRSRGRGGMKDDRRDRYSAGKRGGFNTFRDRENYDRGYSSLLKRDFGAKTQNGVYSAANYTNGSFGSNFVSAGIQTSFRTGNPTGTYQNGYDSTQQYGSNVPNMHNGMNQQAYAYPATAAAPMIGYPMPTGYSQ_ +m54284U_201123_202240/60948670/ccs-0_ENSG00000108654.15 PTC 170 1391 2392 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEKLIRLMEEIMSEKENKTIVFVETKRRCDELTRKMRRDGWPAMGIHGDKSQQERDWVLNEFKHGKAPILIATDVASRGLG_ +m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 PTC 170 1157 1862 MSGYSSDRDRGRDRGFGAPRFGGSRAGPLSGKKFGNPGEKLVKKKWNLDELPKFEKNFYQEHPDLARRTAQEVETYRRSKEITVRGHNCPKPVLNFYEANFPANVMDVIARQNFTEPTAIQAQGWPVALSGLDMVGVAQTGSGKTLSYLLPAIVHINHQPFLERGDGPICLVLAPTRELAQQVQQVAAEYCRACRLKSTCIYGGAPKGPQIRDLERGVEICIATPGRLIDFLECGKTNLRRTTYLVLDEADRMLDMGFEPQIRKIVDQIRPDRQTLMWSATWPKEVRQLAEDFLKDYIHINIGALELSANHNILQIVDVCHDVEKDEK_ diff --git a/test/expected/test-quantify-help.out b/test/expected/test-quantify-help.out index 0c22a8e4..81cd49e9 100644 --- a/test/expected/test-quantify-help.out +++ b/test/expected/test-quantify-help.out @@ -1,7 +1,6 @@ usage: quantify [-h] -r R -i I [-o O] [-t T] [--temp_dir TEMP_DIR] [--sample_id_only] [--tpm] [--quality QUALITY] [--trust_ends] - [--generate_map] [--isoform_bed ISOFORMS] [--stringent] - [--check_splice] [--output_bam] + [--generate_map] [--isoform_bed ISOFORMS] [--output_bam] options: -h, --help show this help message and exit @@ -18,17 +17,6 @@ options: with minimal fragmentation --generate_map create read-to-isoform assignment files for each sample (default: not specified) - --isoform_bed ISOFORMS, --isoformbed ISOFORMS - isoform .bed file, must be specified if --stringent or - check_splice is specified - --stringent Supporting reads must cover 80 percent of their - isoform and extend at least 25 nt into the first and - last exons. If those exons are themselves shorter than - 25 nt, the requirement becomes 'must start within 4 nt - from the start" or "must end within 4 nt from the end" - --check_splice enforce coverage of 4 out of 6 bp around each splice - site and no insertions greater than 3 bp at the splice - site --output_bam whether to output bam file of reads aligned to correct isoforms @@ -37,3 +25,6 @@ required named arguments: Tab delimited file containing sample id, condition, batch, reads.fq -i I, --isoforms I FastA of FLAIR collapsed isoforms + --isoform_bed ISOFORMS, --isoformbed ISOFORMS + isoform .bed file, must be specified if --stringent or + check_splice is specified diff --git a/test/expected/test-quantify-nobam.counts.tsv b/test/expected/test-quantify-nobam.counts.tsv index 0c37643a..84d02e49 100644 --- a/test/expected/test-quantify-nobam.counts.tsv +++ b/test/expected/test-quantify-nobam.counts.tsv @@ -1,10 +1,10 @@ ID A1 A2 A3 B1 B2 B3 -ENST00000225792.10_ENSG00000108654.15 61 65 52 20 25 38 +ENST00000225792.10_ENSG00000108654.15 51 55 43 17 20 31 ENST00000256078.9_ENSG00000133703.12 0 0 0 2 0 0 -ENST00000311936.8_ENSG00000133703.12 9 10 8 6 3 7 -ENST00000348547.6_ENSG00000125991.19 13 14 12 6 3 5 +ENST00000311936.8_ENSG00000133703.12 8 9 8 6 3 7 +ENST00000348547.6_ENSG00000125991.19 9 10 8 6 1 3 ENST00000581230.5_ENSG00000108654.15 2 2 2 3 2 2 -m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 1 1 1 1 1 1 +m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 0 0 0 1 0 0 m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 1 1 1 0 0 0 m54284U_201123_202240/28902124/ccs-0_ENSG00000133703.12 1 1 1 0 0 0 m54284U_201123_202240/60948670/ccs-0_ENSG00000108654.15 0 0 0 2 0 0 diff --git a/test/expected/test-quantify-nobam.tpm.tsv b/test/expected/test-quantify-nobam.tpm.tsv index 1a421294..525f2e5b 100644 --- a/test/expected/test-quantify-nobam.tpm.tsv +++ b/test/expected/test-quantify-nobam.tpm.tsv @@ -1,10 +1,10 @@ ID A1 A2 A3 B1 B2 B3 -ENST00000225792.10_ENSG00000108654.15 693181.8181818182 691489.3617021277 675324.6753246753 499999.99999999994 735294.1176470588 716981.1320754717 -ENST00000256078.9_ENSG00000133703.12 0.0 0.0 0.0 49999.99999999999 0.0 0.0 -ENST00000311936.8_ENSG00000133703.12 102272.72727272728 106382.97872340426 103896.1038961039 150000.0 88235.29411764706 132075.4716981132 -ENST00000348547.6_ENSG00000125991.19 147727.27272727274 148936.17021276595 155844.15584415584 150000.0 88235.29411764706 94339.62264150943 -ENST00000581230.5_ENSG00000108654.15 22727.272727272728 21276.595744680853 25974.025974025975 75000.0 58823.529411764706 37735.84905660377 -m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 11363.636363636364 10638.297872340427 12987.012987012988 24999.999999999996 29411.764705882353 18867.924528301886 -m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 11363.636363636364 10638.297872340427 12987.012987012988 0.0 0.0 0.0 -m54284U_201123_202240/28902124/ccs-0_ENSG00000133703.12 11363.636363636364 10638.297872340427 12987.012987012988 0.0 0.0 0.0 -m54284U_201123_202240/60948670/ccs-0_ENSG00000108654.15 0.0 0.0 0.0 49999.99999999999 0.0 0.0 +ENST00000225792.10_ENSG00000108654.15 708333.3333333334 705128.2051282051 682539.6825396825 459459.45945945947 769230.7692307692 720930.2325581395 +ENST00000256078.9_ENSG00000133703.12 0.0 0.0 0.0 54054.05405405405 0.0 0.0 +ENST00000311936.8_ENSG00000133703.12 111111.11111111111 115384.61538461539 126984.12698412698 162162.16216216216 115384.61538461539 162790.6976744186 +ENST00000348547.6_ENSG00000125991.19 125000.0 128205.1282051282 126984.12698412698 162162.16216216216 38461.53846153846 69767.44186046511 +ENST00000581230.5_ENSG00000108654.15 27777.777777777777 25641.02564102564 31746.031746031746 81081.08108108108 76923.07692307692 46511.62790697674 +m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 0.0 0.0 0.0 27027.027027027027 0.0 0.0 +m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 13888.888888888889 12820.51282051282 15873.015873015873 0.0 0.0 0.0 +m54284U_201123_202240/28902124/ccs-0_ENSG00000133703.12 13888.888888888889 12820.51282051282 15873.015873015873 0.0 0.0 0.0 +m54284U_201123_202240/60948670/ccs-0_ENSG00000108654.15 0.0 0.0 0.0 54054.05405405405 0.0 0.0 diff --git a/test/expected/test-quantify.A1.A.flair.aligned.readtotranscript.txt b/test/expected/test-quantify.A1.A.flair.aligned.readtotranscript.txt index dcd938a5..887472f1 100644 --- a/test/expected/test-quantify.A1.A.flair.aligned.readtotranscript.txt +++ b/test/expected/test-quantify.A1.A.flair.aligned.readtotranscript.txt @@ -1,4 +1,3 @@ -m54284U_201123_202240/35980470/ccs ENST00000311936.8_ENSG00000133703.12 m54284U_201123_202240/161614162/ccs ENST00000311936.8_ENSG00000133703.12 m54284U_201029_221949/168954339/ccs ENST00000311936.8_ENSG00000133703.12 m54284U_201028_155127/23397694/ccs ENST00000311936.8_ENSG00000133703.12 @@ -24,7 +23,6 @@ m54284U_201123_202240/63571314/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/132581025/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/164104409/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201029_221949/10551616/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201029_221949/21692686/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201029_221949/58590413/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201029_221949/162924902/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/8587143/ccs ENST00000225792.10_ENSG00000108654.15 @@ -56,23 +54,13 @@ m54284U_201028_155127/86376954/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/70257226/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/10291775/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/89063752/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201123_202240/13763028/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/33425269/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/37487575/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/32506259/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201028_155127/107282651/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201029_221949/89524058/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201028_155127/80808532/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201123_202240/71894380/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201123_202240/104006316/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201123_202240/95486286/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201123_202240/119276889/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201028_155127/60228627/ccs ENST00000225792.10_ENSG00000108654.15 -m54284U_201123_202240/5374797/ccs ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/146473458/ccs ENST00000581230.5_ENSG00000108654.15 m54284U_201028_155127/160563992/ccs ENST00000581230.5_ENSG00000108654.15 m54284U_201028_155127/120587977/ccs m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 -m54284U_201123_202240/168560882/ccs m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 m54284U_201123_202240/171509611/ccs ENST00000348547.6_ENSG00000125991.19 m54284U_201028_155127/82707233/ccs ENST00000348547.6_ENSG00000125991.19 m54284U_201123_202240/146474652/ccs ENST00000348547.6_ENSG00000125991.19 @@ -80,9 +68,5 @@ m54284U_201029_221949/141821598/ccs ENST00000348547.6_ENSG00000125991.19 m54284U_201028_155127/44894949/ccs ENST00000348547.6_ENSG00000125991.19 m54284U_201029_221949/176490917/ccs ENST00000348547.6_ENSG00000125991.19 m54284U_201029_221949/60688126/ccs ENST00000348547.6_ENSG00000125991.19 -m54284U_201123_202240/37292085/ccs ENST00000348547.6_ENSG00000125991.19 m54284U_201029_221949/54396423/ccs ENST00000348547.6_ENSG00000125991.19 m54284U_201029_221949/162399753/ccs ENST00000348547.6_ENSG00000125991.19 -m54284U_201123_202240/7996411/ccs ENST00000348547.6_ENSG00000125991.19 -m54284U_201028_155127/179241646/ccs ENST00000348547.6_ENSG00000125991.19 -m54284U_201028_155127/177406433/ccs ENST00000348547.6_ENSG00000125991.19 diff --git a/test/expected/test-quantify.counts.tsv b/test/expected/test-quantify.counts.tsv index 0c37643a..84d02e49 100644 --- a/test/expected/test-quantify.counts.tsv +++ b/test/expected/test-quantify.counts.tsv @@ -1,10 +1,10 @@ ID A1 A2 A3 B1 B2 B3 -ENST00000225792.10_ENSG00000108654.15 61 65 52 20 25 38 +ENST00000225792.10_ENSG00000108654.15 51 55 43 17 20 31 ENST00000256078.9_ENSG00000133703.12 0 0 0 2 0 0 -ENST00000311936.8_ENSG00000133703.12 9 10 8 6 3 7 -ENST00000348547.6_ENSG00000125991.19 13 14 12 6 3 5 +ENST00000311936.8_ENSG00000133703.12 8 9 8 6 3 7 +ENST00000348547.6_ENSG00000125991.19 9 10 8 6 1 3 ENST00000581230.5_ENSG00000108654.15 2 2 2 3 2 2 -m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 1 1 1 1 1 1 +m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 0 0 0 1 0 0 m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 1 1 1 0 0 0 m54284U_201123_202240/28902124/ccs-0_ENSG00000133703.12 1 1 1 0 0 0 m54284U_201123_202240/60948670/ccs-0_ENSG00000108654.15 0 0 0 2 0 0 diff --git a/test/expected/test-quantify.tpm.tsv b/test/expected/test-quantify.tpm.tsv index 1a421294..525f2e5b 100644 --- a/test/expected/test-quantify.tpm.tsv +++ b/test/expected/test-quantify.tpm.tsv @@ -1,10 +1,10 @@ ID A1 A2 A3 B1 B2 B3 -ENST00000225792.10_ENSG00000108654.15 693181.8181818182 691489.3617021277 675324.6753246753 499999.99999999994 735294.1176470588 716981.1320754717 -ENST00000256078.9_ENSG00000133703.12 0.0 0.0 0.0 49999.99999999999 0.0 0.0 -ENST00000311936.8_ENSG00000133703.12 102272.72727272728 106382.97872340426 103896.1038961039 150000.0 88235.29411764706 132075.4716981132 -ENST00000348547.6_ENSG00000125991.19 147727.27272727274 148936.17021276595 155844.15584415584 150000.0 88235.29411764706 94339.62264150943 -ENST00000581230.5_ENSG00000108654.15 22727.272727272728 21276.595744680853 25974.025974025975 75000.0 58823.529411764706 37735.84905660377 -m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 11363.636363636364 10638.297872340427 12987.012987012988 24999.999999999996 29411.764705882353 18867.924528301886 -m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 11363.636363636364 10638.297872340427 12987.012987012988 0.0 0.0 0.0 -m54284U_201123_202240/28902124/ccs-0_ENSG00000133703.12 11363.636363636364 10638.297872340427 12987.012987012988 0.0 0.0 0.0 -m54284U_201123_202240/60948670/ccs-0_ENSG00000108654.15 0.0 0.0 0.0 49999.99999999999 0.0 0.0 +ENST00000225792.10_ENSG00000108654.15 708333.3333333334 705128.2051282051 682539.6825396825 459459.45945945947 769230.7692307692 720930.2325581395 +ENST00000256078.9_ENSG00000133703.12 0.0 0.0 0.0 54054.05405405405 0.0 0.0 +ENST00000311936.8_ENSG00000133703.12 111111.11111111111 115384.61538461539 126984.12698412698 162162.16216216216 115384.61538461539 162790.6976744186 +ENST00000348547.6_ENSG00000125991.19 125000.0 128205.1282051282 126984.12698412698 162162.16216216216 38461.53846153846 69767.44186046511 +ENST00000581230.5_ENSG00000108654.15 27777.777777777777 25641.02564102564 31746.031746031746 81081.08108108108 76923.07692307692 46511.62790697674 +m54284U_201123_202240/132317757/ccs-0_ENSG00000108654.15 0.0 0.0 0.0 27027.027027027027 0.0 0.0 +m54284U_201123_202240/160760815/ccs-0_ENSG00000108654.15 13888.888888888889 12820.51282051282 15873.015873015873 0.0 0.0 0.0 +m54284U_201123_202240/28902124/ccs-0_ENSG00000133703.12 13888.888888888889 12820.51282051282 15873.015873015873 0.0 0.0 0.0 +m54284U_201123_202240/60948670/ccs-0_ENSG00000108654.15 0.0 0.0 0.0 54054.05405405405 0.0 0.0 diff --git a/test/expected/test-transcripome-mutant-splice.isoforms.bed b/test/expected/test-transcripome-mutant-splice.isoforms.bed index 48405307..d6937e45 100644 --- a/test/expected/test-transcripome-mutant-splice.isoforms.bed +++ b/test/expected/test-transcripome-mutant-splice.isoforms.bed @@ -1,3 +1,4 @@ -chr12 25209455 25250912 ENST00000256078.9_ENSG00000133703.12 2 - 25209455 25250912 217,95,2 6 456,124,160,179,122,162, 0,5981,16158,17778,35818,41295, -chr12 25209130 25250919 ENST00000311936.8_ENSG00000133703.12 2 - 25209130 25250919 217,95,2 5 781,160,179,122,169, 0,16483,18103,36143,41620, -chr12 25205245 25207807 6bf24634-ef35-cb91-c4a7-6f5e6742325f_ENSG00000133703.12 227 - 25205245 25207807 99,99,99 1 2562, 0, +chr12 25209496 25250910 FLT00000001 6 - 25225713 25245384 239,138,98 6 415,124,131,179,122,160, 0,5940,16117,17737,35777,41254, FLG00000001 ENSG00000133703.12, 6 0.3 PTC +chr12 25209455 25250912 FLT00000002 7 - 25215440 25245384 103,169,207 6 456,124,160,179,122,162, 0,5981,16158,17778,35818,41295, FLG00000001 ENST00000256078.9 ENSG00000133703.12, 7 0.35 PRO +chr12 25209508 25250919 FLT00000003 3 - 25225713 25245384 239,138,98 5 403,131,179,122,169, 0,16105,17725,35765,41242, FLG00000001 ENSG00000133703.12, 3 0.15 PTC +chr12 25209130 25250919 FLT00000004 4 - 25209794 25245384 103,169,207 5 781,160,179,122,169, 0,16483,18103,36143,41620, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 4 0.2 PRO diff --git a/test/expected/test-transcripome-mutant-splice.isoforms.fa b/test/expected/test-transcripome-mutant-splice.isoforms.fa new file mode 100644 index 00000000..ad380c65 --- /dev/null +++ b/test/expected/test-transcripome-mutant-splice.isoforms.fa @@ -0,0 +1,8 @@ +>FLISO5698755523113902258_ENSG00000133703.12 +GCGGAGGCAGCAGCGGCGGCGGCAGTGGCGGCGGCGAAGGTGGCGGCGGCTCGGCCAGTACTCCCGGCCCCCGCCATTTCGGACTGGGAGCGAGCGCGGCGCAGGCACTGAAGGCGGCGGCGGGGCCAGAGGCTCAGCGGCTCCCAGGTGCGGGAGAGAGGCCTGCTGAAAATGACTGAATATAAACTTGTGGTAGTTGGAGCTGGTGGCGTAGGCAAGAGTGCCTTGACGATACAGCTAATTCAGAATCATTTTGTGGACGAATATGATCCAACAATAGAGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGAGAGTGGAGGATGCTTTTTATACATTGGTGAGAGAGATCCGACAATACAGATTGAAAAAAATCAGCAAAGAAGAAAAGACTCCTGGCTGTGTGAAAATTAAAAAATGCATTATAATGTAATCTGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTT +>ENST00000256078.9_ENSG00000133703.12 +CGGCGGAGGCAGCAGCGGCGGCGGCAGTGGCGGCGGCGAAGGTGGCGGCGGCTCGGCCAGTACTCCCGGCCCCCGCCATTTCGGACTGGGAGCGAGCGCGGCGCAGGCACTGAAGGCGGCGGCGGGGCCAGAGGCTCAGCGGCTCCCAGGTGCGGGAGAGAGGCCTGCTGAAAATGACTGAATATAAACTTGTGGTAGTTGGAGCTGGTGGCGTAGGCAAGAGTGCCTTGACGATACAGCTAATTCAGAATCATTTTGTGGACGAATATGATCCAACAATAGAGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAGAACAAATTAAAAGAGTTAAGGACTCTGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGAGAGTGGAGGATGCTTTTTATACATTGGTGAGAGAGATCCGACAATACAGATTGAAAAAAATCAGCAAAGAAGAAAAGACTCCTGGCTGTGTGAAAATTAAAAAATGCATTATAATGTAATCTGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTTCTTACCAATTGTGAATGTTGGTGTGAAACAAATTAATGAAG +>FLISO8039436566628851937_ENSG00000133703.12 +GCCGCGGCGGCGGAGGCAGCAGCGGCGGCGGCAGTGGCGGCGGCGAAGGTGGCGGCGGCTCGGCCAGTACTCCCGGCCCCCGCCATTTCGGACTGGGAGCGAGCGCGGCGCAGGCACTGAAGGCGGCGGCGGGGCCAGAGGCTCAGCGGCTCCCAGGTGCGGGAGAGAGGCCTGCTGAAAATGACTGAATATAAACTTGTGGTAGTTGGAGCTGGTGGCGTAGGCAAGAGTGCCTTGACGATACAGCTAATTCAGAATCATTTTGTGGACGAATATGATCCAACAATAGAGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTA +>ENST00000311936.8_ENSG00000133703.12 +GCCGCGGCGGCGGAGGCAGCAGCGGCGGCGGCAGTGGCGGCGGCGAAGGTGGCGGCGGCTCGGCCAGTACTCCCGGCCCCCGCCATTTCGGACTGGGAGCGAGCGCGGCGCAGGCACTGAAGGCGGCGGCGGGGCCAGAGGCTCAGCGGCTCCCAGGTGCGGGAGAGAGGCCTGCTGAAAATGACTGAATATAAACTTGTGGTAGTTGGAGCTGGTGGCGTAGGCAAGAGTGCCTTGACGATACAGCTAATTCAGAATCATTTTGTGGACGAATATGATCCAACAATAGAGGATTCCTACAGGAAGCAAGTAGTAATTGATGGAGAAACCTGTCTCTTGGATATTCTCGACACAGCAGGTCAAGAGGAGTACAGTGCAATGAGGGACCAGTACATGAGGACTGGGGAGGGCTTTCTTTGTGTATTTGCCATAAATAATACTAAATCATTTGAAGATATTCACCATTATAGAGAACAAATTAAAAGAGTTAAGGACTCTGAAGATGTACCTATGGTCCTAGTAGGAAATAAATGTGATTTGCCTTCTAGAACAGTAGACACAAAACAGGCTCAGGACTTAGCAAGAAGTTATGGAATTCCTTTTATTGAAACATCAGCAAAGACAAGACAGGGTGTTGATGATGCCTTCTATACATTAGTTCGAGAAATTCGAAAACATAAAGAAAAGATGAGCAAAGATGGTAAAAAGAAGAAAAAGAAGTCAAAGACAAAGTGTGTAATTATGTAAATACAATTTGTACTTTTTTCTTAAGGCATACTAGTACAAGTGGTAATTTTTGTACATTACACTAAATTATTAGCATTTGTTTTAGCATTACCTAATTTTTTTCCTGCTCCATGCAGACTGTTAGCTTTTACCTTAAATGCTTATTTTAAAATGACAGTGGAAGTTTTTTTTTCCTCTAAGTGCCAGTATTCCCAGAGTTTTGGTTTTTGAACTAGCAATGCCTGTGAAAAAGAAACTGAATACCTAAGATTTCTGTCTTGGGGCTTTTGGTGCATGCAGTTGATTACTTCTTATTTTTCTTACCAATTGTGAATGTTGGTGTGAAACAAATTAATGAAGCTTTTGAATCATCCCTATTCTGTGTTTTATCTAGTCACATAAATGGATTAATTACTAATTTCAGTTGAGACCTTCTAATTGGTTTTTACTGAAACATTGAGGGAACACAAATTTATGGGCTTCCTGATGATGATTCTTCTAGGCATCATGTCCTATAGTTTGTCATCCCTGATGAATGTAAAGTTACACTGTTCACAAAGGTTTTGTCTCCTTTCCACTGCTATTAGTCATGGTCACTCTCCCCAAAATATTATATTTTTTCTATAAAAAGAAAAAAATGGAAAAAAATTACAAGGCAATGGAAACTATTATAAGGCCATTTCCT diff --git a/test/expected/test-transcripome-mutant-splice.isoforms.gtf b/test/expected/test-transcripome-mutant-splice.isoforms.gtf index e018ef46..65be595b 100644 --- a/test/expected/test-transcripome-mutant-splice.isoforms.gtf +++ b/test/expected/test-transcripome-mutant-splice.isoforms.gtf @@ -1,16 +1,61 @@ -chr12 FLAIR gene 25205246 25250919 . - . gene_id "ENSG00000133703.12"; -chr12 FLAIR transcript 25209456 25250912 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; -chr12 FLAIR exon 25209456 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "0"; -chr12 FLAIR exon 25215437 25215560 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "1"; -chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "2"; -chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "3"; -chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "4"; -chr12 FLAIR exon 25250751 25250912 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "5"; -chr12 FLAIR transcript 25209131 25250919 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; -chr12 FLAIR exon 25209131 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "0"; -chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "1"; -chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "2"; -chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "3"; -chr12 FLAIR exon 25250751 25250919 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "4"; -chr12 FLAIR transcript 25205246 25207807 . - . gene_id "ENSG00000133703.12"; transcript_id "6bf24634-ef35-cb91-c4a7-6f5e6742325f"; -chr12 FLAIR exon 25205246 25207807 . - . gene_id "ENSG00000133703.12"; transcript_id "6bf24634-ef35-cb91-c4a7-6f5e6742325f"; exon_number "0"; +chr12 FLAIR gene 25209131 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25209497 25250910 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR exon 25209497 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR 3UTR 25209497 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR 3UTR 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR exon 25225614 25225744 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR 3UTR 25225614 25225713 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR CDS 25225714 25225744 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR exon 25250751 25250910 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR 5UTR 25250751 25250910 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_gene_mappings "ENSG00000133703.12"; read_support 6; frac_support 0.3; productivity "PTC"; +chr12 FLAIR transcript 25209456 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR exon 25209456 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR 3UTR 25209456 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 7; frac_support 0.35; productivity "PRO"; +chr12 FLAIR transcript 25209509 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR exon 25209509 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "0"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR 3UTR 25209509 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "0"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR exon 25225614 25225744 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "1"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR 3UTR 25225614 25225713 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "1"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR CDS 25225714 25225744 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "1"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "2"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "2"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "4"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "4"; ref_gene_mappings "ENSG00000133703.12"; read_support 3; frac_support 0.15; productivity "PTC"; +chr12 FLAIR transcript 25209131 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR exon 25209131 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR 3UTR 25209131 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000004"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 4; frac_support 0.2; productivity "PRO"; diff --git a/test/expected/test-transcriptome-ends.isoform.read.map.txt b/test/expected/test-transcriptome-ends.isoform.read.map.txt deleted file mode 100644 index 3002062e..00000000 --- a/test/expected/test-transcriptome-ends.isoform.read.map.txt +++ /dev/null @@ -1,4 +0,0 @@ -ENST00000256078.9_ENSG00000133703.12 m54284U_201028_155127/178391116/ccs,m54284U_201028_155127/45942672/ccs,m54284U_201028_155127/122751676/ccs,m54284U_201028_155127/178258692/ccs,m54284U_201029_221949/129238817/ccs,m54284U_201123_202240/5703277/ccs,m54284U_201123_202240/35326148/ccs,m54284U_201123_202240/83362896/ccs,m54284U_201123_202240/136448137/ccs,m54284U_201123_202240/142017942/ccs,m54284U_201123_202240/143854045/ccs,m54284U_201123_202240/138414741/ccs,m54284U_201123_202240/136512568/ccs,m54284U_201123_202240/144902705/ccs,m54284U_201028_155127/50594587/ccs,m54284U_201028_155127/152046170/ccs,m54284U_201029_221949/30409254/ccs,m54284U_201028_155127/13372235/ccs,m54284U_201028_155127/94766732/ccs,m54284U_201029_221949/126094105/ccs -ENST00000311936.8_ENSG00000133703.12 m54284U_201123_202240/24577117/ccs,m54284U_201123_202240/52233940/ccs,m54284U_201123_202240/119014068/ccs,m54284U_201029_221949/198446/ccs,m54284U_201028_155127/18613660/ccs,m54284U_201028_155127/65668743/ccs,m54284U_201028_155127/86180228/ccs,m54284U_201028_155127/91489065/ccs,m54284U_201028_155127/94044528/ccs,m54284U_201028_155127/101124422/ccs,m54284U_201029_221949/17500447/ccs,m54284U_201029_221949/25887822/ccs,m54284U_201029_221949/36767794/ccs,m54284U_201029_221949/42010846/ccs,m54284U_201029_221949/64226500/ccs,m54284U_201029_221949/66913346/ccs,m54284U_201029_221949/85393945/ccs,m54284U_201029_221949/127797780/ccs,m54284U_201029_221949/132646592/ccs,m54284U_201029_221949/136709332/ccs,m54284U_201029_221949/174260783/ccs,m54284U_201123_202240/6621199/ccs,m54284U_201123_202240/15665189/ccs,m54284U_201123_202240/17173333/ccs,m54284U_201123_202240/18089160/ccs,m54284U_201123_202240/22678127/ccs,m54284U_201123_202240/27395263/ccs,m54284U_201123_202240/29165470/ccs,m54284U_201123_202240/42271554/ccs,m54284U_201123_202240/53282239/ccs,m54284U_201123_202240/65145646/ccs,m54284U_201123_202240/80543987/ccs,m54284U_201123_202240/88736174/ccs,m54284U_201123_202240/89327119/ccs,m54284U_201123_202240/90375774/ccs,m54284U_201123_202240/100663797/ccs,m54284U_201123_202240/103746263/ccs,m54284U_201123_202240/104334528/ccs,m54284U_201123_202240/130418106/ccs,m54284U_201123_202240/166398804/ccs,m54284U_201123_202240/54265695/ccs,m54284U_201123_202240/1376406/ccs,m54284U_201123_202240/28836053/ccs,m54284U_201123_202240/40766197/ccs,m54284U_201123_202240/40830555/ccs,m54284U_201123_202240/51380583/ccs,m54284U_201123_202240/90441677/ccs,m54284U_201123_202240/90898929/ccs,m54284U_201123_202240/92930177/ccs,m54284U_201123_202240/111083530/ccs,m54284U_201123_202240/143524739/ccs,m54284U_201123_202240/166134537/ccs,m54284U_201123_202240/167379662/ccs,m54284U_201028_155127/34668923/ccs,m54284U_201028_155127/47907777/ccs,m54284U_201028_155127/63244936/ccs,m54284U_201028_155127/71172958/ccs,m54284U_201028_155127/94570502/ccs,m54284U_201028_155127/109643610/ccs,m54284U_201028_155127/130025013/ccs,m54284U_201028_155127/146934119/ccs,m54284U_201028_155127/149226629/ccs,m54284U_201029_221949/36766065/ccs,m54284U_201029_221949/140443966/ccs,m54284U_201029_221949/150406077/ccs,m54284U_201029_221949/168954339/ccs,m54284U_201029_221949/170068507/ccs,m54284U_201029_221949/177275504/ccs,m54284U_201123_202240/27919860/ccs,m54284U_201123_202240/42338737/ccs,m54284U_201123_202240/48562936/ccs,m54284U_201123_202240/51643709/ccs,m54284U_201123_202240/59180084/ccs,m54284U_201123_202240/82315225/ccs,m54284U_201123_202240/91423976/ccs,m54284U_201123_202240/140576489/ccs,m54284U_201123_202240/147195320/ccs,m54284U_201123_202240/161614162/ccs,m54284U_201029_221949/87492050/ccs,m54284U_201028_155127/17630358/ccs,m54284U_201028_155127/167314641/ccs,m54284U_201123_202240/83167526/ccs,m54284U_201123_202240/86051573/ccs,m54284U_201123_202240/132581661/ccs,m54284U_201028_155127/92536947/ccs,m54284U_201028_155127/149096461/ccs,m54284U_201029_221949/86704687/ccs,m54284U_201029_221949/104858563/ccs,m54284U_201029_221949/142738262/ccs,m54284U_201123_202240/6882804/ccs,m54284U_201123_202240/48958234/ccs,m54284U_201123_202240/81136129/ccs,m54284U_201123_202240/82051705/ccs,m54284U_201123_202240/93259725/ccs,m54284U_201123_202240/101844032/ccs,m54284U_201123_202240/136054685/ccs,m54284U_201029_221949/27002605/ccs,m54284U_201123_202240/94373940/ccs,m54284U_201028_155127/113904089/ccs,m54284U_201123_202240/23791877/ccs,m54284U_201123_202240/140904093/ccs,m54284U_201123_202240/26806457/ccs,m54284U_201123_202240/35063295/ccs,m54284U_201123_202240/146604737/ccs,m54284U_201028_155127/23397694/ccs,m54284U_201029_221949/124717910/ccs,m54284U_201123_202240/8784694/ccs,m54284U_201029_221949/67502524/ccs,m54284U_201123_202240/150537051/ccs,m54284U_201028_155127/8979280/ccs,m54284U_201029_221949/144639509/ccs,m54284U_201029_221949/40502547/ccs,m54284U_201123_202240/36045634/ccs,m54284U_201028_155127/151848715/ccs,m54284U_201123_202240/92932697/ccs -ENST00000225792.10_ENSG00000108654.15 m54284U_201123_202240/7407243/ccs,m54284U_201123_202240/19137895/ccs,m54284U_201123_202240/30345862/ccs,m54284U_201123_202240/56952670/ccs,m54284U_201123_202240/59902688/ccs,m54284U_201123_202240/60360201/ccs,m54284U_201123_202240/65538789/ccs,m54284U_201123_202240/79366513/ccs,m54284U_201123_202240/89194735/ccs,m54284U_201123_202240/100075862/ccs,m54284U_201123_202240/148834937/ccs,m54284U_201123_202240/153881105/ccs,m54284U_201123_202240/163776771/ccs,m54284U_201123_202240/166266685/ccs,m54284U_201123_202240/169740503/ccs,m54284U_201123_202240/29821691/ccs,m54284U_201123_202240/74122308/ccs,m54284U_201028_155127/8784170/ccs,m54284U_201028_155127/30736609/ccs,m54284U_201028_155127/34538463/ccs,m54284U_201028_155127/40633243/ccs,m54284U_201029_221949/28050108/ccs,m54284U_201029_221949/48432574/ccs,m54284U_201029_221949/85067838/ccs,m54284U_201029_221949/116064616/ccs,m54284U_201029_221949/159517094/ccs,m54284U_201029_221949/172820501/ccs,m54284U_201123_202240/101647259/ccs,m54284U_201123_202240/121308658/ccs,m54284U_201029_221949/46202895/ccs,m54284U_201028_155127/7342726/ccs,m54284U_201028_155127/166069744/ccs,m54284U_201029_221949/47383659/ccs,m54284U_201123_202240/157877178/ccs,m54284U_201029_221949/169541796/ccs,m54284U_201123_202240/42992666/ccs,m54284U_201123_202240/125044088/ccs,m54284U_201123_202240/147654767/ccs,m54284U_201123_202240/165022062/ccs,m54284U_201123_202240/34079257/ccs,m54284U_201123_202240/37489424/ccs,m54284U_201028_155127/173803999/ccs,m54284U_201123_202240/3081581/ccs,m54284U_201028_155127/30736458/ccs,m54284U_201029_221949/12059091/ccs,m54284U_201123_202240/179242613/ccs,m54284U_201123_202240/12584637/ccs,m54284U_201123_202240/93520675/ccs,m54284U_201123_202240/94896576/ccs,m54284U_201123_202240/175180217/ccs,m54284U_201123_202240/50792972/ccs,m54284U_201123_202240/59836257/ccs,m54284U_201028_155127/144506913/ccs,m54284U_201123_202240/68289/ccs,m54284U_201123_202240/592133/ccs,m54284U_201123_202240/4523759/ccs,m54284U_201123_202240/6751965/ccs,m54284U_201123_202240/8062359/ccs,m54284U_201123_202240/8587947/ccs,m54284U_201123_202240/8981138/ccs,m54284U_201123_202240/10289164/ccs,m54284U_201123_202240/13238949/ccs,m54284U_201123_202240/16319944/ccs,m54284U_201123_202240/16714355/ccs,m54284U_201123_202240/17958720/ccs,m54284U_201123_202240/19991226/ccs,m54284U_201123_202240/22284318/ccs,m54284U_201123_202240/27133410/ccs,m54284U_201123_202240/28640675/ccs,m54284U_201123_202240/32311170/ccs,m54284U_201123_202240/32506259/ccs,m54284U_201123_202240/34080448/ccs,m54284U_201123_202240/34212346/ccs,m54284U_201123_202240/35194452/ccs,m54284U_201123_202240/37815015/ccs,m54284U_201123_202240/39193400/ccs,m54284U_201123_202240/41945308/ccs,m54284U_201123_202240/42534808/ccs,m54284U_201123_202240/44171844/ccs,m54284U_201123_202240/46795183/ccs,m54284U_201123_202240/50464889/ccs,m54284U_201123_202240/56363571/ccs,m54284U_201123_202240/56428709/ccs,m54284U_201123_202240/58917622/ccs,m54284U_201123_202240/59310217/ccs,m54284U_201123_202240/59312462/ccs,m54284U_201123_202240/63572556/ccs,m54284U_201123_202240/68550782/ccs,m54284U_201123_202240/69339016/ccs,m54284U_201123_202240/70320854/ccs,m54284U_201123_202240/70779760/ccs,m54284U_201123_202240/77398146/ccs,m54284U_201123_202240/84870367/ccs,m54284U_201123_202240/85394914/ccs,m54284U_201123_202240/89587982/ccs,m54284U_201123_202240/89720963/ccs,m54284U_201123_202240/90309157/ccs,m54284U_201123_202240/90374254/ccs,m54284U_201123_202240/90834779/ccs,m54284U_201123_202240/91357699/ccs,m54284U_201123_202240/92341586/ccs,m54284U_201123_202240/94044420/ccs,m54284U_201123_202240/94896328/ccs,m54284U_201123_202240/96798891/ccs,m54284U_201123_202240/97781239/ccs,m54284U_201123_202240/101648544/ccs,m54284U_201123_202240/102304026/ccs,m54284U_201123_202240/106496623/ccs,m54284U_201123_202240/107612261/ccs,m54284U_201123_202240/108069518/ccs,m54284U_201123_202240/110496324/ccs,m54284U_201123_202240/112462272/ccs,m54284U_201123_202240/114494183/ccs,m54284U_201123_202240/116066624/ccs,m54284U_201123_202240/118227507/ccs,m54284U_201123_202240/119736465/ccs,m54284U_201123_202240/120915484/ccs,m54284U_201123_202240/121962665/ccs,m54284U_201123_202240/122028511/ccs,m54284U_201123_202240/122683474/ccs,m54284U_201123_202240/123276081/ccs,m54284U_201123_202240/124586343/ccs,m54284U_201123_202240/127664725/ccs,m54284U_201123_202240/129566242/ccs,m54284U_201123_202240/132055394/ccs,m54284U_201123_202240/133759163/ccs,m54284U_201123_202240/135856537/ccs,m54284U_201123_202240/136250309/ccs,m54284U_201123_202240/137495090/ccs,m54284U_201123_202240/139264285/ccs,m54284U_201123_202240/143002258/ccs,m54284U_201123_202240/145293543/ccs,m54284U_201123_202240/152109991/ccs,m54284U_201123_202240/152503312/ccs,m54284U_201123_202240/153684265/ccs,m54284U_201123_202240/154732929/ccs,m54284U_201123_202240/158141270/ccs,m54284U_201123_202240/159122157/ccs,m54284U_201123_202240/160564925/ccs,m54284U_201123_202240/160762099/ccs,m54284U_201123_202240/161810376/ccs,m54284U_201123_202240/164366857/ccs,m54284U_201123_202240/164628903/ccs,m54284U_201123_202240/164955249/ccs,m54284U_201123_202240/167053492/ccs,m54284U_201123_202240/167381785/ccs,m54284U_201123_202240/167840458/ccs,m54284U_201123_202240/170199630/ccs,m54284U_201123_202240/171575432/ccs,m54284U_201123_202240/177735793/ccs,m54284U_201123_202240/178585763/ccs,m54284U_201123_202240/180029774/ccs,m54284U_201123_202240/3213498/ccs,m54284U_201123_202240/5703782/ccs,m54284U_201123_202240/11142288/ccs,m54284U_201123_202240/12321944/ccs,m54284U_201123_202240/17172563/ccs,m54284U_201123_202240/17303911/ccs,m54284U_201123_202240/17892242/ccs,m54284U_201123_202240/23857676/ccs,m54284U_201123_202240/29297016/ccs,m54284U_201123_202240/35326117/ccs,m54284U_201123_202240/40436367/ccs,m54284U_201123_202240/40700251/ccs,m54284U_201123_202240/43255393/ccs,m54284U_201123_202240/46924909/ccs,m54284U_201123_202240/49742173/ccs,m54284U_201123_202240/53152114/ccs,m54284U_201123_202240/62064563/ccs,m54284U_201123_202240/62982467/ccs,m54284U_201123_202240/63571314/ccs,m54284U_201123_202240/66915090/ccs,m54284U_201123_202240/73991777/ccs,m54284U_201123_202240/83166169/ccs,m54284U_201123_202240/86900919/ccs,m54284U_201123_202240/95289862/ccs,m54284U_201123_202240/103484244/ccs,m54284U_201123_202240/104072243/ccs,m54284U_201123_202240/106889530/ccs,m54284U_201123_202240/107874229/ccs,m54284U_201123_202240/112984089/ccs,m54284U_201123_202240/114952619/ccs,m54284U_201123_202240/117770591/ccs,m54284U_201123_202240/126093498/ccs,m54284U_201123_202240/127992472/ccs,m54284U_201123_202240/130156559/ccs,m54284U_201123_202240/132581025/ccs,m54284U_201123_202240/145885547/ccs,m54284U_201123_202240/149752275/ccs,m54284U_201123_202240/150734307/ccs,m54284U_201123_202240/161941902/ccs,m54284U_201123_202240/165021856/ccs,m54284U_201123_202240/174917378/ccs,m54284U_201123_202240/176817318/ccs,m54284U_201123_202240/177670508/ccs,m54284U_201123_202240/180290760/ccs,m54284U_201123_202240/154535332/ccs,m54284U_201123_202240/60228838/ccs,m54284U_201123_202240/164104409/ccs,m54284U_201028_155127/71763758/ccs,m54284U_201123_202240/85788328/ccs,m54284U_201028_155127/1836482/ccs,m54284U_201028_155127/2427511/ccs,m54284U_201028_155127/5834529/ccs,m54284U_201028_155127/8520010/ccs,m54284U_201028_155127/10683668/ccs,m54284U_201028_155127/15796933/ccs,m54284U_201028_155127/31785701/ccs,m54284U_201028_155127/32572273/ccs,m54284U_201028_155127/43845249/ccs,m54284U_201028_155127/44827966/ccs,m54284U_201028_155127/45024477/ccs,m54284U_201028_155127/45418908/ccs,m54284U_201028_155127/58263748/ccs,m54284U_201028_155127/59902489/ccs,m54284U_201028_155127/60229518/ccs,m54284U_201028_155127/65865156/ccs,m54284U_201028_155127/67176467/ccs,m54284U_201028_155127/69665960/ccs,m54284U_201028_155127/71762180/ccs,m54284U_201028_155127/75565187/ccs,m54284U_201028_155127/77335319/ccs,m54284U_201028_155127/77989472/ccs,m54284U_201028_155127/78580050/ccs,m54284U_201028_155127/93847789/ccs,m54284U_201028_155127/112264897/ccs,m54284U_201028_155127/119932707/ccs,m54284U_201028_155127/120392461/ccs,m54284U_201028_155127/122751724/ccs,m54284U_201028_155127/124453212/ccs,m54284U_201028_155127/126814728/ccs,m54284U_201028_155127/133826825/ccs,m54284U_201028_155127/140509788/ccs,m54284U_201028_155127/145687420/ccs,m54284U_201028_155127/146277561/ccs,m54284U_201028_155127/147196416/ccs,m54284U_201028_155127/150929945/ccs,m54284U_201028_155127/153289543/ccs,m54284U_201028_155127/153354341/ccs,m54284U_201028_155127/161810713/ccs,m54284U_201028_155127/162203455/ccs,m54284U_201028_155127/165347822/ccs,m54284U_201028_155127/166199853/ccs,m54284U_201028_155127/171901846/ccs,m54284U_201028_155127/172426709/ccs,m54284U_201028_155127/172819460/ccs,m54284U_201028_155127/176031505/ccs,m54284U_201028_155127/178063351/ccs,m54284U_201029_221949/6162060/ccs,m54284U_201029_221949/8194164/ccs,m54284U_201029_221949/10551616/ccs,m54284U_201029_221949/13175551/ccs,m54284U_201029_221949/25234106/ccs,m54284U_201029_221949/26673972/ccs,m54284U_201029_221949/26870733/ccs,m54284U_201029_221949/29229989/ccs,m54284U_201029_221949/31001107/ccs,m54284U_201029_221949/38798319/ccs,m54284U_201029_221949/54987010/ccs,m54284U_201029_221949/56557831/ccs,m54284U_201029_221949/58590413/ccs,m54284U_201029_221949/60163436/ccs,m54284U_201029_221949/63832822/ccs,m54284U_201029_221949/73074067/ccs,m54284U_201029_221949/74188257/ccs,m54284U_201029_221949/74582149/ccs,m54284U_201029_221949/74582549/ccs,m54284U_201029_221949/76483319/ccs,m54284U_201029_221949/81791668/ccs,m54284U_201029_221949/82315070/ccs,m54284U_201029_221949/84084269/ccs,m54284U_201029_221949/84804260/ccs,m54284U_201029_221949/85264608/ccs,m54284U_201029_221949/99158114/ccs,m54284U_201029_221949/103613797/ccs,m54284U_201029_221949/103809156/ccs,m54284U_201029_221949/125699594/ccs,m54284U_201029_221949/127797940/ccs,m54284U_201029_221949/130745372/ccs,m54284U_201029_221949/132909917/ccs,m54284U_201029_221949/135268689/ccs,m54284U_201029_221949/139135055/ccs,m54284U_201029_221949/140247974/ccs,m54284U_201029_221949/145951112/ccs,m54284U_201029_221949/147655237/ccs,m54284U_201029_221949/148638229/ccs,m54284U_201029_221949/153486102/ccs,m54284U_201029_221949/162924902/ccs,m54284U_201029_221949/163514391/ccs,m54284U_201029_221949/171639011/ccs,m54284U_201123_202240/8323319/ccs,m54284U_201123_202240/8587143/ccs,m54284U_201123_202240/18284632/ccs,m54284U_201123_202240/20186086/ccs,m54284U_201123_202240/30278314/ccs,m54284U_201123_202240/37029660/ccs,m54284U_201123_202240/38078176/ccs,m54284U_201123_202240/38208222/ccs,m54284U_201123_202240/38538011/ccs,m54284U_201123_202240/39324022/ccs,m54284U_201123_202240/41550535/ccs,m54284U_201123_202240/54396779/ccs,m54284U_201123_202240/72550843/ccs,m54284U_201123_202240/90180117/ccs,m54284U_201123_202240/102500739/ccs,m54284U_201123_202240/111938393/ccs,m54284U_201123_202240/112722471/ccs,m54284U_201123_202240/131467528/ccs,m54284U_201123_202240/139920300/ccs,m54284U_201123_202240/146343742/ccs,m54284U_201123_202240/147391031/ccs,m54284U_201123_202240/155583861/ccs,m54284U_201123_202240/159974331/ccs,m54284U_201123_202240/164955559/ccs,m54284U_201029_221949/40501373/ccs,m54284U_201028_155127/60031506/ccs,m54284U_201028_155127/68878599/ccs,m54284U_201028_155127/78645033/ccs,m54284U_201028_155127/97585942/ccs,m54284U_201028_155127/125108437/ccs,m54284U_201028_155127/160301643/ccs,m54284U_201028_155127/163317212/ccs,m54284U_201028_155127/178260258/ccs,m54284U_201029_221949/6423791/ccs,m54284U_201029_221949/13764819/ccs,m54284U_201029_221949/19335282/ccs,m54284U_201029_221949/73271336/ccs,m54284U_201029_221949/96600431/ccs,m54284U_201029_221949/97911189/ccs,m54284U_201029_221949/119735697/ccs,m54284U_201029_221949/143460757/ccs,m54284U_201029_221949/157287900/ccs,m54284U_201029_221949/161418069/ccs,m54284U_201123_202240/395988/ccs,m54284U_201123_202240/6095260/ccs,m54284U_201123_202240/6162050/ccs,m54284U_201123_202240/8784405/ccs,m54284U_201123_202240/11666510/ccs,m54284U_201123_202240/18023133/ccs,m54284U_201123_202240/23595429/ccs,m54284U_201123_202240/30802300/ccs,m54284U_201123_202240/35586672/ccs,m54284U_201123_202240/36964765/ccs,m54284U_201123_202240/37882011/ccs,m54284U_201123_202240/38667860/ccs,m54284U_201123_202240/42533909/ccs,m54284U_201123_202240/52692745/ccs,m54284U_201123_202240/57737827/ccs,m54284U_201123_202240/59441318/ccs,m54284U_201123_202240/60949429/ccs,m54284U_201123_202240/65470489/ccs,m54284U_201123_202240/74122020/ccs,m54284U_201123_202240/77791365/ccs,m54284U_201123_202240/93717683/ccs,m54284U_201123_202240/97518137/ccs,m54284U_201123_202240/101254018/ccs,m54284U_201123_202240/102237118/ccs,m54284U_201123_202240/115017950/ccs,m54284U_201123_202240/127470309/ccs,m54284U_201123_202240/140182501/ccs,m54284U_201123_202240/144901714/ccs,m54284U_201123_202240/149031536/ccs,m54284U_201123_202240/152962448/ccs,m54284U_201123_202240/153421179/ccs,m54284U_201123_202240/165414844/ccs,m54284U_201123_202240/170920327/ccs,m54284U_201123_202240/172688834/ccs,m54284U_201123_202240/179700824/ccs,m54284U_201028_155127/17694888/ccs,m54284U_201028_155127/4653443/ccs,m54284U_201028_155127/6422952/ccs,m54284U_201028_155127/8587829/ccs,m54284U_201028_155127/13437223/ccs,m54284U_201028_155127/16911025/ccs,m54284U_201028_155127/17959094/ccs,m54284U_201028_155127/36701113/ccs,m54284U_201028_155127/42142340/ccs,m54284U_201028_155127/44696069/ccs,m54284U_201028_155127/45811670/ccs,m54284U_201028_155127/52889552/ccs,m54284U_201028_155127/56427511/ccs,m54284U_201028_155127/57017654/ccs,m54284U_201028_155127/57737738/ccs,m54284U_201028_155127/59835509/ccs,m54284U_201028_155127/74778830/ccs,m54284U_201028_155127/76481480/ccs,m54284U_201028_155127/80874105/ccs,m54284U_201028_155127/83101238/ccs,m54284U_201028_155127/87231010/ccs,m54284U_201028_155127/99025861/ccs,m54284U_201028_155127/107282651/ccs,m54284U_201028_155127/108267073/ccs,m54284U_201028_155127/127076708/ccs,m54284U_201028_155127/128516754/ccs,m54284U_201028_155127/137037957/ccs,m54284U_201028_155127/145885240/ccs,m54284U_201028_155127/148440265/ccs,m54284U_201028_155127/149684362/ccs,m54284U_201028_155127/150865324/ccs,m54284U_201028_155127/155061031/ccs,m54284U_201028_155127/157483512/ccs,m54284U_201028_155127/166790229/ccs,m54284U_201028_155127/168298324/ccs,m54284U_201028_155127/177604163/ccs,m54284U_201029_221949/4851673/ccs,m54284U_201029_221949/5702963/ccs,m54284U_201029_221949/22545027/ccs,m54284U_201029_221949/23724134/ccs,m54284U_201029_221949/29754621/ccs,m54284U_201029_221949/32246056/ccs,m54284U_201029_221949/38864203/ccs,m54284U_201029_221949/39323879/ccs,m54284U_201029_221949/40045358/ccs,m54284U_201029_221949/54004554/ccs,m54284U_201029_221949/66650449/ccs,m54284U_201029_221949/78644332/ccs,m54284U_201029_221949/96863499/ccs,m54284U_201029_221949/112724804/ccs,m54284U_201029_221949/116261491/ccs,m54284U_201029_221949/133630779/ccs,m54284U_201029_221949/146867120/ccs,m54284U_201029_221949/147065416/ccs,m54284U_201029_221949/154666220/ccs,m54284U_201029_221949/157155831/ccs,m54284U_201029_221949/164365532/ccs,m54284U_201029_221949/165350211/ccs,m54284U_201029_221949/174392482/ccs,m54284U_201029_221949/174982258/ccs,m54284U_201123_202240/3212066/ccs,m54284U_201123_202240/15927302/ccs,m54284U_201123_202240/16190132/ccs,m54284U_201123_202240/20711759/ccs,m54284U_201123_202240/21825446/ccs,m54284U_201123_202240/27657240/ccs,m54284U_201123_202240/33425269/ccs,m54284U_201123_202240/34668858/ccs,m54284U_201123_202240/37881563/ccs,m54284U_201123_202240/40436696/ccs,m54284U_201123_202240/40503314/ccs,m54284U_201123_202240/44631692/ccs,m54284U_201123_202240/45810191/ccs,m54284U_201123_202240/46071899/ccs,m54284U_201123_202240/46794089/ccs,m54284U_201123_202240/47121453/ccs,m54284U_201123_202240/48171001/ccs,m54284U_201123_202240/50267672/ccs,m54284U_201123_202240/50858125/ccs,m54284U_201123_202240/56035558/ccs,m54284U_201123_202240/57346353/ccs,m54284U_201123_202240/60622060/ccs,m54284U_201123_202240/63701821/ccs,m54284U_201123_202240/66454169/ccs,m54284U_201123_202240/68815425/ccs,m54284U_201123_202240/69468430/ccs,m54284U_201123_202240/69928706/ccs,m54284U_201123_202240/70321388/ccs,m54284U_201123_202240/73008977/ccs,m54284U_201123_202240/73401888/ccs,m54284U_201123_202240/75433650/ccs,m54284U_201123_202240/78447063/ccs,m54284U_201123_202240/87361421/ccs,m54284U_201123_202240/89458125/ccs,m54284U_201123_202240/91883897/ccs,m54284U_201123_202240/94438484/ccs,m54284U_201123_202240/102891641/ccs,m54284U_201123_202240/104662440/ccs,m54284U_201123_202240/105448645/ccs,m54284U_201123_202240/109249761/ccs,m54284U_201123_202240/111020197/ccs,m54284U_201123_202240/116131384/ccs,m54284U_201123_202240/116459652/ccs,m54284U_201123_202240/123863263/ccs,m54284U_201123_202240/132841603/ccs,m54284U_201123_202240/132973596/ccs,m54284U_201123_202240/134021312/ccs,m54284U_201123_202240/135331900/ccs,m54284U_201123_202240/143984230/ccs,m54284U_201123_202240/144310340/ccs,m54284U_201123_202240/145491683/ccs,m54284U_201123_202240/155845366/ccs,m54284U_201123_202240/160235943/ccs,m54284U_201123_202240/160301120/ccs,m54284U_201123_202240/160434063/ccs,m54284U_201123_202240/162530570/ccs,m54284U_201123_202240/167184340/ccs,m54284U_201123_202240/169673407/ccs,m54284U_201123_202240/170526146/ccs,m54284U_201123_202240/172951108/ccs,m54284U_201123_202240/174721668/ccs,m54284U_201123_202240/176620628/ccs,m54284U_201123_202240/179438673/ccs,m54284U_201028_155127/86376954/ccs,m54284U_201123_202240/70257226/ccs,m54284U_201123_202240/31852520/ccs,m54284U_201123_202240/37487575/ccs,m54284U_201028_155127/160565798/ccs,m54284U_201123_202240/102367469/ccs,m54284U_201123_202240/47318215/ccs,m54284U_201123_202240/10291775/ccs,m54284U_201123_202240/89786727/ccs,m54284U_201123_202240/100401613/ccs,m54284U_201123_202240/67635266/ccs,m54284U_201029_221949/50069844/ccs,m54284U_201123_202240/169607392/ccs,m54284U_201123_202240/89063752/ccs,m54284U_201123_202240/121768711/ccs,m54284U_201123_202240/139198974/ccs,m54284U_201123_202240/154208130/ccs,m54284U_201029_221949/33292698/ccs,m54284U_201028_155127/1115752/ccs,m54284U_201028_155127/49612310/ccs,m54284U_201028_155127/163840546/ccs,m54284U_201029_221949/83493264/ccs -ENST00000348547.6_ENSG00000125991.19 m54284U_201029_221949/22940405/ccs,m54284U_201123_202240/171509611/ccs,m54284U_201028_155127/82707233/ccs,m54284U_201123_202240/31721158/ccs,m54284U_201123_202240/129173984/ccs,m54284U_201123_202240/13896538/ccs,m54284U_201123_202240/87427392/ccs,m54284U_201029_221949/98829138/ccs,m54284U_201028_155127/170067649/ccs,m54284U_201123_202240/105777799/ccs,m54284U_201028_155127/72944334/ccs,m54284U_201123_202240/88147124/ccs,m54284U_201123_202240/128058569/ccs,m54284U_201029_221949/134940945/ccs,m54284U_201029_221949/173409360/ccs,m54284U_201029_221949/170986107/ccs,m54284U_201028_155127/46859188/ccs,m54284U_201028_155127/11928230/ccs,m54284U_201123_202240/18547961/ccs,m54284U_201123_202240/101779982/ccs,m54284U_201123_202240/109183011/ccs,m54284U_201123_202240/146474652/ccs,m54284U_201123_202240/13173903/ccs,m54284U_201028_155127/2361908/ccs,m54284U_201029_221949/18875805/ccs,m54284U_201029_221949/62980517/ccs,m54284U_201029_221949/75302274/ccs,m54284U_201123_202240/12060061/ccs,m54284U_201123_202240/113117584/ccs,m54284U_201028_155127/94569912/ccs,m54284U_201123_202240/61278408/ccs,m54284U_201028_155127/85852421/ccs,m54284U_201028_155127/61343907/ccs,m54284U_201029_221949/46530583/ccs,m54284U_201029_221949/50137412/ccs,m54284U_201029_221949/112264398/ccs,m54284U_201029_221949/141821598/ccs,m54284U_201123_202240/178324729/ccs,m54284U_201028_155127/137627375/ccs,m54284U_201029_221949/62259953/ccs,m54284U_201029_221949/132449750/ccs,m54284U_201028_155127/44894949/ccs,m54284U_201028_155127/79102904/ccs,m54284U_201123_202240/41419606/ccs,m54284U_201123_202240/133892637/ccs,m54284U_201123_202240/107217527/ccs,m54284U_201029_221949/176490917/ccs,m54284U_201028_155127/162268090/ccs,m54284U_201029_221949/60688126/ccs,m54284U_201028_155127/89653941/ccs,m54284U_201123_202240/7602734/ccs,m54284U_201029_221949/54396423/ccs,m54284U_201029_221949/120521939/ccs,m54284U_201123_202240/2951207/ccs,m54284U_201028_155127/120193420/ccs,m54284U_201028_155127/90112862/ccs,m54284U_201029_221949/114624022/ccs,m54284U_201123_202240/12649427/ccs,m54284U_201029_221949/162399753/ccs,m54284U_201123_202240/6619237/ccs diff --git a/test/expected/test-transcriptome-ends.isoforms.bed b/test/expected/test-transcriptome-ends.isoforms.bed deleted file mode 100644 index 444a35bf..00000000 --- a/test/expected/test-transcriptome-ends.isoforms.bed +++ /dev/null @@ -1,4 +0,0 @@ -chr12 25205245 25250912 ENST00000256078.9_ENSG00000133703.12 20 - 25205245 25250912 3,28,252 6 4666,124,160,179,122,162 0,10191,20368,21988,40028,45505 -chr12 25205245 25250919 ENST00000311936.8_ENSG00000133703.12 115 - 25205245 25250919 3,28,252 5 4666,160,179,122,169 0,20368,21988,40028,45505 -chr17 64499619 64506289 ENST00000225792.10_ENSG00000108654.15 513 - 64499619 64506289 3,28,252 13 707,225,60,62,111,173,161,142,66,134,97,166,214 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456 -chr20 35542077 35557633 ENST00000348547.6_ENSG00000125991.19 60 + 35542077 35557633 3,28,252 13 108,71,88,120,94,166,58,32,97,65,137,56,209 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347 diff --git a/test/expected/test-transcriptome-ends.isoforms.gtf b/test/expected/test-transcriptome-ends.isoforms.gtf deleted file mode 100644 index e5253a58..00000000 --- a/test/expected/test-transcriptome-ends.isoforms.gtf +++ /dev/null @@ -1,44 +0,0 @@ -chr12 FLAIR gene 25205246 25250919 . - . gene_id "ENSG00000133703.12"; -chr12 FLAIR transcript 25205246 25250912 20 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; -chr12 FLAIR exon 25250751 25250912 20 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number 1; -chr12 FLAIR exon 25245274 25245395 20 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number 2; -chr12 FLAIR exon 25227234 25227412 20 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number 3; -chr12 FLAIR exon 25225614 25225773 20 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number 4; -chr12 FLAIR exon 25215437 25215560 20 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number 5; -chr12 FLAIR exon 25205246 25209911 20 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number 6; -chr12 FLAIR transcript 25205246 25250919 115 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; -chr12 FLAIR exon 25250751 25250919 115 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number 1; -chr12 FLAIR exon 25245274 25245395 115 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number 2; -chr12 FLAIR exon 25227234 25227412 115 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number 3; -chr12 FLAIR exon 25225614 25225773 115 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number 4; -chr12 FLAIR exon 25205246 25209911 115 - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number 5; -chr17 FLAIR gene 64499620 64506289 . - . gene_id "ENSG00000108654.15"; -chr17 FLAIR transcript 64499620 64506289 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; -chr17 FLAIR exon 64506076 64506289 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 1; -chr17 FLAIR exon 64504677 64504842 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 2; -chr17 FLAIR exon 64504222 64504318 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 3; -chr17 FLAIR exon 64503983 64504116 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 4; -chr17 FLAIR exon 64503803 64503868 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 5; -chr17 FLAIR exon 64503430 64503571 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 6; -chr17 FLAIR exon 64503188 64503348 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 7; -chr17 FLAIR exon 64502926 64503098 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 8; -chr17 FLAIR exon 64502439 64502549 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 9; -chr17 FLAIR exon 64502162 64502223 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 10; -chr17 FLAIR exon 64502010 64502069 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 11; -chr17 FLAIR exon 64500549 64500773 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 12; -chr17 FLAIR exon 64499620 64500326 513 - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number 13; -chr20 FLAIR gene 35542078 35557633 . + . gene_id "ENSG00000125991.19"; -chr20 FLAIR transcript 35542078 35557633 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; -chr20 FLAIR exon 35542078 35542185 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 1; -chr20 FLAIR exon 35542323 35542393 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 2; -chr20 FLAIR exon 35542513 35542600 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 3; -chr20 FLAIR exon 35542822 35542941 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 4; -chr20 FLAIR exon 35547412 35547505 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 5; -chr20 FLAIR exon 35548509 35548674 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 6; -chr20 FLAIR exon 35548808 35548865 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 7; -chr20 FLAIR exon 35555044 35555075 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 8; -chr20 FLAIR exon 35556033 35556129 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 9; -chr20 FLAIR exon 35556207 35556271 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 10; -chr20 FLAIR exon 35556973 35557109 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 11; -chr20 FLAIR exon 35557194 35557249 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 12; -chr20 FLAIR exon 35557425 35557633 60 + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number 13; diff --git a/test/expected/test-transcriptome-help.out b/test/expected/test-transcriptome-help.out index a02e968b..c9fb0e9d 100644 --- a/test/expected/test-transcriptome-help.out +++ b/test/expected/test-transcriptome-help.out @@ -8,10 +8,11 @@ usage: transcriptome [-h] -b GENOME_ALIGNED_BAM -g GENOME [-o OUTPUT] [--no_check_splice] [--no_align_to_annot] [-n NO_REDUNDANT] [--max_ends MAX_ENDS] [--filter FILTER] [--quality QUALITY] [--parallel_mode PARALLEL_MODE] - [--predict_cds] [--keep_intermediate] [--keep_sup] + [--keep_intermediate] [--keep_sup] [--end_norm_dist END_NORM_DIST] [--output_endpos] [--output_bam] [--fusion_breakpoints FUSION_BREAKPOINTS] - [--allow_paralogs] [--generate_map] + [--allow_paralogs] [--generate_map] [--trust_strand] + [--trust_ends] generates confident transcript models directly from a bam file of aligned long rna-seq reads @@ -37,7 +38,7 @@ options: will automatically output this file --junction_bed JUNCTION_BED short-read junctions in bed format (can be generated - from long-read alignment with intronProspector) + from long-read alignment with intron-prospector) --junction_support JUNCTION_SUPPORT if providing short-read junctions, minimum junction support required to keep junction. If your junctions @@ -95,11 +96,6 @@ options: of non-overlapping reads. Other modes: bychrom, byregion, auto:xGB - for setting the auto threshold, it must be in units of GB. - --predict_cds specify if you want to predict the CDS of the final - isoforms. Will be output in the final bed file but not - the gtf file. Productivity annotation is also added in - the name field, which is detailed further in the - predictProductivity documentation --keep_intermediate specify if intermediate and temporary files are to be kept for debugging. Intermediate files include: promoter-supported reads file, read assignments to @@ -122,3 +118,8 @@ options: multiple paralogs with equivalent alignment --generate_map specify this argument to generate a txt file of read- isoform assignments + --trust_strand specify if you want FLAIR to trust the stranding of + the input reads and not attempt strand correction + --trust_ends specify if you want FLAIR to trust the ends of the + input reads - a more stringent way of requiring read + ends to match the ends of transcript models diff --git a/test/expected/test-transcriptome-lowannot.isoforms.bed b/test/expected/test-transcriptome-lowannot.isoforms.bed new file mode 100644 index 00000000..90c5aef6 --- /dev/null +++ b/test/expected/test-transcriptome-lowannot.isoforms.bed @@ -0,0 +1,7 @@ +chr12 25205245 25250912 FLT00000001 19 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 ENST00000256078.9 ENSG00000133703.12, 19 0.1329 PRO +chr12 25205246 25250919 FLT00000002 115 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 115 0.8042 PRO +chr17 64499619 64506289 FLT00000003 463 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 ENST00000225792.10 ENSG00000108654.15, 463 0.8297 PRO +chr17 64499621 64506289 FLT00000004 42 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 ENSG00000108654.15, 42 0.0753 PRO +chr20 35542077 35557633 FLT00000005 59 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 ENST00000348547.6 ENSG00000125991.19, 59 0.831 PRO +chr20 35542189 35557634 FLT00000006 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 ENSG00000125991.19, 7 0.0986 NGO +chr20 35542440 35557632 FLT00000007 5 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 ENSG00000125991.19, 5 0.0704 NGO diff --git a/test/expected/test-transcriptome-lowannot.isoforms.gtf b/test/expected/test-transcriptome-lowannot.isoforms.gtf new file mode 100644 index 00000000..3184743a --- /dev/null +++ b/test/expected/test-transcriptome-lowannot.isoforms.gtf @@ -0,0 +1,144 @@ +chr12 FLAIR gene 25205246 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25205246 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1329; productivity "PRO"; +chr12 FLAIR transcript 25205247 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR exon 25205247 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR 3UTR 25205247 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.8042; productivity "PRO"; +chr17 FLAIR gene 64499620 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64499620 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64499620 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR 3UTR 64499620 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR 3UTR 64499622 64502004 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr20 FLAIR gene 35542078 35557634 . + . gene_id "FLG00000003"; +chr20 FLAIR transcript 35542078 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35542078 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR 5UTR 35542078 35542097 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR start_codon 35542098 35542100 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35542098 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR exon 35557425 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR CDS 35557425 35557504 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR 3UTR 35557505 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.831; productivity "PRO"; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "11"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; diff --git a/test/expected/test-transcriptome-mult-ends-trust-ends.isoforms.bed b/test/expected/test-transcriptome-mult-ends-trust-ends.isoforms.bed new file mode 100644 index 00000000..369e633f --- /dev/null +++ b/test/expected/test-transcriptome-mult-ends-trust-ends.isoforms.bed @@ -0,0 +1,9 @@ +chr12 25205245 25250912 FLT00000001 18 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 ENST00000256078.9 ENSG00000133703.12, 18 0.1268 PRO +chr12 25205246 25250919 FLT00000002 96 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 96 0.6761 PRO +chr12 25206930 25250915 FLT00000003 10 - 25209794 25245384 103,169,207 5 2981,160,179,122,165, 0,18683,20303,38343,43820, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 10 0.0704 PRO +chr17 64499619 64506289 FLT00000004 463 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 ENST00000225792.10 ENSG00000108654.15, 463 0.7666 PRO +chr17 64498254 64506289 FLT00000005 43 - 64499922 64506119 103,169,207 13 2072,225,60,62,111,173,161,142,66,134,97,166,214, 0,2294,3755,3907,4184,4671,4933,5175,5548,5728,5967,6422,7821, FLG00000002 ENST00000225792.10 ENSG00000108654.15, 43 0.0712 PRO +chr17 64499621 64506289 FLT00000006 42 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 ENSG00000108654.15, 42 0.0695 PRO +chr20 35542077 35557633 FLT00000007 54 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 ENST00000348547.6 ENSG00000125991.19, 54 0.7606 PRO +chr20 35542189 35557634 FLT00000008 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 ENSG00000125991.19, 7 0.0986 NGO +chr20 35542440 35557632 FLT00000009 5 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 ENSG00000125991.19, 5 0.0704 NGO diff --git a/test/expected/test-transcriptome-mult-ends-trust-ends.isoforms.gtf b/test/expected/test-transcriptome-mult-ends-trust-ends.isoforms.gtf new file mode 100644 index 00000000..13e72335 --- /dev/null +++ b/test/expected/test-transcriptome-mult-ends-trust-ends.isoforms.gtf @@ -0,0 +1,188 @@ +chr12 FLAIR gene 25205246 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25205246 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1268; productivity "PRO"; +chr12 FLAIR transcript 25205247 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR exon 25205247 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR 3UTR 25205247 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.6761; productivity "PRO"; +chr12 FLAIR transcript 25206931 25250915 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR exon 25206931 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR 3UTR 25206931 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR exon 25250751 25250915 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250915 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 10; frac_support 0.0704; productivity "PRO"; +chr17 FLAIR gene 64498255 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64499620 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64499620 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR 3UTR 64499620 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.7666; productivity "PRO"; +chr17 FLAIR transcript 64498255 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64498255 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR 3UTR 64498255 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 43; frac_support 0.0712; productivity "PRO"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR 3UTR 64499622 64502004 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0695; productivity "PRO"; +chr20 FLAIR gene 35542078 35557634 . + . gene_id "FLG00000003"; +chr20 FLAIR transcript 35542078 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35542078 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR 5UTR 35542078 35542097 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR start_codon 35542098 35542100 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35542098 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35557425 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35557425 35557504 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR 3UTR 35557505 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "11"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; diff --git a/test/expected/test-transcriptome-mult-ends.isoforms.bed b/test/expected/test-transcriptome-mult-ends.isoforms.bed new file mode 100644 index 00000000..661fef67 --- /dev/null +++ b/test/expected/test-transcriptome-mult-ends.isoforms.bed @@ -0,0 +1,9 @@ +chr12 25205245 25250912 FLT00000001 18 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 ENST00000256078.9 ENSG00000133703.12, 18 0.1233 PRO +chr12 25205246 25250919 FLT00000002 98 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 98 0.6712 PRO +chr12 25206930 25250915 FLT00000003 11 - 25209794 25245384 103,169,207 5 2981,160,179,122,165, 0,18683,20303,38343,43820, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 11 0.0753 PRO +chr17 64499619 64506289 FLT00000004 463 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 ENST00000225792.10 ENSG00000108654.15, 463 0.764 PRO +chr17 64498254 64506289 FLT00000005 44 - 64499922 64506119 103,169,207 13 2072,225,60,62,111,173,161,142,66,134,97,166,214, 0,2294,3755,3907,4184,4671,4933,5175,5548,5728,5967,6422,7821, FLG00000002 ENST00000225792.10 ENSG00000108654.15, 44 0.0726 PRO +chr17 64499621 64506289 FLT00000006 42 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 ENSG00000108654.15, 42 0.0693 PRO +chr20 35542077 35557633 FLT00000007 59 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 ENST00000348547.6 ENSG00000125991.19, 59 0.7662 PRO +chr20 35542189 35557634 FLT00000008 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 ENSG00000125991.19, 7 0.0909 NGO +chr20 35542440 35557632 FLT00000009 5 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 ENSG00000125991.19, 5 0.0649 NGO diff --git a/test/expected/test-transcriptome-mult-ends.isoforms.gtf b/test/expected/test-transcriptome-mult-ends.isoforms.gtf new file mode 100644 index 00000000..c8582d4f --- /dev/null +++ b/test/expected/test-transcriptome-mult-ends.isoforms.gtf @@ -0,0 +1,188 @@ +chr12 FLAIR gene 25205246 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25205246 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1233; productivity "PRO"; +chr12 FLAIR transcript 25205247 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR exon 25205247 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR 3UTR 25205247 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 98; frac_support 0.6712; productivity "PRO"; +chr12 FLAIR transcript 25206931 25250915 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR exon 25206931 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR 3UTR 25206931 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR exon 25250751 25250915 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250915 . - . gene_id "FLG00000001"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 11; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR gene 64498255 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64499620 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64499620 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR 3UTR 64499620 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.764; productivity "PRO"; +chr17 FLAIR transcript 64498255 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64498255 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR 3UTR 64498255 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 44; frac_support 0.0726; productivity "PRO"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR 3UTR 64499622 64502004 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0693; productivity "PRO"; +chr20 FLAIR gene 35542078 35557634 . + . gene_id "FLG00000003"; +chr20 FLAIR transcript 35542078 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542078 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR 5UTR 35542078 35542097 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR start_codon 35542098 35542100 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542098 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35557425 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35557425 35557504 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR 3UTR 35557505 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000008"; exon_number "11"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000009"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; diff --git a/test/expected/test-transcriptome-noannot.isoforms.bed b/test/expected/test-transcriptome-noannot.isoforms.bed index f529daf3..3252e736 100644 --- a/test/expected/test-transcriptome-noannot.isoforms.bed +++ b/test/expected/test-transcriptome-noannot.isoforms.bed @@ -1,7 +1,7 @@ -chr12 25205245 25250912 ENST00000256078.9_ENSG00000133703.12 18 - 25205245 25250912 217,95,2 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, -chr12 25205246 25250919 ENST00000311936.8_ENSG00000133703.12 99 - 25205246 25250919 217,95,2 5 4665,160,179,122,169, 0,20367,21987,40027,45504, -chr17 64499619 64506289 ENST00000225792.10_ENSG00000108654.15 478 - 64499619 64506289 217,95,2 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, -chr17 64499621 64506289 m54284U_201123_202240/71109407/ccs_ENSG00000108654.15 46 - 64499621 64506289 217,95,2 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, -chr20 35542077 35557633 ENST00000348547.6_ENSG00000125991.19 57 + 35542077 35557633 27,158,119 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, -chr20 35542189 35557634 m54284U_201123_202240/63112297/ccs_ENSG00000125991.19 7 + 35542189 35557634 27,158,119 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, -chr20 35542440 35557632 m54284U_201123_202240/13698678/ccs_ENSG00000125991.19 6 + 35542440 35557632 27,158,119 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, +chr12 25205245 25250912 FLT00000001 19 - 25250912 25250912 217,95,2 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 chr12:25205245-25250920:-, 19 0.1329 +chr12 25205246 25250919 FLT00000002 115 - 25250919 25250919 217,95,2 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 chr12:25205245-25250920:-, 115 0.8042 +chr17 64499619 64506289 FLT00000003 463 - 64506289 64506289 217,95,2 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 chr17:64498255-64506914:-, 463 0.8297 +chr17 64499621 64506289 FLT00000004 42 - 64506289 64506289 217,95,2 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 chr17:64498255-64506914:-, 42 0.0753 +chr20 35542077 35557633 FLT00000005 59 + 35557633 35557633 27,158,119 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 chr20:35542077-35557634:+, 59 0.831 +chr20 35542189 35557634 FLT00000006 7 + 35557634 35557634 27,158,119 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 chr20:35542077-35557634:+, 7 0.0986 +chr20 35542440 35557632 FLT00000007 5 + 35557632 35557632 27,158,119 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 chr20:35542077-35557634:+, 5 0.0704 diff --git a/test/expected/test-transcriptome-noannot.isoforms.gtf b/test/expected/test-transcriptome-noannot.isoforms.gtf index fea2330c..ce84db64 100644 --- a/test/expected/test-transcriptome-noannot.isoforms.gtf +++ b/test/expected/test-transcriptome-noannot.isoforms.gtf @@ -1,81 +1,81 @@ -chr12 FLAIR gene 25205246 25250919 . - . gene_id "ENSG00000133703.12"; -chr12 FLAIR transcript 25205246 25250912 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; -chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "0"; -chr12 FLAIR exon 25215437 25215560 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "1"; -chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "2"; -chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "3"; -chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "4"; -chr12 FLAIR exon 25250751 25250912 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "5"; -chr12 FLAIR transcript 25205247 25250919 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; -chr12 FLAIR exon 25205247 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "0"; -chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "1"; -chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "2"; -chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "3"; -chr12 FLAIR exon 25250751 25250919 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "4"; -chr17 FLAIR gene 64499620 64506289 . - . gene_id "ENSG00000108654.15"; -chr17 FLAIR transcript 64499620 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; -chr17 FLAIR exon 64499620 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "0"; -chr17 FLAIR exon 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "1"; -chr17 FLAIR exon 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "2"; -chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "3"; -chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "4"; -chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "5"; -chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "6"; -chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "7"; -chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "8"; -chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "9"; -chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "10"; -chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "11"; -chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "12"; -chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; -chr17 FLAIR exon 64499622 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "0"; -chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "1"; -chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "2"; -chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "3"; -chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "4"; -chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "5"; -chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "6"; -chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "7"; -chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "8"; -chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "9"; -chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "10"; -chr20 FLAIR gene 35542078 35557634 . + . gene_id "ENSG00000125991.19"; -chr20 FLAIR transcript 35542078 35557633 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; -chr20 FLAIR exon 35542078 35542185 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "0"; -chr20 FLAIR exon 35542323 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "1"; -chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "2"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "3"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "4"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "5"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "6"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "7"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "8"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "9"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "10"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "11"; -chr20 FLAIR exon 35557425 35557633 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "12"; -chr20 FLAIR transcript 35542190 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; -chr20 FLAIR exon 35542190 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "0"; -chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "1"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "2"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "3"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "4"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "5"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "6"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "7"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "8"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "9"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "10"; -chr20 FLAIR exon 35557425 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "11"; -chr20 FLAIR transcript 35542441 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; -chr20 FLAIR exon 35542441 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "0"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "1"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "2"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "3"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "4"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "5"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "6"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "7"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "8"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "9"; -chr20 FLAIR exon 35557425 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "10"; +chr12 FLAIR gene 25205246 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25205246 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 19; frac_support 0.1329; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 19; frac_support 0.1329; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 19; frac_support 0.1329; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 19; frac_support 0.1329; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 19; frac_support 0.1329; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 19; frac_support 0.1329; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 19; frac_support 0.1329; +chr12 FLAIR transcript 25205247 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 115; frac_support 0.8042; +chr12 FLAIR exon 25205247 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 115; frac_support 0.8042; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 115; frac_support 0.8042; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 115; frac_support 0.8042; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 115; frac_support 0.8042; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_gene_mappings "chr12:25205245-25250920:-"; read_support 115; frac_support 0.8042; +chr17 FLAIR gene 64499620 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64499620 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64499620 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 463; frac_support 0.8297; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "chr17:64498255-64506914:-"; read_support 42; frac_support 0.0753; +chr20 FLAIR gene 35542078 35557634 . + . gene_id "FLG00000003"; +chr20 FLAIR transcript 35542078 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35542078 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR exon 35557425 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 59; frac_support 0.831; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "11"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 7; frac_support 0.0986; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_gene_mappings "chr20:35542077-35557634:+"; read_support 5; frac_support 0.0704; diff --git a/test/expected/test-transcriptome-partition.isoforms.bed b/test/expected/test-transcriptome-partition.isoforms.bed index aff4ad8e..3a70a109 100644 --- a/test/expected/test-transcriptome-partition.isoforms.bed +++ b/test/expected/test-transcriptome-partition.isoforms.bed @@ -1,7 +1,7 @@ -chr12 25205245 25250912 ENST00000256078.9_ENSG00000133703.12 18 - 25205245 25250912 217,95,2 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, -chr12 25205246 25250919 ENST00000311936.8_ENSG00000133703.12 99 - 25205246 25250919 217,95,2 5 4665,160,179,122,169, 0,20367,21987,40027,45504, -chr17 64499619 64506289 ENST00000225792.10_ENSG00000108654.15 478 - 64499619 64506289 217,95,2 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, -chr17 64499621 64506289 m54284U_201123_202240/71109407/ccs_ENSG00000108654.15 46 - 64499621 64506289 217,95,2 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, -chr20 35542077 35557633 ENST00000348547.6_ENSG00000125991.19 63 + 35542077 35557633 27,158,119 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, -chr20 35542189 35557634 m54284U_201123_202240/63112297/ccs_ENSG00000125991.19 7 + 35542189 35557634 27,158,119 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, -chr20 35542440 35557632 m54284U_201123_202240/13698678/ccs_ENSG00000125991.19 6 + 35542440 35557632 27,158,119 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, +chr12 25205245 25250912 FLT00000001 19 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 ENST00000256078.9 ENSG00000133703.12, 19 0.1319 PRO +chr12 25205246 25250919 FLT00000002 115 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 115 0.7986 PRO +chr17 64499619 64506289 FLT00000003 463 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 ENST00000225792.10 ENSG00000108654.15, 463 0.8297 PRO +chr17 64499621 64506289 FLT00000004 42 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 ENSG00000108654.15, 42 0.0753 PRO +chr20 35542077 35557633 FLT00000005 59 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 ENST00000348547.6 ENSG00000125991.19, 59 0.7662 PRO +chr20 35542189 35557634 FLT00000006 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 ENSG00000125991.19, 7 0.0909 NGO +chr20 35542440 35557632 FLT00000007 5 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 ENSG00000125991.19, 5 0.0649 NGO diff --git a/test/expected/test-transcriptome-partition.isoforms.gtf b/test/expected/test-transcriptome-partition.isoforms.gtf index fea2330c..017e5d78 100644 --- a/test/expected/test-transcriptome-partition.isoforms.gtf +++ b/test/expected/test-transcriptome-partition.isoforms.gtf @@ -1,81 +1,144 @@ -chr12 FLAIR gene 25205246 25250919 . - . gene_id "ENSG00000133703.12"; -chr12 FLAIR transcript 25205246 25250912 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; -chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "0"; -chr12 FLAIR exon 25215437 25215560 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "1"; -chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "2"; -chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "3"; -chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "4"; -chr12 FLAIR exon 25250751 25250912 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "5"; -chr12 FLAIR transcript 25205247 25250919 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; -chr12 FLAIR exon 25205247 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "0"; -chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "1"; -chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "2"; -chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "3"; -chr12 FLAIR exon 25250751 25250919 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "4"; -chr17 FLAIR gene 64499620 64506289 . - . gene_id "ENSG00000108654.15"; -chr17 FLAIR transcript 64499620 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; -chr17 FLAIR exon 64499620 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "0"; -chr17 FLAIR exon 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "1"; -chr17 FLAIR exon 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "2"; -chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "3"; -chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "4"; -chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "5"; -chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "6"; -chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "7"; -chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "8"; -chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "9"; -chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "10"; -chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "11"; -chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "12"; -chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; -chr17 FLAIR exon 64499622 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "0"; -chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "1"; -chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "2"; -chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "3"; -chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "4"; -chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "5"; -chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "6"; -chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "7"; -chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "8"; -chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "9"; -chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "10"; -chr20 FLAIR gene 35542078 35557634 . + . gene_id "ENSG00000125991.19"; -chr20 FLAIR transcript 35542078 35557633 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; -chr20 FLAIR exon 35542078 35542185 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "0"; -chr20 FLAIR exon 35542323 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "1"; -chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "2"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "3"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "4"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "5"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "6"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "7"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "8"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "9"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "10"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "11"; -chr20 FLAIR exon 35557425 35557633 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "12"; -chr20 FLAIR transcript 35542190 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; -chr20 FLAIR exon 35542190 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "0"; -chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "1"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "2"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "3"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "4"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "5"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "6"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "7"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "8"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "9"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "10"; -chr20 FLAIR exon 35557425 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "11"; -chr20 FLAIR transcript 35542441 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; -chr20 FLAIR exon 35542441 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "0"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "1"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "2"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "3"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "4"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "5"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "6"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "7"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "8"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "9"; -chr20 FLAIR exon 35557425 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "10"; +chr12 FLAIR gene 25205246 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25205246 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR transcript 25205247 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25205247 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 3UTR 25205247 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr17 FLAIR gene 64499620 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64499620 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64499620 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR 3UTR 64499620 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR 3UTR 64499622 64502004 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr20 FLAIR gene 35542078 35557634 . + . gene_id "FLG00000003"; +chr20 FLAIR transcript 35542078 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542078 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR 5UTR 35542078 35542097 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR start_codon 35542098 35542100 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542098 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35557425 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35557425 35557504 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR 3UTR 35557505 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "11"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; diff --git a/test/expected/test-transcriptome-predcds.isoforms.CDS.bed b/test/expected/test-transcriptome-predcds.isoforms.CDS.bed deleted file mode 100644 index 3f09d2e3..00000000 --- a/test/expected/test-transcriptome-predcds.isoforms.CDS.bed +++ /dev/null @@ -1,7 +0,0 @@ -chr12 25205245 25250912 ENST00000256078.9_PRO_ENSG00000133703.12 18 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, -chr12 25205246 25250919 ENST00000311936.8_PRO_ENSG00000133703.12 99 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, -chr17 64499619 64506289 ENST00000225792.10_PRO_ENSG00000108654.15 478 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, -chr17 64499621 64506289 m54284U_201123_202240/71109407/ccs_PRO_ENSG00000108654.15 46 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, -chr20 35542077 35557633 ENST00000348547.6_PRO_ENSG00000125991.19 63 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, -chr20 35542189 35557634 m54284U_201123_202240/63112297/ccs_NGO_ENSG00000125991.19 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, -chr20 35542440 35557632 m54284U_201123_202240/13698678/ccs_NGO_ENSG00000125991.19 6 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, diff --git a/test/expected/test-transcriptome-predcds.isoforms.bed b/test/expected/test-transcriptome-predcds.isoforms.bed index aff4ad8e..e09146ad 100644 --- a/test/expected/test-transcriptome-predcds.isoforms.bed +++ b/test/expected/test-transcriptome-predcds.isoforms.bed @@ -1,7 +1,7 @@ -chr12 25205245 25250912 ENST00000256078.9_ENSG00000133703.12 18 - 25205245 25250912 217,95,2 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, -chr12 25205246 25250919 ENST00000311936.8_ENSG00000133703.12 99 - 25205246 25250919 217,95,2 5 4665,160,179,122,169, 0,20367,21987,40027,45504, -chr17 64499619 64506289 ENST00000225792.10_ENSG00000108654.15 478 - 64499619 64506289 217,95,2 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, -chr17 64499621 64506289 m54284U_201123_202240/71109407/ccs_ENSG00000108654.15 46 - 64499621 64506289 217,95,2 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, -chr20 35542077 35557633 ENST00000348547.6_ENSG00000125991.19 63 + 35542077 35557633 27,158,119 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, -chr20 35542189 35557634 m54284U_201123_202240/63112297/ccs_ENSG00000125991.19 7 + 35542189 35557634 27,158,119 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, -chr20 35542440 35557632 m54284U_201123_202240/13698678/ccs_ENSG00000125991.19 6 + 35542440 35557632 27,158,119 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, +chr12 25205245 25250912 ENST00000256078.9_ENSG00000133703.12 19 - 25205245 25250912 217,95,2 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, +chr12 25205246 25250919 ENST00000311936.8_ENSG00000133703.12 115 - 25205246 25250919 217,95,2 5 4665,160,179,122,169, 0,20367,21987,40027,45504, +chr17 64499619 64506289 ENST00000225792.10_ENSG00000108654.15 467 - 64499619 64506289 217,95,2 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, +chr17 64499621 64506289 FLISO347263681705857404_ENSG00000108654.15 42 - 64499621 64506289 217,95,2 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, +chr20 35542077 35557633 ENST00000348547.6_ENSG00000125991.19 59 + 35542077 35557633 27,158,119 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, +chr20 35542189 35557634 FLISO7307935434887160482_ENSG00000125991.19 7 + 35542189 35557634 27,158,119 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, +chr20 35542440 35557632 FLISO7134586310353210111_ENSG00000125991.19 5 + 35542440 35557632 27,158,119 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, diff --git a/test/expected/test-transcriptome-predcds.isoforms.gtf b/test/expected/test-transcriptome-predcds.isoforms.gtf index fea2330c..c33392f6 100644 --- a/test/expected/test-transcriptome-predcds.isoforms.gtf +++ b/test/expected/test-transcriptome-predcds.isoforms.gtf @@ -27,18 +27,18 @@ chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcrip chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "10"; chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "11"; chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "12"; -chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; -chr17 FLAIR exon 64499622 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "0"; -chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "1"; -chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "2"; -chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "3"; -chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "4"; -chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "5"; -chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "6"; -chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "7"; -chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "8"; -chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "9"; -chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "10"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "0"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "1"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "2"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "3"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "4"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "5"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "6"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "7"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "8"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "9"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "FLISO347263681705857404"; exon_number "10"; chr20 FLAIR gene 35542078 35557634 . + . gene_id "ENSG00000125991.19"; chr20 FLAIR transcript 35542078 35557633 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; chr20 FLAIR exon 35542078 35542185 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "0"; @@ -54,28 +54,28 @@ chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcrip chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "10"; chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "11"; chr20 FLAIR exon 35557425 35557633 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "12"; -chr20 FLAIR transcript 35542190 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; -chr20 FLAIR exon 35542190 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "0"; -chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "1"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "2"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "3"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "4"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "5"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "6"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "7"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "8"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "9"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "10"; -chr20 FLAIR exon 35557425 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "11"; -chr20 FLAIR transcript 35542441 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; -chr20 FLAIR exon 35542441 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "0"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "1"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "2"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "3"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "4"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "5"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "6"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "7"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "8"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "9"; -chr20 FLAIR exon 35557425 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "10"; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "0"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "1"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "2"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "3"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "4"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "5"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "6"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "7"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "8"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "9"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "10"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7307935434887160482"; exon_number "11"; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "0"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "1"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "2"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "3"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "4"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "5"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "6"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "7"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "8"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "9"; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "FLISO7134586310353210111"; exon_number "10"; diff --git a/test/expected/test-transcriptome-readthrough.isoforms.bed b/test/expected/test-transcriptome-readthrough.isoforms.bed new file mode 100644 index 00000000..3843aaab --- /dev/null +++ b/test/expected/test-transcriptome-readthrough.isoforms.bed @@ -0,0 +1,2 @@ +chr17 64477784 64506289 FLT00000001 12 - 64477822 64506119 103,169,207 19 204,101,81,141,174,106,127,225,60,62,111,173,161,142,66,134,97,166,214, 0,2504,5134,7943,13011,14882,15110,22764,24225,24377,24654,25141,25403,25645,26018,26198,26437,26892,28291, FLG00000001 ENSG00000108654.16,ENSG00000256525.8, 12 1.0 PRO +chr17 64498253 64506289 FLT00000002 18 - 64499922 64506119 103,169,207 13 2073,225,60,62,111,173,161,142,66,134,97,166,214, 0,2295,3756,3908,4185,4672,4934,5176,5549,5729,5968,6423,7822, FLG00000002 ENST00000225792.10 ENSG00000108654.16, 18 1.0 PRO diff --git a/test/expected/test-transcriptome-readthrough.isoforms.gtf b/test/expected/test-transcriptome-readthrough.isoforms.gtf new file mode 100644 index 00000000..f3293cc9 --- /dev/null +++ b/test/expected/test-transcriptome-readthrough.isoforms.gtf @@ -0,0 +1,74 @@ +chr17 FLAIR gene 64477785 64506289 . - . gene_id "FLG00000001"; +chr17 FLAIR transcript 64477785 64506289 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64477785 64477988 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR 3UTR 64477785 64477822 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64477823 64477988 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64480289 64480389 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64480289 64480389 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64482919 64482999 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64482919 64482999 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64485728 64485868 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64485728 64485868 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64490796 64490969 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64490796 64490969 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64492667 64492772 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64492667 64492772 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64492895 64493021 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "6"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64492895 64493021 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "6"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "7"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "7"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "8"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "8"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "9"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "9"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "10"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "10"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "11"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "11"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "12"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "12"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "13"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "13"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "14"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "14"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "15"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "15"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "16"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "16"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "17"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "17"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "18"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "18"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "18"; ref_gene_mappings "ENSG00000108654.16"; ref_gene_mappings "ENSG00000256525.8"; read_support 12; frac_support 1.0; productivity "PRO"; +chr17 FLAIR gene 64498254 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64498254 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64498254 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR 3UTR 64498254 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000002"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.16"; read_support 18; frac_support 1.0; productivity "PRO"; diff --git a/test/expected/test-transcriptome-seg1.isoforms.bed b/test/expected/test-transcriptome-seg1.isoforms.bed index 31814657..93939ac3 100644 --- a/test/expected/test-transcriptome-seg1.isoforms.bed +++ b/test/expected/test-transcriptome-seg1.isoforms.bed @@ -1 +1 @@ -chr20 32186476 32189823 26f5ea46-63fc-4b98-9388-7a515f99e2aa_ENSG00000293164.1 2 - 32186476 32189823 99,99,99 1 3347, 0, +chr20 32186476 32189823 FLT00000001 7 - 32186476 32186476 0,0,0 1 3347, 0, FLG00000001 ENSG00000293164.1, 7 1.0 NGO diff --git a/test/expected/test-transcriptome-seg1.isoforms.gtf b/test/expected/test-transcriptome-seg1.isoforms.gtf index 7b4a22cc..efb32067 100644 --- a/test/expected/test-transcriptome-seg1.isoforms.gtf +++ b/test/expected/test-transcriptome-seg1.isoforms.gtf @@ -1,3 +1,3 @@ -chr20 FLAIR gene 32186477 32189823 . - . gene_id "ENSG00000293164.1"; -chr20 FLAIR transcript 32186477 32189823 . - . gene_id "ENSG00000293164.1"; transcript_id "26f5ea46-63fc-4b98-9388-7a515f99e2aa"; -chr20 FLAIR exon 32186477 32189823 . - . gene_id "ENSG00000293164.1"; transcript_id "26f5ea46-63fc-4b98-9388-7a515f99e2aa"; exon_number "0"; +chr20 FLAIR gene 32186477 32189823 . - . gene_id "FLG00000001"; +chr20 FLAIR transcript 32186477 32189823 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_gene_mappings "ENSG00000293164.1"; read_support 7; frac_support 1.0; productivity "NGO"; +chr20 FLAIR exon 32186477 32189823 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_gene_mappings "ENSG00000293164.1"; read_support 7; frac_support 1.0; productivity "NGO"; diff --git a/test/expected/test-transcriptome-trust-ends.isoforms.bed b/test/expected/test-transcriptome-trust-ends.isoforms.bed new file mode 100644 index 00000000..9f627254 --- /dev/null +++ b/test/expected/test-transcriptome-trust-ends.isoforms.bed @@ -0,0 +1,7 @@ +chr12 25205245 25250912 FLT00000001 18 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 ENST00000256078.9 ENSG00000133703.12, 18 0.1463 PRO +chr12 25205246 25250919 FLT00000002 96 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 96 0.7805 PRO +chr17 64499619 64506289 FLT00000003 464 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 ENST00000225792.10 ENSG00000108654.15, 464 0.833 PRO +chr17 64499621 64506289 FLT00000004 42 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 ENSG00000108654.15, 42 0.0754 PRO +chr20 35542077 35557633 FLT00000005 54 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 ENST00000348547.6 ENSG00000125991.19, 54 0.7606 PRO +chr20 35542189 35557634 FLT00000006 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 ENSG00000125991.19, 7 0.0986 NGO +chr20 35542440 35557632 FLT00000007 5 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 ENSG00000125991.19, 5 0.0704 NGO diff --git a/test/expected/test-transcriptome-trust-ends.isoforms.gtf b/test/expected/test-transcriptome-trust-ends.isoforms.gtf new file mode 100644 index 00000000..5aa7922f --- /dev/null +++ b/test/expected/test-transcriptome-trust-ends.isoforms.gtf @@ -0,0 +1,144 @@ +chr12 FLAIR gene 25205246 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25205246 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 18; frac_support 0.1463; productivity "PRO"; +chr12 FLAIR transcript 25205247 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR exon 25205247 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR 3UTR 25205247 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 96; frac_support 0.7805; productivity "PRO"; +chr17 FLAIR gene 64499620 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64499620 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64499620 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR 3UTR 64499620 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 464; frac_support 0.833; productivity "PRO"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR 3UTR 64499622 64502004 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0754; productivity "PRO"; +chr20 FLAIR gene 35542078 35557634 . + . gene_id "FLG00000003"; +chr20 FLAIR transcript 35542078 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35542078 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR 5UTR 35542078 35542097 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR start_codon 35542098 35542100 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35542098 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR exon 35557425 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR CDS 35557425 35557504 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR 3UTR 35557505 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 54; frac_support 0.7606; productivity "PRO"; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "11"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0986; productivity "NGO"; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0704; productivity "NGO"; diff --git a/test/expected/test-transcriptome.isoforms.CDS.as b/test/expected/test-transcriptome.isoforms.CDS.as new file mode 100644 index 00000000..0d5922be --- /dev/null +++ b/test/expected/test-transcriptome.isoforms.CDS.as @@ -0,0 +1,22 @@ +table testtranscriptomeisoformsCDS +"FLAIR isoforms for test-transcriptome.isoforms.CDS" +( +string chrom; "Reference sequence chromosome or scaffold" +uint chromStart; "Start position of feature on chromosome" +uint chromEnd; "End position of feature on chromosome" +string name; "Name of gene" +uint score; "Score" +char[1] strand; "+ or - for strand" +uint thickStart; "Coding region start" +uint thickEnd; "Coding region end" +uint itemRgb; "An RGB value of the form R,G,B (e.g. 255,0,0)" +int blockCount; "The number of blocks (exons) in the BED line" +int[blockCount] blockSizes; "A comma-separated list of the block sizes. The number of items in this list should correspond to blockCount" +int[blockCount] chromStarts; "A comma-separated list of block starts. All of the blockStart positions should be calculated relative to chromStart. The number of items in this list should correspond to blockCount" +string gene_id; "unique gene ID generated by FLAIR" +string ref_transcript_id; "transcript_id from reference gtf file or generated by FLAIR" +string gene_desc; "gene_id from reference gtf file or novel gene region identified by FLAIR" +int read_support; "number of full-length reads supporting transcript" +float frac_support; "isoform support as fraction of total reads for gene" +string productivity; "PRO (productive), PTC (premature termination codon, i.e. unproductive), NGO (no start codon), or NST (has start codon but no stop codon)" +) \ No newline at end of file diff --git a/test/expected/test-transcriptome.isoforms.CDS.bed b/test/expected/test-transcriptome.isoforms.CDS.bed new file mode 100644 index 00000000..acbe0ff4 --- /dev/null +++ b/test/expected/test-transcriptome.isoforms.CDS.bed @@ -0,0 +1,7 @@ +chr12 25205245 25250912 FLT00000001 19 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 ENST00000256078.9 ENSG00000133703.12 19 0.1319 PRO +chr12 25205246 25250919 FLT00000002 115 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 ENST00000311936.8 ENSG00000133703.12 115 0.7986 PRO +chr17 64499619 64506289 FLT00000003 463 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 ENST00000225792.10 ENSG00000108654.15 463 0.8297 PRO +chr17 64499621 64506289 FLT00000004 42 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 ENSG00000108654.15 42 0.0753 PRO +chr20 35542077 35557633 FLT00000005 59 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 ENST00000348547.6 ENSG00000125991.19 59 0.7662 PRO +chr20 35542189 35557634 FLT00000006 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 ENSG00000125991.19 7 0.0909 NGO +chr20 35542440 35557632 FLT00000007 5 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 ENSG00000125991.19 5 0.0649 NGO diff --git a/test/expected/test-transcriptome.isoforms.as b/test/expected/test-transcriptome.isoforms.as new file mode 100644 index 00000000..7b58ff44 --- /dev/null +++ b/test/expected/test-transcriptome.isoforms.as @@ -0,0 +1,22 @@ +table testtranscriptome +"FLAIR isoforms for test-transcriptome" +( +string chrom; "Reference sequence chromosome or scaffold" +uint chromStart; "Start position of feature on chromosome" +uint chromEnd; "End position of feature on chromosome" +string name; "Name of gene" +uint score; "Score" +char[1] strand; "+ or - for strand" +uint thickStart; "Coding region start" +uint thickEnd; "Coding region end" +uint itemRgb; "An RGB value of the form R,G,B (e.g. 255,0,0)" +int blockCount; "The number of blocks (exons) in the BED line" +int[blockCount] blockSizes; "A comma-separated list of the block sizes. The number of items in this list should correspond to blockCount" +int[blockCount] chromStarts; "A comma-separated list of block starts. All of the blockStart positions should be calculated relative to chromStart. The number of items in this list should correspond to blockCount" +string gene_id; "unique gene ID generated by FLAIR" +string ref_transcript_id; "transcript_id from reference gtf file or generated by FLAIR" +string gene_desc; "gene_id from reference gtf file or novel gene region identified by FLAIR" +int read_support; "number of full-length reads supporting transcript" +float frac_support; "isoform support as fraction of total reads for gene" +string productivity; "PRO (productive), PTC (premature termination codon, i.e. unproductive), NGO (no start codon), or NST (has start codon but no stop codon)" +) \ No newline at end of file diff --git a/test/expected/test-transcriptome.isoforms.bed b/test/expected/test-transcriptome.isoforms.bed index aff4ad8e..3a70a109 100644 --- a/test/expected/test-transcriptome.isoforms.bed +++ b/test/expected/test-transcriptome.isoforms.bed @@ -1,7 +1,7 @@ -chr12 25205245 25250912 ENST00000256078.9_ENSG00000133703.12 18 - 25205245 25250912 217,95,2 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, -chr12 25205246 25250919 ENST00000311936.8_ENSG00000133703.12 99 - 25205246 25250919 217,95,2 5 4665,160,179,122,169, 0,20367,21987,40027,45504, -chr17 64499619 64506289 ENST00000225792.10_ENSG00000108654.15 478 - 64499619 64506289 217,95,2 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, -chr17 64499621 64506289 m54284U_201123_202240/71109407/ccs_ENSG00000108654.15 46 - 64499621 64506289 217,95,2 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, -chr20 35542077 35557633 ENST00000348547.6_ENSG00000125991.19 63 + 35542077 35557633 27,158,119 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, -chr20 35542189 35557634 m54284U_201123_202240/63112297/ccs_ENSG00000125991.19 7 + 35542189 35557634 27,158,119 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, -chr20 35542440 35557632 m54284U_201123_202240/13698678/ccs_ENSG00000125991.19 6 + 35542440 35557632 27,158,119 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, +chr12 25205245 25250912 FLT00000001 19 - 25215440 25245384 103,169,207 6 4666,124,160,179,122,162, 0,10191,20368,21988,40028,45505, FLG00000001 ENST00000256078.9 ENSG00000133703.12, 19 0.1319 PRO +chr12 25205246 25250919 FLT00000002 115 - 25209794 25245384 103,169,207 5 4665,160,179,122,169, 0,20367,21987,40027,45504, FLG00000001 ENST00000311936.8 ENSG00000133703.12, 115 0.7986 PRO +chr17 64499619 64506289 FLT00000003 463 - 64499922 64506119 103,169,207 13 707,225,60,62,111,173,161,142,66,134,97,166,214, 0,929,2390,2542,2819,3306,3568,3810,4183,4363,4602,5057,6456, FLG00000002 ENST00000225792.10 ENSG00000108654.15, 463 0.8297 PRO +chr17 64499621 64506289 FLT00000004 42 - 64502004 64506119 103,169,207 11 2448,62,111,173,161,142,66,134,97,166,214, 0,2540,2817,3304,3566,3808,4181,4361,4600,5055,6454, FLG00000002 ENSG00000108654.15, 42 0.0753 PRO +chr20 35542077 35557633 FLT00000005 59 + 35542097 35557504 103,169,207 13 108,71,88,120,94,166,58,32,97,65,137,56,209, 0,245,435,744,5334,6431,6730,12966,13955,14129,14895,15116,15347, FLG00000003 ENST00000348547.6 ENSG00000125991.19, 59 0.7662 PRO +chr20 35542189 35557634 FLT00000006 7 + 35542189 35542189 0,0,0 12 204,88,120,94,166,58,32,97,65,137,56,210, 0,323,632,5222,6319,6618,12854,13843,14017,14783,15004,15235, FLG00000003 ENSG00000125991.19, 7 0.0909 NGO +chr20 35542440 35557632 FLT00000007 5 + 35542440 35542440 0,0,0 11 160,120,94,166,58,32,97,65,137,56,208, 0,381,4971,6068,6367,12603,13592,13766,14532,14753,14984, FLG00000003 ENSG00000125991.19, 5 0.0649 NGO diff --git a/test/expected/test-transcriptome.isoforms.gtf b/test/expected/test-transcriptome.isoforms.gtf index fea2330c..017e5d78 100644 --- a/test/expected/test-transcriptome.isoforms.gtf +++ b/test/expected/test-transcriptome.isoforms.gtf @@ -1,81 +1,144 @@ -chr12 FLAIR gene 25205246 25250919 . - . gene_id "ENSG00000133703.12"; -chr12 FLAIR transcript 25205246 25250912 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; -chr12 FLAIR exon 25205246 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "0"; -chr12 FLAIR exon 25215437 25215560 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "1"; -chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "2"; -chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "3"; -chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "4"; -chr12 FLAIR exon 25250751 25250912 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000256078.9"; exon_number "5"; -chr12 FLAIR transcript 25205247 25250919 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; -chr12 FLAIR exon 25205247 25209911 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "0"; -chr12 FLAIR exon 25225614 25225773 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "1"; -chr12 FLAIR exon 25227234 25227412 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "2"; -chr12 FLAIR exon 25245274 25245395 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "3"; -chr12 FLAIR exon 25250751 25250919 . - . gene_id "ENSG00000133703.12"; transcript_id "ENST00000311936.8"; exon_number "4"; -chr17 FLAIR gene 64499620 64506289 . - . gene_id "ENSG00000108654.15"; -chr17 FLAIR transcript 64499620 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; -chr17 FLAIR exon 64499620 64500326 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "0"; -chr17 FLAIR exon 64500549 64500773 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "1"; -chr17 FLAIR exon 64502010 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "2"; -chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "3"; -chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "4"; -chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "5"; -chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "6"; -chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "7"; -chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "8"; -chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "9"; -chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "10"; -chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "11"; -chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "ENST00000225792.10"; exon_number "12"; -chr17 FLAIR transcript 64499622 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; -chr17 FLAIR exon 64499622 64502069 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "0"; -chr17 FLAIR exon 64502162 64502223 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "1"; -chr17 FLAIR exon 64502439 64502549 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "2"; -chr17 FLAIR exon 64502926 64503098 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "3"; -chr17 FLAIR exon 64503188 64503348 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "4"; -chr17 FLAIR exon 64503430 64503571 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "5"; -chr17 FLAIR exon 64503803 64503868 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "6"; -chr17 FLAIR exon 64503983 64504116 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "7"; -chr17 FLAIR exon 64504222 64504318 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "8"; -chr17 FLAIR exon 64504677 64504842 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "9"; -chr17 FLAIR exon 64506076 64506289 . - . gene_id "ENSG00000108654.15"; transcript_id "m54284U_201123_202240/71109407/ccs"; exon_number "10"; -chr20 FLAIR gene 35542078 35557634 . + . gene_id "ENSG00000125991.19"; -chr20 FLAIR transcript 35542078 35557633 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; -chr20 FLAIR exon 35542078 35542185 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "0"; -chr20 FLAIR exon 35542323 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "1"; -chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "2"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "3"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "4"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "5"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "6"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "7"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "8"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "9"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "10"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "11"; -chr20 FLAIR exon 35557425 35557633 . + . gene_id "ENSG00000125991.19"; transcript_id "ENST00000348547.6"; exon_number "12"; -chr20 FLAIR transcript 35542190 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; -chr20 FLAIR exon 35542190 35542393 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "0"; -chr20 FLAIR exon 35542513 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "1"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "2"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "3"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "4"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "5"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "6"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "7"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "8"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "9"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "10"; -chr20 FLAIR exon 35557425 35557634 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/63112297/ccs"; exon_number "11"; -chr20 FLAIR transcript 35542441 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; -chr20 FLAIR exon 35542441 35542600 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "0"; -chr20 FLAIR exon 35542822 35542941 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "1"; -chr20 FLAIR exon 35547412 35547505 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "2"; -chr20 FLAIR exon 35548509 35548674 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "3"; -chr20 FLAIR exon 35548808 35548865 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "4"; -chr20 FLAIR exon 35555044 35555075 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "5"; -chr20 FLAIR exon 35556033 35556129 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "6"; -chr20 FLAIR exon 35556207 35556271 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "7"; -chr20 FLAIR exon 35556973 35557109 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "8"; -chr20 FLAIR exon 35557194 35557249 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "9"; -chr20 FLAIR exon 35557425 35557632 . + . gene_id "ENSG00000125991.19"; transcript_id "m54284U_201123_202240/13698678/ccs"; exon_number "10"; +chr12 FLAIR gene 25205246 25250919 . - . gene_id "FLG00000001"; +chr12 FLAIR transcript 25205246 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 3UTR 25205246 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "0"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25215437 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 3UTR 25215437 25215440 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25215441 25215560 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "1"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "2"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "3"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "4"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR exon 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250912 . - . gene_id "FLG00000001"; transcript_id "FLT00000001"; exon_number "5"; ref_transcript_id "ENST00000256078.9"; ref_gene_mappings "ENSG00000133703.12"; read_support 19; frac_support 0.1319; productivity "PRO"; +chr12 FLAIR transcript 25205247 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25205247 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 3UTR 25205247 25209794 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25209795 25209911 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "0"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25225614 25225773 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "1"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25227234 25227412 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "2"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25245274 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR CDS 25245274 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR start_codon 25245382 25245384 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 5UTR 25245385 25245395 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "3"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR exon 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr12 FLAIR 5UTR 25250751 25250919 . - . gene_id "FLG00000001"; transcript_id "FLT00000002"; exon_number "4"; ref_transcript_id "ENST00000311936.8"; ref_gene_mappings "ENSG00000133703.12"; read_support 115; frac_support 0.7986; productivity "PRO"; +chr17 FLAIR gene 64499620 64506289 . - . gene_id "FLG00000002"; +chr17 FLAIR transcript 64499620 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64499620 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR 3UTR 64499620 64499922 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64499923 64500326 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "0"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64500549 64500773 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "1"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502010 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "2"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "3"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "4"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "5"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "6"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "7"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "8"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "9"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "10"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "11"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000003"; exon_number "12"; ref_transcript_id "ENST00000225792.10"; ref_gene_mappings "ENSG00000108654.15"; read_support 463; frac_support 0.8297; productivity "PRO"; +chr17 FLAIR transcript 64499622 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64499622 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR 3UTR 64499622 64502004 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502005 64502069 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "0"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502162 64502223 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "1"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502439 64502549 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "2"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64502926 64503098 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "3"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503188 64503348 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "4"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503430 64503571 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "5"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503803 64503868 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "6"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64503983 64504116 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "7"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64504222 64504318 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "8"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64504677 64504842 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "9"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR exon 64506076 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR CDS 64506076 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR start_codon 64506117 64506119 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr17 FLAIR 5UTR 64506120 64506289 . - . gene_id "FLG00000002"; transcript_id "FLT00000004"; exon_number "10"; ref_gene_mappings "ENSG00000108654.15"; read_support 42; frac_support 0.0753; productivity "PRO"; +chr20 FLAIR gene 35542078 35557634 . + . gene_id "FLG00000003"; +chr20 FLAIR transcript 35542078 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542078 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR 5UTR 35542078 35542097 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR start_codon 35542098 35542100 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542098 35542185 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "0"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542323 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "1"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "2"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "3"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "4"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "5"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "6"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "7"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "8"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "9"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "10"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "11"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR exon 35557425 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR CDS 35557425 35557504 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR 3UTR 35557505 35557633 . + . gene_id "FLG00000003"; transcript_id "FLT00000005"; exon_number "12"; ref_transcript_id "ENST00000348547.6"; ref_gene_mappings "ENSG00000125991.19"; read_support 59; frac_support 0.7662; productivity "PRO"; +chr20 FLAIR transcript 35542190 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542190 35542393 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542513 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR exon 35557425 35557634 . + . gene_id "FLG00000003"; transcript_id "FLT00000006"; exon_number "11"; ref_gene_mappings "ENSG00000125991.19"; read_support 7; frac_support 0.0909; productivity "NGO"; +chr20 FLAIR transcript 35542441 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35542441 35542600 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "0"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35542822 35542941 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "1"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35547412 35547505 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "2"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35548509 35548674 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "3"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35548808 35548865 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "4"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35555044 35555075 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "5"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556033 35556129 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "6"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556207 35556271 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "7"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35556973 35557109 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "8"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35557194 35557249 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "9"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; +chr20 FLAIR exon 35557425 35557632 . + . gene_id "FLG00000003"; transcript_id "FLT00000007"; exon_number "10"; ref_gene_mappings "ENSG00000125991.19"; read_support 5; frac_support 0.0649; productivity "NGO"; diff --git a/test/expected/test-variants.aaseq.counts.tsv b/test/expected/test-variants.aaseq.counts.tsv index 7bed7295..3d4ab142 100644 --- a/test/expected/test-variants.aaseq.counts.tsv +++ b/test/expected/test-variants.aaseq.counts.tsv @@ -1,6 +1,6 @@ aaseqid_gene s1 -aaseq1_ENSG00000108654.15 8 -aaseq2_ENSG00000108654.15 12 +aaseq1_ENSG00000108654.15 7 +aaseq2_ENSG00000108654.15 10 NOTPRO_ENSG00000108654.15 6 aaseq3_ENSG00000133703.12 2 aaseq4_ENSG00000133703.12 6 diff --git a/test/expected/test-variants.isoswithvars.counts.tsv b/test/expected/test-variants.isoswithvars.counts.tsv index 6d407fa7..a01932af 100644 --- a/test/expected/test-variants.isoswithvars.counts.tsv +++ b/test/expected/test-variants.isoswithvars.counts.tsv @@ -1,6 +1,6 @@ isoname varsontranscript varsongenome s1 -1-ENST00000225792.10_ENSG00000108654.15 chr17..-..64500016..1921..S..A 8 -2-ENST00000225792.10_ENSG00000108654.15 nomuts 12 +1-ENST00000225792.10_ENSG00000108654.15 chr17..-..64500016..1921..S..A 7 +2-ENST00000225792.10_ENSG00000108654.15 nomuts 10 1-ENST00000256078.9_ENSG00000133703.12 nomuts 2 1-ENST00000311936.8_ENSG00000133703.12 chr12..-..25207204..3347..S..G,chr12..-..25208140..2411..S..T,chr12..-..25208157..2394..S..G,chr12..-..25208208..2343..S..C,chr12..-..25208712..1839..S..G,chr12..-..25209531..1020..S..T,chr12..-..25209843..708..S..C 2 2-ENST00000311936.8_ENSG00000133703.12 chr12..-..25207204..3347..S..G,chr12..-..25208140..2411..S..T,chr12..-..25208157..2394..S..G,chr12..-..25208208..2343..S..C,chr12..-..25208712..1839..S..G,chr12..-..25209843..708..S..C 1 diff --git a/test/hub/groups.txt b/test/hub/groups.txt index 0d37b22d..485e27d3 100644 --- a/test/hub/groups.txt +++ b/test/hub/groups.txt @@ -2,3 +2,7 @@ name sim_slice_site label Simulated splice-site mutation priority 100 +name transcriptome_tests +label Transcriptome tests +priority 101 + diff --git a/test/hub/hg38/trackDb.txt b/test/hub/hg38/trackDb.txt index d99c6bb3..fc0ae28b 100644 --- a/test/hub/hg38/trackDb.txt +++ b/test/hub/hg38/trackDb.txt @@ -50,3 +50,25 @@ visibility hide html ../empty.html priority 50 +################################################################################################ +track test_transcriptome_seg1 +group transcriptome_tests +type bigBed +shortLabel test transcriptome seg1 +longLabel test transcriptome seg1 +bigDataUrl ../../output/test-transcriptome-seg1.isoforms.bb +color 50,50,128 +visibility hide +html ../empty.html +priority 10 + +track seg1_bam +group transcriptome_tests +type bam +shortLabel single exon test BAM +longLabel single exon test BAM +bigDataUrl ../../output/test-align-seg1.bam +visibility hide +html ../empty.html +priority 100 + diff --git a/test/input/DDX5_POLG2_gencode38.gtf b/test/input/DDX5_POLG2_gencode38.gtf new file mode 100644 index 00000000..281458db --- /dev/null +++ b/test/input/DDX5_POLG2_gencode38.gtf @@ -0,0 +1,846 @@ +chr17 HAVANA gene 64477785 64497054 . - . gene_id "ENSG00000256525.8"; gene_type "protein_coding"; gene_name "POLG2"; level 1; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; +chr17 HAVANA transcript 64477785 64497054 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA exon 64496407 64497054 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 1; exon_id "ENSE00002476486.3"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA CDS 64496407 64496968 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 1; exon_id "ENSE00002476486.3"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA start_codon 64496966 64496968 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 1; exon_id "ENSE00002476486.3"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA exon 64492895 64493021 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 2; exon_id "ENSE00003641652.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA CDS 64492895 64493021 . - 2 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 2; exon_id "ENSE00003641652.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA exon 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 3; exon_id "ENSE00003547192.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA CDS 64492667 64492772 . - 1 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 3; exon_id "ENSE00003547192.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 4; exon_id "ENSE00003632395.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA CDS 64490796 64490969 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 4; exon_id "ENSE00003632395.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA exon 64485728 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 5; exon_id "ENSE00003583025.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA CDS 64485728 64485868 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 5; exon_id "ENSE00003583025.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA exon 64482919 64482999 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 6; exon_id "ENSE00003514605.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA CDS 64482919 64482999 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 6; exon_id "ENSE00003514605.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA exon 64480289 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 7; exon_id "ENSE00003675516.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA CDS 64480289 64480389 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 7; exon_id "ENSE00003675516.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA exon 64477785 64477988 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 8; exon_id "ENSE00002724226.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA CDS 64477826 64477988 . - 1 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 8; exon_id "ENSE00002724226.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA stop_codon 64477823 64477825 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 8; exon_id "ENSE00002724226.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA UTR 64496969 64497054 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 1; exon_id "ENSE00002476486.3"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA UTR 64477785 64477825 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000539111.7"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-201"; exon_number 8; exon_id "ENSE00002724226.1"; level 2; protein_id "ENSP00000442563.2"; transcript_support_level "1"; hgnc_id "HGNC:9180"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS32706.1"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443820.2"; +chr17 HAVANA transcript 64477787 64492720 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA exon 64492667 64492720 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 1; exon_id "ENSE00002720534.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA CDS 64492667 64492720 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 1; exon_id "ENSE00002720534.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 2; exon_id "ENSE00003632395.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA CDS 64490796 64490969 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 2; exon_id "ENSE00003632395.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA exon 64485728 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 3; exon_id "ENSE00003583025.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA CDS 64485728 64485868 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 3; exon_id "ENSE00003583025.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA exon 64482919 64482999 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 4; exon_id "ENSE00003514605.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA CDS 64482919 64482999 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 4; exon_id "ENSE00003514605.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA exon 64477787 64477988 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 5; exon_id "ENSE00002474698.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA CDS 64477986 64477988 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 5; exon_id "ENSE00002474698.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA stop_codon 64477983 64477985 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 5; exon_id "ENSE00002474698.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA UTR 64477787 64477985 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000581355.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "protein_coding"; transcript_name "POLG2-207"; exon_number 5; exon_id "ENSE00002474698.1"; level 1; protein_id "ENSP00000462071.1"; transcript_support_level "3"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443821.1"; +chr17 HAVANA transcript 64477812 64496939 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64496407 64496939 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 1; exon_id "ENSE00003890509.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA CDS 64496407 64496939 . - 1 gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 1; exon_id "ENSE00003890509.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64492895 64493021 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 2; exon_id "ENSE00003641652.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA CDS 64492895 64493021 . - 2 gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 2; exon_id "ENSE00003641652.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 3; exon_id "ENSE00003547192.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA CDS 64492667 64492772 . - 1 gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 3; exon_id "ENSE00003547192.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 4; exon_id "ENSE00003632395.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA CDS 64490796 64490969 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 4; exon_id "ENSE00003632395.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64485728 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 5; exon_id "ENSE00003583025.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA CDS 64485728 64485868 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 5; exon_id "ENSE00003583025.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64483390 64483506 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 6; exon_id "ENSE00003890564.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA CDS 64483405 64483506 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 6; exon_id "ENSE00003890564.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA stop_codon 64483402 64483404 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 6; exon_id "ENSE00003890564.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64482919 64482999 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 7; exon_id "ENSE00003654270.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64480289 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 8; exon_id "ENSE00003521845.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA exon 64477812 64477988 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 9; exon_id "ENSE00003889235.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA UTR 64483390 64483404 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 6; exon_id "ENSE00003890564.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA UTR 64482919 64482999 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 7; exon_id "ENSE00003654270.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA UTR 64480289 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 8; exon_id "ENSE00003521845.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA UTR 64477812 64477988 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000671755.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-211"; exon_number 9; exon_id "ENSE00003889235.1"; level 2; protein_id "ENSP00000500690.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529760.1"; +chr17 HAVANA transcript 64477840 64496939 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64496407 64496939 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 1; exon_id "ENSE00003890509.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA CDS 64496407 64496939 . - 1 gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 1; exon_id "ENSE00003890509.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64492895 64493021 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 2; exon_id "ENSE00003641652.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA CDS 64492895 64493021 . - 2 gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 2; exon_id "ENSE00003641652.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 3; exon_id "ENSE00003547192.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA CDS 64492667 64492772 . - 1 gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 3; exon_id "ENSE00003547192.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 4; exon_id "ENSE00003632395.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA CDS 64490796 64490969 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 4; exon_id "ENSE00003632395.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64488843 64488937 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 5; exon_id "ENSE00003893163.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA CDS 64488854 64488937 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 5; exon_id "ENSE00003893163.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA stop_codon 64488851 64488853 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 5; exon_id "ENSE00003893163.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64486898 64487068 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 6; exon_id "ENSE00003894897.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64483964 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 7; exon_id "ENSE00002699591.2"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64483390 64483506 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 8; exon_id "ENSE00003891144.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64482919 64482999 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 9; exon_id "ENSE00003654270.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64480289 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 10; exon_id "ENSE00003521845.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA exon 64477840 64477988 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 11; exon_id "ENSE00003893028.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA UTR 64488843 64488853 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 5; exon_id "ENSE00003893163.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA UTR 64486898 64487068 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 6; exon_id "ENSE00003894897.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA UTR 64483964 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 7; exon_id "ENSE00002699591.2"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA UTR 64483390 64483506 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 8; exon_id "ENSE00003891144.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA UTR 64482919 64482999 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 9; exon_id "ENSE00003654270.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA UTR 64480289 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 10; exon_id "ENSE00003521845.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA UTR 64477840 64477988 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000673460.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-212"; exon_number 11; exon_id "ENSE00003893028.1"; level 2; protein_id "ENSP00000500198.1"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000529761.1"; +chr17 HAVANA transcript 64477852 64496939 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64496407 64496939 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 1; exon_id "ENSE00003890540.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64492895 64493021 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 2; exon_id "ENSE00003592819.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 3; exon_id "ENSE00003565185.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 4; exon_id "ENSE00003674543.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64485728 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 5; exon_id "ENSE00003590488.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64482919 64482999 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 6; exon_id "ENSE00003654270.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64481246 64481446 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 7; exon_id "ENSE00002716547.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64480289 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 8; exon_id "ENSE00003521845.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA exon 64477852 64477988 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585104.2"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-209"; exon_number 9; exon_id "ENSE00003891535.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444026.2"; +chr17 HAVANA transcript 64477964 64487474 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000582501.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-208"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443822.2"; +chr17 HAVANA exon 64486898 64487474 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000582501.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-208"; exon_number 1; exon_id "ENSE00002702695.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443822.2"; +chr17 HAVANA exon 64485728 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000582501.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-208"; exon_number 2; exon_id "ENSE00003590488.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443822.2"; +chr17 HAVANA exon 64482919 64482999 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000582501.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-208"; exon_number 3; exon_id "ENSE00003654270.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443822.2"; +chr17 HAVANA exon 64480289 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000582501.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-208"; exon_number 4; exon_id "ENSE00003521845.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443822.2"; +chr17 HAVANA exon 64477964 64477988 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000582501.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-208"; exon_number 5; exon_id "ENSE00002726814.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443822.2"; +chr17 HAVANA transcript 64480289 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000577506.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-202"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; tag "NMD_likely_if_extended"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443823.1"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000577506.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-202"; exon_number 1; exon_id "ENSE00003674543.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; tag "NMD_likely_if_extended"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443823.1"; +chr17 HAVANA exon 64485728 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000577506.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-202"; exon_number 2; exon_id "ENSE00003590488.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; tag "NMD_likely_if_extended"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443823.1"; +chr17 HAVANA exon 64482919 64482974 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000577506.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-202"; exon_number 3; exon_id "ENSE00002719336.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; tag "NMD_likely_if_extended"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443823.1"; +chr17 HAVANA exon 64480289 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000577506.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-202"; exon_number 4; exon_id "ENSE00003521845.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:9180"; tag "NMD_likely_if_extended"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443823.1"; +chr17 HAVANA transcript 64480348 64484230 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580490.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-205"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444025.1"; +chr17 HAVANA exon 64483964 64484230 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580490.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-205"; exon_number 1; exon_id "ENSE00002724017.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444025.1"; +chr17 HAVANA exon 64481246 64481446 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580490.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-205"; exon_number 2; exon_id "ENSE00002716547.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444025.1"; +chr17 HAVANA exon 64480348 64480389 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580490.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-205"; exon_number 3; exon_id "ENSE00002691648.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000444025.1"; +chr17 HAVANA transcript 64485158 64497019 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585141.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "retained_intron"; transcript_name "POLG2-210"; level 2; transcript_support_level "1"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443824.1"; +chr17 HAVANA exon 64496407 64497019 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585141.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "retained_intron"; transcript_name "POLG2-210"; exon_number 1; exon_id "ENSE00002707756.1"; level 2; transcript_support_level "1"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443824.1"; +chr17 HAVANA exon 64492895 64493021 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585141.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "retained_intron"; transcript_name "POLG2-210"; exon_number 2; exon_id "ENSE00003592819.1"; level 2; transcript_support_level "1"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443824.1"; +chr17 HAVANA exon 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585141.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "retained_intron"; transcript_name "POLG2-210"; exon_number 3; exon_id "ENSE00003565185.1"; level 2; transcript_support_level "1"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443824.1"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585141.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "retained_intron"; transcript_name "POLG2-210"; exon_number 4; exon_id "ENSE00003674543.1"; level 2; transcript_support_level "1"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443824.1"; +chr17 HAVANA exon 64485158 64485868 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000585141.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "retained_intron"; transcript_name "POLG2-210"; exon_number 5; exon_id "ENSE00002711966.1"; level 2; transcript_support_level "1"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443824.1"; +chr17 HAVANA transcript 64486989 64492910 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578687.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-203"; level 2; transcript_support_level "2"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443825.1"; +chr17 HAVANA exon 64492895 64492910 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578687.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-203"; exon_number 1; exon_id "ENSE00002694918.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443825.1"; +chr17 HAVANA exon 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578687.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-203"; exon_number 2; exon_id "ENSE00003565185.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443825.1"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578687.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-203"; exon_number 3; exon_id "ENSE00003674543.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443825.1"; +chr17 HAVANA exon 64486989 64487068 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578687.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-203"; exon_number 4; exon_id "ENSE00002703754.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443825.1"; +chr17 HAVANA transcript 64490469 64493021 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580893.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-206"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443826.1"; +chr17 HAVANA exon 64492895 64493021 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580893.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-206"; exon_number 1; exon_id "ENSE00003592819.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443826.1"; +chr17 HAVANA exon 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580893.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-206"; exon_number 2; exon_id "ENSE00003565185.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443826.1"; +chr17 HAVANA exon 64490796 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580893.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-206"; exon_number 3; exon_id "ENSE00003674543.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443826.1"; +chr17 HAVANA exon 64490469 64490677 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000580893.5"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "processed_transcript"; transcript_name "POLG2-206"; exon_number 4; exon_id "ENSE00002712164.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:9180"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443826.1"; +chr17 HAVANA transcript 64490862 64496755 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA exon 64496532 64496755 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 1; exon_id "ENSE00002691827.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA CDS 64496532 64496755 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 1; exon_id "ENSE00002691827.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA exon 64492895 64493021 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 2; exon_id "ENSE00003593341.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA CDS 64493003 64493021 . - 1 gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 2; exon_id "ENSE00003593341.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA stop_codon 64493000 64493002 . - 0 gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 2; exon_id "ENSE00003593341.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA exon 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 3; exon_id "ENSE00003565185.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA exon 64490862 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 4; exon_id "ENSE00002732390.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA UTR 64492895 64493002 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 2; exon_id "ENSE00003593341.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA UTR 64492667 64492772 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 3; exon_id "ENSE00003565185.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA UTR 64490862 64490969 . - . gene_id "ENSG00000256525.8"; transcript_id "ENST00000578997.1"; gene_type "protein_coding"; gene_name "POLG2"; transcript_type "nonsense_mediated_decay"; transcript_name "POLG2-204"; exon_number 4; exon_id "ENSE00002732390.1"; level 2; protein_id "ENSP00000464389.1"; transcript_support_level "4"; hgnc_id "HGNC:9180"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178899.4"; havana_transcript "OTTHUMT00000443827.1"; +chr17 HAVANA gene 64498254 64508199 . - . gene_id "ENSG00000108654.16"; gene_type "protein_coding"; gene_name "DDX5"; level 1; hgnc_id "HGNC:2746"; tag "ncRNA_host"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498254 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64506076 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 3; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 3; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 4; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 4; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 11; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 11; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 12; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64500549 64500773 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 12; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA exon 64498254 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 13; exon_id "ENSE00003596319.2"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA CDS 64499926 64500326 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 13; exon_id "ENSE00003596319.2"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA stop_codon 64499923 64499925 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 13; exon_id "ENSE00003596319.2"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA UTR 64506120 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA UTR 64498254 64499925 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000225792.10"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-201"; exon_number 13; exon_id "ENSE00003596319.2"; level 2; protein_id "ENSP00000225792.5"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "Ensembl_canonical"; tag "MANE_Select"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444030.2"; +chr17 HAVANA transcript 64498257 64505401 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64505041 64505401 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 1; exon_id "ENSE00003907019.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 4; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64503983 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 4; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA start_codon 64504106 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 4; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 11; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 11; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64500549 64500882 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 12; exon_id "ENSE00003906280.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA CDS 64500743 64500882 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 12; exon_id "ENSE00003906280.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA stop_codon 64500740 64500742 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 12; exon_id "ENSE00003906280.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 13; exon_id "ENSE00002705937.2"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA UTR 64505041 64505401 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 1; exon_id "ENSE00003907019.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA UTR 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA UTR 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA UTR 64504109 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 4; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA UTR 64500549 64500742 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 12; exon_id "ENSE00003906280.1"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA UTR 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676581.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-232"; exon_number 13; exon_id "ENSE00002705937.2"; level 2; protein_id "ENSP00000504407.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444982.3"; +chr17 HAVANA transcript 64498257 64505410 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64505410 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 1; exon_id "ENSE00002475592.2"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 2; exon_id "ENSE00003598884.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 3; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503983 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 3; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA start_codon 64504106 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 3; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 4; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 4; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 5; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 5; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 6; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 6; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 7; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 7; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 8; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 8; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 9; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 9; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 10; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 10; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64500882 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 11; exon_id "ENSE00003906280.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64500743 64500882 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 11; exon_id "ENSE00003906280.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA stop_codon 64500740 64500742 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 11; exon_id "ENSE00003906280.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 12; exon_id "ENSE00002705937.2"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64504677 64505410 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 1; exon_id "ENSE00002475592.2"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 2; exon_id "ENSE00003598884.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64504109 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 3; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64500549 64500742 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 11; exon_id "ENSE00003906280.1"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678757.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-238"; exon_number 12; exon_id "ENSE00002705937.2"; level 2; protein_id "ENSP00000504731.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498257 64505950 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64505746 64505950 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 1; exon_id "ENSE00003907979.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 4; exon_id "ENSE00003640964.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 5; exon_id "ENSE00003585716.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 6; exon_id "ENSE00003537118.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 7; exon_id "ENSE00003584543.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 8; exon_id "ENSE00003579138.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 9; exon_id "ENSE00003692373.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 10; exon_id "ENSE00003532653.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 11; exon_id "ENSE00002698110.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000580026.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-214"; exon_number 12; exon_id "ENSE00002705937.2"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498257 64506349 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506076 64506349 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 1; exon_id "ENSE00003908037.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 4; exon_id "ENSE00003640964.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 5; exon_id "ENSE00002698167.2"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 6; exon_id "ENSE00003584543.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 7; exon_id "ENSE00003579138.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 8; exon_id "ENSE00003692373.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 9; exon_id "ENSE00003532653.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 10; exon_id "ENSE00002698110.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678110.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-237"; exon_number 11; exon_id "ENSE00002705937.2"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498257 64506499 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64506076 64506499 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 1; exon_id "ENSE00003906929.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 4; exon_id "ENSE00003640964.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 5; exon_id "ENSE00003585716.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 6; exon_id "ENSE00003537118.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 7; exon_id "ENSE00003584543.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 8; exon_id "ENSE00003579138.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64502162 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 9; exon_id "ENSE00002687577.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64500549 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 10; exon_id "ENSE00002698110.1"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678810.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-239"; exon_number 11; exon_id "ENSE00002705937.2"; level 2; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445046.1"; +chr17 HAVANA transcript 64498257 64506499 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64506076 64506499 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 1; exon_id "ENSE00003906929.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 4; exon_id "ENSE00003640964.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 5; exon_id "ENSE00003585716.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 6; exon_id "ENSE00003537118.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 7; exon_id "ENSE00003584543.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64502162 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 8; exon_id "ENSE00002697390.2"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64500549 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 9; exon_id "ENSE00002698110.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585317.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-230"; exon_number 10; exon_id "ENSE00002705937.2"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444974.1"; +chr17 HAVANA transcript 64498257 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506076 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 1; exon_id "ENSE00003906380.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 4; exon_id "ENSE00003640964.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 5; exon_id "ENSE00003585716.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 6; exon_id "ENSE00003537118.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 7; exon_id "ENSE00003584543.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 8; exon_id "ENSE00003579138.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 9; exon_id "ENSE00003692373.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 10; exon_id "ENSE00003532653.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 11; exon_id "ENSE00003537596.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64501891 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 12; exon_id "ENSE00003907670.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676575.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-231"; exon_number 13; exon_id "ENSE00002705937.2"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498257 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506076 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 1; exon_id "ENSE00003906380.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 4; exon_id "ENSE00003640964.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 5; exon_id "ENSE00003585716.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 6; exon_id "ENSE00003537118.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 7; exon_id "ENSE00003584543.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 8; exon_id "ENSE00003579138.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 9; exon_id "ENSE00003692373.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 10; exon_id "ENSE00003532653.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 11; exon_id "ENSE00003537596.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64501143 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 12; exon_id "ENSE00003907039.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676969.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-235"; exon_number 13; exon_id "ENSE00002705937.2"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498257 64507536 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506755 64507536 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 1; exon_id "ENSE00002720941.2"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506076 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 3; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 3; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 4; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 4; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 5; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 5; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 6; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 6; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 7; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 7; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 8; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 8; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 9; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 9; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 10; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 10; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 11; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 11; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 12; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 12; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500987 64501143 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 13; exon_id "ENSE00003907635.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64501112 64501143 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 13; exon_id "ENSE00003907635.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA stop_codon 64501109 64501111 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 13; exon_id "ENSE00003907635.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64500882 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 14; exon_id "ENSE00002724215.2"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 15; exon_id "ENSE00002705937.2"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64506755 64507536 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 1; exon_id "ENSE00002720941.2"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64506120 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64500987 64501111 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 13; exon_id "ENSE00003907635.1"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64500549 64500882 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 14; exon_id "ENSE00002724215.2"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676601.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-233"; exon_number 15; exon_id "ENSE00002705937.2"; level 2; protein_id "ENSP00000504708.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498257 64507562 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64507478 64507562 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 1; exon_id "ENSE00003904558.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506755 64507314 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 2; exon_id "ENSE00002703529.2"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506076 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 3; exon_id "ENSE00002707644.2"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 4; exon_id "ENSE00003691552.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 5; exon_id "ENSE00003598884.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 6; exon_id "ENSE00003640964.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 7; exon_id "ENSE00003585716.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 8; exon_id "ENSE00003537118.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 9; exon_id "ENSE00003584543.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 10; exon_id "ENSE00003579138.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 11; exon_id "ENSE00003692373.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 12; exon_id "ENSE00003532653.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 13; exon_id "ENSE00002698110.1"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498257 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678890.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-241"; exon_number 14; exon_id "ENSE00002705937.2"; level 2; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498258 64506686 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64506514 64506686 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 1; exon_id "ENSE00002708267.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64506076 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 3; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 3; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 4; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 4; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 5; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 5; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 6; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 6; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 7; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 7; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 8; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 8; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 9; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 9; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 10; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 10; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 11; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 11; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 12; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 12; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 13; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64500549 64500773 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 13; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA exon 64498258 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA CDS 64499926 64500326 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA stop_codon 64499923 64499925 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA UTR 64506514 64506686 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 1; exon_id "ENSE00002708267.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA UTR 64506120 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA UTR 64498258 64499925 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000450599.7"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-202"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000403085.3"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "NAGNAG_splice_site"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444039.2"; +chr17 HAVANA transcript 64498258 64506731 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64506514 64506731 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 1; exon_id "ENSE00002711051.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64506076 64506259 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 2; exon_id "ENSE00002713597.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 2; exon_id "ENSE00002713597.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 2; exon_id "ENSE00002713597.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 3; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 3; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 4; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 4; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 5; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 5; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 6; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 6; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 7; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 7; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 8; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 8; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 9; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 9; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 10; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 10; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 11; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 11; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 12; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 12; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 13; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64500549 64500773 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 13; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA exon 64498258 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA CDS 64499926 64500326 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA stop_codon 64499923 64499925 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA UTR 64506514 64506731 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 1; exon_id "ENSE00002711051.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA UTR 64506120 64506259 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 2; exon_id "ENSE00002713597.1"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA UTR 64498258 64499925 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577922.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-205"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000464337.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444034.2"; +chr17 HAVANA transcript 64498258 64507562 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64506755 64507562 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 1; exon_id "ENSE00003908362.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64506076 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 3; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 3; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 4; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 4; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 5; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 5; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 6; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 6; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 7; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 7; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 8; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 8; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 9; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 9; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 10; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 10; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 11; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 11; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 12; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 12; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 13; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64500549 64500773 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 13; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA exon 64498258 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA CDS 64499926 64500326 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA stop_codon 64499923 64499925 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA UTR 64506755 64507562 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 1; exon_id "ENSE00003908362.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA UTR 64506120 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 2; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA UTR 64498258 64499925 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585111.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-229"; exon_number 14; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000463168.2"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "alternative_5_UTR"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444040.2"; +chr17 HAVANA transcript 64498258 64507712 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64507478 64507712 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 1; exon_id "ENSE00002688652.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64506755 64507314 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 2; exon_id "ENSE00002703529.2"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64506076 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 3; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 3; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 3; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 4; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 4; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 5; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 5; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 6; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 6; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 7; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 7; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 8; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 8; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 9; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 9; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 10; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 10; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 11; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 11; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 12; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 12; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 13; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 13; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 14; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64500549 64500773 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 14; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA exon 64498258 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 15; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA CDS 64499926 64500326 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 15; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA stop_codon 64499923 64499925 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 15; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA UTR 64507478 64507712 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 1; exon_id "ENSE00002688652.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA UTR 64506755 64507314 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 2; exon_id "ENSE00002703529.2"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA UTR 64506120 64506262 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 3; exon_id "ENSE00002697520.1"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA UTR 64498258 64499925 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000676785.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-234"; exon_number 15; exon_id "ENSE00002691641.2"; level 2; protein_id "ENSP00000504794.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; tag "appris_principal_1"; tag "CCDS"; ccdsid "CCDS11659.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445108.1"; +chr17 HAVANA transcript 64498259 64505370 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64505041 64505370 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 1; exon_id "ENSE00002699515.2"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 4; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503983 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 4; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA start_codon 64504106 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 4; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 11; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 11; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 12; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64500549 64500773 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 12; exon_id "ENSE00003458688.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498259 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 13; exon_id "ENSE00003906847.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64499926 64500326 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 13; exon_id "ENSE00003906847.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA stop_codon 64499923 64499925 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 13; exon_id "ENSE00003906847.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64505041 64505370 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 1; exon_id "ENSE00002699515.2"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64504109 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 4; exon_id "ENSE00003650677.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64498259 64499925 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583212.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-223"; exon_number 13; exon_id "ENSE00003906847.1"; level 2; protein_id "ENSP00000463903.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498259 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506076 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 1; exon_id "ENSE00003906543.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 1; exon_id "ENSE00003906543.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 1; exon_id "ENSE00003906543.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 3; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 3; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 4; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 4; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 11; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 11; exon_id "ENSE00003585557.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64501057 64501143 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 12; exon_id "ENSE00003904604.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64501112 64501143 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 12; exon_id "ENSE00003904604.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA stop_codon 64501109 64501111 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 12; exon_id "ENSE00003904604.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 13; exon_id "ENSE00003506983.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498259 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 14; exon_id "ENSE00003908119.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64506120 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 1; exon_id "ENSE00003906543.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64501057 64501111 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 12; exon_id "ENSE00003904604.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 13; exon_id "ENSE00003506983.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64498259 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000678814.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-240"; exon_number 14; exon_id "ENSE00003908119.1"; level 2; protein_id "ENSP00000503045.1"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498259 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506076 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 1; exon_id "ENSE00003906543.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 1; exon_id "ENSE00003906543.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 1; exon_id "ENSE00003906543.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 3; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 3; exon_id "ENSE00003468939.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 4; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 4; exon_id "ENSE00003532332.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 5; exon_id "ENSE00003635634.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 6; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 7; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 8; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 9; exon_id "ENSE00003621662.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 10; exon_id "ENSE00003558396.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64501261 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 11; exon_id "ENSE00002723865.2"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA CDS 64502008 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 11; exon_id "ENSE00002723865.2"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA stop_codon 64502005 64502007 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 11; exon_id "ENSE00002723865.2"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64501057 64501143 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 12; exon_id "ENSE00002727133.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 13; exon_id "ENSE00003506983.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64498259 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 14; exon_id "ENSE00003908119.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64506120 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 1; exon_id "ENSE00003906543.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64501261 64502007 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 11; exon_id "ENSE00002723865.2"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64501057 64501143 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 12; exon_id "ENSE00002727133.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 13; exon_id "ENSE00003506983.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA UTR 64498259 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000677726.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-236"; exon_number 14; exon_id "ENSE00003908119.1"; level 2; protein_id "ENSP00000504260.1"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64498283 64506306 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579461.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-212"; level 2; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_partial"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444981.1"; +chr17 HAVANA exon 64506076 64506306 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579461.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-212"; exon_number 1; exon_id "ENSE00003761922.2"; level 2; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_partial"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444981.1"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579461.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-212"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_partial"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444981.1"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579461.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-212"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_partial"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444981.1"; +chr17 HAVANA exon 64503430 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579461.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-212"; exon_number 4; exon_id "ENSE00002710453.2"; level 2; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_partial"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444981.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579461.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-212"; exon_number 5; exon_id "ENSE00003584543.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_partial"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444981.1"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579461.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-212"; exon_number 6; exon_id "ENSE00003579138.1"; level 2; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_partial"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444981.1"; +chr17 HAVANA exon 64498283 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579461.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-212"; exon_number 7; exon_id "ENSE00002718019.2"; level 2; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_partial"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444981.1"; +chr17 HAVANA transcript 64499616 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64506076 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 3; exon_id "ENSE00003544503.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA CDS 64504039 64504116 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 3; exon_id "ENSE00003544503.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA stop_codon 64504036 64504038 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 3; exon_id "ENSE00003544503.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 4; exon_id "ENSE00003585716.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 5; exon_id "ENSE00003537118.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 6; exon_id "ENSE00003584543.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 7; exon_id "ENSE00003579138.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 8; exon_id "ENSE00003692373.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 9; exon_id "ENSE00003532653.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 10; exon_id "ENSE00003537596.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 11; exon_id "ENSE00003506983.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA exon 64499616 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 12; exon_id "ENSE00003507168.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64506120 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64503983 64504038 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 3; exon_id "ENSE00003544503.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 4; exon_id "ENSE00003585716.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 5; exon_id "ENSE00003537118.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 6; exon_id "ENSE00003584543.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 7; exon_id "ENSE00003579138.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 8; exon_id "ENSE00003692373.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 9; exon_id "ENSE00003532653.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 10; exon_id "ENSE00003537596.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 11; exon_id "ENSE00003506983.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA UTR 64499616 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000540698.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-203"; exon_number 12; exon_id "ENSE00003507168.1"; level 2; protein_id "ENSP00000440276.2"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444027.1"; +chr17 HAVANA transcript 64499616 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64506076 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 1; exon_id "ENSE00003662182.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 4; exon_id "ENSE00003640964.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 5; exon_id "ENSE00003585716.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 6; exon_id "ENSE00003537118.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 7; exon_id "ENSE00003584543.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 8; exon_id "ENSE00003579138.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 9; exon_id "ENSE00003692373.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 10; exon_id "ENSE00003532653.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64500549 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 11; exon_id "ENSE00002698110.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA exon 64499616 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581230.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-215"; exon_number 12; exon_id "ENSE00003507168.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444029.1"; +chr17 HAVANA transcript 64499616 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64506076 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 2; exon_id "ENSE00003493480.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA CDS 64504249 64504318 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 2; exon_id "ENSE00003493480.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA stop_codon 64504246 64504248 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 2; exon_id "ENSE00003493480.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 3; exon_id "ENSE00003640964.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 4; exon_id "ENSE00003585716.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 5; exon_id "ENSE00003537118.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 6; exon_id "ENSE00003584543.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 7; exon_id "ENSE00003579138.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 8; exon_id "ENSE00003692373.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 9; exon_id "ENSE00003532653.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 10; exon_id "ENSE00003537596.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 11; exon_id "ENSE00003506983.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA exon 64499616 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 12; exon_id "ENSE00003507168.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64506120 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 1; exon_id "ENSE00003466024.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64504222 64504248 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 2; exon_id "ENSE00003493480.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 3; exon_id "ENSE00003640964.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 4; exon_id "ENSE00003585716.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 5; exon_id "ENSE00003537118.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 6; exon_id "ENSE00003584543.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 7; exon_id "ENSE00003579138.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 8; exon_id "ENSE00003692373.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 9; exon_id "ENSE00003532653.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 10; exon_id "ENSE00003537596.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 11; exon_id "ENSE00003506983.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA UTR 64499616 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581693.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-218"; exon_number 12; exon_id "ENSE00003507168.1"; level 2; protein_id "ENSP00000464566.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444028.1"; +chr17 HAVANA transcript 64499636 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000582326.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-221"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445050.1"; +chr17 HAVANA exon 64506076 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000582326.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-221"; exon_number 1; exon_id "ENSE00003662182.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445050.1"; +chr17 HAVANA exon 64503430 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000582326.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-221"; exon_number 2; exon_id "ENSE00002703164.2"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445050.1"; +chr17 HAVANA exon 64499636 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000582326.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-221"; exon_number 3; exon_id "ENSE00002693737.2"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445050.1"; +chr17 HAVANA transcript 64499695 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64506076 64506521 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 1; exon_id "ENSE00003906380.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 2; exon_id "ENSE00003691552.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 4; exon_id "ENSE00003640964.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 5; exon_id "ENSE00003585716.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 6; exon_id "ENSE00003537118.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 7; exon_id "ENSE00003584543.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 8; exon_id "ENSE00003579138.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 9; exon_id "ENSE00003692373.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 10; exon_id "ENSE00003532653.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 11; exon_id "ENSE00003537596.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA exon 64499695 64501891 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578491.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-208"; exon_number 12; exon_id "ENSE00003909659.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "RNA_Seq_supported_only"; havana_gene "OTTHUMG00000178936.11"; +chr17 HAVANA transcript 64499914 64505956 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64505746 64505956 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 1; exon_id "ENSE00002713366.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64505746 64505789 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 1; exon_id "ENSE00002713366.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA start_codon 64505787 64505789 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 1; exon_id "ENSE00002713366.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 2; exon_id "ENSE00003499827.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 2; exon_id "ENSE00003499827.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 3; exon_id "ENSE00003468939.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 3; exon_id "ENSE00003468939.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 4; exon_id "ENSE00003532332.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64503983 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 4; exon_id "ENSE00003532332.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 5; exon_id "ENSE00003635634.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 5; exon_id "ENSE00003635634.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 6; exon_id "ENSE00003689615.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 6; exon_id "ENSE00003689615.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 7; exon_id "ENSE00003554917.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 7; exon_id "ENSE00003554917.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 8; exon_id "ENSE00003584302.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 8; exon_id "ENSE00003584302.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64502439 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 9; exon_id "ENSE00003621662.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64502439 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 9; exon_id "ENSE00003621662.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64502162 64502223 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 10; exon_id "ENSE00003558396.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64502162 64502223 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 10; exon_id "ENSE00003558396.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 11; exon_id "ENSE00003585557.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64502010 64502069 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 11; exon_id "ENSE00003585557.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 12; exon_id "ENSE00003458688.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64500549 64500773 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 12; exon_id "ENSE00003458688.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA exon 64499914 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 13; exon_id "ENSE00002719878.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA CDS 64499926 64500326 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 13; exon_id "ENSE00002719878.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA stop_codon 64499923 64499925 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 13; exon_id "ENSE00002719878.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA UTR 64505790 64505956 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 1; exon_id "ENSE00002713366.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA UTR 64499914 64499925 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578804.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-210"; exon_number 13; exon_id "ENSE00002719878.1"; level 1; protein_id "ENSP00000462885.1"; transcript_support_level "1"; hgnc_id "HGNC:2746"; tag "basic"; tag "exp_conf"; tag "CCDS"; ccdsid "CCDS82190.1"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444032.1"; +chr17 HAVANA transcript 64500134 64502350 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578758.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-209"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445045.1"; +chr17 HAVANA exon 64502162 64502350 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578758.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-209"; exon_number 1; exon_id "ENSE00002702269.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445045.1"; +chr17 HAVANA exon 64502010 64502069 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578758.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-209"; exon_number 2; exon_id "ENSE00003537596.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445045.1"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578758.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-209"; exon_number 3; exon_id "ENSE00003506983.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445045.1"; +chr17 HAVANA exon 64500134 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578758.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-209"; exon_number 4; exon_id "ENSE00002732787.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445045.1"; +chr17 HAVANA transcript 64500185 64501697 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581237.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "processed_transcript"; transcript_name "DDX5-216"; level 2; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445077.2"; +chr17 HAVANA exon 64501473 64501697 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581237.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "processed_transcript"; transcript_name "DDX5-216"; exon_number 1; exon_id "ENSE00002715450.2"; level 2; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445077.2"; +chr17 HAVANA exon 64500549 64500773 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581237.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "processed_transcript"; transcript_name "DDX5-216"; exon_number 2; exon_id "ENSE00003506983.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445077.2"; +chr17 HAVANA exon 64500185 64500326 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581237.2"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "processed_transcript"; transcript_name "DDX5-216"; exon_number 3; exon_id "ENSE00002705420.1"; level 2; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "not_organism_supported"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445077.2"; +chr17 HAVANA transcript 64502070 64503435 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA exon 64503430 64503435 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 1; exon_id "ENSE00002704417.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA CDS 64503430 64503435 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 1; exon_id "ENSE00002704417.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 2; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 2; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA exon 64502926 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 3; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA CDS 64502926 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 3; exon_id "ENSE00003584302.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA exon 64502070 64502549 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 4; exon_id "ENSE00002707686.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA CDS 64502432 64502549 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 4; exon_id "ENSE00002707686.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA stop_codon 64502429 64502431 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 4; exon_id "ENSE00002707686.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA UTR 64502070 64502431 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579996.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-213"; exon_number 4; exon_id "ENSE00002707686.1"; level 2; protein_id "ENSP00000464659.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444033.2"; +chr17 HAVANA transcript 64502585 64503823 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA exon 64503803 64503823 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 1; exon_id "ENSE00002722865.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA CDS 64503803 64503823 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 1; exon_id "ENSE00002722865.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 2; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA CDS 64503430 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 2; exon_id "ENSE00003689615.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 3; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA CDS 64503188 64503348 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 3; exon_id "ENSE00003554917.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA exon 64502585 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 4; exon_id "ENSE00002717427.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA CDS 64502925 64503098 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 4; exon_id "ENSE00002717427.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA stop_codon 64502922 64502924 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 4; exon_id "ENSE00002717427.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA UTR 64502585 64502924 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000577787.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-204"; exon_number 4; exon_id "ENSE00002717427.1"; level 2; protein_id "ENSP00000462222.1"; transcript_support_level "2"; hgnc_id "HGNC:2746"; tag "mRNA_start_NF"; tag "cds_start_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444975.1"; +chr17 HAVANA transcript 64502730 64503848 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000584549.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-227"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444976.1"; +chr17 HAVANA exon 64503803 64503848 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000584549.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-227"; exon_number 1; exon_id "ENSE00002710957.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444976.1"; +chr17 HAVANA exon 64503430 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000584549.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-227"; exon_number 2; exon_id "ENSE00003537118.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444976.1"; +chr17 HAVANA exon 64502730 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000584549.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-227"; exon_number 3; exon_id "ENSE00002721454.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444976.1"; +chr17 HAVANA transcript 64502900 64503561 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581551.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-217"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444977.1"; +chr17 HAVANA exon 64503188 64503561 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581551.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-217"; exon_number 1; exon_id "ENSE00002693762.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444977.1"; +chr17 HAVANA exon 64502900 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581551.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-217"; exon_number 2; exon_id "ENSE00002695412.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444977.1"; +chr17 HAVANA transcript 64502921 64503646 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583201.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-222"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444978.1"; +chr17 HAVANA exon 64503430 64503646 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583201.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-222"; exon_number 1; exon_id "ENSE00002711406.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444978.1"; +chr17 HAVANA exon 64503188 64503348 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583201.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-222"; exon_number 2; exon_id "ENSE00003584543.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444978.1"; +chr17 HAVANA exon 64502921 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583201.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-222"; exon_number 3; exon_id "ENSE00002700334.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444978.1"; +chr17 HAVANA transcript 64502965 64504021 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583894.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-225"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444980.1"; +chr17 HAVANA exon 64503983 64504021 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583894.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-225"; exon_number 1; exon_id "ENSE00002724393.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444980.1"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583894.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-225"; exon_number 2; exon_id "ENSE00003585716.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444980.1"; +chr17 HAVANA exon 64502965 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583894.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "retained_intron"; transcript_name "DDX5-225"; exon_number 3; exon_id "ENSE00002730417.1"; level 2; transcript_support_level "2"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444980.1"; +chr17 HAVANA transcript 64503095 64506323 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA exon 64506076 64506323 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 1; exon_id "ENSE00002732601.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA CDS 64506076 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 1; exon_id "ENSE00002732601.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA start_codon 64506117 64506119 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 1; exon_id "ENSE00002732601.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 2; exon_id "ENSE00003499827.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA exon 64504273 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 3; exon_id "ENSE00002524924.2"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA CDS 64504273 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 3; exon_id "ENSE00002524924.2"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA exon 64503188 64503298 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 4; exon_id "ENSE00002701220.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA CDS 64503258 64503298 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 4; exon_id "ENSE00002701220.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA stop_codon 64503255 64503257 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 4; exon_id "ENSE00002701220.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA exon 64503095 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 5; exon_id "ENSE00002691519.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA UTR 64506120 64506323 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 1; exon_id "ENSE00002732601.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA UTR 64503188 64503257 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 4; exon_id "ENSE00002701220.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA UTR 64503095 64503098 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578400.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "nonsense_mediated_decay"; transcript_name "DDX5-207"; exon_number 5; exon_id "ENSE00002691519.1"; level 2; protein_id "ENSP00000463975.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445047.1"; +chr17 HAVANA transcript 64503568 64506626 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA exon 64506514 64506626 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 1; exon_id "ENSE00002706578.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 2; exon_id "ENSE00003691552.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 3; exon_id "ENSE00003598884.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA CDS 64503983 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA start_codon 64504106 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA exon 64503803 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 5; exon_id "ENSE00003635634.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA CDS 64503803 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 5; exon_id "ENSE00003635634.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA exon 64503568 64503571 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 6; exon_id "ENSE00002729881.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA CDS 64503568 64503571 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 6; exon_id "ENSE00002729881.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA UTR 64506514 64506626 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 1; exon_id "ENSE00002706578.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA UTR 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 2; exon_id "ENSE00003691552.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA UTR 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 3; exon_id "ENSE00003598884.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA UTR 64504109 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581697.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-219"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000464304.1"; transcript_support_level "5"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444035.2"; +chr17 HAVANA transcript 64503839 64506903 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA exon 64506755 64506903 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 1; exon_id "ENSE00002686715.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 2; exon_id "ENSE00003691552.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 3; exon_id "ENSE00003598884.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA CDS 64503983 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA start_codon 64504106 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA exon 64503839 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 5; exon_id "ENSE00002691782.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA CDS 64503839 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 5; exon_id "ENSE00002691782.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA UTR 64506755 64506903 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 1; exon_id "ENSE00002686715.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA UTR 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 2; exon_id "ENSE00003691552.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA UTR 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 3; exon_id "ENSE00003598884.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA UTR 64504109 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000581806.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-220"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000464064.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444036.2"; +chr17 HAVANA transcript 64503856 64505390 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA exon 64505219 64505390 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 1; exon_id "ENSE00002715510.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 2; exon_id "ENSE00003691552.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 3; exon_id "ENSE00003598884.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA exon 64503983 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA CDS 64503983 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA start_codon 64504106 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA exon 64503856 64503868 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 5; exon_id "ENSE00002693941.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA CDS 64503856 64503868 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 5; exon_id "ENSE00002693941.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA UTR 64505219 64505390 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 1; exon_id "ENSE00002715510.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA UTR 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 2; exon_id "ENSE00003691552.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA UTR 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 3; exon_id "ENSE00003598884.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA UTR 64504109 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000578190.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-206"; exon_number 4; exon_id "ENSE00003650677.1"; level 1; protein_id "ENSP00000463541.1"; transcript_support_level "3"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445048.2"; +chr17 HAVANA transcript 64503995 64505596 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA exon 64505439 64505596 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 1; exon_id "ENSE00002704054.2"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA CDS 64505439 64505596 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 1; exon_id "ENSE00002704054.2"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA start_codon 64505594 64505596 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 1; exon_id "ENSE00002704054.2"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 2; exon_id "ENSE00003499827.1"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA CDS 64504677 64504842 . - 1 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 2; exon_id "ENSE00003499827.1"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 3; exon_id "ENSE00003468939.1"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA CDS 64504222 64504318 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 3; exon_id "ENSE00003468939.1"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA exon 64503995 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 4; exon_id "ENSE00002687035.1"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA CDS 64503995 64504116 . - 2 gene_id "ENSG00000108654.16"; transcript_id "ENST00000583239.6"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-224"; exon_number 4; exon_id "ENSE00002687035.1"; level 1; protein_id "ENSP00000463101.2"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444037.4"; +chr17 HAVANA transcript 64504015 64505451 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA exon 64505286 64505451 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 1; exon_id "ENSE00002699864.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA exon 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 2; exon_id "ENSE00003691552.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 3; exon_id "ENSE00003598884.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA exon 64504015 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 4; exon_id "ENSE00002685704.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA CDS 64504015 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 4; exon_id "ENSE00002685704.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA start_codon 64504106 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 4; exon_id "ENSE00002685704.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA UTR 64505286 64505451 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 1; exon_id "ENSE00002699864.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA UTR 64504677 64504842 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 2; exon_id "ENSE00003691552.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA UTR 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 3; exon_id "ENSE00003598884.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA UTR 64504109 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000579091.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-211"; exon_number 4; exon_id "ENSE00002685704.1"; level 1; protein_id "ENSP00000464587.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; tag "exp_conf"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000444038.4"; +chr17 HAVANA transcript 64504060 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA exon 64506076 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 1; exon_id "ENSE00003662182.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA exon 64504677 64504880 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 2; exon_id "ENSE00002731082.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA exon 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA exon 64504060 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 4; exon_id "ENSE00002691895.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA CDS 64504060 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 4; exon_id "ENSE00002691895.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA start_codon 64504106 64504108 . - 0 gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 4; exon_id "ENSE00002691895.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA UTR 64506076 64506289 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 1; exon_id "ENSE00003662182.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA UTR 64504677 64504880 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 2; exon_id "ENSE00002731082.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA UTR 64504222 64504318 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 3; exon_id "ENSE00003598884.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA UTR 64504109 64504116 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000585060.5"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "protein_coding"; transcript_name "DDX5-228"; exon_number 4; exon_id "ENSE00002691895.1"; level 2; protein_id "ENSP00000465791.1"; transcript_support_level "4"; hgnc_id "HGNC:2746"; tag "mRNA_end_NF"; tag "cds_end_NF"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445049.4"; +chr17 HAVANA transcript 64506927 64508199 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000584500.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "processed_transcript"; transcript_name "DDX5-226"; level 2; transcript_support_level "4"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445109.1"; +chr17 HAVANA exon 64508057 64508199 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000584500.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "processed_transcript"; transcript_name "DDX5-226"; exon_number 1; exon_id "ENSE00002689224.1"; level 2; transcript_support_level "4"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445109.1"; +chr17 HAVANA exon 64506927 64507314 . - . gene_id "ENSG00000108654.16"; transcript_id "ENST00000584500.1"; gene_type "protein_coding"; gene_name "DDX5"; transcript_type "processed_transcript"; transcript_name "DDX5-226"; exon_number 2; exon_id "ENSE00002723870.1"; level 2; transcript_support_level "4"; hgnc_id "HGNC:2746"; havana_gene "OTTHUMG00000178936.11"; havana_transcript "OTTHUMT00000445109.1"; diff --git a/test/input/DDX5_readthrough.badread40x.fastq b/test/input/DDX5_readthrough.badread40x.fastq new file mode 100644 index 00000000..bbdef296 --- /dev/null +++ b/test/input/DDX5_readthrough.badread40x.fastq @@ -0,0 +1,844 @@ +@35150cc4-5e4f-5961-c3e9-a9bce97c65dd DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1352-2545 length=1209 error-free_length=1210 read_identity=99.592% +TCAGTTACGTATTGCTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCCTCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGTAGAAATGAATGAGTG ++ +k~~>~~zp~~~ghp~~~vlXM~[f~c~[e~yQ~~~cnX~~~f~~~~~~~~~~l~~~~t~x~~xn~~kz~m~~fr~r~~~}N~~~~m~~~~RK~j[bkoh9e}~T~k~~~~k~~`e~~]~Q~~u~r~C~~~~dI~~~~~~Y~~e~V~~~~V~~~~Sm~~_~~M~bnnh~~~K^~~~~~~~}~~~j~T~~~{d~~~dBPWc~X~}M~~~~~}S~~~6~to~~l~g~~~I~~~~V~~~s~i~]x_iv~tU~~~~~E~x~~u~~~~~~~}s~V~~~~s~~Zx~~~co^~zg~yx~~q_&g~~~~T~V~~~~d~~k8~}L\~~w~~~~~m~~~~~Y~~~l~~{~~~}ZW}u~~~d~~~~~~~~iaT~~~~~~G~Y~5~~r~N{ij~~X~q~~j~~-}~~~v\~~~ls~fo~~~~H~~~=Q~~}~~~~~e~on~~U~~8~~~~~~`~d~~l~r~~i;~~oezl~~e~p~]X}~~~~y~j6d~x~~~^~~~~u~~~b]~~~~~~~q4~~~~~~R~~~~\~~]5~~~~d~~~a[~~~l~S~~L~~ooa~~_~~~^rg~?Ir~~@~x~~|~~~kQ~x~~~z~v~~~%~~v~|~~{~~~f~~~~.A~~~9~~~~fq~~~~o~B~~S~z`~~~~~d~~sR~L~~~c~Q~~~~-~~J_;K~d~Z~~Mu~~~{~~~ZM~~~~XV~~q~q~zf~~q~~~j~~~~u~~~~~~~H~`m~~{~X~l~^~~~~t~~W~~~G~~yXq^Pn~~~n~~~x~~M~Us~~~~Ll~~w~Kk}pa~ym~~u~~~w}q~~K~x~Ws~~~~~~fv]~M~q~~~~~~~~~'_Rh~~z~cM~~)~Ld~~x~~d~~~OI~~~IkJ~|~~w~~~~~=~r~~~~~sG~~~~]~]U~\~z~v~~fs~v}~b~~~~~F}z~e`s~Mhqz~~_~~x~o~Ql~x_~~`?~[~s~~~~*YS&BFJb~~~N~~^~p~go~~jv~~~h[mw~~~~_~/V~~`i^kX~rrhp~~b~Z~~~~~X~~~~~~~mo_~~~~|~V~~ny~~S~k~~U~~~m~g~ophtm~~~~~~p~~~~e~aMr~e9~oup~~mt[~\~~XH~~GU~~~e^~~~`~~~y~]~~~\~~~e~~~~e~~~}~~n~c~~~~~~oH~~~~^~`~~tv~ga~V~~~v~~~~i~~<~~q~~~~~Kw~b~~~y~n~z{~qo|}~~i~~~~T~F|~f~~~~~es~r~~~Cfp~pQ-'P_[~~l~~~]s~~/~ +@cbafcab4-f153-364b-4025-97cff99e3163 random_seq length=344 error-free_length=345 read_identity=99.721% +TTCAGTTACGTATTGCTACATCCAAGCACGATATATCTTTCCCGAGCAGTACTTCAGCAGAAATCCTCCAAGTTACAATTAATCGTGGATCAGGGGCGACACGATGCCTAACCTAAAGACCCCTGGCGCCTAGTTAAGGATGGATTATGTGTAATTATTTGAGTGATGGGACAAGCTAGCCCACTATAGAAACCCAGCGCATCCACCAAGGTGTATTTAATGGTCCTTCTGTCTAATACTGTTACGGACCATTATCAGGGAGTCGACAACCAACATGCGTATTATAAACCATTCTTCACCCCACGGCTGACCTACCACGTGCGCTCCGATAACGGCACTGAATA ++ +~~~~~C~jr~~b~~P~~~~~Uv~Tl~t~w~nn~~Y~~fu~nW~~~~e~e~~~N~~~~~jixm~[~~~~~~~~b~~]~~b~~~~tJ~~\U~dlwnk~~~~f{vT~~`~~XeT?~~T~f~t~46YNdDBv~~.ge]J~^~n5Ju~~~_8T~~~~~k~itx~~~~~~~~~~~~~~~g~~~b~~~~VzmGo~cn~~~~~|m~~~~~~~C~~~~un~~~~mc{~~~~qIJ~~Xw~~n|RQ~~e~P~~~~~M~Wx~~~Yi~~~~~~~lq~~<~~xR~r~~d~~A~~~n~r~q~~~~~~~~~hR~~s~w~~~~cq[ym~l~b~~V~~Z~~re~`~\~~~~sz~^^~~u~f~ +@038d2f26-8d5d-bae5-8bd0-46038eb0c701 DDX5_MANE(-),+strand,3357-3684 length=356 error-free_length=355 read_identity=99.730% +ATGTACTTCGTTCAGTTACGTATTGCTAGTGATATTTCTAGGACTTAGACATTGAAAACTAAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCAG ++ +~o8~[o~~j~qro~_g_~~~~~~C~~~~h~u~w~p~s~~~~wn~c4~~l~~~W~xb~~IAL~qYbic_N~a~~~H~y~{~~b~x~~@}~~~f~k~~t~q~Y~~s~~~[Fj~~~r~U~~~~~WO~bp~~~I~S~~~~Jr~~L~e`~~~~~~k~~~3~zq~x~~~L]et~~~~p-~~`p~~~~~^po~a~~pb~z~~~~~~~e~~qn~_~~~~~~~~~s~~i9~:Q~~~~~r~~~~[~~~~L~jx~Pw~f~~~~o~~~~~^YS~~c~g~H^~~~d]wW~~~~Q~;>~~~~y^yt~Xcx~rhc~~~~~}|~~QXV~s~~~|v~d~~~w~~V~~~qca~~~n~YK~~N~`nQs~~f~~m@ +@d290ac99-9789-f74e-557e-3afd86044c0a DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,2321-2396 length=84 error-free_length=85 read_identity=98.990% +ACGTATTGCTTTGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAG ++ +~ndy~ot~~~~~z~~Ic~W~n`M`~[~~~{~~`~v~~~~~L~~~_~Ir~~T|~~Tj~ndH~~~S~o~~~~~`lx~b~~~~~~~S +@5427f9df-7de0-49da-a2f4-00cf159e763c DDX5_MANE(-),+strand,2713-2948 length=235 error-free_length=235 read_identity=99.600% +CTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTT ++ +~~~~~~~~~/[~~z~~]P}~nR~~ot~~~~~~ds~Od~~~~~ePWtg~XuX~v~~~n~~~~~Gc~Z~pW~V~~~n~d~H~W~~U~~~n~wo~~~~~VVX~|~ySTxa~~~~~~o~P~W`~H~f~~Px~L~~~_~~x~~sa~~L~~~~j~jL~bj~~rrxG~~~~}[jx~@~~~~~t_~~z~~~~~~\~4Xw~s~y~~~]~~q~~~e~i~c~~PY~R~~~~l~~\q~~~~HP~~~a +@5bafd9b9-4afc-776c-66f6-3f4a157e5598 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1037-2545 length=1537 error-free_length=1535 read_identity=99.742% +ATGTACTTCGTTCAGTTACGTATTGCTTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATTAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +kc~~T~~`~j}\r~pm7}~Q~^g~~sS~M~k~R~~~m~~w~x]j}~~l~~~~c~~g~2~~o~~~~u_~~lS~~}~~~~L~B~~~~~b~g~z~nE~~~~w~~~Ox}~~|~j|~YS~~~~~u~~lq~~~~v~lh~~/~~ccn~{~~j~eg~~~g~~t~~y~e~~~~~~~~~~~{i~~~~~~yqi~~j~~~~ie~~~~q~~v~~~~wns~~~~~~^~~~D~a~~~~~~9~~~[~_~~`^y~~ix~c{~p~~k~bU~~~~d~f`~a~~f~~~1~~IsY~U~I~|~~Q~x{qNr~~~~~~d~8oev~~tV~~~~~~~~~Wr~~~\~~~~)~~~~~~TZ~x~~~~~j~~b~~nu~~~~D~^~~d~YC~g~n~gw~~8~~~Bt~*YiDAGV~~~wX~~~~~~~~n~~N~c~m~Kid~v~~~i~~Z~oYn~~~g~{qk~~]~~~~~~{~~~t|~~~X~~~~~~~~DvNcxd{~i~~~o~~O~~u~|ye~~~Nv~~l~~{uO~~~Ps~k}~~~~~~~~~~_~nc~Nyv~~~~~~~~o~x_l~~|~~~eLi~j]~~~~~U~gX~u|~~`i~~~}~~us{XV~~w~~cE~_~a>Xb~~~L~~kt~wqr~P~~~~~Vo~~w~^K{~~~~y~]~~~~~~Ys~jw~c~~~~~g~`~~p~p~~~DM~~~hu~U~~~~~~ZT~l~Dz]}c~~~~Y~~w~~b~~]~g1~~~8~Z~~jR~c~c~l~i~~~~~~~~~~^]{~}4qwu~~~~~~u~~~dw~z~~~~~~cVxj~xp~~b~~~~VV~~TS~ke~~a{Z~b~E~~~~z~~~~^Vn~~G~~Y~^~l~~~m~~Bs~~~~~~i~mp~~~n~~~r~:q~~~~S~Cr~~~~~f~c~Q~o`~~~~~~cg~~KT~t~~u~~zeZh~~~~~N~h~ZX~~u~~~qW~~~e~iU~~~s~f~~U~~~~D~x`~Q~~~a~~~q~k~~~F~~~~~~~v~~l~bz_~~~~kN~~jV~~~~~~~~~K~~~~i_k~j~x~~~~~~~n~~~Qa~~~~~b~~~v~~1~~~~[~~~~F~F~Zcldv~FX~~~~lva~~rif~a~~d~~~~p~]~~~k~M~~~~`~}~Ta~P~~~~~A~T~~~~~jiu~p_t~O~~~p|~~~~{~~~~~`~~~~L~~~R~d~~{x~~~@~>~~i~~~~e~w~~~T~~~~|~~~~~oY~~S~ne~|~~t~~^~ii~~q~i`r~~e~~~E~~{~~}~~l{Unz~_}~~~~r~et~~~l~~~~H~{~~h~j~~~~~~~~u~~]~~V~E~~~hen~~rd~~~~~~~\~~~~i~~~x~~Ri~~~~Pm]~~~{}huW~vP\~~xa~~~bj_~hdw|~}~~~aeh~~~~~~{~~~~{[I~}~~{ld~=7Io~bHy~~~~~~z~~~dv~~r~~\~5~y~~r~~{M~l~~~:~~~~~|~~^a~~iEp_Z~m}~~~k~~~p~~~~~Y~~~ro~~~~~~~h~~d~Y~i~u~~~~]~~~~~bh~~c~~|it~~~A~g~~~w~w~~o~~y~~h~~~~~~~~kJ~iv~o~A_~~~}~u~]~~w~~~~~~j~~~~tl~~~N~~W~~q~~~~fZ~~ +@4d560fa5-6ec4-bb21-7b43-ca63aeadaee9 DDX5_MANE(-),+strand,1928-2102 length=187 error-free_length=188 read_identity=99.505% +AGTTACGTATTGCTGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACAT ++ +L\~~~z~~y~~~~~i~`a~Zc`Rf~~~~~~~Kp~~~f|~~~~~~~^~~n~~~~d~{nt~~r|~~l~~~~FZ~UG~q~~~~l~~~~~i~~E{~~x~}zsa~_~~~~Cdp~(-l}kq~dsO|~@_{a~y~~~~~~s~w~~o~~~~~~~~bD~mr~~~1~s~a~~~b~p~edh|~~~~{~qk~;b~q}T~ +@3c591607-7ce3-f6d3-4d5d-73985d15906e DDX5_MANE(-),+strand,1663-2009 length=365 error-free_length=362 read_identity=99.208% +TCAGTTACGTATTGCTTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAAAAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCC ++ +~~~OVuWc~~~~~~C}c~kT~kPg[~~~{~~~~~~{c~~~q~~}e~l~~~~~~X|~E~V~~o~~~~w~~~~Dq~~~~~~~Z~~~[~~~{~vg~vE~~~~~~~g~~~~~~~~|X~cE~w~d;hr~ktr~m~~z~~x~~i~v~VqX~~`~~~~~~~zm~~u~m~~~{i~~UmX~~z~d_~~T}L~~}wq_~~~~~~=~OD~d~g~~^~f~~c|~~Mn~o|~~~uk~~efuK~~We^{`l`~[~~x~~~~~~c~u~~lI~~z~~~~~~~~~~z~~c~f~m~ya~~U~~~pLR04aI*~E\>c~~+~~~a|~~~mVxd~~n~~j~\b}~VU~~lQ7~l~~{~~~i~~m~~7zqV`~~~~H~~m~~s~uU +@5d3fe56f-159f-6932-8764-f012b71a77bb DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,943-2545 length=1606 error-free_length=1606 read_identity=99.877% +TGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGCAA ++ +~y~~~~~l~~^~~xU~~~~zg~~>~HmuV~~]~f~\~d~~~~O~~~{Ru~l~~^~pp~~~s~r~~lI~t~~~}~fQk~~J~[~sk~~}y~~U~cU~~e~~l~~~~qj~j~~~~x~~~~eT~~~~j~~~tx~~~~m~S~~o@~~~~r~~~Z~o~t~f~~~~~~4^~~~p~`hw~q~~^~EHO|~]~~~~~l~rik^~w~~~^~V~w~~Cnmx_~~c~~{\~u~q}tfq~~~-~7~~~V~iF~~~~~~zoza~~~~~~~~c^~v[~Z~pfQ~gT~m~}~~5F~f~~uzJ~~f~~U~~Yp~h~k~~~~~~~~Vz~R^~~Nw~~~xr~~o~D~}V~~~ul~y~v~~G~~~~~~J^~~~Dz~~~~~h~~~wy~~~hr~e~~Y~~V~~)~~[~~s~~~~~~Q~~~~~~~KkoV\~o~t~~~~~~~~~YNYl~e~~eY~~~~Tkj~~~G^vt~V~~~Z~|po~~~ZAu]~Yt~~~~t~~~~~g~~~~tu~F~~~~Gx}k}~~U~Jr~Y~~hZ~~~~u~~~{~~q~d~~x~t~u^~j~z_~_s~~~~~~e~gs@U~~~*~qn~~\o~Hr~~~~v{5~~un~~~l~j~~m~~~~~~q~~w~zmZa|_~J~~~g~~T~~~K~~~~W~oz~~;W~~j~~~~b~~~OW_w\~~~~@~~~ei~}~y~|~~Aa~~r|~~~M~\P~_~~~~~f~l~~J~|~~w~~sO~m~~~~~~~~~x~~~KL~~~~~|\~ze[x~~WF~~K~ih~~Lm~~~rK~~l~a~~~~~~~~~~~bX~`~bW~~G~~{zYu~`~~`~~Vz\~{~~~`sa~~~~~b~~~~U~~O^~~[~~~q~~~SV~~~~~b~tH^~o~P~~~~n~~~|~~w~~A~~~l~~[~o|~k~~~~~~O~~kX~~=v~~m~~~~~~~~f~Wq5~~HCW^~-~u*~~z]nj~~u~~~~~~~~tM~~t~~~Ub~~~~~~s~~-rgt~ky:Pe}~@]~Lyn~_~qw~~fr~~~~~~b~~~]~~]~~~~~~~l~~~~~y~~~~~k~mSk~Z~T~~~~~~}u{~]~~~t~~T~}~~k~~}Vl~`~~V~{~~G~qu~^~~~~~e~~~~~~~~~\i~~D~j~~l`y~eqldN]~~s~~~~~FG~z~d~~~~~Swp~{~~usG~~~~~x~E~_~~~~~~n%~}~~y~P=d~~~pcYt~n~~~~~~~~~n~~~p~fC`y~}5gi~~~~~KaTb0r~Cd~~eJYk~ko~~~~w`Tl~w~G~e~]HXPdc\~~~t~~~~e~kx~~~~~~|~aW~f~~~in~~~~yR~~x~iG~~~~ok~~~~~p~~~_~~8~p~d~~i~~{o(~i~pk~~mzO~]~~xm~_~~~~~~u~~s~~l~~~~dT~~M~n~fX~~~~~W>~{~~~v~qh~paCm`u~~M~~\U~v_v~~~}~s~~g~s~L~~w~~~[~~~wqn~l~~~~~rC~~~~~~~Z~w`~Y~o}~~~~f~k~~~dLv4TF~}|8a(Eq~~y~~~w~~_`t~~r~]Zw~~a);~~~~~~~~bE:~~~Im~~~~y~`u~~{zEX~X~~lu~h{~L~o~~~~~~~i~~VlJ~~d~b~j~~~}~~~f~~~~Op^~~i~jLe~h~~Srp~~t~~~U~l~{y~k~~G~u~~e~~~k~~C_O|s~W~~QXh~ogl~l~~ +@2f80e092-d219-f284-94dc-e229d96c8995 DDX5_MANE(-),+strand,2753-3006 length=276 error-free_length=275 read_identity=99.655% +CTTCGTTCAGTTACGTATTGCTTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAAC ++ +8~qKy~~~~~~~~gj~~X~Z~~~~~i~~~k~~MY~~~~~y~~ic0~X~~~o~=sx~~~~z~I~G~~d~b~~}~~~w~~~~~uw~J~~~~f~~~~~a~Zz~~r~a|H~s3~~~z~;]~`~~x~c~~r~~~~v~_~v~~v~l~u~k~~~~qiT~c~~~iS~~~yj~~~~~~~c~~2~HQ~~nG~~~~~\^~~K~L~~~Z~~e~c~~ej~~~~v~~~x{i`~~t~~~~~Hq~x~M~]}~?~~sey~l|~~q~~~~z~~~~~~M~Yz~?~~~z~o~i~~~ +@7541174e-304a-fcbf-ee62-aa62a08b5e30 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,873-2545 length=1693 error-free_length=1694 read_identity=99.883% +CTTCGTTCAGTTACGTATTGCTGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCCAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~~~~u~~~~puKs~{[ip~~{]d~~~~~~~x~OO~~~^~~A~Knn~g~goV~v~~q~~^]i~X~r~8JQ~~|~~~~~d~~~m~~~uFw~kQq~~c~~~u~j~~]~~R~~~~~~W{~z~~k~L~~~X~|~v~Tz~U~n?~~xq~p~~yy~~~~~~s~~~~~~~~{~~~~La~x~Xl{~~~~f~~~~~~>^m~~~~O~8~~~X{i~~2r~~~~}]S9=~~^~q|~~b~~~gr~~~{B~~Pt~~~~~~~H~l~~`_~R?vYk~~|~~~^tLz`ee~~R~~{u~~~~v~x~xxmUWr~~~y|dF~~{~YXzvi~MA~~~ybu~Q~_RY~~~~~~g~r~g~~~M~~~~~ik~`~k~|~~~3kj?Ohm~~_~Xe]w~~~~~~~~~~~~b~`~~~m~e~{k~~~~~c:~~~~^~~~{~`~|~`~k~`~~Qi|}~~YZR~bfgl~~~~v~~~~~~}~~~~~~~a~~zq~~~~~~~~~~Q~{~=Ua~~~m~~~F~~^~k~~]x~~~~U~P~~~~}~M~~:m~@~~|d~~Ex~~w~Q~~zz~~ag^~~mKxEx~~~~~~ig~[~~~~~yF~~i~~dI~~~~~T~~p~~~~~j~~~~~r~~n~~~~~iPu~=~~~{~fz~~~~z~~[p~t^s~psJ~`~~~~srq~es`~~n~~~s~w~~~~~~y~Z|T~~p~J~~\uV~~~~auVx~s~~~}~~uB~fn~s~~~~~~G~oL~~q~gT~|~~~~olg~~~~~~~~i~6~~}~^~~zK~~~~~S|h~~s~~~~]~~~Q~wum~~~g}~~~~~~~Y~[~~\~~~~ei~~~~~~t`w~~~}c~~~~~mmuU~~Z~~cM~~~~~~~~_~qr~[~~e~~~~~~~~_~~~~,H~~~M]~A~{2~wW~~~s~~~Mn~bP~b~q~~~~un~~~cj~Q~w\vup~~~i~~~~~~b~Uf~v~~~~~nil~~~b~~i[~3wZh~~~~m~~~~L~~~L~vs|~o~|}q~1~R~]~~~~~~~l~~c[~~~~~l{ez~H|~~~m~~~e~~~~~Io~~g~xut~n~~~~H~u~~~nm~~~~o=~|~~~[~5~~~~~~~]~sy~zr~~~]~~A}~Wp~~o~~~E~z~~o~~{g~7~z~~ih~n~~~b~~~~sZ~M~`]~\~~~~MPs'-l~[~~u~~~wanF~i~~~t~~~~~s;~~P~~~T~~~&ul~l~[<~~c~lP~~~~~~~5W~~_~~~{wj~~~h~~wySFb|~~~~~~~N~cd~n~~_P\~~~~~vf~~~~Tk~~~~d~xcPu]~nYf~~~~X~-@~~~~c~~[|p~mo~r;g~~~hp~}~~H~F~q~~Vc~~|~w~~d~~wot~~yg~~Y~~Qm~~~P~zw~~~e~rPza~[~~~e~~2~CI^Cc~t~~~l~Y~w~j~b~~~jm~~~Exr~~u~~re~~~Z~~~~~~~~cw~P~~~~~~~~~o~~~~~~~~~~~~~~`tr~~~x~~lbtS~~~~~~m~~~\~~yPou~i~~^~I~}pz~W~~~v~~~~~~}~n~tf~~~|~G~]~~~Uh~_B~T~~~~~~~,~naDsd}h~~~~S~wp~~~]q~~~~~mj~{~~iN~~~~~~~~]~~~z~~~~~~~~~t~~O~~L~Ur~G~~~v~~Pv~~Z~~~~e|~~}j~~~~~~~cTrp`~~~v~]L7i~)Hn\U~~~`~~~~~Mk~~~~~p~~c{~`~~~lh~}~~b~d}~~~K~r~;~~w~p~~kxK~~~~qj~~~M~p~Y~~~~r~|o]~~~~~~~ +@54057124-f74b-6739-d8bb-8e2e0b724aad DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1815-1988 length=172 error-free_length=173 read_identity=99.465% +TACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACAC ++ +~~~k~i}X~~~~~~~[~q~~~~y~~~{~a~1Ms~D~~~~~j~Lmi~D~~[~~~im{V~m@~d~PGNZ~~o6~]skm~M~y~~~~mn~Mr~~XJ~@~~w'R~Hd~S~~t~~~~V~ud\b$~cq~p~~~y2~X9\~~~~{~Gor~~p~~~~~[~y~~~~~~p~~~rn`~~aJ~~ +@9e864e44-572c-0740-e7bf-ee5f9a0040cb DDX5_MANE(-),+strand,0-3684 length=3688 error-free_length=3690 read_identity=99.946% +ATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~g_~~C~V~~~yo~bo~|ohgr~~~~_~P~mcUl{z~~~~{~t~~~f]r~~~~~~~~~~~HZ~`}~~~~~B~O~~~~~~i~o~~~~U~~{~~Y~~|R~~~o~~Y~~D8c~;s~v~`S~y~~~o~~~~Y~:~~~gu~~s~a~~s~~~d~~~i~~~fw~\~Wv~_~~~Lu~~^~~~_~~~~~o~b~_n~Z}ny~|~Nox~\~~Y~W~~~~I~u~~~~~~~~~ew~u?~p~wyy~~~~~Z~~~;~~WB~Z~~m~r~~S~~z~Z^~n~~~~b~oi2~~~~Pe~M~n|~~3sx~~ML~~~~~:K~~fq~~[n~1~~~~~q~~rx~}~~~{m~b~~jp~~s~~~a~~~P~~zc}_~w~]Z~q~~>,~~~qj~~~~g~~~I~~l~\~~~{2oY~h~c~~}a~~~;~~~~-~~`S~~~l]~~^[~s`m~b~~mY~~vlI|~`~~~i~~~~~~~~~y~~~y~b~'~~o~k~~_~~t~U~~d~c_~N\~d~~~`f~_i|~~~~~yuwR~~hi~x|~~~_~~xl~~~~~M~s~~~~~~~}~p~S~~~~~~m~~~~R~8Y+~~~~~~~i~~lx_U~{~~~W~~fq^~~~i~~o~~~i~~l~~N_~h}~n~~~R~tz~~x~~~~~~~~~~X~`{~~r~`~~d~~js~o~~~~~~~uz~M~~~yK~~M}~a~~~ad~vJi~tq~~Pcwee_{~~~t~|x~~~hgeom~~r~~S}~~~^zNk~~~j~~~HXt~~~{v~~{\\~~~~~~~e_~~Ls~~UX~f~X^j~<~~~}~~b~~~T\~e}~~~~~~~~~\PT~~~(~~~~~b~Fjzt~~~~j~~K`zcR~v~f~p|~{E~~~o~~~~~~~~~~~U]Y~E~~~~f{a~|~^~q~i~~~e~~XS~~~~MhF~h~~~~j[~~~~~~w~~~?~~w~~~~o~~s~~~~}~~~v~o~~~~^[~~~~[~e~~t~~~~~O~~~~xHUn~y~~z~z~X~d~O~fT~~~~~Hm|~Y~N~~Z~~{{~v~g~~~~Cu~~~~sK~v~u~i~w~sfX~_~~p~gyWW~~~~~~X~~S~\~~~~~_ok~~}v~~;k~~t~~~~~~}~q~k~~~mw[p`~~~~~t~~~r~~xiv~~]~~[wHr~d~`~~~r~*~p~~}~~~~y~~~i~c~~~~~~~g~|uo~~~Z~z~~~w~~~O_~~~~~_El~n~~~~buc~~~~r~~~q,~~a~~nw~M~~z}~~~~fFw~~ii~s~~~~~Gl~~p~~uh~ya~~fS~~w~~Z~~W~y~~Suy~~ik~~~~~~~ne~~1~~}~[k~~~~~~~~SCFX~2,~~~zEr[Lq~~vb~~gUe~e~i~~~~~~~~@j~~~~z}~~~~~~~~~^u~n~q~~~~n^~~~~c~effv~o~N~~~j\~~~~~~^~~~~~ws~~Z~u~i~~Z~t~py~~~~~~~[~~~~~g~~~~gs~~~~~~~~X~O|r~~~~~u~~~~`_t~~~~n\<]~~u~~r~y]~~~r@g~|rq~~n~^~~d~~~~~~sv~x~qss~Sh~zp~gi~a~~r~~~3~x?f~_l~~~5~~~~G{~~e~e~~q~~~~}~~~]d~~~~~b~~~sh~hs~~~~~~~m~~~L~~~W~~~~e~~~pj~~~~O~U{~~~~~4~W}~~zo2_N~O~YYp~~~~LM~>~Rm|v}c~7~~c~vY~~`j~~~~~~d~~KL~~~~~~~@mjL~~r~;~~iq~~j~~~]_~~~~_s~~n~~~Wt~S~~k~~~u|~~~R~iC~~v~~~~K~~I~~~pr~|~~~~?F~nK{v~~~~~&~~~mtud~~~~P~~h~Jm~~~~~U~~}h~~`o~~~~~u~~YA~6k:`~M~~4~~~gf~~~~\~u~l~is~R~~~i}u~O~~~~~~~T~gc~~~x~\a[vzs~V~~]~bfmuzg~~\a~__~~Kr~pg~~a~d~~~~6~~~~~~~~\~~7Y~k~q~~~~~~{~~~dKz~~?k~~~~~~~B~~h~~``~~Qf~~b~~z~~~f~h_ek~~nb~~~~~~Fi[yjU[oh~~~~r~~~~n~~7~~kr~~X~ovKM~m~~l~~~~~R~~O~~~~Gj~kp,s~V~~w~5~xww~~U~l~~Z~~gvU~~~~~sQj~~~~~~_~~~j~`~~~~~~~~i~T~f~~~~X~yc~o~~q~~~~~~~~mjwm~~TP~~J~~~s~~~~~~l~{~RtW~~DW~~~i~~zdV~~Z~n~f~Vg~~X~~~~wP~~?~~~twj~~~~~~~M~}~~~~^~~nE~TLT~~x_~wM~~~~~~~~kAQ~jl~]~l~H_~~Z~Uw`~s~~|~px)j~~~nEj~~~~~~|~o~~lu~~~~S~fBn~p~uh~g~~~~~~~~~~Jl~~~~{o~~z~~~~~~u~VeKk~xF~y[~~~nX~~9G~~~~c~pk{~~~k~qKuh~~~v~QdPni6~s+~l}~~~Vl~~cfnR~~B~~~~~y~Xp~~~~p~~~l~~~~~~~`~~~~~~~~~~r~~~~t\B`~~~u~uhr~V{~~i@S~~~o~}P~v}iI~~~~\~~e~~~~]~~P~~~~v~Z~~~~n~kC~~~~~d`~~v~~~~~~~~~~~q~~~a~~~~~~a~m~~b~~~~~\~Yl~~O~~g~xuae~{~~u~M~~~`~u~~~~~R~C~~u~v~D~c~fr|~~|~~~~~|tte~~~~u~~~~~s~~~~~~i~~]~~~~~lR~f`~b~FJ~~Gz~~d~~Iz~p=~~~~~~~x~~~~~~TZ~~~~~kz~~dk_~~~x~wOy_ig~~o~m~~~~~iS~~~~~~~~~~~~`[~~p~We~~U~~x~~d~~~`~~~A~{~~w~~^E~r~p~~~~~Z|~~,l^~~t~~~jo{~~~~~~d~RR~Cjr~~~n~~~~~~~rd~~~ro~q~S~|~m~~[~~~~~n~y~~\_|~~~c~~~~W~sg~~hx~~w~~~~~l~{lkug~~w~~OpuB~~u~~~~~~A~d{q%~|hR~w~~~~~~~~M~~o~~r~~~W~~YMa~~~~_~~4e~}~~W[V~zo~~~~~~~~h~~~i_~~v~}~~~~~~~~~t~~h~~~~~rR~~~_o~_r~~W~a~g~~~u~e~~~~~~Pl~oTeh~f~~Z;^~~~~m~~U~~~~~s~~Y~~~~~~MSq~~~9PeI~~~yz~RCarU~d~~~~~~~KYf~h~fr~~~~~~~~~yf~~MNT~~~~~|~{Mz~~~t~~~~_Ty~a~~~~~~qQbhj~~Z~x~R~T~~~~~~n~wbKW~x~~~~~~`ut~HsJp~~~~~~~~^~~~~~n~~~~~j~~o~w~~i~|~~~{~u~~r~~~o~~~~ki4~~~|~V~~g~bI~~O~yF~kn~~W~v~~u~~~n~~~X~w~~g~~a~~h~pl~~~gyPtt~~ym~~~~~U~~~Y1ci~L~C~zkM~~~rm~~~~~so~~~~F{~V}~~~2~T~~`k~~y~yW~~~~~~~~~bfMu~~}wXR~Hj|~`~w~r]u~~{~Zq~Y~~v]~~1~~jP{~~~a~B~~~f|~~~~O~~~u~l~{s~L~rsF^~pik~B}l~qP|Z~~u~~N~~[Z~~~C[~~~b~~~~OZ~~~N~~s~~~~~~~~lg~~}[Y~Y~~~x}~~~~~~~ls~~b~srV~[~r}~W}~~~g~~f^~~~W~~~~~~~UL~~~~~~~~~L~u~]d~~~~~\ov~~^l|~~k~~~~R~o~;D~~~p~~.~~~~~ln~w\VU~~~h~~v~~~p~l~c~~r~~~Bcf~~~~q~~:},~i~~b~~W~QA~a~~q^~~~~~L]~[h~~Q~sI~~~~X~~~hmqgJ~~z~{W~~~v~~~m~_~Ln~~V~~~~{~~q|@^v~~~~~wa~To~~~~~~~~~}~N~RgW~W~tc~~~~~ +@dc7b4066-59cf-e0bc-f578-1883aad4c39d DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1103-1928 length=870 error-free_length=869 read_identity=99.661% +GTATTGCTAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCCCCTCCATGCGAGAAATAGAAGACCCAGAATATCACCAATCGTTCGTGAAGCTAATCAAGCAATTAATTCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTGC ++ +~T~c~~~x~~u~t~~~B~S~~~~~~q~t~~~~a~~~R~~~~~t~~F~LmoL~O~~~n}u~|bi6;~k@~Wnn~~d~~~il~~~/T~J~~]~~zq~df~^ah~~d~~{~~l\zd~~~[~~l~c~p~y~~~~ts~yu~~`~^^~~q~~c~~~~~zqvu~~~~~~~~|~~_~~~~b~~q~g~U~GR~~~J~~~r~i~~c~~~~y~~$~K~{_~k~~~~~~AF~4ylK~~~~c_~JTo}~J}~o~~Y~~~Y|~~O~~~K~~S~~~~p~~z~~B~~Z~~~~r~sn~T~H~~~~~t~~qO~~~{~~W~ed~~~ih~~~n\~~~~~<~~l~~~~`~O~z:~Qu~k~a~~y~~~~~X~~r[~~`~~~~~~~{~a~~KUvIz_~}~~`~N~~~w~PHt~~~~~~q~~~~fmrb_RE~~~|~rj~~~~p^V[~~~q~%~Kh}~wdjeeh;U~NYxAhxryuN~~~~~~~]qm~Y~~~r~~~~X]~~~~~~~~p~~]Lkjt~rt~O~~Tyo~~p[~~~Cn}a~CYH~T6~z}~~~tp~^\qd~~~^~~~b~M~~~~~~~~lWl~~~p~dX~~V~~~Sx~~~y~tk[~~aql~~s~~~~~H~~~~~~~~~~~V_{~~~~~f|~~~~I~l~~=~~~f}~~l^~Z~~v~~~~~~~L~~~m~M~G~~~{~~~x~h~~~[N~~~~oj~~~~~x~~V~~}p~~kg~q~jqk~~Aro~~~~~~~aZ~~~`S~h~~~~z~Xn~~o~~`~rz~y~S~f~~~~~~~~~]~Z~~~z~~n~}~u~~uR~~J~~~kSt~~~[~g;~~z~~~~~}~i~~x~~~~~~~~~~l~I}r~~Y~~q{~~~~~~s~~~~~nt~Dx~~~~~~~~~~:~{~~~f~n~~~~~~Yd~~~~~S~~~~~~~p{f|_~l~~q~|suyj~VM~~N~r~~~~~~|;~to~z~l~~~fuV~~~~~~~~d}t~~]~~~~~~~~rW~~k~~UY~y{~~~~~br~~f~~~~~jg~~P%~~~~~~~~~k~~~O~Ca~~d~it~iR~fW~~~v~h~D~~k~~~~~zA~~iY~~I~~~~gn~~a~s~e~~~~\~~~~~~e~~|}~c~hi~yY~~k~t~lw~~i~~~~Vv~s~~~Ugu~~~~~S~~U~~~r~F~H~l~~pc~~oM~~~pY~Z~~~e^=~~~~~m~~~~~~c~~|tol~~j +@49cd5e40-392e-1f6c-511c-d1f02f3effca DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,448-1306 length=919 error-free_length=918 read_identity=99.893% +TTGCTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATGTCCTGACCCAGTCGGAACGGCTGGGAGAGCTAAGATTATAAAGTCCTGGGACAAGAAGCATCCTCTGTCATGACGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGA ++ +U~~~n~~~~~]m~~{~~Ex~P~~~e~b~~d~~hl~~y9~~`~~~~~y~hhr~G~~~J~1a~H~~}~~a~~~~M}~be||b~~~dO~~]LtE~~~~Q~R~~~w~t~~~y~~~~~r~_Th~~c~~~Q~~~~~a~~~Zxj~vw~~~~i~~~a~~~h~~~~T~~~]\~~~u~~v~~~S~~v~~~~p~OxX~P~X~t~~2~~~~~~~{~~~~C/~~~Y{~~~~eTS~Wl~~in{~tR~N~qyd~e~~}~~~~~~~~]~}t~~~QoK~~~~~~S~~{nfx~~~~~d{~~~a~~~q~~r~~~~~l~^~~~d~ghg~uyi~~~W~~l~e~~~~Xj~\n~~q~a~y~~~~~a~~:~~~T~n~~~~d|d1~~p~~~s~OKu~ZkO~\ru~~UN~v~~~~gj~hk~r~~nR`~Qs~~L~~~~_~~v~~~T~~Y~mAi~~~g~~~d~~~b~rNS~^@m~~T~~|p~~}Lg~~~J~d~Ir~~~~u~~~~I~~`R~~l~ms~~~~~i_vtDvJi~`cYso~~nm~~q~~~~~9~~W~~|~]n~~j~~~~>~~f~~b~~~s{^~~~}~~~~~l~~~~~~~g~~~~^~_~~~~~~]{~qx~q~~[u~`[~~~a~B~~iL~~~m3~~~~~\~jv~~~z~~`~~~x~~~w~hnTT~~]t~~~~R~nX~~nk~uq{~~vy~~j~~r`~~~~~r0c~bxI~N~~h~~~~y~JC~~~b~eA~W~~~a~j~~~S~~~~~iP\~~jj~~wv~s~y~J^~}~~~~if~~~wt~~b~~s~~w~e~~~~~~~~r~}q|cG~oz~~~~gwb~~v~]~~}~~U~~r^vs~~~~~~~~~~oR~`~~~[~m~~~v~w~cMf~e~~y~[~k~~c~~~x~qtU|z~~~~I~~J~Pm_`~a~~~`~j~~~~Ws~~~^~~~b~~{~]~~~~~k~~~~~~~~{xd~V~~~p~~~ +@d48578fe-bfa4-07e3-6cbb-f572217387bf DDX5_MANE(-),+strand,0-3684 length=3682 error-free_length=3684 read_identity=99.865% +ACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATAATCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~x~~~gm~m$~~~`~[~~SS~3~~~U~pa|~~tQ~h~w~s~d~~~~~~t~~~~j~b~~p~p~nq~~tJfis~~~j~|~~x~qz~i~~~~~}Z~n~~~~\~^~~~~~~\~~ph{~~~~~~~~Z~`~m~^~~~Uz~T~cg~~O`~~wb~k~Uo~~=~~~~~x~T~~d~a~~~~~w~Yy~g~~N~f~~~~~~~~jJ~h~d~~~T~~~~~~~~~~~k~~~~?~.@?ZR~~~~e~i~~~~~~~w~~~Z\~mTr~~T|~~~~~n~H~}~~~~~lo~~~eR~_~Ib~~_~t~r~jr~\Wi~~~~~`s~~~~o~~~~t}h_^~~t~~m~~V~~X~~is~~\mwj`x_R~~o{V~~~o~~w~~v~~x~~~~w~okO~q~B~~x~~~VN~y~~~k@Sl~P~~~~~|~rsk|y~~~e~z~~~f~~W~~U~\~Lz~wQl~~~~g~~~~~R~~~~a~QVF~Ub~]~~~I}s{~~Q^bi~~~^\lqw~v~l~Y~~jm|@~_zd~hB~[t~~|N~U{aq~x~cLb~u~_T~x~~~~~J~h~~J~c~~~~S~~~~~SJ@~7[~~~~~Xa~~p~~n~~fp~~~{M~~~~|u~~Mq~~~~aij^~~~~d~~~~}~q~~~~~~~~X~k~~~wh~~~:~~=~~~c]Qg^s~ko~~~~u~~~~<~R~~\~q~\gU~n~^q~~~~T~tyr~v~v~~~}~~^t~~j~~\\s4~gl`sgc^N~j~]~~~~}p~~~~Z~~~~~~~n~o~t~~~~~~~hcd~x~~~}Z~Q}~x^rx~~~`~~~~~~~~`^hMJmh~~~m~~~~~~~^~\~~~t~~9~T~~~~~~b~A~~~|~~Yp~{~[H~~~~~~~~m|^~~~z~~~yrx~}b~~hf~~~m~~~~RO~~~~~y~~~~O~~~~~xj~~~S~~|a~s~~p~~~~~~`~~{~~\~~~~~~~~~}@~{a~s~~~~~~O~p~~~l~~B~~bn~Is~~j~z~J<~~o~~~~~rcn~~g~W~~~n~~yhU~~~a~M~oq~~~cDTy~m~~w~e~S|~~~Gwc~~l~~~~~_{Vmr~v_~jVo~~~~~~~~*~t~~~\s~~Y~~~~g~2pO}g~qli~~VL~~~l~~~~W~i{~~~~^~~~~n~~~d~cs~yMv~~~{~~~~~o~l~~~z~1M~~~x~~~~XyW~~|y`~~~Kz~]v~~~~~~~~~\]r~~]^~~~~~=~~~~guhtP~~~~xoq~~~Pv~d~U9~~~p~f~oY~~~~]~~~^~~F~aZ~~[wu~~|~XM_AzYsU~~lYXJ~ca~l:~~~~k\~nkS~~Y~[~qS6~u~~~~pc~~~y~~~dxva~~~u~Hmi~t~nZM~~`G~f|Yv~|~~~v~DL~~~~w~_v~~~~~~~L~Qq~~~N~~~~~~~Yjj~~~H~~~Uh~~~zw~i~r~|~~~~~~~~wn~~~r~~~hg~~W~Pwl~G~[~a;P~~~~~7~~~o~D~~m~[~~l_~vHwx~~~~~~o[q|~zT~~~\`~~]~~j?n~j~q~~a~~y~`x?~~~~o~r0~~~~r~u~~~~~r~~~{~~~~j~~~~~~yi~~~~~x~~~~7~u~m~~A~~~~L~wT~|k~k~ef~}~~s~Hh-^r~~~tY@fo~~f~~~~~~~ko~Y~~~~~~~~b~n~~k~[~sX~lU`~:`~~\~~~~~{6~~~i~~~h~~~~~}a~^~~~~b~|_~~~oqXW~l`VsW~u~qqY~~Q~}~X~V~~~\~{m~N~~~~QV~Lb~~~~nWC~A{~<}^~~V{c~U~}5t~m~~f~~~~~|~jm~i_~hgc^~~~dj~~QM~j^M?~~~~~~~vW~i~z~~I~rw~~~~~A~mc~~U~K~~~~~~~~~d>~~~aeW~M`7~~~|~\~~N~o~5fqbj}~~~NS~e~~Z~zctu~~~m~};~Y~~Z~~vn~~~n~t~~m~x~~~~~~~q~f~~~~~~~~~~~~~~UO~e3h}~~~k_~~~hu~~~~[~nh~u~~~~~~~~~~Z~~~~=s9~~~o~~~e?~R~r]4Z(s~~{m~~~~~~~dt~h`v~|~~~{~~~~@b~~~~~Y~~~~~O~t~~~~|~~LWpm~~~x@tm~g~~~1~\~G~~~~~~P[J~^~c~l)~~~~~~v~Ke~~~~~Ym~X~~~~qxwt~{rp~|~~~v~~w^]~~s~~rE~~e~~~~Z~^r~HjMt~~~}~Eg~~~~|~~q_~zS}~~~K~~T~~~~~x^e~~~~~~~~~goG~~~~~p~ll~R~~~~~~q~~~~M~~~~~_~~~Wx[u\~~~tb~~~~~4~Y~~~~Usn~a~lj~j[?s~~~~T~~~~kkQ~wR~~^~]~~~~~~~h~Vg~\~_~~~`~~~~lho^P~w~~a0~~~~~~~I}~d~`x~~~~~O~a~r~~~~b~~~~~[~h~e~~~T~~~~~~~~S~lg~~~~~~~~~e~~~gPM~~|~~g~v~~~~~~~i~~~~f~~~~~~~~f~~|~~~~f~`v~qmm~k~_~~~~~w~~h~~~~S~~o~~~~~@Y~~|Vs~J~5~}~~on~~IU~h~hk~~~~~~~~m~p~~~~~~~~~~7~~~jklod~~~G~ix~~~W~~e~N~~c~~nVa~^~y~[~~Kz~o~|hs~a~~x~~V~zn~~w~~i~~eI~~~iJ~~~vq~~bLo~<~~~i~~yc~u~~~~~~xo~^}x~~~~p~iS~i~~~z|W~~~~Gd~~~yq~{~~~x~]~t~W~iRX~V{~ni~~xt~~~k~~y~~~~t~~~\X~~~~Zki~~~~SL~~Z~_~v~d~~~W~~~~l~~~s~sq~k~~p~b~~~H~~~}~j~d~~j~~qN\~O~Zn~~~~c|z~ini~~~~~l~~~~g|m~~~~yn6q~Va~qH~[nfe~b~i~wDbmS?cq{lB~ky~~onLzj~~~~Kkvi`~~rm~~~~i~~~]~n~m~~~o~~e;~~{~B~Zd~Q~UX{{n~~uu~i~~~~~vd~rs~q~~~-~~~~~~~1Yq~~}e~v|~~~Xltj~~~~{m~~~q~>~~~p~{~~~tt~[~c~~~~~q~~~~~~~~~@~X~~e~~~t~~~P~P~emp~z~~~~>~_~~~~~o~j~sr~~~~~{~~~RQn~jT~~dim~~g~~~~U~~~X_~xc~~~v~x~~~~c~m~^c~~~~~T~Iqq~Yx{s~~~z~hscq~{~~~~{S~~~~~~7ik~~~~~~lS{y~~~~~~ys~r~~c~q`PRe%P~3~~~~~~~~~f~~~~~rd~V~wp~lt~~d6~~~~~T~~~~~~g~~~Mec~n~T+n~Z~^]~~pr~~{~,~~U~Ub~~~~k~~b~~~~jHt~l~~~~~}~~`U~rp~~~a~~~~~7pap`~~t~~c~~~z~~p~~~z~zr~~~~~~~~~P~~~~~~|r~y~~~gge~x~l~~~J~Z~~O~j~e~|~~~l~w~y~~`Bf~~N~:~~N^~~~~~x~~~~~~~[~~_~~Zd~~FW~UQ~~~~~~~~u~x~s~w~~~~~~~~~yn~~~~}Yjq~Ih|u~~]r~~~~sP~~~~j~~P5~~~X[~~~~c~tm,h~v~~u~~~tXN{~U~~~~~~_~~xz\~~~~[ZWc~ro|~~M~~us~t~~~fc~~~~W~~t~~~sy~Ia~I~~~It3~~p~z~~p^~LO~~R~a~~c>~~Z~t~[~[~~}~~~~~Yl~~s~P|~c~L~]~~~~~UV~~~~~if~~~l~saM~~dG~f~~~~tY|~Iy{~in~d~~~~R~~~~~~YR~~~s~q~8~{~}~~~_3ply~~~{~f~~~~~ti~t~F~~r~u~~~X~~~g~~q`~~C~Nv~d~~2H~~~~of~l~~~w{~~Lb~~Qw~~m~~o~p|~o~~|qn~~~~~UIP~~x~~q~Q~~~~~~~~~n~lswU~~l~~9~c~~~Tb~~fF|~b~~~~~~y~~we~]~zq~~&e~v~~~~n~o'xX~~]~~[l|~~~a~q~N~~i~~gb=u~pi~~e~g}~~~9eB>[~~~W~kgK~q~~n~~~i~~~~z~~~m~t~~x~~qu~~q~~T~~~~y~p~nd~k~~~~~a~~|~~UI~~t~e~`~~~~[~~~~cd~~~~i~~~w{o~|~~~y~m^S~~mo~G~~~dd~i~~~_~~~e~~k~~y~y~~~~~VY~~~z\~~~~~cy~s|hP~~~u~~~~~~~^o~k~~wn~~eT~~~~g~~qew~~~j~i~~r~~~~{~y]pJi~t~i~xm~~~t~x~~?|~~~~~~~~Z~2~~i~G}~x~zX~~~~sv{~~O~~~~S_~v~]~~~~ey~8~g~~~~r~~a~o~~~~~i~~~_[~~o~_~~[~~~]~Z~~~~~~[~b~f~vj~~y~~~~i~~~~~~~~jpMx~yf~~e}~t~~~~~~~~~~TG_Sg~~~{~~~~~~~l~t~s~Y~~~p~~~v~|]k^~~~~~~;~k~[~r~d~~~qXvmsq~~~~~W~r~in\~~;~ +@d8c287b0-8376-dd08-34b7-ee0fcf068066 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,544-1306 length=790 error-free_length=792 read_identity=99.752% +ATGTACTTCGTTCAGTTACGTATTGCTTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCA ++ +~u~Wu~g~`~~~~T~~aK~Z~~~~f~~~~~`A~~~q5~h~~~~~hSesl~F~}t~~~~~j~~~~~~e~~~h~K~~~~~~~~fPRj~~~~~~~~H~~~z~syo~~x~~~|jo~QuUr~o~~g~[m~~~~~~~~~|~~~fW~~m~`~~~~~~P}}~g~wd~~~kd~dY^~~~~~~~~~tZx}~~q~`~~~{_~~W~~~~~Qm'x~~~ly)~~~~~~~~~me~b~~~X~{d~9aje~~~~~D~p~~~~X~{~~~~~~~]b~s~f~ph~~~~i~~~gU~~~u~~d~tm`z~~~~~~~~~~~~~~~`~~xA~Yz~~~~~r~~~y~~~~p~k~~kr~hX~~\a~~J~~~~~~~~6O;|spJ~k~y~~~~~~~U]~~~Nl~[~~~~Xy~~c~}~~}epN~x~~xyY~~xj~~d`u~~~\Qd~~~~~wQ^~m~~~m~~ixhS~~r[~~i}~~p~tq~V~~~~~QT~~q~q~~S~\j~fT~~~~~~~~~~~~~~w\~i~~v~z~~~~~~~~lhjf~|~~S~~~~~~~\t~~eW~~~~~`o~~~p~V>~x~x~Jjq~qyFgt~t~sR~~~J~kd~~w~~~c~t~k{~~S~~x9UN%Dc/~~~~}X~~~r~j~g~U~~x~~~~~c~f~~q~f~~s~j~~~A~~~~U`~~~P~~~~~~~r~|uF~-~ab~_|{~@~9~~~U~aKr~~~~~oe~_Q~k~~~~~~~~~Wd~~~n~V~~~~~~~~~Q~~l{~~|~_q~~~~A}~d[~~zz~p~~~~E~~~`~~~Hy~jIjwo~~pm~~1~~L~lz~smji~~~~~n~~w~5x~~~ +@61d23086-dac4-5c5b-6e4b-a737b1daf73b DDX5_MANE(-),+strand,2195-2828 length=650 error-free_length=651 read_identity=99.850% +TCAGTTACGTATTGCTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTGTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCA ++ +~~i~b~~t~cm~+~~~~Jk|~~~][zA~d~~mlh~~~~I~~~~]~|~5~G~~@~e~~~Bca~~T\v~~x~~~ip~e~~~~~ze~Rj~~~xh~~~~~~~~~~o~q~s]~|~~i|~~v~~^~i~~quCFZG'Q~~y8~r~~w~j~~Oc~r~~~~env~~vpw~~~n8~~I~~~~~~~<~~w9~~z~q~q~~~~~I~~~~YZ~~fUg~~~]_~ni~~~pl_~~~}~~~~`c~bvdsU&$R~kT~~X~~~~~~Pm~~~~Z~~~~~~~~pm}~d~~wt~x~~wk~via~~~~~~~~~d~~nid~T~pr~~N~~UT~~Nwt~ol~~b~=~~\~~~nA[Auo~~[~~~~~`~~~~~{d~jk~gw~~~mpCd~~u~~~~b~b~~~~~}~Y~uiXts~~NKKc~T~C~~~~km~k~~~m~~\~{~~~~~~~Z~r~}~~~^~~J~~~Y~~v~~{yVc~abp\Y8fl~d~~~\~~X~O~~}~~~6m~~~~s~~~q~|~~~}~i~~Yk~~~~pws~hX~_~j|~~f~~T~~t~^~LhnXo~~Xug8~~]Rk~~n~~ms~s~}p~5po~~Tb~~~~]`~~T~X{~uXR~h~~~Sq~~~s~{~r|~~~}~~r~+m~~~i~~~~~~U~n~~~~xVr~b~~~s~~~~Hz~~~~~~~~~~~~~up~~ +@7a3e4b0a-064d-36a9-d1ef-c28c3df2bc67 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1545-2380 length=859 error-free_length=860 read_identity=99.886% +GTACTTCGTTCAGTTACGTATTGCTATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGT ++ +~?~S|~k~~_~j~yj~~~{~h~~`~q~~ss~~X\e>~O~~~\te[t~~c{~~{_~PR~~~~~~T~x~~~q^V~~~~L~s~~~~x}bMs~~gXS~~w~GVg~V~~~~~r~u~~4~o~~~o~~U~~Q~b}{}s~~~~~~~~~~U~^~~qJ~~R~o~H~m~|\~~{^~p~~~bd~j~~~~~~~~~m~~T~Sa~~f~h~B_`m~~~~~~~tfrQf~Q~~P_~~j~~~o~~~~~Wm~cz~~~~bar}a~pq~~~P~z~~~~Hg~~~n_uju~j~~~\~j~~i~~m`r~sr~~~v~if~r~~myaPo~~~`~}~]]~e~~i~~~~s~~~~~~~~~~Q~ri~~~~~~h~~Oo~~o~k~W~~~~~~~r~~~~~~~~~~~~~|~~~w~~a~uy~FRqU5|+L~~~\~~|~~~~w]~~~lojOrpx<~U{W~W~F~~~~t~~M_N~~G{ojfZ_~KW,~'~khMdwn~`~P~y~~~{~tkV~H~~{Y~|~~t~Z~1~i~~_~^{~s~~~f~~~~k~a~~~~_~~omo~~~~~Zj~~}~~~X~~t~~~q~~~\v~yn~k~A~~~~~Wd~~o~du~hG~~~pR<~i~~~~u:~~Z~~~]m~}eS~~~~q~BwlP~p~~\n~r~~tn~~jI~u~~n~sm~a~rT~~~~M~~\~~y~~nW~Sdl{w~~fKq~t~~jZO~[~a~~ifgw~~~~~s~~m?`~y}h~v~>uZ~r~~~cp]~N~~~~~{j~~~T~|{~~~~~~~~u~~~w~~~~L~~rw%~~~B~~Dg~sk~~TU~~d~~~d~~|o~~j~o~[~i~~l~a~S~~~~~>He~~~hclv~~~x~~~`~~Ibs~~~ +@2379c587-7180-8943-3730-51e3658ff097 DDX5_MANE(-),-strand,3430-3684 length=268 error-free_length=267 read_identity=99.645% +GTTACGTATTGCTGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~~c~~a~{l0}~~~~~~~~sT~|{~n~~y~b~~~~~nY~~~~~_s~~~~\Q~~~~~g~r~~csYm~k`]bk~~x~}~~TL~b~~~X~~r~~~O~~~n~~~~~~~~Z~Z~Q~fp~~~~~i~~~~nmWW~r~~~r~[~~~~~~~_~~~~R~a~~}~~~>~z~u~~~[~~~~uvl4So~~~~~RNX~`~~U~~~~5~~~;h~~o~~+~~~w~RQ~~5~a~O~[Ev~~~~w~~~~`~~Ps~~~~~~~iU~z~~~~Ra~~{~|a~i~fKZp~ +@fb93c0ea-90cf-0d83-9878-4ff8e9f15da0 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1737-2336 length=656 error-free_length=657 read_identity=99.851% +TGTACTTCGTTCAGTTACGTATTGCTTCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGCTGGTGTATAGTTGCGTAAGCATATAGAGGTTTATAATATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCG ++ +~~~~~]~~h~tx~LT~l~gx~P]~~~~~ry~w~wu~~~y~~~~~~Q~g~rd~~~~~sh|~?yK~~r~~~w}~Y~~i[~~~~~~~~^~~Y~Cot~~e~~s~y~~s~~h0~~~kY~~~~~|~~~~~~~f~{~~~~d~~w~_y~~~}~~~u~xh~~~HV~e~~~~o~~kOa~~~vv~cg5q~~z[j~~T\B~~i~{~~~u~~~~@~~`~~~~|~~d~fbO~M~~_~~~~~v~~~~~~|l~~P~~T~g~`Poa~~~~~~~V~}g}Y~p~~_KsV}e~~~~m~~c~~~~lof~~fvu~$g~~rY~p~x~~~w}~}.~`|SSX~~~~^p~|~n~Z~~~r~|~~j~Z~~~D~~~~M~~i~~~~~~~~~~C~w~^~~~~irhZ~~w~~d~~a~|~~{~`~zO~ury~iy~N~~~~}n~{~~be~~~~p~~~~dl]Sc~]~z~~~yzw~~{~t~v~~t\~^e`~~}~~o{q~~vd~~u~h3~/x~~g~l^~~~~k~~i~~z~~f~~|~J~~~~~v~O~i~~q~WY~?~HHi~~~c~~~j~~~\~~\~~s[ld~~~~@~~l~EnD~~|p~~~~v|sTb~T~ho~b~ve~q~1sK~re~~b~~~~?~~~q~~~~D{~~~~xqv~~~~~~~~~}a9l~~H~~zmk~w~g~~~~~~~~w~Q~~~~X~sG +@b78b29bc-6c0a-cccd-85e4-32b2c07ff95a DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1274-1772 length=497 error-free_length=498 read_identity=99.805% +ATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGG ++ +~Xiu}t[~Zsm~M~~~~~?~}x~|z~w~~~3~~hR~`a{~zrUYr~~~a~~x;~~~~q~~~k~~c~~~yg~~V~>if~]~~~~~u~~~~~~~~~g|~}~qn}]~V~~KZ~{~~~r~~~~~~wOj\k~|~p~I5p+oY~Ms~j<~t~S~~~yd\~~a~~E~V~~~~~z~w~~~~~~~}ITS~n~~~y~~~~nie~~G~~s~~~]sz~~~j~P~~~~~k~~6~z~~=K~c~>m~~~~i`?~?lmd~~~~~~v~~a~~k~o~rl`~f[[V~jz~~~}h]9]~~~saS~~dW~~~x~Zp~~~~~~~~{~~~~rv~~ac~~~~~~~|~9Pwd~~~ +@9b675e0b-fb9f-ce7d-be36-44111d38f7ef DDX5_MANE(-),-strand,2155-3566 length=1429 error-free_length=1430 read_identity=99.792% +CGTTCAGTTACGTATTGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGA ++ +~~~~Sxy~~~~~}\~}~q~~~~Xq~~~Q~hq~{~~W~y~~~~~~x~[W~~~~~~ywdq~ru~~}~~vu~~N~~~~~{~~~~~NW~Z~~b}~~c~~~x~~~~~~~~~~y~~S~~Yc~~~~|e~~~~~~~e~{eL~~~k~~byZ|~~~~~p~~~~~~xNleC~~~k~[~z~u~~ad~~V~U~u~~~y~~~~b~k~|~~~~D~Y~bnm~y~~U~ip~w~~u~gR~u~~~j~{~eS~~YS~~^f~~c~F~~z~~~~ql~fd>~~~~@~~`_~{~~t~~~xXDK~a,~~ghf~f~~~q~~~=zgx~~~~A9~x[~^~X~c~bedl~~~a~~Z~~~~~~dL~~~RU~Q:~PQ~~~uw~G~~VL~~~w~Jb~~~~~~~~c~~~S~~~`~~~~~~~~~~T~~hm~~~O~~~fj~kK~vq~HT~gk~_~~~~~~~~~D~~p[~~i~~F~A~wq~~~~~~yi~x~v~P~~d~}~k~~o~agwf~|W~T~~~~~~~~~~_~~~{~~u~~m~~i~9~~j~~Tg~~~~~~~Y~^_~gt~*~K~k|~y~~S~J~~F~~~~~~~hWv~~j~lmj~=~~~nf~~~k~k|~~~o^~~o~~u~tu~r~r~L~~w~~_~~~R]CD~~~\~l~~~~~~~~~~~~|~Y~~i~~b~~YZ~h~o~~~~~~~~~_.e~sy\n~~~[~~p~~~~~j~~}Zn~m~~l~~d~~~~r~Z~~C~~~~m~~~~~~X~~~PZa~V~~~K~k~[~OE~p>~p~R~c~~~ry~}~~uZ~~~~~n~~_$[i%~~wZT~T^~~~~~kG~~~~b~~~g~5X~G~~~~_~k~~~>T~l~'~~~~t~~~kWr~~T~~s~~~~~~.up~k~~~\g~~~~~~~g~~~R~~~~pk~~g[~o~y~}\e~e~`~~p~o8~s~~p~~i~ce~~rh~~n~av~l~~O~~p~~~~g~~~gd~~~~[~e}~mh|l~y~~~~~~~~;~~~~b~~b~`~iM~~~d~~zy~~~Io~O~~~~|r~N~~|Ss~~~w\~~%W~{~q~^h~jy~~~~~~h~mu~~K~X~~pcf*^~rs~~p~j~~~oy~~u~x~~h1~~~~`zc~pJ~~~l~~ac~~~h_p~~~~O~pm~WVz}~~Z~~~\~q}~~~~q~VV~~~~~~_~~H~zvx~f~~h~.~q~g~~~~_~~L[yb~~~~~~a~l|z~~gY~~x~~~~>~~~~\n~~h~~~I~~s~i~i~HU~~qR~~~t~l~~n]~~~^~~~t~~s~W~k~o~}~Z~~~`~~pgea]~~~~~~~}s~~~Y~~~~mPWip~~~~J~~~r~c_7|~~nb~^X{a~~ouf~~~~h~~~L~~~cQ~~~~~~p~~~{c~~~~~{~~ZC~~~~|rqq{~^t~~~~~~txsm~8<[~~XO~~~y~~~w~X~~~1~~s~Y~~~rL~q~]~~~q~~q~~h\~~Y|~~~~r~yc,GyG~~~~R~~~}Ev~~d~b~~Q~v~bqya~~~9~[ +@c22f7d17-7c3e-1163-ca82-2d31a5d9e954 DDX5_MANE(-),-strand,247-593 length=359 error-free_length=360 read_identity=99.733% +AGTTACGTATTGCTGACTAACCATGCCATTGAAAACCATCCAGGTTACTACAGGCTGAATTAGTTTTCAATGTCTAAGTCCTAGAAATATCACTCCCTATCCCAGCCCTAGCAAATTCTAACTTTACATTTGACATAAGGCATTAACATCAATTAAAGCCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCTGGATCTTTCTAGCAATAAACCCATGTTGAA ++ +:wp~~k~b~p~M~k~T~q~M~kv~~~Tfe{n~~~~N~~|^kfjo|~~~}d]T~~~hez~~~dv~p~uVgh~u~~ro~za~~~l~ul~~~~o`|~~~~Z\yfl~~~ySv~~~Jr~\^n~~P~~~b~~~~~s~~~~~~~~~|Q|~~~~{|~%~~~~~l1~]~m~~{?~`~F6chvr~~Wfa~jh~~~~~~~[~~~~~}~~nCjm~:d[~o~~~~~~qj~~h~nftk~l~~~~~i~w~~~~~~~~~f~~~S~R~M~~~~~~~m~~~]~{~5w~~gw~AR~~~~v~~~{~~~~c~~~~~m~~~h~~~~~s~~4g~~~\{zX~o~~U~o7xv]~{~~hz~J~~Ky~y~d~~~~~~~rl~~~~~~ +@ede1e6af-d786-4b90-84c5-20d1483d7480 DDX5_MANE(-),-strand,793-1497 length=708 error-free_length=709 read_identity=99.862% +TTGCTTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAATTGTT ++ +~f~w~~d~v~}~~~~~L~~>~~~{~uT~[~C~x-oR`~H~~mk~~~hHo~~Gv]~~mOR~~;~gd~~~~~~~~V~~~~~~Hwj~~WU~jW~t=~~~~^~~R~~a~m~~~~~~~x~{m~~%p~~~~~{W~cyn~~~T~~~~a~1qg~~^~L^~~{n~b~q~~~KO~X~>~g~Y}~~~~~^|~~~~G~.~F~`~q~~~~~q~~t~~h~h~~~~w~~~~m~\w~TRY~~~~{l~r~~^~w~~~~l~~~k~v}y~wbJomI~~~O|~~~~~Ru~[~~qi~~~~~~D~zJ~~~~~[~a|~~pG~l-~sV~yJ~^Lw~~~~~~~W~S~teRa~~W~.~?dX~t~O~u~~~~z~~~Qcn~j~~~_xewunx~6~k+~o~~y^~~~y~~~~~j~~[~~~~~~~[~~~oj~}~~~e~~~~c~~~r~r~~b~|~S~~_\~mx~V~Xq~x~m~V~~~~i~Vrc~~~~~~~~nm~~~x|~~~Kc~~~~~~m~~~~~~~~~k{l~g~~~~o~m~~a~~~~~U~~~q~n~q~~~k~~f~~~~n~~~ylz~g~j~U~~~~cOF~~vq~~Pqv~~ud~~~~b~q~nj~~~YU~~k~^m_U~b~Du~j~~~~rXi~|hm~~~7~~~~y~@~G~6~~nx~H}~~~~~x~R~~l~r8cQ~w[G~~m~W~~~VO`|~~a~~~sR~~~^~~~\~~~~eGd~~~~~~T~~}~~tx~hso~](ag~*>T~P +@20884ebe-8b1d-e22a-591a-a1d1c8f204ba DDX5_MANE(-),+strand,2345-3684 length=1346 error-free_length=1347 read_identity=99.927% +GTATTGCTATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~j+~~qyO~sY9~~}~~~~f~[fP~~~p~~{~~~r~~~~~~~n~e~[~Wl~o~{~Vo~~~\kr~{~~~~~~b~~dfn~~~ue~q~{~Z~~~qI~~~~~x~~l~~v~Z~~Sk~~Y~~\~s{|~v~~~~~~qL7~yr-zX~~~e~~~~~~X~t~X`~~EK~d~i~~~~~U~NY~~~o~xE~~~~~py~N~N~~~~jI~~~k~~~y~i~~~~~~U~~~~f~~k~u}~~J~X~z|~~~F~~~~~~~Q~N~~~~Zf~my~~~~~~~q~p~}Ve~~g~~h~~~~x~~~zJ~~~|~]4fR{~|u~{~ndp~NY~z~~~~e~W~~~e~IL~~x~~~~cyd~tl\`Y~~~~~r~~v~kn~`~PR~~~~r~~~~M~~a~~y~im~~~~~q~~~G~Xhh~~i~~~m~~X~yb~~k~~gXxv~W~^~~~~~~~~~~wk~~k~~V~~n~~~l~~}^~~~~~~~qu~Y~~g~~~\~f~~*~~~~~i~m~Rd~v~~~~~~?Fe~D~~~3~l~v~~~~~~~]w~Rj~~F~~~~~l~~~~~~~~Q~~[zw~~Ylmoi~}w~I~~n~C~q}~v~~~~~~Z~~~~~e~9~~~~g`~t{R6K\~v~~c~~?)~~~|~|~~~yH~~g~~~~~P~o|~~~~~~n;~~]~~~~~s{K~~~~gwbs~[s~~~m~d~~~m~~~s~~~~to~~:~~~~qtr~~v~{dy}q~r~~sa~~U~~~~\~~e~`He~~~c~|oe~}~]L~~~w[~~~f~~~~~u~~~~~~drnu~GT|O~~~_~OvlUs~h}~nYLG~~~~~XK~e~~~~~~HaU~~ysj~s~~~;~p~~~W~Yk~~g~~~~j~X~\~~~G~~op~~~~~~i~~e~~~~c}~~{~s~~~~[~~jt~dR~~m~~~~k~~r~~~~dm~~~~q~~~g~~~~r~uQf~~~~~|yvv~)M~~~~~~~~~~jqz~f[~~~~~t~~W~~~~~~Z~~E~~~Nltm~zm~~TN~~k~T~j~Y~~~~~G~]a_~~?=~~<~g~~yk~r~W{mo~x^b~|~~]l~~~~~~~~~|~fmz~t~`~~vu~~^~vs~ix\pl~~zh{~~r`~p~~~~wm_jw[~~~Ka~~~~~~~~M~x~~~s~~~~ff}~~j~~kW~~pvp]T~{~t~~~~U~~]Z~pl~:~yQa~Oi~c~k~~~~U|~n~~~~~c~~x~~~~b~F~~~~~~Qc~4~X~~|~~a~a~~\:g\~~~~~~~~p~~~{~~~CnQ~~~obta}~~Fj~~VdI/~n~~Y~~~s~p{B$~m~Q~_`~~~~~t~|~~d~~~~Z~~~~[c~~u~|~~~~~u|~~~~P~~~i`~t~\Tl~~H~~F~~sr~~i~~~~|~~~~~~~~Q~~~UH~~i~~~~~~y~~x~0~~~~~o~{~mw~y~ +@8116cebd-c8ff-342f-ad4a-74060e9b37da DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,2426-2545 length=144 error-free_length=145 read_identity=99.371% +GTTACGTATTGCTACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGCAATACGTAACT ++ +~~~~\ld~e~Vge~]~~~~H~~~~~~~~~~~~~~p{~~x~~~~~Yb~~~~~Bp~~~~bR=t~~~b~~~~~~l~~~~~L~~~Z~~kq~~J~ke~U~~~~~e~~~~Z~ynXrwO~~~~~~w~~u~~~eno[p~~~t`Wxk~~b~~~ +@4e7a8cc2-f6b8-7dda-847b-99fa0bd32186 DDX5_MANE(-),-strand,3483-3684 length=228 error-free_length=227 read_identity=99.587% +TGTACTTCGTTCAGTTACGTATTGCTCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~\k~~~~~~W~~~we~Y]~~{ni~~n~pa~U~fahw~~}~H~r~~~~U~~~~qu5~k~{Rn~_e~K~~~\~e~B~g~~~v~{~~am]~P~~~~~~~~~y~~~u~~h~~~~Qb~z~~~~F~O~~~u~~~~o~~t~~l~y~ha)ez~6[IQ~{H~~~~~~gk~=w~~FW~~F[y~~~~~Uxw~iJD~~~~s~Mjy~~}~w~~~`~s~~p~~~n`~~_~~bM~~~~~~^~H +@d84bda7b-2e40-9f07-d8cd-e695d41538f9 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,2537-2545 length=22 error-free_length=23 read_identity=97.297% +TATTGCTCTCCTAAGCAATACG ++ +~~~~y_j0~~~~~~~vx~r~~~ +@5deaa482-08bb-cf4e-0f1a-4f5fe44cf9bb DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,0-2545 length=2541 error-free_length=2546 read_identity=99.649% +TTAGGAGAGAAGAATATTTATTATACAAATATAAAAATCTATACATTCTTAGCTGATGATATATACTTAATCAAAAAGTCTTTTAATTTGGATATATGCATCATTTCCTTCATTGTGGTGTCTCTGCTTCTCAGATGTATTAATCCATTCTCCAAAGTAGTTTCAGTAGACCAAAACTGTGAAGAGAATACTCATTTCATCATACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCCAATGTGGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTG ++ +~~v~C~M~~~}hpo~~{8r~~~Z~T~I~O~~~~~~~~~txW|~~~~~~}~~~~~=~r~~]g~~~~~~~Y~z~'~~Tu~Do~~~~~~~~O~ct~~e~~~~~um~~i~afn~~~i~bem~~t~a~~~[~n~~{r~~@~~ou~2v~~~~~t~~~~~~~~~}_~~QL~5hy~*V~z~~~~S~yj~>z~~pW~~~~~~~~j~~x~~b~~~_s~~~~~~~Qz~~Y`~~}}V~`~~~j~l~~t~~~~W~~~e~~m~in~~_~:W~~~~~t~~~~p~&~\~~c~~npn~}m~~~~~|~}~~~~Tp~[~|~p~~;j~~~~e}~~o~b~~~~Kkgx~~~~~~~~qm~~~`k~~m~Tg~~~~~~1~~t~LaiV4~~xyiusEv~wy~~~bil~~~~~~~|~~~~|y~\~~q~~~Z~~imJ~~~h^~~~~duy~yMp~~xSsRaeK~\|~~WQ~~[~^}~~n~~W~~~~~\{n~~~lg~\~\~~~~~j~~r~~w~~c~~~`~~Xi~~~~~Mgq5w~x~~~q~~~~~`~V~~}~~~~~~~x~Z~t~~~i|~ZZ~~~}~^pXs~g~~x~o`l~~d}o~~~F}~~~g~~~Oa~~~w~~~~~p~lx~~G~~QlR~~~uhy~XtO~~~~NOaX+V]~~l~p~~Y~~~~?_b~{~|~~p~~[~~~gMt~g~R~~~~h~~~rw~~~eUu~qezc~~|j~M~~et~[~~~~r~H~}op~~~~~~~~~c~L~P~~m~~~z~~}~~iUF~@~~o~~~~~~~D~~~n~y~WfmbjtbKU[Xe~~>~b~QR~u~N~~~~~e~~~}E~~~s~~sTeQs4y~~~~~tGN]}co~z~~~~~0~}Wt]~vU~~~~~fVa~yk~nX~~~qot~~~~hbY]~6e~o~~~~~`u]V~|s~Stb~~~T~F~~~~~~ej~~~[~~~~v~~~M~J~~h~Bc~cVs~~Dz~~~~{~~~\~~~h~xu~~Kq~-~~y

~~H]]~Gkjl~}~sP~~~q~o~J~~~a~~y~N~~fc~~~~~p~~h~~~~~h~~~~Yvv~a~hY~~g~~~~w~~~~~EY]~~~V~~M~3~~~ky~~P~y{~~h~pb~~~~t~~~r~~U~Lh~~~~~~~~+~~a~~~~~~~~}~k~g~~~a~~j~~{~owj~~w~~~h~rU~Q~|ohl~_~~~~L~s~~~~D~mf~dk~xlN=~~z~~Eu~~~~~~q~H~~r~}~X}~[~~~~zo~~~}~=~~~~r{Z~~i~~{e~~~~~~jngpw~~]S~h_rq[~a~m~~~k\~~~~~e~~~d~Xl~h~I~{N~~~dT~~~XiQ~~~N~u}ds~~l~|~~~~]~Yr~h~C~a~~~|~~~b~iw~~~V~_Efx~~~~~~w~~~m~xR\R~k~~dG~~~e~~~e~q~~a~~~`~sc~8~~~^~~~N~~~~~~~~~~~~~~~~y~~k~yN~Xn~~P~V~[\~~lmw^~l<~T~q~v~Y~|GY~et~~~6~P|~Q~~~sk~~l~y~?~y~~~~~mn~_\~+~~W~~n~~~~gV~cQ~Hx~Nw~w~~~~o~~~~flp~~~~~~k~~~~~w~~~'pn~~v~~~~~~w~~~~kq~]f~~iJ~~}e~Ue~kzM~~~~~u}~~sv}~~ozq~eN~~~R~Y~~Si{~~~Cr~bBF~~~~^x~~^~zFz\~~+~~~as~I~n&x~h~~~xE~~j~QU~~~[yg~dnz~UO~h~e~~~vmO}~~~~~o{~~~_:~~~~~^~fz~~q~X~hy{~{~lc~U~~@~~~tq~[k~~H~~~gn~O~~~~lx}~~[[~n~u~~Xg~~~~~}~Qvcn~~@~~x~c~~oq~~`zb~Sr~d~_Uz~^:N~~~~~~e^~nO~M~e=~~~~Upkw~~~`~~i~qo~~~~~~~~~~w~w~y~~Vx~~~yop~\z~o~~~q~~~q~y~~~~~~~~=j~~~~8|w]i~~po~~~jp~~~~ztMQ~f~~~d~Z{~r~~~`Qlw~~5oqs~~qA-~ss~~~~~~~~~~k~~~~u~zw~~~~1CjXp~~~~v~~~xa{~i~~~~~~~\~~w~~Rrx~_~~~~~qS~~~~fj~~~QJ~h~g~~~IyqQ~~dI{b}%D~&~{U|Sye~u~~~~|~~?~~}~]~?~~~~f|g~TTD~ht~}~_~l~~~~~~|d~y~~~~zd:~~~X~~~V~~u~~s~N~~~~~~~h~~w~a~w~~O~O~{Ps~/~~~~S~zjl~~Q~azre~~u[~~~~~~qf~~~y~~~~~~b~VRt~d\~Yn~z~~~R{~n~~~~>i^~^~~~i~~U~~~~~~~n~~~~~~q~g~~g~~~~ro~w~sv~V~7vT~f~~Yv~um~~d~P{{tZ~|~}~~{a~~{Z~~rp~~~~f~y~R~I~~}~IPve~~~~l~~~s~~~~~~~~q=h~OW~~DQW~v~z~~~|~TwIWi~~SP~~m~u}vl~~~~L~~~~cOYV~Rr~~[~~~b~^[`~m~~Jn~~~~~~k{~~m~V~q~~~~>~~~pwn~X~~~qdk}~~my~~~~~~/~~~~~~w~z~g~~gY~DXi~l~lQ_~~~~~~~~wmV~g_P~~~l~vZ~{d`~~~t~~^~~8y~~o~~p~q_p~~~jr~~s~se|qo~~~n~~Z~~~~~~ra~MIi~~~~~w~~W~~|YJ)~9~t~\TpY~~xfv~~~~ +@4a2f4fd1-cff5-750c-fa16-710af20505b6 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,0-2545 length=2557 error-free_length=2560 read_identity=99.806% +CAGTTACGTATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAGTTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~~~~~R~s~X~~~~~eiFat~~~_~~~~~{y~~~~1q~~~~\_~~~~~~gs~~~p~~q~s~~~~~o~~~~]~~^^~ws~s~zE~~~ri~~~x~~E~f~JeM~a~~~rt~]~Z~~~{~|~d~]~Ur~~~~~~~r~~~u~~~\~~~~~r~d~~y~ca~~t~h~~~~~e~~|ih~a~z~~~~~~~~~u~`u^~8~~[~~p^~g~~~|~~~~~j~[~~~~[~~~~~~~f~~^~s~_ts~~~~~~iys~~b~~y~~~~~Uy~~~~~~]~~punD~W~iU~~~x8~~.h|sR~~lm~Y~Lt~~x~~a~~~~~~~~~~~W~T{~B~~{z~~dr~~~~K~YSM~~~~~~~~~~~qLk~ycst~~~dr[;~~~i~~~~~~~~~J~iq_m~~O~pY{~~~~~~a~~~~~~~s~~n~~~S[~x~t_~~~~H~d~Q`~~B~~~@ty~i|~~l~D~~~n~=~~k|~Y~~c~d~~~~~~~~Wj~~~~r~~>~~`d~m~`~~cWD~~~~~~~V~~~Or~~~u~~~]~{~lec~_z~RQ~~~~Ehof~~~vGhY~~Vre~~~hm~~nF~~j~|u~_~~i~~~p~gp~ii`~~~k~S~<~~~~w~~cu~xh]Q_~~~~~r~~~~E~QD~|e~?~~A~~~~~~~~^S~y~~~v~}~n~~~~wqk~^~J~o~~~~~Mn~~~~~~c~~u~~~v~u=t~c~~~~K~]~~~~Ui~~~~~~~q~~~~~~~xf{~~~~i~|~i~y~~|}~~~~~t~~~qTg~~~~a~~~Q~r~~e~~lo~|~~~~~~b~~~{~~~~~~~~~~~}~e~y]~e^~~O~~~V`~l}~S~~g~~~~z~{~~b~~w.w~n~H~~~[~~~hiyq~q~~~~F~~j~m~~}Yz}J~~~~s~~qfzRW~ho~~~l~~[~~Ff~~~~{~kj~~s~~ZY\~Rd~~qw~aS~~~W~~cl~~~~~~~~~W9~c~~~~}w~QH~{~~P~]~t~~~~~\~~~~~r~~~~~p|eRc~Y~~k~~~~Mqn~:~pxjV~~~~~~Ovz~~~Zl~~?~V~~i~~r~~~~d~~~_~~Y~y~~~~ik~y{~~~k~v_~U~g~~~~~\WuzW~~t~~~~~~=~~v~|~Rw~nb~~{~`~~_~~~~~{^h~~]q~_~~f~_~~~~~L~ryw5~`as~o=__~~}~~~c~~RK~~~]~fb~~j~~~~J~T~~~ZV~~~g~y~lj~1~_~r]~Qg~~lxX~zs|~]~~~V~b~d~syRzepbqW~Bwv~b~~Za~~K~~~~s~~~VVc~~aa~~~~~~QP~uvwifq~g~?~T~~~~~fw~~D~~~~~I~d~~~~b~f~~~~~k~~~~mR~M~~~~~~hf~~q~~d`jo~h~q~x~~~~~~~Xm~~~gg~~~~~~~~QQ~~~~~~Z}~czle~~|~^~~~p~~{~~~~~~o~m~~Z~\~~~~~Y~~~wz~y~jk~~fN~ik~|~nuf~~~~|~If8~*ps~~~n~~\v~~w~z~vG~~P~~~{~~hi~~N~~~~~~~~~~vPoYm~~~~~U~~~s~^~4T~q~~~~~K~~r}k~~~|G~~~~~]_~g~w~~mXR~~~R~|~~~~~Xcv~m~fm~{~~~ge~~)~s~~_P~om~~~~{vk~yA~yw~W~~~~~~~r~~H~@f~~~~~~`i~~[~~~~~~U~~nvi~~~~`g~Q~~@X~~n~~~~XG~~}~nhk}~sx~~j~I9~Tf~bnVb~NZ~~X~~b~p~h~~~~~~~~m}~~~v~~m~~s~k~~~~l~~J~~p~~~Q]~GcX[h~~~~s~~}d>s~~~MDf_w~c~o~~~~~MX~sX~n~~U~~k~q~~~U~T~~|~~~ZX~}c~n~~~k~`~~l~I~\~~Ly~Xa~Y~u~.~~jgP~~q~h~~HP~~~~~~{~`~~~~~~~~Vt~~~~b\~~z~~~~uO~aa~~d~~nxP~hFH8L*:~TK~q~d~~~m_T~~OQ~au~~~~k~xvp~o~uwv~&~~u~~~~~z~~T~y~~~~~~b~S~~~m~lipb~B~~O~O~~R~~]b~~~j~n^~y~~Wnp?M~~~~~~~~~k`{y~]Tsj_\~|~MG~N~N~Q~~nI~jYYog~_~~~~Z~~eOx\~x~~tl~~~~~o~~~P~~~~m~~WV~~~~~}~z~~Z~~~~~~P\~ywjr~R~~~~~ga@~eD8~F~m~~~~|~`C~~~h~~}~~qa~~~~~~j_~~me~~~~~~~~~A~Y~~~~u~|P-gpb~~P~}y~~~~~~~r}~bt~h~~vz~}r~~yq~ntl[d~~laNQY~T~~~~q~~~t~~~cw~~gt~o~r~~~B~~~~~h~~~b~~~~k~o~r~U~~~uX~a~~~~~~~s~x~s~`bw~~~~d~~]~Wk~~~~~~1Hw~~Tz~~]|~~f~Z~a~RP~~X~~~]~~~s~~~~u~~I~~~W~~e~itG~~V~~~Wd~m~I~Vi~\~~~~~]~W~~xq~`~~i~\vm~~J~~hk_~u~\~~Z~_~~v~~*~l~~m~~~~~NK~~Rmu~Q~~y~~~~}~~kw~~~~~~~^~~t~~e}~~~~sl{{~uv~`~~~~T~~~d~~~~~b~~~~~~~og~~hT~~~~~~v~^^~~~e~~o}~~g~E~C~H~h~~vY~~~~U}|~Eo~~j~ea`~~~~o~~f~~~~~{~y~~~~~~=~u~~u~luS~~~~~~g +@f331dc8f-9990-f79a-1895-4ec04e2d0889 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,73-1062 length=1006 error-free_length=1005 read_identity=99.706% +CCCCCGCAAGGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAATGACAGCTTGCTGAAGATTTCCTGAAAGACTATAGCAATACGTAACTGAA ++ +ii~^~~rFh2_0BO~am~Q~~x^~rfyk~~~~~Ue~~~~I~~z~~~Q~~nOr[s~b~q~~a~W~~~~afTd~~~k~s~Qj~~~~~Z~~~~o~~~]}l~~~ow~~~n~u~~~d~~~~~~~t~~~~~~~~~~~~k~~l~~i~p~~~~n~~~{y~w~nlp~~~~bj~WK]~y~~k~S~~~~~~~wiva~~~~~j~~B~~g~S~Tz~d~~~]u~{~\~~~c~:~n~~~p~`w~~fY~cM~v~~~~2~~@~o4~m~w~[~~~~s~~~~~f~~~~R~a~~~qtM~~eL~~~~~~v~~P~~~es~V~~n~m~k~~m~~^8k~~~~Z~~~~~~yi~~y~~s~pG~~~v~ti~p~~k~~~~fq~~i~l~g~~~~3~T`~a~n~~_M~e~~oWbC~~i8l5[p~~t|yw~~]H~~H~~~^\B[~~x}~hd~~~n~J~~~~U~gsp~~~~~}~~~~~oO~~~~\~~~~~~~~~\~~~}na~b5~hB~~~~~~ay~~j~s~_i`~A~~~~{~~~~~rr~h~~~~x~~qp~~d~^us~{~~~R~v~~~g~~|~|Z~{pX~~[~~~l~x~~~~~b~n|~~_~J~~i{~O~~a~c~r~~{~~qah~f~~s~xIVaS~*Q3`t~~~~z~~~z~N~~?~~cum{~~}~i@~yv~~~Sv~~~iubse~/~ +@d95b750b-d208-a117-3d58-e8e24b0d3056 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,2533-2545 length=25 error-free_length=26 read_identity=97.500% +AGTTACGTATTGCTCTTCTCTCCTA ++ +uT}~~fc~d~tt~~Y~~Dq~~~}yQ +@cfb27b37-8097-c7a6-2aae-68de45f0307c DDX5_MANE(-),-strand,313-1821 length=1531 error-free_length=1533 read_identity=99.871% +GTACTTCGTTCAGTTACGTATTGCTCTAGAAATATCACTCCCTATCCCAGCCCTAGCAAATTCTAACTTTACATTTGACATAAGGCATTAACATCAATTAAAGCCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGAAGCTGACAAAGCTTTTATGCAATTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCC ++ +S~v~~~~~~~~y~~[~~~~zD~~v~~|xP~~~I~~m~~u~t~~}~Z~o~~e~lO~o~~~~ply[[[n~~f~~~~C~~o=|~~V~gZh~o~_~~|~w~|~~~~}~~~~i~~~WwZe~~Vi~b~j~V~l~TN~~nm~~l~~iey~~I~~~~U~q|~~~Q>~fdk~~~~I~_tyu~Gy~vi~X~a~~~n`~kTH~^~-~k~x~yl~~~~Im~v~~Xo~~~~~~u~a~}v~~W~~W~~~e~}~b~q~~~~~p~~e~fo~z~~~~iB~_l~~~Rma~zz~~o~~fo~~c~~~(pcyXZ~~~~~o~~`^~~L~b_~~m~~~~~s_~eg~~~~eg+~y~K~~n~~~`~~~~j~~~~qk~~v^NI~vL~~~~~~~~~~~_~H~~ptj~`w~~~~~s~~~w~~~~~~~~~~~~OuM~}h}l~w~~X~~~_hw~~7~~U~~~~j{~k~~~~~nr~~~~>~e~~6~w`~~~Q~~X~~]~~~Vx~y~9vw~~~wp~~~~~~YWuU~~~O~~~~~~~~o`~~U~~~~i~e~~~r~~y~J~z~vx~~~~V~te~l~e~iy~~x~t~^nY~~~y~~T~V~~~_~~rI~T~U~~x~4ucu~~~~~a6~~LT~~~h~r~~\j~^q~~~qt_U~zuY~~~~^N~z~~q~s}~X~~[~~as~p~~~~~Y~q~}~kxS~w~~ogxv0Or~}~~}~eb~d~~\~~~_Y~~~~}~~~~r~~ok~~q{~~~~~zUy~mG~5ypx@~~~~f|~|~n~~~~a~~r~~my~~l:~S~~~~~~hMd~~~vnb~e~~~j~y~oo~~~~~eL~~q~bI~~~~z~~~~~~~f~~~m~jm~~~~~~~~[p_/~g(~`~~~R~~~~~soe~~~r~~R%1[~~cX~z~\~~L~~b~~~~~j~i~~`e~~~~q~G~~~X~~X~f~_v%W~~~~~UO~v~\m~~r~~voxt~~~Z~x~~~~~\l~u]~^~~~~^~~l~~~~~~~~~~p~SX]p~b~t~[~~~aX~Tl~.r~~~~cr~~~~g~U~~~~lN~oI`~v~\~~~~Qi~~~~lf~Gxm~eVwZxU~~~gcomQ~~|~~~>~~~~~gV~u;o~^~~~uR|x~n~~Y~~~~~f~~~w`\O~~~=~wt~H~~n~~y~~n~~I~s~Xbuf~q~~s~u~O~N~LM~|~c~Lw~~~s~\v~do~[Is~z~b~~~~~Vyt~z~Wu~~~[~p~N^Pm~~~`V~~~~~~~hr~~~~~|\qU~~p~~F~~~~~svI~~Qzz~rh~xp~R~~~~~~v~~~~~~~x~}~~u~HE~~UO~~~~s)~kym~~~~~~k~~~~~~t~lis~~^ka~~~~j~~~h~L~~~sw~y~cQ~hc~hncR~~~~~S~~~~q5~~~{=}~ZOs~~~z]~Q~~~}~Yf~[~~g`K}~~^u~~~~~~f~l~~YW6~UY~~~~~a~~~TuQ~~~w~~V~~~^,~~~~~f~~~~c~~z~~~^~g[~~~~~d~s~tM^~~~G~~~s~~~~~~~~c~~qmo~~b|~~5~h~~~~~~~aR~~~@~~k]plAph~x~~_~jN~~~a~~~~Uv~~~[[nh~~~1~Yg~~z~~Q~~~~x~~~~KD~~gc~~~~~D~~}~~~~t~~qz~~~h~u~s~~~~v~~t~Nd~~~~~w~~|~~~~~~~~~_l~~~~n~~h~~~s~~~~X~~Qq~~n~Pc~~~~o~~edj~t~[gw}xi~~Rr~nq~~|~~~}~~~~~Jg~ny~~~~~~c~b~Y~~}n~~~~{rl~~e:~tvn~~m~z^U~qq~~U_~~~sh~J~f~}~~~~h~B~{x~V~~t~~ +@ae4391a0-525e-a39b-95a8-d4baeec2c01c DDX5_MANE(-),+strand,3609-3684 length=99 error-free_length=99 read_identity=99.115% +TACTTCGTTCAGTTACGTATTGCTACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATCAATGTGATTTTTCTCCCCA ++ +xx~~~}d~~~S~~~~~~y~nT~cj~~~^~kG~~~f~~p~{m~~~nvs~~t~~~~~a~~jV~~~}w~~x~l~~v~~Z%3Id~VaN~~~~~~l8~~Rt~Y~ +@f355d3c2-d12f-2f3c-c81a-270540bdb268 DDX5_MANE(-),+strand,501-1441 length=958 error-free_length=957 read_identity=99.897% +TTCAGTTACGTATTGCTGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAGAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGA ++ +~q~~d~~~~~~~b~^_~~ft~~6~q~[R~~l~f~~cNy~~ea~c~]~i~~w~}h?S~~a~~w\~u~Pl~~Q~z~b~G~~~~~~u~~_'~~~l~f~d~0~~oz~K~Tj~~~~~~~~~~~c~~`~m~~_~~~s~~~guMf~g~~~5FE~`~Q~~~~~~~u~~~~~riE~|~~~~~~~g~~Z~U~~~^oo~~~_~~~~~r~`b~~~~k~~jTSvQ~c~~b_~~~~~i~l~cXR~~a~.~^~~~~~~~l~~t~a~cZ~n~j~~T~xf\`~~}s~~d~rd~|~~~m~{o~~V~~~~~a~~+~mw~qz~\pt~_~b~~xs~~~b|~~P~oT~~~~U~~d~~~~~n~b~t~kP~~Y~n~~Nvi~t|fm~`~~~~~~~~~~~~~~f~~~aow~Jj~~~~{f~~~E~y~csX~~{r|~l~~~y~~XH~~p~RW~v~~c~~t~ou~~H~\y~q~w~d~}~uHvt~~d~t~~n~~~~p~~wn~~r~~~~=~P~_^~~{\~~YqT~~~~k`~~m~s~~~u<~~E~~PyS~v~_uWqq~~~^~~%~~~~v~~~:vZ~~SRl~~vf~_p~~~~c~o~n~n~~~~i~Rr]V]A~~~~~~z~~~edx~[Yy~~~Z~~~~~~~~~~di~~~~~~~~~h~ny~~~~b~~ol~yu~~~r~~~~k~}~K}~~~io~N[wS~`~~|~~od}~~~0~~BS~~~~g~zt~H~~`~~?~~~~o~~p~~~~j~~~~~~P~~[~~nr~~~~~v~~n~~~~~c~~OP)mh~~~~7}~Q~l~?x~~~~~~d}~~}~Y{S~g~Y~r~q|ve~~n~~~~~~m~~~~~^}~X|~~~~~xn~~J~~m~r~~~~dZ~QnPb~~~~~~~l~]c~M~v~~Q:~U~~~~oj~w]p~{~~~w~~~~ko~~~~A~~~~~~]n~rh~u~~_c~^~n\i~Mw~Z~~~N~~~{~mlVV~~~~~~{~~~~~~o~k~~~~~~~j)Fnqn~h~~~~~`~W~A +@93952bac-49eb-b456-6b48-df1baeb2f196 DDX5_MANE(-),-strand,1822-2268 length=468 error-free_length=469 read_identity=99.793% +ACTTCGTTCAGTTACGTATTGCTTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCTCTGAGGAGTTAGGGTAGTCAT ++ +i~~E~~]~~~k~~~~nnd~~`u~~~Dm~~p~Ln`~~~v[~~`p{[~~Tm~V~z~~~ai~si_U~~~~S~~~~h~v{rw~~~~~~~O~~~f~~~~g~~~~~w~~~~~I~~r~T|~~~~~~f`m~s~m~~L|c~~x~dR~~n~~[~~~~~~~~z~~~rB~~~y~~~~~~~~xK~E{~~~A~~k~~b~~S~=~Vfprjw~Dp~k~~}t~~~~h~l~|s{~~~~~~~~~^QRc~c`~b`~q~~~~~~K~~`~~p~\~~~~bZ~~q~_~fp^q~~e~~~e~~sTh~~Z~~~~~~r~~y~Og~~~~om~`i{~~v~|~}~~\V~~m~~~r\o~~x~~~v~~~v~Z`~~~~~~TT~u~~IJT~~~^x~~~]jb~~k~W~tfz~~~~~~~~l~bj~~hp~~h~~`q~q{~~~fn~~~~w;~~~~f~~2|GnkV~~nt~~~~~w~d~~l~VCCuW*~~~qd~~|~U~a~~D~7~jsR +@3293b43a-a674-8e00-35b7-cd39216171cf DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,0-2545 length=2572 error-free_length=2574 read_identity=99.923% +ATGTACTTCGTTCAGTTACGTATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTCGTTCTGCCCCTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~sdxg}~~i~P~nV~`{aVv~}~~~~~~cRu~~j~~~~~~~D~tc~~~~~~~p~~~k~~~~~~t|~~~~~~~~~q~~~k_~~R~~s~~X~~~^|~~w~|hs~~a~~X~~o~~~p~~~~~~_~~~~~vOb~w~~~}s~~l^~\uP~vi~~~k~~~[p~~~F~~~~~~~f~x~~X~~O~FY~x~ul~\~~a~~~~~~~~k~1c~~~~~h|~~b~oe~~~~~~~w~~~Vx~~~d~~~~~~~~~s~~a~~~jn~~k~~~xQA~&~~Em~~w~~~t~~Ten~~Y~~en~~~~]I~k~~~?~~hj~~_~~}~~c}~`~Dp~~~~spl~~~~~~[R~~~~t~~i~[~~~~~?~\~~~~@~t^Mi~~~~~fXm`~~e~~~~~~a_lw~z~~wg~mfH~~~jpK}x~~d~~~~C~P~~~m}}~UDftqcs~}w~i~~e~~~~~~~~c7~~~~~~~~w~~~~|~~Ui~pgT~~~~~fm_~~em~Hp~~~n~q_~~~~]~~~~S]jw~~mm~y~C~~~]p~~~~~~~~m>~~~~~O}Wr~~N~R~~~~Zm~=I~L~c~~~~~G~|~~y~~~~k~\z{cW~N)ss~~|X~~~~~~}~~W~~~l~~~]~~pI~~~~ha~t~~~s}~S^~k\~q~Ea~s~\~ia~~x~~~~Y~~~:~k~~g~~~a~o~~~~q{~~wA~h~nP~~x~e~tuVyK~Y~~bZ~Z7l|n~~K_~y}~dcS~uba~~k~YL~l~~o~~~~~~Qk~~~v~~~x~m~~~S~L~c~~~~|~~~~~~~~~m~ewbl~~~~~J~i~~{~~m~cHNU~z~~m~~~~~Aw~~~_~~b~~~L~~~m~~~~h~~~~~~~c|Oh~~K~~?L~~~~c~~~Vsqh~da8Z~~vk~~~~rrj~~U~hhpp~~~~~~~~wj~U~~{~uB4~}e~~n~~~bh~~r~~zw~\~tK~p{he~~~~rr~i~~q~hX~m~|~~{~~~X}~~~Zdq~~~~~v~~~~~~~j~G~~~r~~ve~~~~~~~~e~~~~~~yn~~x||~`~j_n~]{bz~~~jl~lK~lse~~R~~2i~Ce~.~~~~~s~h~V~a~~~~~~S~Eg]y~~d~\mU~~~c~~j~~~~~~~~s~~~~t~i~~~~XL~u}~[f~~~~o~_~~~~~d~uiqcR~y~~~sT{txYd~~h~ev_~~~}~V~~~i~~L<]~~Z[V~gj~k~Q~l|~~~~~~m~v~~xO~u~~~_~~~~~q~|g~`r~~~uZ~|~B~~~~~~~~r~z|~q~N~kw^}D~~[~~l~~V}p^~~~|p~n}~{~~~~mN[~~CM~m~8~~~|d~~T~nuV~~~~~m~~~~~~~Zo~~~~~~W~j~~~M~m~J}~}~~~h~~|deym{iqj~:[~~e~7~q~<~bg~0~~d~\~w~~~t~Mw~~~srl~~~j~~~uaI~~~9~r~~~~~^u~n~~~~H~~~~~uc`~_~~mEt~r~n~~m~~~~~~~4~~qK~~j~u~~~~~{o~~~w9~~~Q~~~~p~~w~u~U~~~]~~k~h~o@~U~~Z~Wf~~~|`~~~~~~~~~~~}~~Y~~~rl~~U~~VVx_{~~~~~7}xRhpH~yU~~~~~~`~~?;m~~n~~~~`ee~~u~~=~sk~j~~t~~~~~~t~~[~f~dr~~~ryC~~~~{y`~~~~~f~~~~~\~]M`~~`~P~~~}~~~RG~~~X_~Mg~F~Hn~~HQ~~~~~]~py~]~}~~Q\~~~~ojXa{~~y~~~~~~omeuo~x~z~~~{~~~~~Y~~~p~zkm~~w~~l~~~~d~yd~b~~~~|~i~~~~?u~C;~~|~tt~^`~t~~~z~~~J~~`~~P`O~u~Nn~r~g~~~\~i~~~~~~x%~~g_~~FwU~~~~~~2~}~~~~|~~~~x~?~UP~~Z~~~v~~~]oq~~~~~~~V~~~~~~~B~~Q~~~lt~~~~b~~S~~`~mwj~uy[~~g~whhijH~~~~~~~|~~-nth~X~~~w~~cm~~~~~~~~|~ry|~[~~g~g~~K\~~~~~Qz~V~~~~~yYp~~~~~^r~~~~~~~~~[~~U~~`CA~s~Rlv?~L~~r}~k|]~hn~Q~~~Q}tk~~~~~n~~:~~~~e~~P~~~r~w~?~~Hr~a~R~~~n~c~~\~5~~~^~~~~~wm~~~`e~~p~~~~p~}x~9~l~pu~~~~~~xd~~y~]~~Dma~r~~~~~~f~~~~~~ah~~|~~jOzu~~~~~~~Q~~~ +@d4dd2c4d-689c-9c7c-011f-5f1648604c9b DDX5_MANE(-),-strand,0-3684 length=3692 error-free_length=3694 read_identity=99.946% +TGTACTTCGTTCAGTTACGTATTGCTTGGGGAGAAAAATCACATTTATTAGTTAAGACGACCACAGGCTGGACACAACACACATGCTAAAAAGTGGACTGTCTTTTAAAACTTCCAAGGTAAATAGGTAAATGTTTTCCACAGCCCAACAATCATTTCAGTGTTTACAAATTAAAAGGCCCACGGTTAAGACATTAAACAGTAAAATATGTAATAAATGCTCCAACCTACCCTCTCCCCCGAAAGCTGCTTCTAAGTTTAAAACCATGAATTTGACTAACCATGCCATTGAAAACCATCCAGGTTACTACAGGCTGAATTAGTTTTCAATGTCTAAGTCCTAGAAATATCACTCCCTATCCCAGCCCTAGCAAATTCTAACTTTACATTTGACATAAGGCATTAACATCAATTAAAGCCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATCGGAGCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +ty~~n~~QiV~~q~o|~~~`~~p~`R=~~Wd~p~uum~~~t~~~s~~~|~jzY~~mu~u~_-~p\~~~N~~Is~~~~~\~b*~f+~~bxn~~~~~~y~e~p~wz~~oRX~\~6jws9q]~~a~~A~a~Za~~~|~Sq~~~ncz~~~>~ujo~~~~~|~~~~~~~kp~y~~a~~mm~~Jrh~~;q~~~v~@f~B~~j~o~~~~~~rYc~~~~rir~~~~~~tv~n~I~u~^~~~~~~Ekw~~~5~w~~t~f~~~aN~r~~~~~zp~;%~~~bS~~~,q~~uj~||~~o~~~~m~^Sk~~~_~]~~eb~N~~~~~~LB~t~~~~~v~~~~~~~~~~sJnb~L~~vy~~~~PP~~u~Qs[~~>~~~}rz~~~~~~ig~~~~x~~~~~poZh~b~~~~~j~~z~~~~Z~~x~F{~~~~iq~a~~~~P~j~pj~axs~brq~`~sS`~r~wZ~p~~~y8~{~jtrv]~p~<~r~~~~@d~~~~~~;D4~e~~~p~~~~fY~r~Ou~nM~~gmtj~~u~~~s^u~Zhf~~V~v~~~~|~dy~~~~dW~l~N~[~~~\~sw~~r~~`~FV~~:~s~XYa~Zv~x~~~~~~~~~~~f~~~v~sb~~p[~~~~~~Jk~g~F~UnGF~v~~x~~~~~~T~~~tb{]O~~~~~q~~hrkm~~n~M~~~~Y~~~~~vec~Qo\~~~~~x~h~~[P~~~~~eY~~~knSC~^|D~d~~~v~~~~~~~~V~{~~j~t~~t~~~s~ou~^~~m~~~~{~l~ey~~}]N~~~`~P~~~~~sz~s~~N~F~}~~J\|btP~ctl~~~~~~~~~~~~~~~~c~~f~tvQ~T~EX`~t~~~z~@b~N~~~2~~~~~~~~R{~_{~n~'~~z|~~~~~u~l~~~~_~uj~~~z~_~~~Gkc~~~V~~~~Q\Y~~~~~U~~~~~~~~~~~dm~~_~d~O~~su~l~q0t~~PoL~~~n;~~^~~~~~(n~~d~~~PmY~v~~~|~~~~~~~~m~~~~~d~~Mg~~~~~~~pha~_xd^~~~nx~X~~~~~~~tL~~x~~W~|e~G~~~~~P~g~g`~~xu~~~~m~<~o`~b~`x~~{x~n~~rn~Z~~~^{~~r~[~_~~~~{~~n~[tR~~yOT~~~G~k~~p~m~`~h~|~qQ~~{f~D~w~~rz~j~X~~~e~,~L]k\~~RP~~.~uK~~wqmh~~~~~~~i~~(~U?~i~~~~aLotV~tA~~~gG~~U~]~~~~~~~~~~~~~~~~~~Ij~qY~~~o~D~ri~~~~~~~~~vo8~~~A~~~~~~^p~~~i~~S~~~~Z~x~~~~q~n~~K~=Q~~rt~y~y~x~O~@~~~P~{}~s~e~~~~~oe~|~~nwt~~~q~~~`~?~~s~~~~`md^V@~~~~~~~p~T~^a~~B~~~~~~~~UpvWm~Yb~~dI~~~~e~T~j~hK|r~g~<~y~T~d~c`~E~~j~~~ou~~~~~~~~ny~~~h~~lexk~S~W~wn~~~{sp~8tk~~{i~~~~~~~P~~c~~~a~~~~~~~~~~~~xq~e~~rb~~|~t~~Fe~~~d~~]~g~~~oxg~~~^y}P~\~~~e~~~Y~~lS~{~~~vyl~~oh~w~~~~~~~~w`2pux~cj~~p~]~t~~l~c~~YN~~~q~~~m~~~~~~~{~~~O~~l~~d~~~m~~~M~~l~~.~l~~h~~~~~~m~qa~~j~~UoZ~~~~~~~vx~~`~~h~~~u~~~~~~F~~b|~B~~ze}I~v~~j~~~~~o~~uw~~~~y~~~A~~~~~^~Bd~~_~j~~Z,~hz7~~lo~Y5~k~~~~G~iee~sFmd~~k~~~k[ns~~~F~E~ouGW~yW~~lzNi~~~~fx}~nw~~Rc|~xs~~u~[~~~Eob~y~v~~p~U~Y~}~~~~~~~~~<~h~~~r~~~~T~yN~:wnk[~nG~JQ8~3~^~~hG~{FY~~~XU~dLZL~~~~`~~~o~~~~K~j~~~~~~e~~~~D~~~~|~}~?~~~~p~tO~}`x~~xo~|~~~~~Np~h~~~~gsc~~~~m~`kq~vC~Z~a~~~v~~~aisz~~~~~~v~x~~~~vCvS~V~~~~xKl|^~~R4j~~zlh^g~~}~~Y~~~zY~~l~`~~`~Z4x~W~i_~V~~~di~~~~u~~q?~~jr`~X~~oLS~w~~vd~m~~~~Za;~~~~~~~~Si~g~~~~~~Iw~y~~~~X~~~~~t~~~~~~~~~i~bv~~\~~~~Kd5~~~~~~~~~{~~K\~~~~~}x-~~~en~~~~~~~kfS~~n~~~v~~~~~SL~^VTIY~~m~~h~~M~|q~tht~W~~bz~~~`,~bo~~~K{~~~o_~~ns~~y~v~~]~~~~~~~[~pk~;h~~X~~~~~p~~i~~k~J~~~M9wQ~ti~suX~sg~~tp~n~mh~r~}~~{[~~~~~~~~~~o~~~[~~~s[m~X~X|~~~~r~~~RyyN~~~~sn^~~q~lE~~]~y~~I~~j~~~~d~~~g~~~~~~A~~zo~d~~\i{~~~~~}c|~~~~ysm~v~jv|~]~~wdk~~~~~~nw~~~~i~r~v~~~~r~~~X~~~~~~~~~i~~~S~~|~~zpX_~~~l~~e~~~~~h~~~I~~~~~~~~T~~~sU~kV~~~~twok~w~~~~t~~E~~~~y~~~~~~~rr?~a~Jc~~~~~aw~~~~S~`~~~~~x*~aLv~~v~v;~~~~~sz~~~m~~~~~~~{o_~~~[~~a~~~~m~~~~w~~g~_~j~~x~]~~fY~~~~~~}W~Z~~q_~~RZ~~~O~o~~|~$z~`~_~tw~F~~~~~~~~~~~~dI~~~~~~~r~~~X~~~u~[wmwc~~z~ho~~Z~~~6~w~~~~~~Ut~di~~~~l~N~|~~n~~U~~]~~O_>~~~~E_~z~gP~~~~Q~~~T~[_~~e~h~~p~~~~~~~~q~M~~~Z~~~~~~N|~~~~~A~Awaj~t~e~m~]o}~~~~d~~~~~nzwZ~~b~~~~RlB~br|Y~b~m~o~~n~jP~~~v~~p~xroiz~R~Z~~^~~~~~x]^c_~~~rL~T~~~~~op~V~~~~~~~~f~~y~S~~bVsQZ~j~~~~~~~|~~~~~{~~qM~~z|~~~~~^;e\bi~~~fX~~wK~n~~u~~~~~~~~\~~~p~{gI~s~~a~t~~c~z~w~~~~~~~~S~~z~c\_uR~r~~~~z~~~kn~~~p~~~~~t~~~~m~w~~h~B~Y~A~~}`~~~q~^~a~~~~~?~~~~~{~~~~~jbcm~~~~ZP~G[~~|~~~xLl(~~~ec~~~`qu~~~~lDdu~~~~~~z~~=tvu~j~d~~c~~o~}~n>y~bi~~~Qd~~~_~~P~G~l~~~~xp~^fo~~Tk~~k~~~`~~~~~~hu~~~~~cg~bp\`~v~~~r~~~[~q~p~~~~~~~`\~~~~a~~j~m~hY~rsh~~>~r~mp~bLo(~~h~y~~|~~~~~~~~T~D~nA~~~~~^O%~~`k~g~TU~K~H~~~~~~nt~P~m6Q~~~~~~^d{tS~n~s~b~R~~~~z~c~~\Ly+~rf_~M~Gb~a~~{qxp~~~~~o~~y~gE~t~|XV~nmk~~w3e~~Fuk~~M~c~s~Z~y~_~~~~~~~~~W~yV~~~~~A~n~~im~~~~_Vb~]~~~~~S_me7~~R~~~tw~~~~~~N~[~Ur~nj7`~~~~~~~~e~~J~l~x~~~~~~~~~~~~~b~mt~~S~}~X~~we~~x~jT~~~~~~w~~~|~g~~~WY~lK~V~~l~}q~~~Clc~_~kp~~Zt~mW~~~~~~~~<~WyQ~~~~~wr~,~~n~~~~~<~~}jv~~[~~~~k~f~h~jge~{~q~~~~g~~~~Mu~~y~Tp~ +@0ca314a9-f5e3-aaf0-af6f-90ba168d7c90 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,493-2545 length=2069 error-free_length=2070 read_identity=99.952% +GTTCAGTTACGTATTGCTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +c~~YGn~~[~~j~~j~~~~b@~~K~~~v~Wt~yQk~Y~~Q~~~~~~~pP~~_qR\~td~oY_~~|~~~~scts~v~~wt~_u~=~~a~~~~~~~~x.~hh~~x~~U~~u~|~f~~E~~~g_a~~~O~~~>~~j~~~~~t~Ig~{~`~zarZ~~osoc[~k~~~}gU~~~}|~~~u~gmZ~~~~~~~~~~~~zs~~~~~~U~~Wv6~c~~~~~^|~~w|~~~~Z~jvw~~~~~r}R~u~a_~~s~7~~q~v[~n|~~~}fVi~~~T__~~zWk~w~UA~~qe~}nl~x~|~~~l~~~~~<~|~~~~~~~m~~h~~~N~j~Jp~uY~qi~Os~~~~~~~~tQ~X~Sf~Yp~X~~~{~~~~y]~~~~4N~~~cj~~~~gh~~L~~~~<~~{~~~~~l~pe~~Hy~~T~Y~~~8~~yP~~~y~~~zo~pxJ~~~c~^Eq~~~}~g}P~~AF~~~T~~k@{~~~~{wEyf{~~~Ue~<~d~~]\~j~~OtV~n~T~~r~~~~skvj~aHv~}si6t~w~u~{fo~~~Vc~~x~j~}~~`p~W~epahm~v~~l~.~~~~~2~~t~~~~~~~~~~~E~~Wxg~w~S~~~~MaT~aK~tg~~s~G~hxX~~~x~~I`~a~~~hhoR~~~~X~Y~Y~b~f[H~x~y~~~~~~y~~~|~~}wz]~?~~~t~~~~~c~~~~~NZ~~h~~~~lh]m~n~h_^z~~k~t~yRep~~{~P~~~D~h~~~k~~^L~~X~=~~~~Sd~~~~~~tV~i~~~~{~tsl~V~~s~J_~{~e|~a~~VuzP~~~~~~a~~gi}y~n~~Ob~~~h~}~Mml~~Hiwz~~~~~~_~qv~onx_~j~~y~=Wdz~e~V~~~~v`~hlek~~ml~{~|k~Wpp~~~~pcf~~~~~q~~J~~q~~i~`~mt~~_~~~~xw~z~~h3~r~~~~;~~q~~~~mN-|~~e~^~~x~~n~~~~x{e~~~b~~Z~~~~uw~~ot~=~~[SuK~~~~yQsgucp~_so~~~~~~~~~~~~~~~]~~~w~e}~[uZr~~a|~~c~~~v~_~~~~dyde~~~~~I~~jW~~~~^h~snt~Ohqet~U~~~~}kz~~~{~}~~O~~~~~~~w~~V`K~~go~j~`~~Ud~~~~uk~~~h~[a~]Y}Yq~~~~~[b_~~~~~YyQ~p1~tb~~~O~~~X~,~k~~~~k~~k~X~u[~_~~~oj~~~~~~Rt]~j~~n~kr~~\~~gz~faj~~~~~~~a~J~~~~~~~tv~~~~~~~~~~~~~~~~~~~hpb`~~~i{~q~W~~~~~o~~~P~~~x~~~8~uL.~~~t~~~~~~v~i`~~tms~y~~~~~~|ovl~~~~~~~:y~~~~d~~~e~~~|}~'Z~R~~{~f~~~~^~k~~~S<~y~w~N~~~t8~~~~~n~z~od~~~~~~~~fW~~~[{~~~WxIMN~~~h5~~~,mk~cfpmn8~^~~zL~Z_~yo~uU~~}~~r~X~~Z~~x~~l~d~~km~Z~qK{~~~m~~u~~j}t~~~~~~~~oyl~]~~~~~Au~~P~R~~~q~qs~~g~ze~iKuvfqu~~t~~~~~P~w~~~\~ak~~Y~n~z~~M~~~j~~nuETt|v~d~uw~u~L~`~~~~~~~~{~Sd]~izp~~~|~~~CM~o~~~~e~~Lp~~~~~xW~ln{~~p~~wo~~~~~bf~~q|~~~i~~~~~L~~~~tKG~~Q~~~~q_~~~V~~~~~k~~=~q~~yo~~~~vv~~c~Gz~~~|gn~Ty~~~PJ~M~|?u~~~IK~he~~A_yRm~~~w~u~T~~~~~~~~~~~X~~~~~Xr~~~U~yX~~~~~~w~~~~KN~o~~~~~~~L~~~~~m~~~~~~~~w~u~~~~^|~~~Y~~~fz~~Ybp~`~~e~\~~~~~d~~cb~~z~~~t~x~s~~l~~~~z~}~~~~~~~~~~sq~~rmI~~~j~`k|i+\~~~~~~~~y~k~t}~~~8x~y~~^~~~s~~~M~x~i~O~t~?~~~a~~~~~~~~~wk[~n~L~~k~ER~~~~k~p~z~k~R~~q~Q~~um~5~ho~s~ntYn~~~~tE~~~S~~~~~~w~r~~~~~~~~~~~|LjW~~x~~~d~e~~~~~S~~ht~k~~~URYD~m~be|~~~V~~~p~~E~~~m~~\ +@6e9fc66a-501e-4afb-99c8-2fc52df590a8 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,63-1066 length=1009 error-free_length=1010 read_identity=99.902% +TATTGCTTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCA ++ +~wu~~]~L~_~~y~xi~~~~R>~~d~~Hn~b~~zb~4~ySZveY~M{~~~~I~t}gz~\~r~bU~~~~~~~~\A~~L~~b~~~~~l`~~maa$~k~~~axNx~~~~~~s~~P~~~~z~~~~~Naf^~~[`\~~{~~~~v~~4~fLq~{i~qMd~~~E~~~~~~~~~xs>a~Z~~~t~~r~~~J~~~~~n~~~~s`~e~4wZ~{~k~~~~~~ejW~~~~~~f~~b~~r~ni~}fo~~~~~nL~~~f~Dr[\~~~h~~~I~ihdY~~~~~~~~^~~a~qvdg~n~mVa~~~nY~K~~a~dxX^[~~~~~~Q~Uv~d~~h~nLWgo~~~{~d~~~g~~~~N~l|~~~~~~~~~~~~]mt~~(~{~~dd~~~~~~~~x~~~Rw~U~{~~~~Vp~~Y~~Tss~t~~~~~n~~~~~~~~~s~~~~~2~~~}~V~~o~~~_~la~g~~~~~as~~f~|~F~E~~OMi~~~~~~vux~~~~~C}~~~~~pj}r~~~O~v~~~m_~~~~`~~8~~~~u~~k~qjJ~Em~gz~~~z~~~~~q~qN~V~~d}~~s~~~}~~~qe~~~~~o~x~~~~1d{^Q~~~rb~~.~]bP~_ZEbs~C^z~~~~~~iQNm~~~k~}x~~G~~}~~~~obgtZ~m~VlSW~~q~~~gw~R^~LJ~~|~Ft~~~~~~~dwk~v~~~i~r~~~~~~~K~o~jz~~~~~~~~~~~~X~~~~~~~i~~K~~[~w~~~~Ys~~Y7}\N~)y~~~{wc~s~~z~~j~~~~V~l~~JfyZ~~t~~q^~~~~~~~}W`~~~~~~~~~~~~~P|~~x~_h~g~~~q~gl`v~UW~~K~lsi~~~~f~~g~~~~~~~N~~f~~~~~YSI~j~pbt~~~e__~v~u~bzn~s~~p~kIoj~~g|p~vq~jMtlfh~~~h~~~z~}~8u~~~Ph~Ti~wU~~~n~~F~}r~~~~~t~}\~~~~@~~y~r~[~~~~n~~~~H~b~~Q[~w~_~^~~~m~~T~I~~s~Z~~t~yEye~]~~~~~qh~~qL~~~e~~~~aS~|~tv~~Tf~~m~g~_~~p~[~~~~g~}~~}~l~~p~~~Y~~~~~~A~~~l~~j~x~dJ~~~~~~~~~oTf~~Ua~~~~c|h~~~wi~~f~t~~~~~a~~~~[{~~~~[JpV~~~~~~~s~~b~~~~~r~~~~z~~y~cu~w~~~~~~~{~w~~BN~~~~~~~k~~~~[B~~~~~~~jkcv|~~?i~lG~~~~vw~~S~~~~~I~l~~I~~k~t~s~w~~~~~~Gcg~q~~~F~Th~Wtw~qz~u~QVr~~~~`ay~W~~~~~~Y~~~~~~u~iT~~~~x~~~V~~~~y~~d~}~~KO~~~~~l\~{Qr~~{~`F~~~7d~~~>i~~~~up~~~~thbf~~`~LRR~~M~~az~~KQdprNW~tk~~~~~~S~o~g~e~~~~X~~~~t~J~~~~~~~~v~~~i~~~~~~~O~~i[~~~~Yk~~l\Yo~~NG~Y~o~~~~~X~}~[~~~~~~|~q~~~~}~~|~~~~~~~l~~X~s~i~~~x~~~~~~~~~~\j|~~h~~l~fd~~nS~~~~i~__~[~em~~~~~~Y~8Qr~~U~xor~l~jE~~m~xu~s~s~j~~~~M~_~~~~~X}<~~~th~hh~~~n~~~~~~~~ya~~~|`V~~~~~ddA~~~~lVf~~y~'~~x~~~~~j~~~o'~~K~be~~^~b~~dq~~~~~}d~~~~~~gX~l~~~NtfzxOQ~~~~fH~~~_yqmg~~^~~m~lV~~~T~2~{~~~~z{~~~{~|~Xi~~~z,A~xMv~x`~T~9~~~dH~}~~~eb~~~~~~~~~~Sh[qkkK`~S[~~~~~X~~~r~~s~~~Hn~k~~~cuN~~~~y^~hMs~~~~~v~f~~y~ks~}~~~d~k~[~~~~\~{~~q_~RvW~~W{Yl~~~{qtna~~~O~~VzrZ~~bg~l~~~h~~^~~~~u~~~~~~|~~~~in~lT~~`w~p~~I~~~~QGg~~~[~w_~w~cWa~O~~V~~~w~~~~~u~~~E~~n~t~~~~~\~~{K~~zwf~\~~k~~`j~cr~^~~~t~~p{b~~}~~}}Y~~~~G~~~_~yuu~Oy~~~uc~bxG~Wwpi~~rIp~e_~SR|~U~~~~foc~vr~h~cX{~~~~^~uU.nWs~~~~^~~~~~c~{~~~~~~~~iw~a~~~~~a~yZ~~~~~~~~~~~~~|ph~~~yr~o]gs~}~~~~~~q~|i~Rf~~~~~m~~~~~d~M}g~>~~~Y~~qn{j~}~m~A~~|~~~yb~~~aws~~~`}d~~[~~~~~~~~~~w~~o{BqK~|Ug~~T~~y~~a~t~~b~~~d~~do~-K^~fv~v~eg~}tb~~s~~~~~n~~~jnn|hq~~~~~~tar~od~~f~t~k~~~~~~~~~~u~~|\`~]~_~3~~~~~l~M}~~~~~U~~~~g~~ta~~~~~~Z\b~~XS~{~v~cc=]~~X~~e~w~HsRx<~`~o~~q~~s~~~v~~~~~x~}HyD~~v`G~v~~C{q~~f~g~sy~~^~~~g~u~>}M}~~~j~~=~~~~h~t^_Pa~~q~~i~q^{I~`~Gw~a~@~kR~~F'x~k~~~U~~~w~~Uc_oy~~~Gb~~}~An2~~v~%~~~N~d[8[b~~~n~l~~`~RI~~n~~~~|~~~~~de~~vx~v]]~u~~~n~~~~~_~~~~s~~Z~~~}~q~~zd~~d~Zz~~~}a~~_o~i~~~~a~~~dzQ~^}n_Y~~]~~]xw~~~~~H|~~p~e~~~f~~~f~vf~~~H~~~tx~x~~Gi~~~Z~~U~~~~e~~~t~~~~~{~~~~~s~w~g~~~z~~[~~~~~~x~~lkylx~~y~n~g~~m~~~~~~~~~J~~~c~`~Y~~H~v[`~~~~~~z~~Xk~{~~W~}_bf~~~~E~k~~~~~c~~~~~~~f~y~K~|~~w~{~~~%<~c~y~~~y~~~~~~~{~Z~}\~~\~~D~~~~~db~OoP~~~cU{ju~~H`~~~^q~e&~~~~~~i~~a~~]~~~~~kv~~{~]Adq~~~qX~~t~~~w~H~yg\~L]Xw~~fF~~~f1~d~B~~~~B~~~G~~~~~~~~~~~~y~~5~~~~~z~d~~^q{~gd~~~q]~a~P{yKbhve~C~B~~~F~~XmH`~~T~~b~~~rt~~X~dV~~~~~~~~~XQ~~~~~3}~~~cmv~rX~~~~~~~~G~~w~~~do~^~~~~\w~~~~co~~~~~~{~a~o~~~{g~~~~i~hO~i~~~qoc~~~j~~~M~Tu^~~~vt~s6as~m~~~l~;~~x~~b\~~~(~~~~~~~`JYk~~cXz~vF~~~Npu~j~n~jyLtHX~~x.~~~~zm~g~w~~~~B~x~z{r~|~~~W~~~~Z~Yq~~~n~da~u~~~{Ke~`M~N-8t~rtji~~U~~|`~~L~.{tuz~Q~bL~~R~~7~V~~L~~c~r~~y~~~~~~h~~?X~~n|~~y~]~V~~~~c~5h~~H~~~oy~~q~~~~~~~XE~~jn~~~~y~~~O~~Vv~~~_wmry~~wsc~m~~~~~~W~~~~s||~Ev~~~|~_~~~~~~~~~\~~t~~~y~~~~iy6~:`i~~_U~~gw}~P~0q~{~anb~~~Bin~~U~~~z~t~XdX~~}~~~~@~~ui`~~o~~~~~~a~H~w~s~~~nU~]~e~be~~vd~9~Yvt~~~fp~_~~eV~~F~~~~fj~o~e|~~{~~~~~z~~U~~~~~~h~Z~~~Q~~.~~ep~xiq~~~j~~k~d~~~~{~~~~~|~~~k`~~LqQ~~~~~~~b~c~~yR~~~~yb\~\~~~~~~~~~~~dzi~ckG}~~~n~~~~v~g)~~{~~~~~~~~]~~~~~l[s`]H~~qg~l[arb~~~~~Qr~pgc~~~S~}~x|oaG~~`~~}H~~prh~~eN~W~~mc~~~V~yMi~p~~~~~~V~^X~~x~~~~~~dr`~xF~q~Qp~O}[~~qV~~~~~jo~~~x~~~~~~~~}~[~~v~~kZ~Lm~~~U~~E~~P~~~~~~~l~~u~|~~~`~~Z~~~~x~~~~q~&~wQo~~s^~M~~l~~~v~g~i~~~lc~e~F~~~~z~~~~~~v~~~p~m~~~z~fn[tc~~~S~~~~~RQ~V~UG~~~H{D_~U~y~~~]~{~~X~~~ap~qk~xD~~~~~Zh~aB~Zs~y~~~~~~m~x@\M~~~I~~_~~~~UT~~^~~~~~XWUc~~mkysv~~~_~~~~Y~~~sym~d~ctVw~~cN~~cb~h~~^~~p~oi~Q~~~~Tnf~~uL~{~WX~~~~1fws~~~mng~~~n[~ruSj~~E~~_~s~~p~_~y~Vr~qU^~Y~woJ`~~~mz~~e~~~te~P~~q~~~u~~rz~~~~~qU~y~~~z~L{~~j~~~1~Q~n~~~UB~~x~~~~~~u~q~~~~~~~~~~u~v~p~~[}Y]~~}~~~lP~~{~~~~l~~~~~B~aeYh~~~v~~l~~v~~m~~~~~i~j2~~t~?~~|eoz~\~p~~~k~V~pW~~~i~]~~~C~Sf~b~uu~in~~~r~yN~~~WV~~p~p~fp~~{~~dK~~~~@y~~r~K~~5~~~~|Q~~~~hFZ~Gomr_~h~~j~~~~w~n~~~~~f~O~^~~~~~y~~~~~wH~~~~\A~n~~~~~~~{~|_~~~~\~~`~~[0UuS~~[z~~xi~~~J~~rx~~_~faz~T~s~f~L5Q~~k~|vw~~O~~L~_~~hmnxr{~~~~~~~Bq~X*~tCt~:~~~~~Ms`~~h~Z~z~~y~~~va[PmL~n~~j~~s~~~c}~~~Pq +@a2403727-7958-6a87-7769-930478307d87 DDX5_MANE(-),+strand,3108-3684 length=594 error-free_length=595 read_identity=99.836% +GTTCAGTTACGTATTGCTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCAG ++ +j{X~rcN~]s~f~kqoiy~~~W~~o~~~~~~~t&xk~~q~~z~~B~~~~rT~~b~~o~U~~~U~E~~{{~~gb~~~~~~Zj~~d~~~~~~k~pTVe}k~xV~~~~~~JE~y~~~u~~~~~~s~~q~Z~~~R~~~~~~~~~~~dc~~~[vv~D~~~;~~fIaL~~pW~~~~{~~~~~TbZ~~~l~Mo~~]~f~G~d~^~~x~~f]~Vi~~~~U~i~~~~jy~jk~V~~`~r~~?TR~e~~HoWw~u~_~Px~~~_V~ZK~r~5\j~~m~q~~~~~~~~N~Piyx~WQ~~~Z~~x~~Fr~~l~~m~~~~U~~~i~^y~~~u~~~w~~hph~S~~s~~3V~NES~~P~~~~pk~~~~O~[b~~`~w~~~~~~p~~D~~~~~~~X[ddyq~~~~~~n~a~.~~~o~d~wpt~D~~~~t~~ya~t~_U~k~X~D~e~~Q~Ee?~=z{~xZ~o~ob~~|~~p~mo4~~~~y~~~~~~~~~~~~~~v~qWg-t~x~UY~'~r~TG~~~~~~~c~~~~~~ji~i~j~~~~~~g~~~~S~n~Xa~~K~~~~~P~{&~~~~nb~~~~}~\~~~~t~P~K~~nfr~~u4z~U<~~u~~j~~~~Yk +@937b9a51-c108-1575-9425-ba19c87fbcd2 DDX5_MANE(-),-strand,3531-3684 length=174 error-free_length=175 read_identity=99.471% +CTTCGTTCAGTTACGTATTGCTTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +wU~~~~~~~~R~}~uh~~Ud~~hg_s~t~j~~~~o~~~~'~_{~~4~~~b~P~~~d[{~~[n~~jy~}b~xO~c~~~pK~~~~~fZ~~~q~rv~iz~~~j~8~b~~vo~B~~~~~f~~~~~~~~qW~X~\~U~oe~~~~Q*~~{{p~u~5K~X_B~P~~[Q~d~~zqj~Z~~~~ +@bf926bad-7a55-0382-8c42-d7003d2d86c3 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,309-393 length=88 error-free_length=88 read_identity=99.020% +TGCTATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAA ++ +u~~~~~~~^~~5~j~~~~{~~@lb~i~~~MWqiT~~~~TD~rk~p~n~~~~Dx}~~V~~~k~h~~k~OlN~eT~m{x~oyvju~~N~z +@8a31626f-59ba-2d6a-d325-3faaeb15f397 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,428-2045 length=1641 error-free_length=1642 read_identity=99.940% +TACTTCGTTCAGTTACGTATTGCTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTG ++ +MN~~~v~w~~~~F~~~~~~~~~f~~sfc~w~~~~~o~~~h~~~~~~~vG~~~{r|~~~~~~~~~~l~~~~~`uQ~~jr~~V~qn~Z~=~{~{~i~~~{ip~~s~~~def_eb~~~~~~n~~~~@~~~w~z`BWa~w~gl=GwY~~TbVl[~~~~l~~~~fk~r~~~~wt~ecg~:~~~~S~`~~~S~~Q~~I~~g~~~~~~~S~~~W}xy~~]q~~vt~L~w~~[~~pU~~~~g~~{uV~~tnQl9V~~_e^^~B~Ox~{~~|qW~g~~~Q~~b~~~~I~~~~~mm~~~~~~e~u~~~~~~~M~sX}{tj~~~~~L~~~~~R~~~i~~~s~~rZ~~~~~^~~:~\~mfC~~~~~~~~~~~~~Dy|~~trZ~uu~~~Fh~~~i~`~~~u~~~~~i~~~g{dn~~i~~~~~z~~~^jp~zX~~~~~~F~~}a~:is~Pme~~`v~@g{vm~~f~wy~~~~U~~NO~~bl~~~qv~W~~~z~{nO~~~~~v`~~p~~ZJm~~~~~~o,~~~~]~q~~~JL8~~~k~e~~~yZgb~ojX~G~~~SBz~~~A~[u~@>~~~~~g~~m~V~~~~~~p~~b~~~Is~~:wv~n4~~~s~~~y~~?o~}jK~~w~~mi~L_~hdM~:x~~~~~L~~~etp~~~r~~~~a{d~~}ml~~8~i~~va~jq~_E~~ywiTv^~~~~~r~{~~~~j~|m~~Qm~i~~~b~~~~~~GU~X~W~~X~~~~~p~~x~~~~U~Pp~y~~~pxO~~k~a~p~~Y^|~Bo~~o\Yo~~~~~~a~~wh~~~~~x~~~~~~~~h~~M~~~ql~~pm~~~~h~~~kE~Z~~~~~_~oQ~~L~~~Iem~k\~J~zR~w~y~~>=~~~~~~~~c~~~_ct~~~z~~s~~~{~~~~m~Wq=P0?B~w~q~]~~~~~~~~C~~~ni~}Q~~~~dX`6In~~~~~~~]g~r~~W~Z~w~~s]^~~~~~`~T`~t~~|~~]6{~~~~~{wQ~h~g~5~it~`{~~~a^~{dQ~~e~~~~`y~~~s~~L~~~~~~~~^~Z~r~Q~b~~~~s~~~~iy~~>~~~~~~~~S~~l~a_~~~ArJ~~~~Y~~~D~~Z~YSm~Cnyo~V~Ev~~~o^`~~}s~U~~~~~~U~y~_x`~ke~~~~~~g~b]~~ew~L~~~C~(~~~Vw`~~{~~O~zu~~q~~~~~~sX~N~c^^tv~~b~~~|~lZfhl~~~QYxz~_MP~g~~~~u~~~~P]~~~|~~qxoa~~~K~~k~~~~g_jvK~q~|~{~~~`~~~~~~~~~~~~l~Ur]~g~~~~~~l~~|v~t~{L~~~V~s~~T~~7~~z~g~~W~~~qt~~~m~~y~~~~~~^~c{~~~~~~~~~X~m_p~~~_~~~o~~~p_~~~~r~[~n~~j~l^~qn:r)I~ul~~g~~~~~o~~8p~r~~d~~u~odR~~~L~~~y~u~e~~~vr~~ac~J~v~]~]lg~~wIl~Bws~~~~~~~z~p~~~D]~~f~|~~}Yg~~~~~t~o~4p~|f~~Tz~~~=-~bZ~`~~~~>Ms~~Y~~}~fwkat~~x~HP~}~mx~~~`~~~~~uj~o~~~~~s~~V~~doz~~~~z~u~~~~~]~K~=~r\~?Rv~pu~~}~4\~~~^kE~}~~~~~u~~~xb~~~{~0~~~hRzi~}~~~~{dbB}~[n~B`~qUKX~Z~u~~~~~~~~{~ +@85732fa4-912b-eff1-01b7-e9f8996a5219 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,0-2545 length=2553 error-free_length=2557 read_identity=99.611% +TATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAAGCAAT ++ +O~~a}~~~~~~J~g~~cy~y~_ae~M~~xB~{?~eoncSq~~~i~~~R~~~~~~u~~~QN~~~}~p~~~r~~t~n~V~u~~~~~n2~~~~~~neu~z~~8~z~~S~~~~p~~~]~Cxt~~U~~To~~}~~~~~xQ~~~~~u~~`V[~r~P~a~~t~~KqTo~zk~~~c~~~_z~hfN~~~~~~~~R~~s~~~Zp~~t~~~~t~p~~~~bc~~~~~~~~~a~~~~cyf~~WpxlOz~dg~~~~~W~Ys~q~~~~[~~~zcaN~~4~~[vN{~~~f~w~V}x~LNV];@~~~~~~~K~o~~~y~~~[~Q~~_mZ~wz~~~~^~~~z~v~dx~;~~w~~~s~C~~~~v~~~i~~~~|~bx~~q~l~~~~{~~{~t~~~{~~rCY~v~~t~ju~m~h~E~r~~v~Qz~\~~~~T~`~~~u~P~~z~~~~~~irg~~SlX~q|~z~d~n~~j_~~~V[i~~~~vRKo~~G~g(~~jj~~~~@{}~~~~l~}l~~ky~~~_~~~~}~qt;lq~~~~y~iSZ~j~~~~U~~[~~~W~~~~~~~~~p~~i~~~rT~~@~l~vu~~LPa~~G~a~~~~~y~V~~~[9~~e~W~~Ii~~~~~{zNi~@A~l\~~~\Dro~~~~ws~wlp~~~~L~y~?~~v|~`XOny~~^~~~i~~~~~~~nhFO^~~l~_~~~Bk~^}~~^~oa\k~~~~e~yb~~q~~|~k~~wB~~r~z~~.t~~~J~[~~~~eF~d~d~}~n~h~~j~~~~~x~~Rfwl~~Lg~~~~Go~~~~~~v~rb~~|~XlSk~r^gOB~~~x~~e4~~~~~~=i~}b~K|_xy~~sd[~f~;C|~~~~p~~~m~~~m~z~p~f~~G~~A~p~~~~~^~~raa~~Hx|~~~~cT~]~k~{|X~~~rK~~~x~~~=Rq~w~~a~]~l~tr~W~v~m~~~~~~~~k~o~~ul~~~sxr~4~~~~s~h~~~7~~q~~~Z~~G~~}~~~~~Se~~g~Z~~_~~]Gf~~SjyBj~XK~:~~g~}~~q~~~~~x~~l~y~~~n~}5g~~~~gT{~O~~~cqu~~=j~wW|~ow~M~~~~xo~~~~N@$~~?Q~[O{V~z~~~~i~kW~q~~]{~~~e}~~w~~~~~E?~~~~~in|~~v~d~~l~B~~U~p~~AS~~~~cx~u~~a~~_m~~~~m~~~Q~pU~m~~cx~~n~z~~_~WTn~iI~~x~at~~~~~~~~~h[~~f~~u~~~}~xu~~~g~^d~~~`p~~~~m~~~~F~p~~~~~c~~v~`~~~v~~~m~~~wu}~^e~`~~kOl4~,Bpnd~a~t~~~g_~~O|EcL~~c~={~~~~knz~~~}~c~=~:~xh~~~x~~gH~b~x~g|~~~G~~f~~u~~XmV^~~~[~~~Y}~~~\]l~~^uT~~~~~~~~`]ey~~]~t~\~~`oV~~~n~~~~~~`~t{j~{v~~~Z~~%8R~P~~~nVh~v~a~~~~~~y~~mK~~~v~W~~s~~~w.%?~n~~~W~~u~~^~f~~~~~T~~n~~{cuz~~x~Zl~~~Vg~~~g~~~kjG~~w~~W2~~~~5M~~~~~~n~~~~~~~ynf~~~y~\>F~~w~ocE~~~~~hn~~~7~r~~~~~~Zb~T~q~~~~O~Z~~~f~~Z~~~~~~~S~vv~~f~~rn~Bl~~~t~ot~]W~~~~e~}u~_b~~th`~~~~~~~~|M~~gs~~b~Y~Zz~Y;~vK~zs~]~~f~jvf~~m~~frR~~b$~~~~\qNe~~~~~qt~P>~~~7Ns~|~~~w~~~~p[KpVw<~lX~?~~~~Y~;~~~@~?~`~~~~}~RK~~oZQy~~VW~\o~~Z~`~n~~q~~~~lqko{~~~v~~b~~~~`d~~~~qe~~~S9~~~G~~T~~~_reYQ~~s~^~~~~i~~Q~~~~f~~q~mxZ~f~~g|~~y~~~LYq~`x~a~e~~~k~~~~~v~WNuy~6~~q~~~~x~~|~~~I~~~c~j~~~_\r~f~e`~T~~~r~~~i~~~~~~~~~~]y~l~b~cvudQ~gm~~~~ktU~pAB~~pLc~~~~~l~~~SK~~pu~~~~T~~~~W~J~~}e~fa~yz~~q~ui~~~~~}olq~~r~~iV;~^~q~p~[~j~|P~~~~~~~X~~~ah~~~F~~~~sm~~}~`~~x~~~~\a~~n{q}~gr~~~~~~~~~w\~~~~m~~CU~~t~J/~~~~~~X~~~kU~~~Xh~~{g~n~m~~~~~cq~~~iio~dn~~~kzw~~Y~k~~~bhpe~~~~q?wq~uj~~~~~~~Y~~~9f~~wF~kB~~~~~]~ix~8~~W~`|~ma~l~~~\7u~Q~~f~~~jd~~rU~~A~~~[B~~~u~~~~?~~Ud~}~~~V~r~~~{~~~~~~~~~~~R~~~~~~Lc~~~~Reu~~~q~QC~~r~~~bF~ +@16ccfccc-84f1-ac19-57d9-9e925328444a DDX5_MANE(-),+strand,772-1523 length=767 error-free_length=768 read_identity=99.872% +TCAGTTACGTATTGCTCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGG ++ +rq~|~~s7~~~avq~~q~c~~~~~vc~~~r~~~C~~b~~v~~~~^~~A~~AR~~g~~~~~h~~~_t~~~~v~l~~~o~~~~~~ey~H~o~s~~~o~e~c~~~~[~~tx~~~~~z~Ze~~:<~~~~~fh~~~~g~E~~~~Psw]~~x~~~~~~~~kq~d~~~f~~~~~~~~`~~~~~~~~kpkbsh7~~S~~l~~~~~~~~~~z~~~~}~~~~~u~~~~~xa~~~~w~~~%S~~~~~V~~eR{~~~~[yd~7D~~~~k~r\~~~~~~~~~;St~~r~~~~iz~rT~~~p~k~`vsN~~~~~~~~~e~~~<~w~u~~~m~Sa~k~~P~~~~X~bm|~~~~~~~k~~~~~~m_q~~m2a~\~~X_e~T~|~~~~U~g~ST~~Xl~^~b~~~[~~kv~|~H~~q{~wj~~hY~~n~~~~g~zx~6{~~~~~G5X~~plX~~~~~~5NU~~c~~~~~z~~}zW~~~Ot~~~~~k~Rs~~~`~~Ze~~X~~~Ovu9go~~~`o~~~~~~~~N~~ub~~Vp\ta~~c~~~~~Mv~~z~`~~~~~~z\R~~p~ynr~~~T~~E~~~m~~\[=_~~~~~t~~z~qP};~~f~~~T~~~v~~tG~~~J~~t~it~~Od~R}~bk`n~m~s~j-f:~~h~^GW~^d~d~Ga~~~~d~~nl~~~~~hs~~~~~~~7~~t~]v~2~~~~~~~~cl~~R~~pz~~~k~~~j~~Zj~~~~~~~~~n~`r~Z~~F~~~~k~~~~l~~~~~~^~~nU~a|~~~~~~~~Iv~Z~rTcb~~~~O~m~~~~~f~dZb~~th~l8~f~~@e~_n~~~Pr~~eD}m~~~~p~~~p~~~~~O~~~K~~~~~w-~l`~~D~im~b~~r~)~~~~~~~~~~~[~~z~~o~~~~M~~~~~]~~[q8~~~~~~^A_y$[~~}~~{~xw~~ii~e~~f~~~z~~~~d~vh~Y~~~~)w^qMc~~~`|~SR~WS~j~b~~~~R~~\~~Kh~~om]~~ew~~~~sg~d~\~~~~~~~c~~wrlpm~t~~~;U+~~Y~V~~~xY~~~~~fNGphe~~~~e~~J~]~^~~0~~l~E}~~~~z~~~~~~~gt~~~d~~~~~V~pr~ab~~d~m~zw~~f~~:tl_]~_y~^m~pY]an~sb~~jn]~~t~~~~~d~^w~x{]jmxl~~n~4~~~~~~}~~y~q~p~~o~`Wjw~{~r~~~c~^|L~~~lm~~|~~y~m~~n~~~~~~~b~~l~hN:l~~~u~~~~{~_}~}s~\~~~]~~p~~~t~a|~sS~huIt~~~i~~~~_~]~u~~g~H~_\xyu\x~~~~~~,~lb~~T~~~h{~`cx~a~D~]~y~ck~yy~z7Jv~j~`}~~U~^~,~~~%X~~q~~~~~~roE~~fg~g[~~~~~~d_~U~~~up~~~~~~~cV~k~{mri~j~~~~~~m~~~~~~~T~8~~~z~~~~~y~~W~~j~~~-~~n9~~~~_~~~~~l~}=~~~~rf~~~~qw~~wEJ~`a^~p~eqR~h~sVO~~rs~Kk~~~s~X6s~]~~~z~fo~~w~w~vE~~<~~~wVL~mp~w~{~s~~~u~~~~b~~~oxTPJFW~s~Grl~~~~m~~n>~~~~~~~~m~~~~d~v~~~e~q~~~~~]|~>~~s~|~~bej~~[n~_}r~T~~~~zvuc~~~0~~X~`~~b~qk~~~a~~~m~J~v~~~uz_~~b~~~um~b6~~~ox~~~t~X~~fx~~D~~b[~A~~~~g~lU~~m{fu~~~n~~c~t~i~]h~~~~~Wm~L=R~~~ko~~~~~~~L~N~~~~~~U~~~~~>ZjxYw~~~~~f~z[C~j~~~~~o~f_Spz~vx~~G~~~O~~4O~~~~~~~~l~~~~~n[r~s~U~na~y~g~~~~~~~~~}~~pt^ecl}~c~MT~eT~Gqa~~~~~k~~~tp~~eo~~~Kb~@~~~~-~~q~b~~b~~~~~~~~p~q~I~nv~M}~~~~v~~f~~~~~i~q~kx~{Pd~~~~w~w]~`~G~~~l~~~s\~~~ +@eea7389e-ac13-e652-566c-dd44e7c77241 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1064-2545 length=1480 error-free_length=1481 read_identity=99.799% +CATATAAACATGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~j~z~jBz~{-Zl{q~~~~~Q<~~~~~vsT~~gn~~xB~~~j~{n~~~n~~e~~~~~~C~~d~~|~~zVx~w~~qv~~~~8F~~~~q~tqBv~~{~~~~UQ~l]kO~q~~~H~~~~~~l\ft~}~~~~~~rPm~~X~~w~~~~l~~`~S~\~~~7z~X~~~~lpm~~OoU~~~H~j}~~ub~r~~~{u~~~s~~~~Jm~^~w~n~y~~L~~~~b~C}~o~y~~~~m~~=tu}j~~px~~w~~~h~sd~iE~~~TNW~~~k|v~s~~o~q~W~~~j~~~~k[~z}h~~~jw|m~w~~~~~~~m~nT~~Y~[~TP~g~~W~~|~~~~V~~~t~]~~~k~~~k~V~~~~~~~~~~|y~p~~~a~~`~~~~|ZT~YQ~~r~]x~~^x~~o~~~Y~sIix~p~j`[~~~fpr~~~ip~p~~rpgqX~\Rn~~~~~~Gk~j~~x~d~~w~~x~~~~~~~~~Wyy~wP`T~~hXj~t~~{~~G~~~s~~~~~~~X~`~~~~~L~~~~~w~~{~~~~~~H~~~\~eb~h~l~~x~[Rs~g~~w~T~~nn~~~~~q~w~~~k~~gp~~~f~ZYc~|E~aC~Z~~~J~`nb~J~~Y~~~~~qz~~~a~~o~j~~~~~~ox~~p~~jUrN_sx~G~~cm~~~~~~InZn~~t[~~~~~i~`~~UYvek~q~~b~~~~~Q~~~~C~kw}Q~l^~k~~~tv~Z~~~~{~j~skf~mz~oNvZo~u~~~~[z~~~~jyq~r~Rb~O~~>~~f|~~~~~q{~~Kt~~~~~>~~~j~~~~m~~p~~(\~~~g~~ry~d~~~~u~~Sovd~~i~~{d~p\~~~]l~~g]~~~~~~~~~~G~~M~~~yww~~w~~w~z~Z~c~v~~o~wkypk~~fQ~~c~~J~~~O~~~~~~~~}Q~grjz~Q~~j~~~~~~p}k~~~f~~~~~~`tZbd~\~~~~~~l~~i~>~~~b}~~~~a~~~~~Ovk~k~fP~Y~~o~~zQ~R~~~l~ft~t~~vv~~~~~~~~~~z~o~=~~~~n~~w~~~~~~~~~~~~~m~~qR~_xo~d~~O~}~Z~~~r~~mr~~~~~t~uLv~g~E~~~~Vy~~~~Vo~~~~~1v~~~gq{c~~`vj~\~~~~~~~f~yw~~~~~~p~p~f~~~~\~~~Uh~~~j~~~~T~~i{~Y~~~]^~~~~se\~aoL~~~~q~Wp~~s~~\y~~~~D~i~`}y~@3~~rr~~~*o~r~g~fpj~~~~~Y~~vrf~Us~~~ljZe~~~~z~s~~~~~l~~}n~d~~l~~oSi~~s|<~~~~~~dB~~~~~~Y~~~~YE~o~~~~]~p~sY~4~qjVT~&LR~g~lz~~r~p~~\~~jt~~~Pe~||~e~~Sr~ut~p~j~~zb~~~c_~~~m~~x~~~~u~f~~m]~~~<~L~p~nn~~~~~~~~~~~pS~bu^~~~~lu~~pU~~{v~~~k{~{_~~x~k~~~\y~~}~[~~~g~~m~~}s~h~~k~o~~~~~~~df=qdxOqrd~r~~~~~Rl~`~4ja}~~~Q`boj~u +@4637cc88-da01-051e-2fb1-02eac065dffc DDX5_MANE(-),-strand,1678-3509 length=1848 error-free_length=1849 read_identity=99.839% +GTTCAGTTACGTATTGCTATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCC ++ +teka~v~e~~~m}~]~C~t~~~~~~~~~Pb~~vrHb~~~~`~qj~~O~eP~l~y~w~~~U~v{~~~q~~g~~r>~h~q~~Ld~v~~d~~X~j~u~y~S~T~Q~~~~~m~r~~~~~N~}ZVGg~~Wp~~~~~~8Yfjcmtr~rt~~f~H;~s~Hzyd~`x~{Gs~@~~~~~~~~Z~~Z~~~~~b~7~h~~~~~~xc~_~~~~fx~f~_~~t~~s~~c~~7lyyK~xc{~~~~nhwf~~~Va~~v~u~~~~~{xl~vv~~`y0~zr~~nm~~T~~i~a~_~cOe~]~~~~q~j~e_x~J~}y~Y~~Z~\~Dm~D~~w~{6~~~t~~~~~~~]g~~m~~~~}M_z~~~~~~~~~y~af~~~I~g~~LR~~~Rn~F~l}~9~~~{]~~~d~~G~Fs1ZQy~xgui~~c~c^~~~~~~~~oi~~_z`~u~~~~{~~~H\~j`L~~~~~X~~~~[~~^~q~~~~~\^tQ}u~w~y~~~~~~~~~h~b~~u1g~~N~~hop~Z~~j~~~~?~[~r~Yh~~~P~Xq{]su\?T~~xZ~~|~c~~pg~~~~~~~]~[J~~~~ry`~b~`j`~~~~fm~I~~kf]~^nb~~f~_~~~~~~~~~p~kJ\~~r~s~^K~F~~oc\~~~~i~z~t~~HSqI~~~~i~~~bm~~vk~~~gc~~~~~~qr~~~i~~w~~u~~y~~G~~zr~m{\jwg~~~~s~~X~~~~~~~p~l~~~~~m~~~p~~^~p~~~~7~`~a~~~~~N~~p~~x~k~~|~hX~l~~HY~|~f~o~~~~Snw~~`\~n~sn]t`~~i~}q~~>rg~~~l~f\h~~~h~~~~~mfLh(_~^~ne~~y~v~|~tj9~~~~~b~~~q~m~`~~~vt~~bZp~~d~~~~~~k~~~_z/b~~~~~tO~}gc~n~~~~g~y~~lRq~Zt~~~L~~~pq~\~~y~~Y{t~{dR~t~~p~~~ije~B~|~szg~~~~~cIj~w~~z~|~tu~~]~~c+G~x~`~~~~N|~~vq~~~|~~o~~\~b~~~~a~@~~yw~M~~p~J~~~o~~~~@~~l~~n~~WZ~y~}au~~~~~~~~~gi~`z~~~~Mv~~n~u~g~L~~~~~<~~`R~~~~~_~~tte~~~s~~~S~l~}~~~~u~N~~zo~~W~~~~~n`~1kp~~~pJ}c~~~~d~d~~\~nth~MtS~~~m~k~n~~~|l~k~~c~k^~~~s~~j~c~~~~~~~}~~_~?ZbP~~p~~fLS}~ve~~nb~tT~~~~Q[m~~~~~Hqx{>~|~n~~_k~)f~~V~~Rx~~~~Xwc[~~v~~~~~coi~~~~w~~`~a~~~~`~~~~~~y~~~l~j~W~~~~Y~~lb~UrMT~u~|sT~x~~j~GGh~~~~U`\~O{<~_~?~A~~~|~~kdW~~~_~m~~~S~SOq|{|)~~~|~h~r@~~V~~~S~~j~w~\~~:~~~~~~~~a~n~~~ph~~l~>m~Y~~~~~d~o~sc~~~~~~~~~~~~~bk~~K~tr~~Y~xh~|~~~~sYcd\~~Z~v~~x5|~xJu_~uWt~d~~~~~~~_~~~[~\~~~~~y|nm~~~~_~5~O~~^s~~~da~~j~~{~~r~lO~`h~~~~~~V~~iL~}~~~M~~~~v~h~~pSk@~~A~h~=~b~G~~~`~^l\~,~u~~u~f~dI~~^E}~|g~g~~~~oL}~r~g~~_j~~~f~~z~~~~~~~m~j~~n~~~~p~~Uw~~~~~~~~i~s{~_~~t~~~dm>nE~~~w~~R~~d~~~~{~~~Pv~~`~]oxX~~~~~co~~:j~~~~d|~~.~~~QY~~q~]~~<~~f`~~~~~~]u~t~~s~a~~~v~fk~e~l~~~qv^X_kqMQwo~~~~F~~R~Q~~~~~~~~~n~XsTr~Uyq~~Kp>~s~xx~~f~~~~~~~N~N~u~~S~g~bv +@a247228c-fba1-9ed7-cb33-19ea5c962f99 DDX5_MANE(-),+strand,0-3684 length=3758 error-free_length=3759 read_identity=99.921% +TGTACTTCGTTCAGTTACGTATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAGGAGCAACGGGTAATGCTCCTGCGATAAGCGTCGTCGCTAATACTGCTGGGGGAGTAAGGCCAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~~~~zr~gb~~~~~~~~v~Ur~~~^]~~:~gS~~~~T~t{~Q~~~~~~c~Drb~~~oI~H~~p~||:~P~~Ry^Kz_~~^~~~ed~~~~~~\~k~~~~~X~~bv~~~]~w~~CQ~~^~~kZ~p~~~~Z~~S~~JF^~F~~~~{~~q~dW~~l~~t~2~v~e~~Z~~I~wtz~p~~4fI~~~~~]~~~V~~~lr~v~~ka~{~qB7[~q{u~~~[~~~o~~~~~~~w~~~~~~f~m~~~~j~~~~_@~~d~Mf~y~~p~~U~ds~~~~\]~~~~~~hF~~~Zr~v^~p~~[~n~vt~~Pp~~~~~~~xw~^~~~~jou~~@~~j~~dhb~Z~~]~~`~r~~~EB4~e~O~~g~~~~~~]u~~oz~c~u~r}Na~~~B~~~~|~eT~ydMW~M~?~~~d~K~~~_~~~]^~~~~`~X]~~~~~n~Z~~Ry~~~e~~~~~~~n~~~~`k~i~~jU~~~~~N~~~~wto~~~b[~Is`~^~~t~i~~~~h~~~V~~~b~Uo~~S~gx~~~d~i~~pz~i~crzZi{~qd~~~~gX~~~~v~~x~~~bNd~~~~~~~U~~~q(~~rI~~}>o~vr:~~~zU~m~~~~~~}>~~~d~~~Jt~~~~JR~~k~n~~tkk~~~~~~~~~~~c~~U~~~~~~f~~~qvh|t~>~m|~~~~h~~~Y~oxDz~s~~~~Jyys}x~\u~q~fd~~e~~m~~ye~IP~GrMb}e~~~xI~~~Yr~j~~_~~~~~~~y~~~ak~~5~z~~^~~~~~~~V~~g~rw~~{~o~~~~~~~yf~~o~~u~|~~~wpn^~~q~~~~t*~~\~~~~~~~~~~k~~~~S~~~z~~~~Z~~~`}~~~~~~de~~~tH\SRU~h~~~\Zd~~~~~~~~~Hw\~~P~~X~r^~~~Y~s~~~~UQ~i~~B~~C~~~C~~~b~~p~~~~~y~XQ~w~~V~~~~~~n~~}~tr~~~n~a~QT~~m~~G~c~~~~~mi~~~~~<~~~O_~~Z~v~~AK~~~~~~~~~~~~y~~~coj~?\xI$~~}o[~~~~~~~~i~qXo~~~~~~~o~~g4~x~~i~}k~bs~~N~j~l~~i~E~~~~hj~~R~Z;~~~W~~S7~~R~~s~~~~r`f~~s~~]~_~~ox~~~~S~s~~|b~~~~~q~~~~~~x~~GD~~~~~~~kS~~~.S~~~~~~l~v~t~h~~~~c~~~~~~~J~x~~~~~kc~}~_~o~~~`~sZWS~~~r~~~n~v~~|~~n~t~v~~~~~~~~~|~~~n~~o~a~~~}~~~\~m~g~8p~~]~~~~~~kd^~|~~~~s~~}tT~~~b~~~E~aTw~Rs~`~~~\~~uc~~F~z~ub~~~~~t~~~~Pas~~~j~~~G~~~jyx~~~H~zm~~~Y~{~~~~m~~x~a~~~~\m~s~AB~t~~~f~~Y~~~~~w~~~Q~~~~~~[~F~R~~~L[}Rx~[~enC}sk~~a~[t~j}TKoe~~@~q\~kz}uS{Q~U~YS~~r~f~V~~\rgWo~~wfg~`~I\Tf~~:~~mZ~{~~~{~a~~~~cRx4~~~`y~~~~|~~~~~~reo~u~~Vz~w~{bo~~]~v~~~~~~~~~~\~e~~c~w7~~cc}p~b~d~~~}~{~~~~QY~~e~`~Z|s~~v~fM~zm~~a~}~~~~L~~~~sw~x~~\~~iH~~~~~c`~~~~iiyZl~~~~~~e~y=~squ~~~~Wp~~~~~~coIxe~~d~~a]~w~~~~~_~|~~~~~^r~~~~{a~~~~Y~fbl]~t~~Z~~~~~sgy~~~~~z~0~{~sr~~~Q~`?b~~~n~~~~r~p~~~~~x~~tlS~~W~~~~L~y~y~~w~~m~~~~~1N~~~~z~~o\g~bZTS~j~`~y~~v~~~~~~]~~Z~qF~h~~~~g~y8~~^~|~~~rgm~p~~tn~s~z_ou~d~~D~~~La~~~~V~Wz=v~~~~rbb~ue~z|~~~Zg~~=~7~_~xv~~Je~bv[~k_~lo~u~^~_t~U^~O~L~~~|Y~(~F~~g:~~Z~MrS~x~u_~~L~~~f~x`~~~~`~~~~~S~{~~{1Wv~~y~~Q~^~~~}~~~~~~~X~~~~-~[~~~~~^~~~i~~~wr~~x~d2~n~~h`~l~~{an~~]~~~~N~je~~ir~~~~QN~~~x~~E~~~~~\}~~mxn~e~Q~~~u~~y~~ks@~u~~~t~~~~~~H~g~~o~~i~~V~l~6~ni~~e}bsyzgC~~~{dtPr~~p~~~dw~xhnUk~k|~~~~ao~~R~~x~}~~w~~Ss~~~+;}=~~~H~Xbn:R~}~~dE~~~~~~~~~X~~~i~vpOx~i~Xg~~Ut~~~q~V~k~x]>vo~F~~~`~~~~Yy~~~yoYr~~~~k~P~~p~[~i~~~~~~~r~~%td~~~~~~a~~~dH~~~~Y~~~~~~~{~~~f~V~js}Kpv~zV~n~v~@~gL~~~~f~~~w-~~Uj~~~~k~~~aR~~~~Cb~~~~l~NVuf~vj~~5md~/`~rc}j~~~~~~~~sh~k~O[~~`~~xtc~m~|ix~g[~~uhW~t~~~~~Z]~~~dc~~~d~q~~dw~~~~i~x~~~~nR~~I~vikqJ_rq~~~YKWq~~x~~}p^~Z~~~~~~em[ftgf~~~p~~~~~N~|t~~~~~o~~~|~A~lO~slXo~fsk~~_cm?gj~~{~HU~~Fq~~e~~~h~~~U~~~R~~~o~N~td~N~jv~~~~L\~x~~~~ds}a~~h/~~~a~~~}~~xd~i~~ic~zqwwF~~z~~k~~~eu~n~1{aks~~~~~c^T~d~~ek~~}~Zwv~~X~~~~~~a~~~~pM~~e~[~~{~pUf~j~~h~~`~~m~~z~~~~vd~~~r~~|Y~[vs~~~r~~~V~~~~X~~~~~~~4~~~~~~xK~RA~MjW~v~~`r~~~Y~~~~u~`~pot~~`o~~~~k~nh~~[{~~{~@~b`~~s~~V~~y]~~~~~~_~~~~~~b~~z~T~v~~_~C~f~Jdt~w~~~Z~lb~uk~~~~~Zs~~Lbr~r6T~~x~ijf~~T~~~~P~n~~~~~zuytqZOsr~`~l\|~~~~~Ltd~G~~~OLg~~~yt~~~~_Pk~~~~~V~~~vRrd~~j~~YH~~_M~f~l~~~}~~~~xgZ~~~~y~g~O{n~~~G~~w~~rl~R~k[~~ia~~~~~j~p~~r~p~fo~~~h`A~~~}~snm=~~~~~~B~a~~|~~~~S~~skM=cqj~~~gW~Y~[~~u]~~~l~~~~~zx~j~)~k~~KNv~lg`T~x~~Hr|~nvx~~~~~~v~x~~~Gq~~V~~?~RySv~n~~~~voq~~c~~eg~~~a~~h~~|~~enx~~~~~t~q~wze[o~~s_~m~v~ZD~~~|~v~~_~~~k~~~~[~~~~~~~~pu~dYF~~r~~x~Pr~~k~w~T~J~~~~~c~gK~~jy\KZa~~~i~N~~AZ<~~_~dt~~~~~~p~~zY~~|v~~~~~~t~~lc~Z~~~~~~~~|ho~~~~pS~~~o~~r~~f~r~~dS~~~~~b~~~~~~\~{]9`~~~~x~qg~~~~~j~~~^~~U~X~=~~~~~~P~~~~S~n~ +@0a91f272-9621-1590-763d-84e294f8a1f5 DDX5_MANE(-),-strand,1807-3532 length=1729 error-free_length=1731 read_identity=99.885% +ATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCAGCAGTGCGGTGTCAAGTGCTGCCACCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTGCAATAC ++ +~~~~~~~~WKmas-Lg~k^~sr~t~jXq~~^~i~~q@~[~~~~u~v~vk~~u~k}~~~k~~~~~m~sg~~~~~~dA~Ry~~s\~\Dek~~~{~~h~~~c~~~~}~W[~~6~V~~~q~_~]~~~o~~~fL{M~~~|L~~Uk{~^k~~sh_~~oW~~Y~~xxl~~^n~~~~dp~u~~~~~,~`H~~F~S~~~kx~~~~~~~{a~~v~~{~OC}ssl~{~~~~I~~~~~Zk~~~~_e~~~~~O~K~~nu~~~|~b~~}z~~~Y~~t~~~m~Q~~M~~~m~~m~S~~\~c~~uL~~~~u{ixP~~~~H~~q~~~lz~Er~=~~i~~~~~OzU~k~~~Ju~i~~~~MX~~~x~U~~~k~~~~~~y~~~~y~~~z~rN~~~~~~~_bR~~~c~~~~~~t~Y~~mq~t~~sXi{nuj~`t~~~FQ~~~B~~~~~~g~^j`~m~vLlt~s~t{~v~m~sn~d~~Mj~~q~n~~~~L2Y[~OCz~~~~~z~o~~`p~~~~~cPr~~o~tm~}]d~~~W~~u~~`u~~~~~m~~s~v7~f}~j~~rls~v~~~~~~~~m~~~~~~~~~~j~~k~r~y~w~k~~~~v~~~~~b~~~~~s~~~{~~o[zT:gx~h~~~~~S~~~~d~~~~~~~~V~~^~~~~~~~~~~~~~^p~Zu~~Uh~f~~~ir~~~~NthQ~{~~~~~q`~~~yd~`~~~~h~~ys~~~b~~sr~s~~~~z~~~~V~~~~l~}~~~~~vl~\~}~~~~~~4~b~f~~q~~~g~~~b~~~~~~~~~~~zrK~}~~~~~t~~~~~~X~{~~D~~}C~~~~S~~~~W~~~~~~mQ~~|~~~v~w~~~R~g~~y~~~~~~hb~~__~~~~~~o~o~n~R~~~a~hD~~~~~~~s\~~`~~~{~~~~`s~{UwA~~~~~~~~~~~~~~U]`~n~J~~~~m~~~~~~r~x~~ieR~~~~~~~~~nitu~~~^~}~~o~yL~~~~~prx~~N~fJG~~U~{~d.J~Lz~~^s~{te~~~~~~~~~&zdp~~macv~~~T~N~|~~y_~Bw{~~~~ti~~~z~~~^~O~bou~~uq=~~zf~~~~t~~~w~~~z~~~t~~p~@w}>[m(d^~ms~~z~~~~[~~~~~~~~_~~{~~QF^z~9~l~v~~~~~|~~[}{}|j~~~~Ys~k~~~~~~~~~~~~y~~~hQz~~GZ~~~K~ozW~~r3y~u~xS]^~ay.7Olk}`w~J~Su~w~ue~~~S~~~~~~~~stos~~~~~v~~i~aMk~~~~Y~~TJ~?~}~qq~~el~~nf~~~=~~~~x~~~~~~bu~~~qzd~~~~Z~~~~b~~]~~~m~~~J~~~~_m~~~g~[cR~~z~o~~~~c}~sC~u~~~~~~llg[~~r|~~~Q~~h~U~~~yWl~v~~T~~~~~z~~~X~Jf~b~LQs~~~Q~`L~~W~P~P~}~i~~sn~~~~~~~~~~~~~~f?lr~cv~o~_~yqk~~~~}~~f~o~n~~~v~~t~~Z~wdx_~~~~~~tkYa]o^qn~~~~m~mN~~~~~J~~~~u~~~~~~Ws~mv~~o~Ar\~hg~~~~~~~Z~lR~q~~~~~~t~~~zo~V~i~~~~~~i~~g~~~~u~`h~e~~~~s~RK~~~=~]jz~~~Mty~q~h~~n6oidc~1~~~p~~~~t~r~~~~v~bL~~~T~h_@~~~Sq~~~~~~yq~~:~~~~~bs~~~~~pR~bE~c~~~~;{~~wseh~~wH~q~~~~~~~~n~~~~~~wDw{Z~m~~~W~ +@9fa87752-791f-efb1-da0a-963437a7c83f DDX5_MANE(-),-strand,1243-2525 length=1281 error-free_length=1282 read_identity=99.923% +AAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGA ++ +~~~\ec~~T~~~~_E~g~s~~~mq~e\~~[v~ry;~~~~J~~a~~zed~~~b~~~~~~_~~VZ~g~H~ChPllu|~~~}~j~~bw\u~T~~~g~oD~~qVf~y~k~yami~~~~og~~~~~~>ubv~~~~R~~y~~~~i{~`~~~~^~bt~~~V~VHu~~~~ct~~gf}~~~~~~~~m~~kv~~~ka~~z_f~~A~~~Ey~wj~~~l~~~~o~~~~~R~q~~@~~~~~9~m~~p~~~~^xn~~~~~o~~~}~07~~~TLeo~~~~~~Ac~~`}~~zo~v~~~~a~~~t~~~ee|~~~~~~_~~~sj~~~xcd~Dg~~~~d~~~w~|^q~I~T~~~~~~~~pT~llQ~~Y~o~~}i~[~s~]~~Yd~asP{as~h~~~~`[~~Z~z<~~~j_~~~v~~~Y~maru~}d[pR~~i~~e~~G~~~~~~~{~~bZ~~@~i{|p~~dbgs~~~~~~~~~~~D~~~c~~{p~`xV~y~~Y[s~~~~~y~g~~~~RcR~~S~b~~~Z}~~~~sp~~[~~~~w~hw~~~~~~~~~~~~w^n~~c~~~\~\~~~~i`~~b~P~~~y~Y~~~~n~~r?iI~~~~~~/~n~~h~o~~~a~eq~y~nY~~|~~~Y~aQt~~qJ~~~v[~~~~e~~p~~~~~qi~^~\~~r~iB~e~~n~~Uk~~~~i~~~~~~q~Q~{~~~~~~~~~Z~oQ~THg~~O~~~JDUX~`~~Q~~s|~~~~`S~~j~t~~Y~~$o~~~ZWf~~~~~Zp~m~PZd~~~s}f~]~~~~bz~~a~|Z~At{~hr~~I~j~N~~~v^O~~~~p~y~~~~j~~~~~XSh~uu^G~p{iE~~~~~v~X~~b~R~f~fz~~A~h~m~~~[~~~x~7~~~rb~Qs~k~~~p~z~~~~~l~aig~a[~~~~~nx~~~dq~~z~N~~~~w~~~~l`~n~U~|n~V~cg`qIo~~~yd~`~XK~~~n~~~~az~~Yzr~S~mi~eRi~}_~~t[X~;n`~y~]~r~~~N~~~k~~~~E]~~~u~~z~Y~~d~~~~v~fu~Sji~u~~~~Q~~j~el~~c~pxjv~?g~~\rv?~~|~~~o~q~~y/~6~~b~~~ZY~~X~~~~muze(~~~~r~~W~~scetVdsu~~Z~~Uo~~~R~`~~~~~~~~~~~{Iv~~s~|~~:~~~\wE~Y~~~~~?~~~s~zv~~~~f~k~~~~~~~~j~~~x~r~~}n~~~~~~u~q~~c~~~~ix~C~~V~[~~lsf~ru~|~~n~~x~~~~n~e~~~|~~~~~~aBgl{~~~~yu~riuk~U~{~~~]~s~s~S~~b~cx~S~\u~f~~~~d`~~m~WQf~~~pr~L~\~~~~~r~V~U}`}~~y~~i~x~~~~~q~~v~~~~r~oE~~`wm~~~~~~~~~~~~d~V~~w{~~~zw~ko~~~Fvy~~~~~[~~~~I~~s~f~y~~~h~~~~{~~~|~~cY~~@~~~~~~~~[~~]~~~~y~{Y;~~~~~a~~~~~~Rm~~~~~{^xp~N~~~~~}~iy~~~~~r~~mZJ~j~~~g~~tk~~te~~ic~b~~~~~~~~~`~~~p~~~~~Y~~~~~u~hv~o` +@8dbeaedf-4e15-20de-810f-e42c998beaf7 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,0-2545 length=2523 error-free_length=2525 read_identity=99.921% +TTCAGTTACGTATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCGCTTCCTGAGTGGATCTAAGACCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +S;i~~~~cUP~mk\~i~~~~a~~~~~~s~]~~}W~~~|z~t~~Yk~~~~,~~~V~~mP~W~~~~~~~\F~~~q~y~s~q~~~ia~lI~p~~~~~~~~rj~~~~mw~_~\u~~~wr~~~~k[xlw~~~~t~~kww~c~f~~~~~~~~~~~s~~~x~g~l~G~~m~~~z~~~d`~s~~h}~~~gh~~z~y~ie~S~H~~~~w~~~~W~L~~~~UrUzU~\~~~~b~Q>y~~~~b{~~~e~i~cjsi~~~s{[~~~~~~~b~~x~~Z~i~Mv9~]T~~aj~~\~s~~~~~p~~u_~yr~~~H~~~~~~~lo~~nxv|c~S~nN~J~T~~~~~~|~~r~~~~~<~o~~~m~~~zyg`_r~~~~~~d~~6~~~~~~qA~)~s^^~w~~f~~~Q~~;s~~~|N~~Z~P~~~~~~>l~uUo~U~^~~~~~~~~~~~~w}rp]~~Mu}G~~q~~m~~SiW~X{k~_pw{~}~~Xcq~i^~t~~~~k~~~~uj_|~m~~~~~x~~b~~~~~~~w~~~~~~bU~~~Os~~b~~j~~~}+Xb~lDo~Sn^~k[~~u~~~~c~~}~oq~~~v~~W~~Pf~~~~t~~~~~{~~~~~~~{~`~~y~Wubgu~~~Z~F~~c~~~~~x~~~~~~~~qv~~+~S~~P~x~AL~~]~S~~~~~~yX~~~Q~~Z~r~{rnr~~~b.b~~lf~~]~v~Y~et~xe~~~~~Yg~Wz~~~u~~~X~~u~~~~~~~~]~~~~~b~~~~`~YR~~~i~~~~~c~~~~~~~~\~j~~g`~~vlM~I~~~I~}~^cH~~~~\=mm~~eu~~x~~~~~F~~~~~k~~~~~~~~~~~~~~K~~s\~~stn~q~~~u~`j~~~~pX~~i~~~i~~~(~E~b|~|~u~ux`~p~~~~~~Z~~~~z}[~pe~~^fK~~~[~~l~~~z~~~~~~g~ehg~a~~~6~y~c~~~~~d~H~~~~j~po~~~~~~n~od\ck*~~~h~q\~~~~~~~}V~~~?l*~~~|~xq~yv~Z~~~~~~q~~~~T~~~K~~n~bk~~~VU~b~~hz~~t[A~w~~~uS~~~g~~~u~~~\~~3~dx~~~~u~m~~~Z~~~>~~~_~xi~~~xf~VrgTR~onq~~~m~i~~~~~\~O~~~~~J~~~~{~vu~~BXHlh~~~~~~n~{8o~~~~fpfi~~~~@~~~{~~~p|x~~~|~Ij~~~~~~b~U~~~cv~P~~~w~~r~~~~n~~g~~8~p~ZH}~~M~~~~h|~~V~fitq~~{~?f~~L~S~~yj~_~h~~y~E~~~X~Wf~o~~su~|~i~WW~~~R~~[~~~~~t~|~~t~ak9urpp~s~~~~~|~c~r~n~~~~lA~|~an~~~b~~~~~~~~b^y~~~~~~di~~~~~k{~~~_}XTW~~~xq~~L~^~b8unn~~}x~~u[u~~e^|k~~p|~t~~hq~~~~~~~~~aM~~kO~~~~<5b~~Q~~~~~~jU~~~~yuP~~~~~~v`omnv~~oJ~~z~~\u~~~bm~~a~~u~d~Ro~~~jZ~n[~~~~Wb}U~~~~q~~I|swcKr~~qe~{eRw~~~~~~~~G~l~~gx~|~~{~~~~~x~~~~x~x~_~~f|rO1~h~Y~S~~b~~~~~~G~~~~~~~z~~w~[~~~n~~~~~l~~P~~~~~~K~~~`_~~~~w~~~~v~~~~~~~VSx~>qz\Gb~p~~~A[~~~~~~T~~~b~~p~<~u~\~L~~~%]~~~~t~~~~|~~~~~d~qp~@\~_f~~k~~~~~~~p>~~Yf~kbn>~jY~~{c~~~~~~~~~~~~|~~~~~~~~~~r~k~kX~j~w~*~~~~H~oiNNa~I~}wxzm~~qL_r~~~{~j~r\~v~~~{z~~~~~~~~~~~uZ~IH~W~g~t~w~~6~~~~xPu~inp~~rw~q~sL~vT~r|z~}~~gj[~~ps~~~~a~~~~~~~~~~~|`~~ep~ey}~as~~d~gt|~~~~~~S~~VUhZ~~q~Kl|z~~~~~~q~~;uqo]~q~xgj~sm{~~~~r~~~d~~~]~~~~~{]~v~~}_~ym~T~~HKx`~~~~~~~g,~~~~/q~~~~N~k~z~~~~~~o~~~~~~`~~~~ +@e7aa2c03-ad6d-eaa8-6720-afbd0bea80cc DDX5_MANE(-),-strand,853-2244 length=1414 error-free_length=1416 read_identity=99.860% +TACTTCGTTCAGTTACGTATTGCTTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATG ++ +~~z~~~~~~m~|ya~s~H0~~~c~~oe~~~oOcrW~z~~~~B~~v~~]~~~~~~~b:~|~~~~~~jO~~b~Wpk~~a~~_Opx|~~}~~~6S~~rLb~k~\~~~~~[~~\~~~Gm~~cn~zMP`h~~~ox~~j~~c~~IPPly~~~cu~}kR~>6p~~~td~m~~~~mr~~~~~~x~~~~$~~i~]~~~_~ryR~~~J~}~T~~\~l~~~~~~~}~~~~~`y~~k^~~~~~~@~y~b~~~~~s~b~~z~~;~~l<~~~~hc~~}f~ws~EcVmW~~~{~~~|v~q~o~~~^~~~|Rc~{l~~fx~~~k~~q]v~~\y~~~~TN~9X~npenny~~~~~i~h~j~~~~~~~~~~~u~~~~~Y~fYt_`dU~~~|~~~~~~~h[~~jd~~~~~~?f~~by`~b~~~p~~~~dl~~V{~~~F~~{2@u~~~~j~L~Y~~~Cc~~GakrQlV~~_~~~dq~~}t|k~~~~~~~fha~&ISw~~f~x_~R~~`v~F~~~~~vZup~~~~b~q~~~~~~~~~K~o~e~~~~G~L~4~m~~}~~~t~~}~~~ye~r]~~eu~T~zlKZ`h~~Es~~~~~[~~~~~~x[sp~t~~~~R~e~Z~~~?~m~~n~T~~~~~~~6E~sz~U~o}~~n~~mw~~px~~~~Wz~cOge{~~jC~~~i}~j?~~~~o~~~]~m~g~o~~~~k~~~oI~~~~~~~~W~0p~~c~jnvPg{~~u~~~~~~]~fr~~~~iy^^sz~aO~~t~hJRj~~~~Pig~~ko~~s~h~~~(~kY{-~~[v~~~V~ap~ZK~~~~n~~~crbJ{yYdm~~~Zj~~v~:~`\~~HU~~~~xh~~~~g~~~~~~~r~~~~~~o~~~u~~lZ~m~g~~~an~~~~g~O|~]V]~oe~[~~~b~|G~HEk~e|~~~~t~~~~~~~l`~~~vc~~H~j`~o~~U~D~~~~~~d~Cy~9|~~c~~R~~~~~s~T~~~~~u~~~~~v~u~~TXMSe~~~~~~~R_~oi~p~r~~~~~~~ut~~~~v{v~q~p_~`xj~~~~~~~~b{~~~~r~~ry~l~~~K~~~~~~N~~~tXr~^{~~~~~IO~~cVP~b~~w~ns~W~?~~~`~~~~~q~~q~~_~xj~~xo[~bATi~R~~~g~~~~~hj~c{~yKw~O~~~xm~sddo~~~hRh@~~~xvy]~9~e~~~~~w~q~~~~~~^tn~~p~~~~~~rL~z$e~~~YVSn~~T~c|~~kU~u~~`~{dqy~v~y~~~~~d~~~~~t~~~~~~~~~~~~fa~s~~yo`y~~d~~~~wsd~~Ko~~A~Q~Gr~~~~D~~y~Wwpxl~U}~U~^j~feYu~tf~~~~^q~V~~j~~Ibl|~~~~g~~~w7te~~~d~z~~~~~~~~~w~~8k~~~~~-s|Sg~]~u~~~~~~~Knt~\~~q_~q~h~~j~~=nZu~~~~~~~~vbj~|~~~`ym~~_\ +@3e8658f6-7646-a3d8-d8b3-3bdf8dab1e3c DDX5_MANE(-),+strand,1484-2166 length=703 error-free_length=704 read_identity=99.306% +CTTCGTTCAGTTACGTATTGCTGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTTAGGACTGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTGAGGTGCACTTTTTCGCTATTTAAGTTG ++ +~w~jng~{P~~^xZ~~v~h~y~~iiW~z~~won~~~~~a~Z~~e|ex~{~y~~~~~~~~~~~Z~~~~]~~~~vu~~~~i~dR~~vP~~~~~~~~v~Y~i~irc~~Z~e~~~Gc~Q~x]k~~~~U~~~~`rm~~v~e~~~~j~]~~~~]e~T~~r~Y~~~T~nf~~Z~|~BtSf~~j~n~~~~Xn~D\`~seq~Uo~x|~z~~e~_~~~5~[%~~@~~o~~~s~~~ld~l~~yl~P~d~~~f~~~~~~]q~s`c~~~zza~~~~~~~~kL~v~ojhA~~~~~=tv~eO~o~wM~^o~o\x~~~~~~~~~~~OuK`_~~~j~~o~~~~~~t~~~~~c~Zr~wx~~~tr~~~~~h~lkp~~~~j~M{~~~~pte~~yp}~U~}f&`t~b`k~%~~~~^n`Qg~~~n~V~kuszmmH~~~~j~w~~~ygd~~~~~~~~{~~~4~~~bh~~~~~~~~~Y~~~~~~dj~k~[~r~~K~~~~xmuwz~~?~[~h~~VojgC~O~~~~b~~g~~~b\~~~hc~vz>x~~~sO~x~x~~~~ZC~~p~~~r~~va~~~~f~~~W~i~~~~~w~~~~l~~~_X~~~o~o~~P~~~x~~~^nn~~vv~~~~~~~l~wb~~~q~~~~~~~x~\~r~~~~~y{~~~~p~V~]~u~~~wo~uy~a~~r~sy~~x~e~U~f~~bt~zZX~z~K~aQZ~~Kl~~l~z~~l~`~mf~z~{~ +@885b57b7-bb17-c672-6892-392acaae55d5 DDX5_MANE(-),-strand,653-1251 length=616 error-free_length=616 read_identity=99.841% +TTCAGTTACGTATTGCTAATTTTAATGAGGTTTTTTTCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAG ++ +~~txq~~U~@t~Zz~~U~fQe~>3pi~9~qYzN~;d+-cCim~~~~~~e~~~o~~~sW~~~~~Rf~~~~u~GM~~~Y~[~~~~m~~~ms~~~~~~~~_~~h~~~~ur~~~5~~~~~~~~m~~p^e~~~~~~~e~~d~v65~U~WVgk~l~~Pdr~~~z~E~~~R~~pK~~pnqd~~G~~g~v~~a\~~~v~~~r~~~~~~~~}~~b~~p~v~~~~~~~~w~z~~~~xZ~~~E~{ph~Qu~~~Lv~~~~m~~h~]~~~Jt~fU~}~~bm~~5E~~~^oy~jU~l~r~~m~sXY~\l~i~d~}eb}\~~~~~~~~~~g~~~g~v~~~~~~~~~~~~y~~~q~{Ci~q~~~~~Wq}~a^~~~~~~~~~{hm~og~xZ|~~^cy~~~~~lhiT~b[q~~~~@~~y_~~~n~~~~~~r~c~~~~~~~~E~v~~~~{x~~~~N~~|~~~f~W~~~~~a^~~iuo~~~z~_~~`~T~~uOv~~~m~f]~~~~~~~~~~j~~a~~~U~4m~~j}y~y~~~I~Y~~~~}~~~=~~~Y~~~c~^~|{~~~~~~~r~~ocf~|~R_~~g~~ru~~k~O~i~|~cy}~~~h~~c~z_~~\7c~t~~}~z~~~~s~O~j~~^~~~C>~~ +@dd9a4e16-295b-efe8-dc79-24270944a4c0 DDX5_MANE(-),-strand,3284-3684 length=424 error-free_length=426 read_identity=99.545% +TGTACTTCGTTCAGTTACGTATTGCTCTGTATGTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~}t~~~gT~b~~~~~~s~~~~j~~~~{~~X}~~~%~Tx~}~~f~~}~~~~~~~~}~~~~~~|~Vb~}K~m~^~~~iqf~g~~Y~f~Z~k~~_~~~~~~j~vg[f~~Z~x~~~w~t<~qf~~Q~b~~s~~~[d~q~s~~5~~~k~~~~n~P~~~~~~~~t~~~K~~Z}b~~~~~tX~~~oa1s|b~~_\~~~~~\~|c~h|~~~kjd~uk~~~Jm~F~~[~~ox~~~~f~~'k~~x~4~l~Ce~r~~V~f~~l~~~~~~]p~~~m~y~sp~~~~D[S~~~s~~~~h~~~L~xG~~~hJ~q~~~r~~~|z=~h~~~^~M~x~~|w~~~~v~~s~(~j~u~~C~~~u^~~K~~)~~~~w~g~~h~ik~~~H~~~rJl~~7~~~N~YKnk~~~~~~~~q~~~~~Hj~mc~~~e9~~K~T]~~hj~~~ +@8bcd951f-30be-a274-f347-dfeeb77e5ff6 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1267-2545 chimera DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,2014-2545 length=1809 error-free_length=1809 read_identity=99.890% +GCCTGCCATGGGTATCCATGGTGTACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAAACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~n~MdA_~~wo~`~~[~~~jGgm1D1~U]~~Nh[m~~~e~p~~~~~2~~d~~~~\~~~~~M~~a~gw~~~w{~~~~~8xu~~~~~~~~~y~[~~~~~~]xxny~C~5~s~~~~~L~~~~~~~~~~s}~U~O~~~~~~~~~~~~~~~~~~~q~w~~~~~~\~l~f=~^~~~~~T~v~{~z4~{Dw~~Q~|~X~~~~@]~~w~~^~~~~X~~W~~~c~~v~~~RAn~qz~~S~nU|~|O~KZ~~~~~]X~~xjR~~~~~bk~~~m~~~~~w~j~~p~~~i~~~~VYor~h~~o~~~~{Yx~~m~m~Q~~y~~~~ss~~~~~~(h~~~~~~~[~]w~Y~~Y~y~y~~Cw~~h~~~o~l~~~~{~~[~~y~~~_~~T,~w~~~~~~~s~v~~~l~PR~~~~~~~{~td}~Zb~~m~~~~~~~e~rg~~yP~B~~J~u~~u~~V~~~P~~b|~y~e~'hynQ~Um~r~~jw:g~~~_~~~q~~X~~~~~~~~ix~~~cz.y~H}~C~~~~~Gn\r~~L]f\Ul~~h~cY~~~~~~~~~~n~~^~~~_~~Hf~dS~~|~x~~~x~~~8~qe~~nJ~?c~~~~X~~~~~b~\~~~t~R~~~~]~~~~s~~~z~~nA~~U~~j~h~~N~~Z~~%~g~N~~~pso~=v~~~~by~~M~~|a~rK~q~~H~~qi~~b~~c~~Wvn~~~~~k~~}~~vQj~~z{~~r~~~~~~^n~~M~~~~un}r~~lr~~~y~~~~~~q~~Mi~k~~z~o~v~~C~s~~_~~~~Q~=~X~X~~~^Hks~~@~~~~pM~~~~n~L~~~~`n~ScX~~k~~L~~~~~~~~~~~~~b~~om@~~|Io~~~~q~isqV~~~m~~~~S~~~~~xNczC~h~te~~~{~j~p~~~iJ~vv~~~~~~w~~~~~~p~~~Rl[~J~K`S~~~8f~~I~~R~tkq~\~{~~~R]vq~~~v~~j~~s~~~=~~p|~~~~wzv~~|~vd~un~~?~T~I~d~~~~~~~s~p]~~~~|:\~~`O~~~~~~zc^~o~i~W~}b~~J~~~H~~a~Y~~lz\~~~~~[~X~~~~~~}~~ity~S'GU~M~~~~d~aL~~~~o~i~~~~~~~Uq~~h{~~~v|tN~g~~N~g_nf~~~lE~~j~~~~~~~~~~~m~~\f~~~~~9~W~e~|~~~LU~~~~~~~N~_~kk~~u9j~~m~~p~~mp~N~~~~]n~~~~~~o~~]~~~m~~~U~~P~tZ~~~~[~r~~i~~o~~~B~R~q]~k~Ac\~~~v~yZ~Oo~~BKyS~~~~~r~~~~~~xU~w~~p~]~e~u~~]nr~rrz~~V~~_]~H~~~~~~c~~~{=~~o~~~~k~~X~c~~}i~~~n_~~x~~_~~wjuN~]p~{~i~vA~ks~q~Wquek\g~~~yy~~~~X]e~pS~I~k~j~~j{JV{|~lX~~Eh~~~~~L~~u~Y~e~kUI~t~~~~~jxvi_~~~W~~p~~`W~v~~h~~_bA]}~d~~~VmVn~~~~~~~~meb~_~~f~`I~~~~q~~uz~~~~ynY~~~R~~~~~~~x~~~~m~Y~~~~gZ~~~~yp~~fZ~~tnx~n~~~rO~~cp~~|~f~~~]]~~U~~m~_~sv~?~Q~~J~~~L~E~Z~~~~~m~~w~q~~~~~~~~TP~~~~~V~~~~V~m~T}~~~~eZR~iz~`~~~_~~Mr~~~~~~~BwU~u~Sw~Tc~~Z~F~~ehm~M~H~~~~~~~~~~k]~~~L~5~~~~~~U~O|<~~~W-~~~~v~~E~~~~~~n~~~~\^~rX~~ +@97f65a70-4e82-e3b6-8fb5-de90687acc03 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,160-1088 length=930 error-free_length=931 read_identity=99.894% +GCTCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAA ++ +~~~a~~pX~dl~{~~~~~tU~~w~~~~xZ~j~R|=~upm~]~~~T_`~~~~}~~h~~~~~~~~ZenL~E~~~~~^~~~~~~]{~~~?Z~~~~~r~~~o~~s~~~w~M~~~f~~4~~~v~~e~R|S~}~~~~~D{d~~@~or}usg~~v~~~\~~~~~U~~p~i~~~~U~q~~[~~e~T~`~~~[w~z~~jv~~~~ygq`&d~{w~~~~b~[~i~U\~d~z~F~~~s~~~U~W~~~~~d}~~~~G~~~f~~~~N~y|~xt~}~~fg~e~tg{K~[o~~W~l~~~r~~~~fh~~~~j~~~~~_{~g~~~~~w~z~~l+ZorT~~z~~~~~~~~~~~rQ~HX~x~~~~~~Owo~o[~t{i||~kv~~U~~~~~~~R}x~Sesn~~~~~~Kt~~~~~~~~y~fJr~~~PY~~q~v~dY~mvM~~~tp~B`q~~~~n~j~]~~~~~~~L~`~Q~~~pqpO~~zp~~cX~~k~}~G~~~~~vZ~~?~y~~~~~~~~~~~y~u~`z~~~U\~~~\~nP8~~~~u~|~~=~tu~ck~W_MT^~~I~_}~w~F~~b~~~~R~y~~~A~~~>~~~~~e~~~~~Ou~f~~N~~y~z^~~o~~bn~~~}u[qEsm~~V~~u_~L~z~Y~~~~k~a~~yr~~TS~~N~~ai~P~~~7{~~~~~)~j~ar~~~g~falk}~V~X~~IUh~W~~~yd~~~~~k~~~g~[c~~ze~5~~~y\~M~~~~~dY~i~~~k~mt~~mS~|}~k~~N~in~g`~~~~RrxT~~5~~~~~{~Wz~~~~~~~[~x~~d~~z~~~~~~Xjd~iv~~z~~r~f`l~r~~~~zg~~~~pWn~~~~~l~x~~~f}~~K~~~~~t^~~~]~~~ps~~Xfw~_~~~~~i~~~~d~~~{U~~~~~z~y~~q~s~;~~_~~i}d[QH~~~~~~~n~~p~~}~~~`~~~~S~o~~z<~~~q~ +@8a62c9e3-7d79-2389-3144-67f26722422b DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,664-1237 length=599 error-free_length=600 read_identity=99.837% +ATGTACTTCGTTCAGTTACGTATTGCTCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGA ++ +~|~d~~~~hVn~~~~~|~~QPtS~>~Yw~~~~~~~R~~u{~~~~~~~~~~py~lb~~~~1~}~~%f?~~g^~~~~~t~oK~K{~a~~~~n{~~~~jR~~~yu~tj~~}:~~~Th~~@nsLd~~~~s~~~~~]b~w~v~~~`x{<~~b~~~~~~~w~t5g~o9p~~`~O~s~~~x~~<^~~Z~~~~~~~g~~~~~~~~~~qouH~vY1~~[~g~~w~W~~~S~~imq~~~~~LOT3~~qfZ~~~=~~~w~T~~~~~aj~h~[]~~H~VngS~~~h~`~~~]~e~~~Z~~~~~~~~~~~~I\~~`~w~~~~~nwo~~~~WW~xq]~~~2u{~~~sSy~~~~~e~X~9>lW~~~~~g~~~wX~~~~~~Xl~lO~~~G~D~~`~u~~~~~~`~~~~~~q~~^k~hU~~~~~w~a~~`~~~~~[v~8 +@e9a491c6-a871-d881-49a3-37f1a6f73110 DDX5_MANE(-),-strand,0-3684 length=3689 error-free_length=3687 read_identity=99.892% +TTGGGGAGAAAAATCACATTTATTAGTTAAGACGACCACAGGCTGGACACAACACACATGCTAAAAAGTGGACTGTCTTTTAAAACCTTCCAAGGTAAATAGGTAAATGTTTTCCACAGCCCAACAATCATTTCAGTGTTTACAAATTAAAAGGCCCACGGTTAAGACATTAAACAGTAAAATATGTAATAAATGCTCCAACCTACCCTCTCCCCCGAAAGCTGCTTCTAAGTTTAAAACCATGAATTTGACTAACCATGCCATTGAAAACCATCCAGGTTACTACAGGCTGAATTAGTTTTCAATGTCTAAGTCCTAGAAATATCACTCCCTATCCCAGCCCTAGCAAATTCTAACTTTACATTTGACATAAGGCATTAACATCAATTAAAGCCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGC ++ +~@~~H~~d~q~~~`~~~~~~~|Z~~r~~~~~~~|~EV~~Xv~~~o~b~~~~~e}~~HZ~z~~~{~~~J~~l~~~~r~~~a~~muv~%k[YhR~SJbgl~~~~~~uix~~~h~~~fi~x~aOs>~vzxt~~~{~~~U~t~~nvo~TM~t~~~~~~mz~U~~v~v~~~~{b~n~i=~~~~~i~~~~~`~~vS~~~~~~|~~~~}~}~yTd~~~~~_j~~~~Rd~~~~~~~~~vm~v~~~~u~b~~~~b{zqq~~g^{l~X~~os~~~~mu~4~x~~~T~i~q~~=~m~~dM~yu~V~~L~k~~~~~W~~~F~~|~t~x[~s~~~~~~fm~J?pi~kR~~t~~~~W~~U~~~~1~~~Q~[~~hr~~k~~f_gbow~~~yG~~m~lhh~~~~~~ibfa~~w[n~~~h~Q~~~~~aX~Y~~~^w~~~~\~~]a~~Vd~{=~~t~~~~R~v~^~~i~~~~~~~`ip~y~c~~~~eL}b~t~~~~~pV~~U~d~|~Rk~~~~~~~~~~~~~rr~~m~~kF~~~~~wn~Xd~~~}~~~~~Rw~~T4~~}[d^vxt~~~~~jh~}~_}~~~~is~^~~_~~oX~~~M~~~~~~h~~s}w~~a~~~~~hv~x^~~~~p~~~~~R~g~P~m~G~osI~~~{q~~~~x~T~~~~vh~~~~z]~k~~c~~~Xte~~~vdw~~}~~~E~^~[n~~~~~\~]>_w}~)z~~z~~~^Q~~x~~~j~~~vZ~~g~e~~~~Sx~~k~~~~~~~x~~{A~mL~~~~~p,~Z~~n~~~lDe~~~~~~|~[K~|~={~{h~l~vs~vAx~~~]~~~~~mlf~~~o~~K~~~ap~P~~}~~~~~f~~~~~o~~~k~|v~w~R~~~~kT}O~~~~~~{~~k~I~m=;w~8~~~z~~~~~Iq~f~sfr~~~~~Y~~~~y~~~jg~sl~JpvSbI~Y~y~~~~kZvS~u~~e~~~vn~~~Q~~axi[Hxs^~a~~~~T~~~~T~~~~_~AjuPc~p~~~Pw~js`~~~~v~~~~ek~~~~`~Pq~~}~~~~~~~~~~Ri~~~~~~~~{~]~~sp~~~n~~eR~~sav~]Kc~~~~k~~Nr~_e~~~~~~~u~i~^~~~~f~~gpw~~_~\~v~G~u~~~~}~~D~~d}|~Mw~~~D~~s~Y~e~~~~~_~x~~Yls~~T~~~rQg~~~-~^~~f~?cU~~en~~{Ouw~iQ~~~mxm~w~~y~~^~~~y~lut~et~}r~~~~My~t~~~~~e~~g^~~oxGf~o~~Y~w~~?~o~`~~Q~~~~l~f~~ths~l~~~~~^~q~~~a~~~u|~a~~p~x~~~n~~i~c~~~~~~a~~~~~q~~~~~{k~~b_r~~~~~x~~[i~~h~Tg~_\~~A~ov~~~~~~~x~~hXQ\zk~~~~Wo~~~~~~p_~~e~G~~~~H~g~~~~pGJZ~p^LRF~~pj~Rl~ES\o^~o~p~~xa_s~~|yX~~~d~~j~~Wa~}eQH~m~w*h~~maV~~~]~qOvl~tiwc~~vY~~~=}~~~~i~~dn~q~y~~~~~~~~~`o~~x~d~X~|vRVW~s}~~~]|Nq~~Zy~ov~~~~d~dT`U~v~~~~~~U|Oi~uS~_~~~~~~U}~~w]\[~~;s~~NC~~Jw~~~~~{~]~~~~}~~~~~|~~6~~~o~{po~vt~~~~~~~e~~~}~~~~~~V~}~~~{^~~U~~~~~~~xqS~~:Z~~~~}~jem~~~~TWd~~~~z~~z~~F~~nh]~~~~h~~zUpc~}o~w~~~~~j~k~~~~l~\~Fp~F~D~~~~Y~gT~~d?U~~enqyO~d~~Sm~~~~~}bj~~J}o~~H~~W~~l~Z~~~~~v~~7~~m~ct~~~~b~uq~~{~~~~~~~~~~`L~p~l\~~~|yjz~~Q{~~m~~~fl~M~P~~eG~~Ww~~~~>Fd~~~~wx~j~~vr~x~~h~~~~~~YphD~~Y~~}mCw~~~N~o~~V~~C^th~~~~~~kr~~~~l~~mz~5c~A~^y~W~~k~p~e~~~~~m~Qz~FP~r~}~~~~eyv~I~~~~]D~i~~f~~J_~~c~y~~~~~~h~~~\~~~fh~\Hf~~~Z~~~YZ~ux~]~j~~^~~o~~~~<~~y~~~f]~~~sw~L`~}gkh}`5g~ov~~Lr~p~G~~~~I~~p~jXp~~~U~~V~n~~~~~~~~~~~~~R~~~~~~~~~b~~~~~]~~~~_s~{~~~2~~~~~O~qe~zk~~~~~~s\}~~K~~~V~Q~~}l~fE~nj~f~~|r~R~~~\pTw~~j~j~{~|kd~~~w`Z~~o~iayj~?ZpE~~~~h~tK?~~~~`7~~ej~mZ~>~~~~~~z~~~~t~~~~t~~~~~vb~~e~~~V~~~~~~Cu~~~~~|0T~b~}~~f~~~L~~l~~|~~~Tn~~~~~|o~~L~R~R~C~~~~}~~|~o~~DutA~~hrE~~l>e~P~gK~~p~i~~yh~~~~YOv~~_K~~`~jU~~W~~~K~~~~]Ai~~<~~~}lt~ct~h4~h~~Y~~~~Gq~~~~~~~~.~bL{~~~~\e_~~~~~~g~`Fpg~~~~Iw`p~la~_t~~rf~{~Yn~~~~{~~~~~~f~~~gd\~~~~~~c~|~P~~`LaB~~~~~c~~~y~k~r~~a~~~~~~~wY~~cI~v~~~dt~~~w~<_\~~{i~Ua~ox~X~~~~~u~~~j~N~jn~|dZI~~~z~}q~a~~j~Scb6~~zly~~j~~m~~~~~yo~v%k_`~Wo~~~Sqx~v~c~~~~~{~v~~~~c~~~I~~~~~~Rp~r~~jb~~~~8gv~}~R~'~~dLY~p~~~~VnN~~~T~:~~~~~~~~j~~~~~n{~~S~~~~~Xj~|~~~~p~r~~~~~~~~MOs|~~]~~~~|~S~~~~x~N~~~y~~~~~w~oi`~~\~h~Wd/V~[F~K~~~b~~~j~p~~~u~g~~u~cb~~[xl~ea~~~~E\~{~~~s~~~jH~?m~pY~~~~~~i~~~~p~V~]~~~]~~~~~~s~|H~c~~z]~?X~~dy_~]~~~~r~`U~~r~{a{~~s~V~X~~x~~J~~~~~\`~vY~~~~~~~rf~~~~u~T~~~~ejola~~U~~~d~~~~~~~~~~i~{uz~~~~t~l~:~~~K~~~Vx~R~j}~~~R~~MdT~~l~~CX~~~~o~~~~qcf~~~i~~lp~~~~kntU~~~t~G~~|r~t~s~~ta~~Y~-m~h}hz~nu~7v~i~~m~~~~~J~~]e~~n~~~b~~FEu~x~Q}~k~v~~~~|~b~~~~~~~l|[j~~a~~~~|V~Kv~~~~_VF~~Go~]z~~|~~~Dlv~~=g$C~~7~m~o~~)~iY~~~~t~~~~~U~~~q~~xe\~wv~~~~~~~m~_~D|~wdx~Q~~v~k~~?~~qLh~~~Sq~~r~wr~~~~~u~~~~y~`hf~~~~~k~U~~e~~u~h~y~~~~h~~Xg~~~}~~~~S~|I~~~~~z~~~~x|~~~}~`Q\~~~~~]8a~`~z`i~~xlZ~~n~~~~0~~~~m~~~I~~o~~S~~&~~~c~~k~d~~h~Ik]~<~~~d~~~~{lV~~v~=z~X~~~~~xj~~~s~S~~_~G~~~~~~~:x~~m~tp~~~um~~~mz~~y~~~@~m~~i9w~~~~~s]~~y~q~uzx~t~~~~~~~~~s~~~~N{u~~~~~~Uv~~~j~~~wf +@94df07e7-0035-b0c8-4f01-3854bbfb3f6a DDX5_MANE(-),+strand,2071-3081 length=1068 error-free_length=1067 read_identity=99.908% +ACGTATTGCTTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGGCGGAACGATGGACTCTAAGCCTCGGAATGCATCAAAGCAGATTACGGGCAGCGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTT ++ +~~\~~eh~~O~~~byq~|L~~~j~~~~~A~_~O~D~~\~c~~~Zn~~qb~~~)ax_~Xfk~~~~~~Wb|~n~]~~~Xy`~~~~~~~~~~~~~~{Z~<~~u~~Qa~~^~v~~oJu~o~~~~u~~~~r~~~AQ~v~~~~~~~~~w~~~~~~~;~~zt~\~^~~\o~~~~f~gi~~~~~~@~~os~~V~ZP~SX~~~~_~u~r~}p~~~~~~`~~yW^~~C~pO~~~~vi~~~~~x~~R~~~yR~h~~q~~ny~~rt~B~~~ob\u~o~S~~p~~N~ef~~~~k~{~~~~~~`z~~Sw~~2~]~ul~Q=~~~~if~l{~~~ow~nd~~SY~~s~I~{}~~~{~~~~~~m~]~~c~~~~q~~mp~WuzK~~~~~~~~~~~ZVv~kx~~~~~~.]~~~~~tw~~Re~~~tc~v~a~~s~~~j~~j~~~~~y~~El~~y~`~~~~}~\~~~~~lu~~~~~~\~X~u~~g~~iX~y~~n~lo~^~~N~T5~lg~~d~~~~~~K~~~~f~~~~~ie~~~WdPOmeng~i_|e~~I|~~Y~~~R~nW~v~~~~vs~p~fiD_~{O~h~yT~~~~~b~~~~q~z|q~~L~~iw}_~~~~~~ijw~y~~~xh~oj~dab~|~~~~O~~i~BP~~li~ru~~~~t~~~~~~~~j~]~r{m~x~~qbl~~~^~~~J~@~~~~tQ~~~vb~n~c~>~~~~~L[~ws~~x~~~q~~~~~~~x~~~c~~v~~~~bs~~]~~e|~m~L[~^~~_~~~~Zc~d~~~`~~~~~x~~~k~F~y~~s~R~]oE~M~~~~Zbxg~~UK~~~~p~~~`p~~~~~yw~qz~~~~Vl~pk~~~ev~|y~~ed~]E~~~~r~~~~~>~~~R~q~~~~~~~~~b~a~~du=~W~Z~~~~QZ~~m~`wm~uT~~~~oNf~P~jJ~~^~H~f{~~}qGvKt~~~~~~~~~e~~~~tvbQ~~{~~-h~~~~~~~~No~l~~h~P~~~~tLMC~~~~z^_~~dm]dF~x~~~z~~~~~~~y~~EAbd~~r~%''N~KuQw~~v~t_[~~Fb~b|~~~~~~~~e~~u~t~~eh<~~~~~~~~~~vX~~~h~~~~g~~~~^ +@ac239551-753e-63e7-b506-7cca9339ae0c DDX5_MANE(-),-strand,1918-3556 length=1647 error-free_length=1647 read_identity=99.880% +CGTATTGCTATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAA ++ +~~m~~~~~b~~i~t~~q~a~{vh~~~~~~~~~~`GKi~~~w~v~{~~zSk~~~~~~Z+R~p~~~~~~~mHyy~en^,t~~~~b~o~~\~aG~~~~Xd~y~o~~~id~B~Y~~~~~~g~]tZmbgW~~~e~_[~uE~~~~~~~~P~~~~QA`s}vV~~vy~r~~Yz~~~{~~{~~~~~~x~~~[~r~Np~~~~~~~~V~m~cx~~b]~U{~~~~~~h|gg~`^~y~Fkh~v`or~j~\~~~~gG@~~m~~~m~~Hn~~~~yN~~w~~~~Kgp~~~v~qb~z~~dlm~~~Q~b~~v~w~~~~m~~_~~f~~~~q~~o~jK~~~Z~`~r~gU~~|qrtw^b~T~~~h~~~~Wpl\~~W~~~~{~~~~wwn~~cm~~~~~S~~P~~i~~dy~~~~~b~~z~~~~|~~v;~x~~cY~~~V~~~~~ljL~~:~_N~~~t~~t~~~~u~~~~~j~~~~~W~}~}~~~g_~z~aF~~~u~h~~~~~pDbHb~~Yu~~~~~~~L~~~^~T~~|g~LI~^~~fwY~~~~~~}~~~uwi~d~~~~~g~~t~~YVpm}~diz~~~ukO~~u~jmJDw~~rm~r~i~~~v~~~~~~~@~zrV~~~~~}~~~~z~~~Q~y~md~O~t~Jtaw~L~~~~~~Q~x~z~~hN}~^~_Ok~~~o~hAm~~}~tl~ra~{~~~~Z~o~w~K~~D~cQ~Q~ubi~p~ens~~~{~~Jv~~[w~Xs~~a~~~~~~~j~ju~oe~^RV~~wyC~~~J~P~~~f~~~Ub~C~~r~~~~~~nu~\~~~~~~u]~w~~~_lC~~~~~~T~wl~dj~~f~pOh~~x~~~~~~~~P[~nK~~~~~~~~[~~~he>k~~~~~~~~peUkt~^~u[~g~~c]~~g~~r~~O~~Zw~~l~~~~~~for}~~~{~~v~wQ~~y~~X~6~~~k~~/~~~\W~q^W~~~j~~~o~X~|~j~~~~~~~~~t*dvc~~x}zum~\Nj~GE`~iw~~k~}.c~~H~asQ~~~~~~~~~~~t~~~~R~~f~~~|~g~~SL~~~~~~~o~~~~~~~~~u~p~~v~p|~`~~~k~~{h~~~~~b~~lu~P~~hc~~~ui'~~l~r~~^~~c7~~q|~~ZnkkZ~Q~L~~~~~U~E~~~u~[k~~\~~~~~~fQ=n~h~{~~~x~G~~~[~d~~Vqn;~~~l~cW~Gp~~u~n~gp~~~c?~pt=}^~X~~~~~~Z~~t~y~~~M~M~~~~~~n~~~~~~~~V~dtr~S~~~~~~~~~~u|~~~;~H~~}guxN]~~~~~~~~~r~c}0H~~~~~~~~~o~~~T~~hYm~~m~~l~X~~~~qu~Aw~k~~~~~}~V`~~~b~d~~~~~~V~~bX~]~S~b~~t~`~~~~v~X~~~hlzc~|~~~~c~X~~~~~~~8\C~f~~~~t~~mj~~_V~~~~p`~~~~{~~P~~q~~~~~~[~~k\~%~me~~~yo~~tn~~~~~x]O~{zYf~s~~|~waM~dYVu~~~hp~~~~~M~Bx~~~\v~b~~~~~LYj~~P~~~en~~~u~R~7q~~~^~1q|~~xd|~6Xrg~~a~~b~~~u~f~~~~~~sow~V~}~~cTxBx~~~~~~~E~~eq~i~Xt~~~v~NvJ&I8~~~~~}~~T~ar~~6~~y~~}~~A~m~~~~~vMZw~~~~VWb~~bc~~~~~~c~~{~~~~@Lv~~lsrf~hi~~~k~~a~~ +@e14dbe6b-8e6c-d521-b37d-e1315e70bde0 DDX5_MANE(-),+strand,2585-3684 length=1033 error-free_length=1035 read_identity=99.809% +GGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGAGCAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCAG ++ +ma~~jy~wn~Y~|~~~pr~~~~~~~~n~{~~w~~e|~[{~M~~}l~~~|~~~~~~~~~~h~~`~S~~y~~~~{~~|a~~~~@o~o~~a~~b~~~Oxn~m~W~~=P~~~~~~E~zm~b~~~~~~u1~~~~~k]~~~`~~c~~b~~_~~~~~~oXe~~~~okx~zy~~~~~~q}{b~~~~H~C~~~~Qy~~~d~~gzg~rT~~~S~p~~U~~~}~nL~~~~~~~K~qt~~~~~~~q:~}}~~u~t~gEyq~~f~u~~~~~~Us]~~J~_~~_bn~t~~~Z~TfL`y~h~~~2V~~.\~~~~q~zR|~~~~~{|I~p~\~~e[mmu~~r~y~[~P~na_~~vj~~E~~s~~~~ln~_~~~hMZ~+~~x~~~~E~~d~~~~~~~~~~~ps~H~~~~~~~sr1e_i~~~~~_T~~~}Yl~r~~mzi~~L~~u]~~~~~v~~~\~c~R~~~(tj~iuu`u~~~~aj~~~~~s~~~=~~~X~a~a~~I~|~~~ms~~{~{X~VD~~mMq~~~o^~~~Z~~\j}~~~j~~~~~~Y-~x~~~|~~~]~~L~~~~i~n~Hk~u~u~O~~`~~~Uz~~~~~~~yF~~~J~ZH`~~~~~~ra|`t~T~x}~~J~~~~~z~lq^w~~~~d|u~x~~~[I~[s~w~bUzbmV~~~~KaI`b~~~RN~~~}~@~y~~~D~}dXi~~~~~~~U~a[~<}~~~~~~~~~~O~~~rfsbO~~~^J~J~J~zg~~w~~~~Q~~m=qZyfpd~l~|~%~L~~{~t~~p~~~uqwY}~~~~~f~~~~x~r~mi~joK|~*~~~xl~~~~~cW~uK^|~}~~~~Xp~~~L~~qol~~~Ym~X~Xzrgoy~~~pz~g~_i~_~~f~d~~h`jY~~y~~~~~~~L~~E]u~k{~~~~~`x~\~~~_~~~~M~~fuP~~~~hl~~~W-R~sh~t~e~f1hr~~ohnl~Gp~~~~~~~Vvb~r~~~r{~~~~qY~~|~~~~oY}~p~f~|_~~~r~c~l~~Y~~{~~j~~]~~~~~~~~~pw~rJ~b~~{~j_PF~dsR~y~[{~x~~wS~t~~~~tM~ +@bfcbe459-fe3a-65d9-2fc0-09d3a3894c30 DDX5_MANE(-),+strand,750-3531 chimera DDX5_MANE(-),-strand,3338-3684 length=3155 error-free_length=3156 read_identity=99.968% +ACTTCGTTCAGTTACGTATTGCTGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGTAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGCAATA ++ +pY~~~E~i~j~~c~~z~~SAN~x_~~~l~~U~r_~~W2`P~~ar~~;~~~~~~~~hh~~v~m~~~~jt~~~|gT~~~T~~~P~~~}~~e{~~f~kXa~~~~Xe~~}~~~Uz~~~~vQ}ep~~~~~~~~Z~j~~~F~~ig`~~~~~`~~u~|v~q~~~_~tm~~~5lk~PMz~]yJ~{~~~~~~~~~~~~~tT~t~xe~Eq{~~f~~Rf~~o~im~~~~~~~~d}~~~~Yi~~D~~w~~~_Rf~m~~~O~]~m~~y~s~~ef~~u~~x{Nv~ct~_bcd|~e~X~~~V~{~w~~~ZNfuZ~TsYova~N~~~~R~~~o~hk~~MD~y~d~t~s`~M~k~\Hjz~~_~gnv~d|lVif~~S~bdo}~~e~]~dd~~ar~~~Wf`~i~~~*~n~~~e\~ug~~~~~~`C=~_{~~~~|~~~~sk{~~~~nwk~rjuw~MYifd~~~~~~~~d~vo~~~gxc~~a~~~~~~~~~~~[\_bm~~~R}~hllLc~~To~q~f~~~~Ad~~~_~e~~~~ti~~RzPak~m~eH~m~~~~lm}\~eja~~Z~~r~o[~~~~~he~~~q~v~~~~~~~~~rUN~~~w~u~DYy~~~D}g~~~LI~~~P~~nnz~=vm~~~~g~/W~~b~~~C~~~~~~{cbO~~~~a2~~5_~J~~~~~W~~~~}ueq~~~j~~`z~n~~~d~~~~~~ukVhd[i~}d~~v~~U~BZi~=~hv~h~~~z}~{h~~Q~~~aY~~=ir~~s~~~~~~X~m~~g~~~~~f`~~N~~~}d~2~v~~igN~b~~~~p~~v~iF~lJ~~~~u~w~~>w~vU~dF~UpetV^{`~~a~jWE~~~~g~~]is~~~~~~~~Vz~~wr~~Nx~~c~Dr~~~~~~~~Z~~~~`~~~vl~~~~~~~t~c|~~~^{~}a~b~l~}Nc~~~~~~~~vv~^~~ag~`Um~k~~~~~~~fZ~_~m~~~lu6l~~weyt~S~q~~~~t~~~~~~?Sz~~{~~~m~L~~~qg~~~~~~~m~~~~~n~P~~~~Y~r~~Ov~~~f~a~j~g~Z~~~~~yz~~~V~~wy~~~bi~~~cQub~h~}~~~~}Xm{K~~R~zRrW~~|~5~[~~i~M~~aw`~~~w~t~~]~{Q|~~~_~Rf~Lkb~a~~o~~~~~~o~~~~~~~~d~~~<~~y~~~~~~pL~~n~~j~~~~~~~~o~~~~~}~Og~~~~c~~~u~TQ'mBnP~zP~~~~b~~u^~u~{nDo~jve~~B~~~un~~z~d}~O~h~~mei~~~~~~dd~Wqk~~~Y~~~e~~~~~~Ru~~w~S~k~~~~~{bpng~~`~ZM~~uyg~~~~~>~W~p~~pp~~~[w~~Y~b~{~U~w~~~~~;~f~[u~~~~h~t~\~~~~~~B~~v~~Z~~~~~O~b~~~~l~x~~[~~~~~Q~j~W~~~Z~gsUf~~q~~~O~~rr:~~k~~m~i}x~~\~b~p~~~vg~~~~~~s~p~~~~~~~a~~x~vm~VON5~~~~t~k~~d~~~~~~~~{q~~~~~~p~~e~s{kv7~G~j~~~|~~k~~~~p{~]mJ~gwy~~q~z~W~~Q~u~LE~pZQU~~~k~~|~~q~bV~q~~kq~}6l_P~~a~~[>H~~~~~`~~~K~|~m~ilU~~~*p~~`P~z~roea~~~l~l~~\~Ix~~}P~~R~H{~h~~~y~}rP~I~~~~~~~~`~~~~~~~}c~~~~qy~~~V~~~~~x~mqo\}~exe`Xuc~m|xU]~~o~~~~c~~~~~U~sy~~~~~l~bsf~~}z~Y~~~Z~t~[~J~u~kc~~~~~~~`~~~~Bms_~~~~~wTz~~S}~~~~rS~~_~kc~~u~Q~~v~L~~~~~~se~~`cX~~~T~nzc~~U_{w7q~~~~~~~~y~~wqq~i~~~~~Esb~>~~~~~~~~~~~~SC~~~z~p~L~d~~~~n|k~~~r~~t~~p~~~~~X~yY~~nV~t~'~A~~c~d~~xdQ~~|~~pX~~Qq~w~~~XB~~~~af~~S~~gta~~v~~[}~u~~|~~p~~~S~d~v~~~~~~~~~~~h~}~~~~~~=~~p~~~w~~|mYi~~~~^~Iqp0B~~~~vj~~v~~}~~a~]V~~~~=~h~~mX~w`w~h~~~k~~z8~@~~~~o~~|~~~~l[~c~~i~~~i~'~~y~~~~~~T~~~~~c~~~~h~~r{~p5e~~i~~~~~f~~~]u^<~{u~~K~M~~i{~~~~~{~~~~~~fiy-Rc~n~~o~|~~~~{l~ZN~~P~E~~z~~~~gro~~~~~~~sw~~~~Xc~~O}~~av~Hp~wlm~w~_~sa~~P~~~~~wq~~Qr~~~s~^u6\~~~l~L~~C~~_~s~~~{~~G~~~n~~~rn~M~~~ha~~~~~~~~~pg~P~~a~qT~~~~~~~~~r~~~p~~~`~h~~~~ks{t~~~~dx~~~c~r~~<~~~~sW~~~~~~~~~~~y~~~sv~U~~zs~Wp~V~\t~VyD~d~~|E~~O~}~~q~^yz~u~z~J~_~q~~~~r~~~~\~z~e~~~zTS~~I~r~~~f~~S~~7~~~~~~}~~q~~{~~D~~~~gz~~~\~~Ys~oJ~ur~~~^~^~k~W~~Z~~~q{q~z~d&`~~~~p~hl~~HOaw~e~~~~jj~)^~~~E~x~vH~|zjrynr~~~~Y~~wd~Q~Tn~P~~]}mj~~~~X~jw~s~~y{~~~~~~b~`~x~rt~~~~~x~oj~~~v{~~~~~}|tq~~~f~l|__~rQ~~[~~~~~~:^~~x~oO_~o~~~~~Kr<~S~}~Kuwr~iw~~P~~w~w~~o~~tq_sp~~~wp~g~~~~~~~~~{Z~~4c~~~g~Ru]~{~~^~kU~cZ~~~y~rk~~rxZOv~c~DS\~lk~~~~~s~~|~~_~~cK~x~~~~VZ~~u~~dJwwLf~~m~~o~~X~~Y~~~P~o +@7e6c6ad3-61c0-2395-a4bf-985716c82ad4 DDX5_MANE(-),-strand,218-1168 length=976 error-free_length=977 read_identity=99.899% +ATGTACTTCGTTCAGTTACGTATTGCTGCTGCTTCTAAGTTTAAAACCATGAATTTGACTAACCATGCCATTGAAAACCATCCAGGTTACTACAGGCTGAATTAGTTTTCAATGTCTAAGTCCTAGAAATATCACTCCCTATCCCAGCCCTAGCAAATTCTAACTTTACATTTGACATAAGGCATTAACATCAATTAAAGCCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATT ++ +~b~~xT~s~~e~~~ik~~b~~~NL~p~C~~Ew~i7iZ~~~~~~~T~~K~C}~U~~[~~~~~n\~~r~~~~~Qu~~~~a~L~~A~~~~a~~~~L~~~p~~zY~~O~~~~[~tZlm~~~~~~c~~r~~~]~~\W~~~~[~~wvmM~~~yR]a~~~~e]~~~~w~~~c~lQ~~R~{~~~:b~G~c~[~~Jool~~~f~C~~ipJ~g~g~~~a~~ju~~~~~f~`~?~~mz~L~~~~~@~~Q~ZW~ir~~~c~miue~X~Y~~{;5{~~bO~~~~p~~>t~g~~ov~y~~Rl~~pf~[~X~~}|~K~zF|KBe~~~~~~I~~y~~jIo~}~~~~,~Va~ifn~w~x~syO~~~~~~~Jt~~e~~~G~~i>~~~~~d~~~~~p`~~~~Pchj~q~~~~~~Xn~~yK~~`B~_T`c~~qr~~~~e~wz~S}l[e~k~o~~~~~~~~~i~~o~d~~u~~qo~~~M~N~~yd=W~F~~|~Q~~~~~_~~~hg~~c~~t~~~i~~\~~~~~f~c~~~gj~~~q~~x~ViOW~~~nb~~~Wj~~e~a~}~~~in~~~~~v,A~Kx}vS~~~~u~~~y~}vYoe~a~~UqkE~_~yq~~{~~~~~~~~~~>~M~f~~~|~Zf~~~~~\~~~~~~YI~~~m~~~dw]~F~~~~G~x~b~t~qc~~~~~}|gh~n~Fk~~{~l~^~K~ez~z~~s~~~o~~s~Mu~~~~j~r~^~rsq~~~~~~~~~~~d~zO~~s~~~~~~~U~m~m~xk~~qL^~~~~~PEiw~t~9{kq~~~~H~j~y~~`~~y~~h~~~~~fQR~m~~~n~N~~~z~~~xe~~[~sw~~~~~~~~Xa~~i~~}[~~~~g~sA~~|~`~pz~{{pn~~~~~~~q~~~iCn~~~~~X~~o{t~~~~~~~~~YD_~cv~~~~&~]~~~h~~~{}~b~~c~~~~sr}~~~~w~~~~~~~~~~~~~~~?~n~~~~ta~~tN~~~~ca~~?NF.~^C~~B}q~~~cW~~h~ +@4e9db490-00ed-1c5c-4354-e7398a2e54d0 DDX5_MANE(-),-strand,1470-2850 length=1403 error-free_length=1400 read_identity=99.647% +TCGTTCAGTTACGTATTGCTTAGTACAAAAAAAACCTAAAAATTGTTTCAGGGGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACAAGGGCGGGAATGTGCGACATAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGGTGTTGCAA ++ +vls~hxO~t~~~~k~~~~~]~~Z~O~~~~s~~~bL~~~~\~}S~exU~~~~^g~~~fb~]bs~~~r~]~t~~~~~uc~d~~~~~Mi~~~r~~~~~~~z~t~[~`c~~~~~~v_~V`~c~e~~CV~~I|~~~~xj~~~nU~~~~~et|~~~~~f~~~~8o~~~l~[~~{~~~~~g~~Xn~T~{~l~~~~b~\f~~~w~~]~~iubk~w~~~hu~~`W]~~~~~Yd~~~fY~M~~~~~~~~H~~~~~~mYwc~~Ud~x~~~~~|P~~~~~~W~~p~~~^~~ryu~@v~s~b~~g~yR~~{~i~~~N~~\b~Qsk[H~~m~~~~f[p~~~~~~~~~\~qh~~~{Ze~~Nw~ry~~FN~wF~f~v}~Np~Z~~}Vk~~~~(~~{~vz~|ry~~Fmz~~~Q_bx~~~~Qs~~~~~l~~Fr~~yg~~~~~~~~~~~~Kx~~~p~T~~~NW~[~~~~tvy~~~~^s~t~i~~e~lDd~~^~S~~~~~u~~~y_oLi~~o~~~~~~~~~~npL~~~~~~~e~~~~~R~+mjr~~~~r~YO~~S~ij]~K~a~~~~~~~t~~~v~~~~kc~~{~~ziFi~~~tg~~r~q~~~~dw~~~~~~~~L~p~b~n~t~l~~~~u~~~w~m~mG~~~~~~~~nw~~~\~~e~h~?~~~R~~~?~S~^}~~h~~W~l~|b~~k~L~}u~~~n~~k[~W~q~~~~~[~~~~E~k~~eu~~~~w~_~q~j~D~qYl|~~~~dKm~jT~~~ju~~~~~~~r~~~~\~~~~~rt{~~a~~~~~k~~~~~l~~uph~~~rhg~~~~g~~wm~x~zsVu~~vr~~V~w~~~~~~gMN~~X~Bg~~~~~O~~~~~eo~Xu~~r~~aav~w;~~~Pg~~~~qrio|}uZ[f~~~~i~jZyJ5~~~~ul~p~~~p~~~~~C~~~~~~~~~~Xzu~l~o~~~~tDa~~~~~qMlv~~o~~\~~r~~~t~t~{~~m~~n~j~~~~j~~~bY~H$~V~~~~~pd6~~~sb~~d~eK~~~~~~X~~~~~~~~A~~~~j~wf~^~k~~~~Lxe~~h~x~~T~~~~~a~Zc~~e~~~~~w~~N~m~a~~u~~~~~ee~~C~~e~~~~e~~~{~R~~u~7~~~~h~zj~q~~~D]~~~~~V~~a~~~~~`z~~~s~r^~t~~Uet~~x~~~~~~~c~_hT~~g}~_o{}~~dXlP~~~~~~~~~~P~~~~~~v~~Z~~baY~U~~~|~~M~,p{~~~~~~~~ +@a63b950e-c086-7021-fb38-07704242c9f9 DDX5_MANE(-),+strand,2560-3575 length=1032 error-free_length=1032 read_identity=99.428% +TTCAGTTACGTATTGCTAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATTGCCTTATGTCAAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGAA ++ +{~~~~^~ml~~~x~~NZ~~o~h_~~H~~W~~~~~\\z]~f~~~y~Z~{q~~~~~~~~fv[U~~e~~]~a~]D~~EJ~~~~u~~~t~~+m~dQ~\~|_~i~3~dnO~f~~~~~~~~zx~i~QE~i~f~q~@~zsu~xE~yr~gTK~~~K~*Y[S~r~ztg}~W~~Rf}w~8~Z~I~Q{~~R~~b~lZ~~\~~~~~]~~o~Q~~~~~H~J81w~~.~e~~|x~~~~~~rto~~~~s~a~_mC~V~~y~~TY~~~~~x~k\v~~~~rf~k~~]~~~~yZ`~~Wpn~\g{~~~I~|~~[~~-p~~c~~~d~vjo~~6~K~~rR~X~~go~:f~~xc~~~~i~?~~2j~~~{~yq~r~uZ~~vx~~r~~~~~~i~r~f~~~B{~l~u~~ie~6@~l~~~J~~~az~~[~@a]~j~~{z~o~m~~w~mRz~w~~dv~~x~~~~~~~{~i~a~r~~~~VZ~~~~*~_~~~~~}~~~eI~~~~~~~~~~Tv~~~~od~W~~~~b~|~r[~@~W~m~~KN~~lF~~c~~~~i~v~r~~i~~G~~T~~~i~~u9b~~~rnr~muvx~t~~~j~~~~]~~}r~~~~tnw~~~~~Wu~~~~~r~~dK~~~~~~gT`r~~~~~^~~t]~~h~~~~~>EY~~~L~~~~~xmx~vp~^t~~=~~~u~qc~grZs~K~~~~7w`~{~s~~u6~VgU~~~~~m~d~B~~Tq~h~n~~~t~~~~_~~^~~}~o~~u~~n~~~~~~sW~o~1o~~b~tkj=~~~~~n~~~~~XT~~~{~z~~c~5Z+e]~TW~~d~h(&Jemk~R~~~~~~dV~a~~~tQew~e~~mqm^tzqk~~~~~~~~|~~5p~~~u~~jC~~Y~~~~n~~~~~jq~}~{qcayx~~~`~~~l~~Ea~z~~~~pm~7vO~~~~~]~~Z~~~~p~{~E~gel~Ked~coy~xHW~Vj~|\~UR~jyV~~TPN\~~~~~~~~~~Y~~~[~N~[E~~gU|o~~~y~~Q~~~y~\~l~~`t~~~~~~^`~gsf~iV~~~~b~M~s~~~cP~znl~yzk~~~~~~WY~m~%o +@02c1e162-e770-2de9-6392-4577cdefe98c DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,0-2545 length=2570 error-free_length=2572 read_identity=99.923% +ATGTACTTCGTTCAGTTACGTATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +[+f~Yfp~gp5~]~N1i~~~~rcI~~}|xdx~p~~[~~~~~f~~~~~E~w{~i~b~x~~~~~~aW~~g~x\~~~~_~~dg~LfcX~|y~~_qh~K~~j~~~~~~~c]~`S~~X`uQ~~ll{~~^~S~~w`{^zR~`aY~rU~~~v~V{~o~{~he~~_~VdR~~~~S~~~~~m~xK~~p~^~~j~n~jZ~iH]~~~~x~~eO~~n~W~~~Ixf~}vNdm~O~|~~~e~~~~q~~~W|~~~~}z~\rNek~j~~~U~~q~~~~~lq~~dk~~_j~~~s~~~c~LXe~~~~b~~~j~c~~P~Gbl~~~s~~i~tww~`fb~~~~~~2X~~~~~~~~~~Y~~~p~~~~l~z~I~BgO~~~~K>a~~~~~g~~~~~~~m~r~~zS~~~g~~Z~N~~j~~~p~Pm~>~~I~P~n~~V~~~b~~~uy~s~~rA`_S~w~b~~o~~6~Cd~~~~~~~e>~~ej~~~t~~~~~~:W_S~~~~~~Rq~g|~~~>~~{v~~t~~VK~~`~~t~?~v~`w~~hUwW~xbV|[Aq}N~~~poh~[~~[~<~{z~~~~~=~~~~[p~~~~~7~~~~~~C~~~j~`~hEW~~~~~z~g~~i~m~~vi~~~~~g~uJ~~~~~<~~~~~~~~pp~b~stA~~~~wi~Uk^~.~_~[~~|~H~~~~~~}mnvewi~~xfx~~`Y~2b}~~~cKV{kuk~~j~~mD~~~o~~~~tw~~q?~iqt~~R]e~nbzcm~~_g~Z~Kna~~Q~~V~r~m~q~Z~~~uL~b~~~~~~~s~~\fq~k~Jo_`Og~@~tz~qY~`l~v~~~~t~~~xe~~~~~~`yxo~~sL~~g~~~R~P~~ln~~s~~~qq~~f~~u~t~U~d~ku}~kU~~~~~o~~~y~~sk~M~~~~u~~t`l~~~h~c~Y}~~pEx~`~h~~~~~n~~~~=~~~~~W~~~~hsvlbX~~~~J~su~~~c~s~~Bqp\~~`~~D~zv~q~{~~[~~~z~se~~n~mxb~c~~w~~wYP~~~~~~_qdvq~`hePv~~~~?~f~gobaV~~n~e~~l~Id~~olk~~B~~~~~~dcp~~~~~~~P}~~~~T~~f~k]~Mz{~i~j^my~qZ~~~_vo~]V~~~~^~n\~~~~~Xl~~c~~gdj~~~b~~~~{~}~~~~~~~sn~|vv\~.e~~~~~~~~~~i~~~~~~~~~~~x~~`y~~~~~~~b~W~~~~M~b=~~|UV}~}w~`~~{~u~~~S~~~~yH~t~[ie~jUg~~Q~o~-~~~~~V`[~Ntgh~~~~HPjM\~R~~]~k|d~]~~zc~~ZY~u~~~x{c~L~~~~o~~~~n[aM~j~r~~_~~~b~~ue~~q~~~~U]|~wqknb]Q~v~ZyN~~qz~~^_~~|~~~~~fo~x~z~~<~~~~Wk~~]~i~T~f~lxsi~~r~~j{~~~~~~~~~~Wv~v~~~q~~~k~~~~~~X~~~M~Vv~^~S~uy~~ka~z~~W~~~~~~zr~~3~~}{_o~~pl~~~]~l~b~~~~~Z~~]~y~~X~~~~c~~~~~zP~~V~~dmc~dTW~~~@~~pG\~~~~k}~~~S{x~~~q?~~0r~~~~d~\~~^~~~niv~~~~9az~~}~~~~~i~~k~~n~f~~c~~Q~~}x~~~~~{~\^~~~~~~~T5~~~t{~r~~~~av~~~vc~~hz~~~~~bftSbZo~~X~G~V~~@~YQ~~~~InL~k~~~d~w~~p~~~~~~~~~i~~~~~~z~~~~~~tj~~^P~~~b~~c~ex|w~~~~}~~d~~~5~~~zR~~~~b~~~b~7~F\~WHd~~~z~~M~b~sl~_`uz~~or~~~~~~j~~~v~~V~~~~HwP~i~~~^~~_~~a~^Dus~j~~~~~g~oxhVHv~X~~~~~{R~~[gNfMffo4~~~~~~z~f~r~rfH[~8~~~{~~h@~y~~czW~l~~~X~~~~~r~|mz~~~}c~x~~i~~~~~\~p~eGvum~F~eww~~~~9~~~X~~~sEf~~~ +@8e2afbbd-905a-4326-8ef3-e97dfde02e7c DDX5_MANE(-),-strand,2263-3684 chimera DDX5_MANE(-),-strand,3498-3684 length=1630 error-free_length=1631 read_identity=99.939% +CTGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGCAATACGTAACTGAACGAAGTTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +zz~~~g~~~~~s~~\ba~~~FJ~aO~~hz~~E~~~~~cq-~~j~qY|]p$YZi~~nZkt~gyb`~~~)|a~~~w~~o~:~~~~~M~m~y?pg~~y~~el~~k~~~~c~a~H~~~~b~~~Yeum~v~~~~h~~Kj~~~~~^~k~~a~~`~~yo~~~~~xGdk(:~O~~~~u~~~~~~~p~~~k~S{I~Q~~~x~w~~~~~~}~~j~j~ym~~dS~~s~~fgP~~~tKfa~bhp~u~w~~pWYu~~oS~Uw~^~mx~~~~b~&xk~r~~L~~~~`~~~zige~~lG~~9~m~~~~~q~~~~+~~~~~\~r~~~~f~wv[~~q}~~u~~~~~n~~~ohx~~~C~~Qo~iw~tw~~~k~~~zwkj~~~~M~~~~f~~~~j~j~~~x1~~|~Vy~p~^~r?~~MZjz}~{~C~~~~~|~d~~l~m~~~r~~~~~vV~hmi\I{G~~\~|~v~~~~~P~~]4~~e~~dino~YZu~~K~h~[b}\e~S~~~~~~~q{~~~~~~Q~wrR~~~~[k~~~c~~~~~P]~p`q~Y=|~k~~m\~v~R~x~LT~v~mg~|~~~~~~~V~~~~u~~~h~~~~~~~Vjc~~~`~~{~_~e@lx}~]~\~{i~~~~]~~s~se|}~~~rrV^~g~~~L~poh~~WRC~~j~~~~b~~~W[~~~~]8~qv~rwr~~~hk~~~^~]~{g~d~h~~fs~NX~~~~~b~L_h~P~~~~v~~~P~~~~~~~o~~~pz~~~~~~~~Y~~~{u|~?~~~s~n~~~~~>Q~kuept~pX~~~[~~gQ~n~~~~~~~~~\~~h~~~~~b~~~~j~sv~t~~v~~~h.~~;~~~~~u~~e~~~~_l~cNez~~~~~\~~dn~tzo~ay~~+~[~~g~wd~qak~~~~Y~~8Vg~~~jn~g~~U~~j}~~{u~~~~j~{rMp~~g~~Y~~{g~~~~~~~m~~~~[5Dc7~LtT~~~~~H~~~~}~F~~s~~~~~~r~~~~~T~bgx~~~~~~~_m~~F~~~~~u~~g`~~~~bj{v~~~fq~~hr~~~g~~fd~h~{~~_~~~~h=Dy~~vl~{~~q~Q~~Z~S|~J~~~~~l~~m~uA~8~~~~~m]~~~~~eX~~od~~~]wg~jU~~WJ~~~\b~~~~~~e~fjg~~~~~~ebt<~g~~R~~u~~p~~~~L~~~R~tp~U~~k~~t~z~~~U~~b~~d~[~~z~~~~z~BOkbf~~~~~~~~prJjh|u~~~~~U~~ut~~~r~x~~~Y~btSM~~~~~~~z~~~V_7~~~ur~dl`~~~~~~~~~~~?~~~~~~~|h~~~~rR~~Y~~I}]nwq~~~~~~~~~~~~~~<<~U~_~m~}\hn~gz~~~~~l~~h~~i~~~{~~~~~~~Y~m]}~X~~~~~\l~`~yn~~~lg~~p~~x~Lr~W~b~~~~~~i~|o}P~~~zd~~~j~~~~s~~f~p~~~fo0v~J]{~iy~~]~~~~~o|m~~~~~~{~h~~~[~lc~~~~~uW@~~~~~~Wk~~~wX~`~qk~~|~~R~g~~~~~~U~~~v~k~~~~~~~~iq~~~~sv~~~~~L~z~~k~A~~^~}~~\~H~]~`~M~=~~g~~~Q~~d~l~Dj~~~~~~~~~~k~~~~~~~Jf~~Tk~T~~~~~syTC~~~~~~f~sd\sa~fc~m~~x~r~Ay~~y|Q~|~b~~~m~~~~~~~~~K~A +@dd992af6-7765-08f4-326c-eeea7a4c6253 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1600-1976 length=384 error-free_length=383 read_identity=99.248% +TTGCTCAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGAGATCACGC ++ +~~~~~~~~~~~s~oZ~~~C~~xv~~~M~~~wY~~}~~Rk~u~~~ZzZ~y~U:~~ss~W~Z~[SQJ~Xk~~f~qTbh~~~~@~pj~j~~upo~~w~j~~\~~~M_~X~a~~pt^~~~z~~]~m~BT~\x~~~~TV~U~D~~~qFg~~~R~~~~~gs~~lo~~Q~~~~\~s~~~~~}qT~~}]~Z~~~~~[~]k~~~~~~H~s~e~~~~~~~Z~S~~~~~s~~~~l~~~~YM{~q~~~\x~~uiwT/q\\Tz~Z~~~~~~~~~~~~~~~hd~G~~~~|~G~~~Tsk{T~[~~|~jW~~~~j~~G~~~>~U~rws~~~Yp~~h(jxhf;k~~f~]~c~e}~~~X~~~~uH~~nd~~h~e~~~y~~~~k~?lO~~&~.t$~6~~jc~~ +@5b954c23-66cd-29e2-3981-9c87932d7d24 DDX5_MANE(-),-strand,51-1963 length=1937 error-free_length=1939 read_identity=99.898% +ATGTACTTCGTTCAGTTACGTATTGCTCACACATGCTAAAAAGTGGACTGTCTTTTAAAACTTCCAAGGTAAATAGGTAAATGTTTTCCACAGCCCAACAATCATTTCAGTGTTTACAAATTAAAAGGCCCACGGTTAAGACATTAAACAGTAAAATATGTAATAAATGCTCCAACCTACCCTCTCCCCGAAAGCTGCTTCTAAGTTTAAAACCATGAATTTGACTAACCATGCCATTGAAAACCATCCAGGTTACTACAGGCTGAATTAGTTTTCAATGTCTAAGTCCTAGAAATATCACTCCCTATCCCAGCCCTAGCAAATTCTAACTTTACATTTGACATAAGGCATTAACATCAATTAAAGCCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCTTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTA ++ +l~~~|{s~~~[~~~~xpY|q~~~~~n~S~~q~~~~i~~~qMe>~~~s~Zt~j~~W~[~s~p~~y}`~L4k~~~~~~~~~~~f~~~~N~uXE~~J~b~~~l~x~~w{~i~~~8~~e~~~vi~m~~[~[\~l~L~~~7{R~H~~my~~~lv~uq`KlS~~~~~~tgu~q~l~~x~~X_T~k~~^~~~~~%~&~v~~~k[~~~~~w~~rm~~lN`S~S~~~y~~Oo~~~T|q~Mos~~~v~~q~~~~~j~V~\~~b~~~k~pq~~~~cuQ~vt~MZ~B~~]~~}~~~xN~[Zs~~{~df~~~rW~ja\~~~:~J~{u~~~~~g~~~~9~V~h~~~V~~E`~g~_b~~~i~_qe~R~~uQ]W~dQh~~ulu~~~~~~~7~s~^]~~j]y~h~{X~k~~~~~~=~~~a~~~k~~~~r~~ahr~]z~{~~~s~~kZ|d~~~y~e~~p~~~~~{vk~\~~b~~j~~X~~~lL~K~I~s~~~~~G{}~~~~V@~~w~~~~~g[~~yq~~~~Z~~~`g~eR~~~^][}hj~~~Z~~~~k=L~~~@h~X~{J{~~~r~n.~Y^@hD~~;~~~~~y~~ug~~^k~~~K~_pk~~~zZ~i~~~~uz~~~~p~~~xi~J~~pI~rf~~F~_~~~~X~~s~~sOz]~k~f`]~d~r~~\{~b~j;~~n~~~QL~~`y~E~~p~~~~aY~V~~~~s~~~~~z~~~dq~n~P~y}[u`~>~~~~~~~~~vi~~~~~~~E~~VJzoWZv~U~~~o~}~~~~rp~e~~{nlo~w~S~~~ZM_oj~~~j~~y~_w~m~~r~jWX~gsO~~~~~~~rR~Drh~~x~~o~t~Vn~~ZTu~s~_L~~kyn~x~~~~~~~u~~~~~|o~~~b~Dg~[~~~~~u~~v~~Cm`q~^_~~h~~So~y~~~|~V~H~~{m~~Lh~~~o~[~lo~oH~+~~t~~~~~~~te~;~~bGC~~o~~~zy~~~w~Y~~_~~~~rm~~w~`~~~~~~~~~a~sc{Yq~~v~~~~s]{d~;~~~:gb~~jo~|~Bp~~x~~\~~~~{p~p~h~l~a~~olz~~~]}~~~~~~~~b~~~~~~~r~~|~~~Kk~fa~~~~~~\~`p~~~>_~~~~~8~~FTm~t~R~Ep~~x~~Bq~~~{nre|~WdQU~~~~ikaqbu~~~~j~~~6~fk~r~~i~b~\~z~~^~~[i~p~~h~~~~\~y~~~~~fk~~~~|~~~~~~vl~~~Vra~d~V~~Ni~`~~b~~~Mpv~~uq~2^~|~|~~~~~~~~l~w~~f~~~~~~n~E~~~~t~~~~WKI~c~~pa~~~~~wd~~~~~~{P~N~ue~oyG~~~~~~N{~~a~~~~~~~~~~~~<|~xR~~~~~~~_~~V~~U~|~~i~~N~w~pLO~k~~W~~q>~~~~{~~d~~~~~~~~~w~QU~~~Yg~~~qP~~~~~~~~~~~~\~~[~~~^~a~~~~~N~~hOT~I~~~d^G~{~nP~yOO~s~W~}~~~~~as~+~~XFw^K@~~~~~~~~mt~~m~~~^~~z~jW~~~~~~~~~~u~c~~~~~d~y~~[~~~~~{Z~V~s~n~~YDe~~~o~Vr<~~~k~Yd~RMC~nG\~~~~k~g~~~k~~~~~~~p>~~o~hb~C~~Pa~~~~~~~vs~~{~~]~s~~v~w~~}KR]~~~a~~~te~~sggl~~~u~~v~e~M~~ksx~~~~-{~~d~VeY~~~~@~F}`2u~~_~gQ~y~~~~~~{~g~~f~~~~~~}oU\~~~~~~m~~~~ok~~r~~to`L~Zq~Nay~gW~~l~~}~~cn~i{k~~{~~~|q~~~~~~~~~~~][~~)fZ{f~~]~~~~sr~t]H~Oz~o~~~~~~GohX~~~~~h~~q~~w~y~~~eXo~{~~x~~n~~Vm~~UO~~kw~>~se~~~ +@2ff48d20-ce4b-70a6-0cac-18387b83cfa4 DDX5_MANE(-),-strand,2027-2505 length=500 error-free_length=500 read_identity=99.612% +CTTCGTTCAGTTACGGTATTGCTCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCA ++ +j~~~~L~^~srA~zGkf~Ob~~p~r~~h~qt~|~~qj~~|rp~~~x]~~~~rb~r[~~y~K]j~~j~~~~S~R~~n~~[~~~~~baZv~~d~~~~~u~~~~~~?~`~p~f~M~^mf~}~kGsGSt~c~Wkt~~y~~~r~~~`C~~~~~y~~g}~~~{\~~~k~~}e]~~s~~v~}~~~ga~~~~~U~e~xsj~~Vj~M~~{s~i~~x~d~~~j~~n~~~~~~~~u~j~~~]g~en{~~~yu~Q~~~~~wu~~~jujl~~~~q~~~~Z~~~~Vmm~~~~~~evZs~i~94~Zl~~~~z~~M~~o~~~z~~e7~~q|~pw~H~xG;~~~~~`~z~B~D~~~~~~l~C~z~~~~~~~~~]~~m~my +@9b0d171e-6e29-760f-3920-5c6c8a43dbcb DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,521-855 length=343 error-free_length=344 read_identity=99.721% +GTATTGCTTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAGTTCTGCTTATACGT ++ +~~~~~~i~\~~~~C?~~~~~~cwy~~g~Rpp|@~m~~~~r~~~UZ~~~~nz~~~]~~~c~eg[z~~~~~~~~P~W[~mU~~r~~r~Y~z~r~d~Jd~~Kxy~~vE;~~Z`~~n~~Yl~~~|~vt~R\~jjd~~~g~~s~~~~@~~~m~~~~U~f~~~~~~e~x~~~~~~~~~Vi~v~~VrT~~/X[_~~~~~b~Z~u~~~~J~J~_rU~~~~~f~~a~l~~~x~h~P}~G~f~~~~X~~~v~~~~E0Tv~{~~d~u~~~uW~~|~rde~Wbt~w~~i~~uf~t~n`~~Vrp{~~~~~r~~~~~~~yt~~h~>~w~z~~~~N~k~~~~~~~US~~~~~}Z~~~Y +@ac42bea1-ede3-5ac4-ebf0-bf32d1fa2ed7 DDX5_MANE(-),+strand,3285-3684 length=416 error-free_length=417 read_identity=99.768% +GTCAGTTACGTATTGCTAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +gs(qo~~v~r~r~~~~~~~~~~~~~~z~~~h~~r~~\e~pD~~B~l~o~~K~~~~~~R~~~~~j~qM~~~~~~Q~~~~~~~wwxf`x|~mC~{~D~~@~~l]~~~xr|~~q~M~aag~~Tv~~kv~~_~~~\x~~bEaq~~~~~h~~p]~~U~hi~~xRf~~|W~~~~~iRe~~f~~yhu~t~~~gjjxVtre~~~rzVDzvt~~w~r~~s~~~~~~~~~~~rz~~~~~>~~7~~RE~h~Q~~m~V~~.~~ih~y~ra~~~~~~W~c~~_~qbgO~~]~}~~~y~w~P~~{~O~~c~]~K~~~~~~+~~~~o~sn;~~~~v~q~~~^~mU~QGl~~~~~h~j>_~~~{^~~~~~~~~E~r~~~~~~~~lb~s~~vi~~>~o~~~~u~~~~En~~~~v~{~~c~F~~~khQ~~~Vy~ +@acf0bd7b-3553-9520-94b2-a6ef2340245a DDX5_MANE(-),+strand,3647-3684 length=46 error-free_length=45 read_identity=98.333% +ATTGCTTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCCAGC ++ +~\~u~~~~nn_~~yg~M~V~;~s~C~n~~t[~e~~T9P~E~j1iIz +@56c3e411-384b-3419-aa04-9a946c564744 DDX5_MANE(-),-strand,540-1139 length=608 error-free_length=609 read_identity=99.839% +AGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTATGCAATTTAGCGCAATACGTA ++ +~~~S~~~~Y~~~~~~W]Qn~~~s~g~~i~~~~~~~~y~~~~~~~~q~~~~~~m~j~t~~~~]ouex~~Kf]~~{~m~Q~kwq_~~z~~~~~~~~aMd~~~~~<~~N~~~Vur~~~~~L~Y~~up~eq~~~W_~~~~`~~~~~i>~b^~~\~~dI~~t~~~Owni~f~H^~o~^y~~~~b~vy~ieZby~~~~zd}~~q~w~~~~~~~~_z_|f~~mh~~~~~g~~~~v~~~~g~~JhZ~m~jn~~[~i~i~R~|~zhs~~OQ~~~~~~~~~pf~C~~~i~{~~Y~cQs~}~{~jw~~~ta~~`d|~oWyW~LV_hy~Qa~~~8P~~W~}~X~n~r]dc~~v~B~~~~~~~~~a~a~gz~~JZ~~~j~~~~~~m~0h~~~l~~~~~~~~U~Ak~q~~\Y~~m~~~yi{~~~~~~~~~~~~~~~~G~~fWx~~yz~~~~~~lLglH~o~dj}i~C~~~kX~~a~~~`uzc~~~}~rL~~m^j~Z~_|v~~~~]~^~r~~}_7v~~z~~~~bU~^~~~~U>]~~e~~~~Z~~Bi_a~~~~]~~~~~dMB^~~\r~A~~~~X~~~~~ss~~~~~~{~~r~~~~~o~gh`f~Z~m~ziz~_}~v~~~~j~r~~ +@ef5a5350-af20-bf4d-4726-f572679e5f03 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,2042-2545 length=523 error-free_length=524 read_identity=99.814% +TTCGTTCAGTTACGTATTGCTTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +fS8~~9w~~P~T~~R~~~~~~;~X~~~tfmh~~~jS~~~~W~~~gX~~>~~~~h~b~~{~i~g~~~~xw~~Q[eqoqyi~~R~~ut~~~^rh~|h~~\[zl~~~~~A~l~n~[~n~d~~~~~^~|o~^jc~g~c'~~X~~Rs~~~~~~~~~~WUf~~~s~~~b~~~~T~qvI~}~nP~~~~~~~~}~~@~~V~jp~~l~~~~~~~c~~}i~`~~~x|O~~Zd~~~wp~~~~k~~~~~~bg~S~~~~x|~~~~~~~~`e~~~k~~^Lq~~_aak{Op~j~~~Qo~~m_~S~~~q~~{zZ~i~`~~~~N~~~~~~~w~~d~~~xp~x~O~g]x_~~R~~o~~~~~psD]}Wes~NX~~~bTZ~~~@d~~d|~~~~~~m~qh~wsg~~7~~{~f_s~~jx~~~~~~~~btge~^~~~$.1~Kd~~~~G~~g~{~~Y~~~~~~~~g~~k~~~qQp~~O~o~au~F~~l~~~Sb~~q~~^m~~~R~~~js~~a~~~s~~~K~~~~~~~~~~~~~78Xwo~o~=~~~~~ +@9be6e97b-72a6-996a-81aa-8545d208efc0 DDX5_MANE(-),-strand,3047-3679 length=650 error-free_length=652 read_identity=99.700% +CAGTTACGTATTGCTATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGCAAT ++ +~~f~~~my~~{<~~~~z~~o~wb~zf}d[~~~~~e~~~~dF~re~Ph~~z\l~~~~~~~}g~~~~~~~JoxYw~~~~~~~~~~~~Lp~~giP~V~~~~~~rP~\f~[~~~``~~~blq~~~~{M~~~~~~N~~t~>~z~~qx_k~~~KU~~l~r~~~~~q~~~~~o~~S~~~bn~~K~r~_~S~vfk~~~x~~~t~iig~{~t~~~~~~^vf~~~ye~[ujb~~~~i~~t~t~~~~p~~~ro~~n~~~[U~~~~~i~~\W~6~o8|pq~~Uq~~~p~~h~~~v<~~~~~~~~~z~yY~~~`cf~~~~~~T~~lk~z~~L~y~~.~~mSt~W~~~zU~~j~~~~~fa~~c~~yS~*$x~NT~~~t~~~~\~]{~~~~~i~~~~d~~pu~~]~M~l~~5~kH~~&W~ba~~~~~~ZT~~x~~~I~~~~~=s~~i~~~g_~|zQ}_~~~~~~~~[~x~~~}~~~_^~~~~~~obq]~Uq~~m~~~~qU}~~^s~m~~q~m~uO~~U~~j~A~~~~Hx.}~Y{f~sc~H~YdA~~~~~b~~~~Ua~~~~r~s`t~n~~Y~~tb`c~~~~fXd~~~~~|~wn~~~Ze~~g~lM~~~~~~~TS[~~~~c~~~n~U~j~pDa~~~~~~~~s~~u~~~\|~kK~o~o~~~~k~~~~~g +@2b6ba92e-f2b8-b37a-0633-d4e21fd0c701 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,508-2545 length=2062 error-free_length=2063 read_identity=99.856% +TGTACTTCGTTCAGTTACGTATTGCTTTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACTAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +i~~~~fJ~~~~~~}~~n~}Q~~~|~~lE~~_~^~~~~~tl~~~}e~~P~]~~z~_~z~N~~~~~~~~oW_~l~m~cz4~C~cu]&}~z~~ui~dY?u:~uG~>~ne~~i~~~~~~~o~~h~~@Qv~~Li~~d~~~~ol~~~{~~~~~~c8f~~~~~JV~_e[~y~~~~u~~~MaXz~~~~~s~~~~jY|~~~~m~a~c~r~~mt~aGs|~~~ca~f~_~~~~R~~~~Rd~~~Ta?gfhsGS~~~~~fb~~tK~~~~~~~~}~wr~~~~p_7Zr~~~~~~~~qt~~F~~~~~~~o~~~LT~~~x~~~t~~~~U~~r~Mo~~l~~~r~~Z~~xX~~m~~}~~~~~n~~~e~~u~~~jq~~~f~~mY~~orr~~~^u~~~~~jX~~~~~~~~~~]j,~kFH~vM}~~~y~h~~~~~~~t~~~|~~~6S~v[|ZZ~~eL~~~~~~~~~~~~So~~i~~.~n~WW~o~xK]~~~~s~s~y~~t|~~~~~q~mV~gif~g~~~~i~fri~nIR~~~j}~r~~~~~~~~~~~Hy~~k|~~;~~i~6~~~b~Ss~f`Xv~~8~~~~k~P~i_t{~~~~6dq4~~]~~~~~~~}z~~~z~~T~l~~~~~~oy]ug~o~~z~~d~_@i~m~~~~~B~~~~~~qo~yq~~~rQ~[f~~~c~Le~~xo_~~~~z~r{~n~~~s~~Sdo~~O~xf_iu~~~~~e~~o~~~~~~~~~~iu~s~~q~Gh~Z~{K~~~e~Ov^~~ou[~j[~~~X~wAqv}~q~~rm~cY~~~T2~l~|[}rO~Uu~ij~~M~~~~)~~~~x~~~p~y~~~~~~b~D~~aow~~~~~~|~~~p~>~\~~V~buom~f~~~i~FQZV~~yc~^:M~Zlz~~my~~~~~n~~oRsZ~_~n9q~~r~~opvko~~~~~~~`Z~Qno~u~Q~~~~b~h~~~~~o~~~y~~ip~p~~~~~~~~s}x~~~p~kwyY~U~u~~~~J~~~~~~~~~~~y~~~n~~~t~~Bk~~tz~M~\~L1~~\~y~c~~~R~~~~hy~~a~~le~~~~b~i~~~~~~o~|~~w~z~K~j~~~~Tk~~~b~~~~~~~~~~~p\z^Yyn~~~W~f~~~~r~^j~~\~~C~~~~~~~~^~~Bw~~Q~l~~~y~l~~v[~O5~~~r~V~bzE~~~3@~+Xm~~_i~s~~~~TA~bN~~L~r~~~r~a}rc~~^~~~d~v~~~~~~b~q~W[~~Fg~~~~R~~O~~b~w~~~~vG~~Ew{~\XU;~iP~~~e~v~~R~~bo|[~~~G{rj~[nl~~~~~Q~X~~~h~~~~~nk~~~U~~~~~~~m~~~~~~~~c|~h^n~b~~l\~~~~SfrwW~~~~~~{j~~l~h~y~~~~~~~~vX~~~~r]G~Z~~~m~~~R;~WuU~~~x[~a~~X~~p~w~~~i~~~^W~~~~~It~~~y<~~~F~~~~~~M~~~{~gu~y~~Q@wnI[oHZu~~~~~~~~~~}~~~~~o~\~c~~g~~~~x~~^sav[j}~r~cy~jv~i~~~~~s~~G~~e}~~lP~~e~~~~~~~q~~~~xc~~~W~~b~t~~}vuh~~`l~]v~Ay~~~|~~ysP{jT~~~~{~~i:~bT~~~~t~~~~t~~c~k~~~l~yV~~~iWFX~{~J~~~~jSf~ulj~d9V~vjl~~d~~~~~M~~~~~L~fUGu~[~~~lX~~~b~ei~~d~qfa]~~\xT_~~~e~o~^^~~~~~~~N^~~Dp~g~~~e~t~vf~c~>|bd~~|k~~~U~~~~~u_qii~~Q~^~_~^~~~~~~i`D~ +@90898c70-7031-576c-e799-e4e2e44165b5 DDX5_MANE(-),-strand,3299-3684 length=393 error-free_length=392 read_identity=99.754% +TATTGCTTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~~{V~i{w~~t~~~y`|~~~~IH~~~_~~~Uovb~V~~~~~~{B~~YlZ~e~~~~`~~>~hgq~sq~T~~rY~f~~~~q~_[f~~`F~s~z~~~~gx~~~~WX'$_dx7~o~u>~xW~~}[}~~~~~ru~\d/~~gyo~~~v~]~~~{`~~\~~~w]{r~~~~~dK~~~~~~[P~~~~wr~S~md~w~~~~n~~~uf~c~o~X~~~~~~~~~~f~^y~~~b~~~~~|mSG]m~g{~_~~e~~~~~~~~^~9Ts~~~~~wj~k~~~zN~~~~~@s~~q~t~~>jU~]6~~~bhp~Y|~eza~bZe~~~y~~~~w[a~~~~~_~~U?~~p~Sf~N~^~3~j~zkql~rz~~~|[~~~~ctS~~~~W~mx~~uv9~~~X~__~y~R~~~l~zOug +@f9026613-d94a-f6ab-fbc1-79156240479c DDX5_MANE(-),-strand,2128-2739 length=621 error-free_length=622 read_identity=99.843% +TACGTATTGCTTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTT ++ +~J~~`~~~~~ww~~{i~n~~~v~rcb~~~F~~~~~~~~~O6n~hL~~~~~~~~~~X~~~~@~~~~~~gm~~p~~~R~~~~l}~h~=i~~lfP~~{m~~~o~~~~~A~~H~~{~th~~~~~~~_~~~~~~~M~~_~eb~~~i~i~~~~~~`J{kpmwX~}~~~~~~e~~~~~~~~~~~Vc~~~~e~~~1~{~~~~~`~PZ~~?~s~t~~~\~T~M\MU~~~m~~~~hR~~~~fU~~jw~~~~@~rH~~coj~~2~y~~~~fY~~|K~~a~sypj~f~~b|s~~~~~tTu~~R~~~~s~wQ~~K\~~~u~n~~~`e{h~~~~~cZ~~~T~~~~t~m~_~~~~~~~~o~~w~~~~~ll~~~z~~R~u~~@~wr9~~~~~~~~r~~~~~~;~~R~~~u~~~~yt~~s~~~~[6~~V~~p~~zE~~~~o~~~~pv~}~e~~~~~~~~~~~pQ~~g~~u~b~~f~~b|}~p^~~{h~~~~j~y~~~~~~~~~kFk~~~~~~~~q{~hw~pZm~~~~~A~R~~~`~~dsW~~~~~f[]~~~~~~~s~~~~]~~~~sh~~~~~eiu~j~~n~vwo~c~u~N~f`^m}9~~~AX~ey~gha~~~gn~~?~T~q~~~~|v~~~~~~M~x~~ +@f54b46a0-8a98-f4f4-84d5-965985a2e752 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1762-2545 length=786 error-free_length=787 read_identity=99.875% +TGCTCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +?w~b~~~q~~~~~~~~~s~~pRd~~~~~dr~c~f~jY~~~~~~~~o~~~O~rS~~r~~~~~~~~~D\~~~~~_~~~~~q~~S~}~~q~~UP~~?~Rt}j~{~z[~~d~S{~W~}~~~~~|k1~v~~~~w~rM~~lxo~hq~~cg}~B~~~~~ZW~~~~{~~YFh~[~Uu~Cib{|~~~~~H~[~qq~~dq~~d{U~koxe~h\~}~~maL{~Z}~y~~~~~~v~~bo~~~~~wh~~~~~k~j~hf~Z~v~~_n~Xp~~w~~~IZh~V~~~\~~~z~~u~~~|~~~r~~~~~~~x~~ni~UX~~~~~~YuoC~uL~h~~~~~3X~~dkrXp;~~~j~~{~s~~~~~~~gPiB~r~hqP~m~-yuj~qg~X~n[qp~~~~u~gX~~~~~o~~~~S~~{~w~d|~Kuo~~~~y~~A~~T~x~d~l~i~~~b~~~~~q^~l~~~~w[s~a~\c~~j{~~U~N~\Vg~~~k~c~~~~~~H~~~~~j~~~~~~1,()~~8~~~~~~~~~~s~doj~u~y~t~e~o~~~{~~~\~~Kx~|N~~`~{~~\0~~~~A}~~~y~qq~_~~Xa~L5~~~a~~~{~n~~~~h]~~~~~~~pp~~s~~~zo~~OxQ~-~lxk~jZ~ax~k~~|d~m~|sDar~~hb~~[_~~{~~~~~~P~~~~~~~~~zc~mq~V~j~}x~~~~~~~`~~~~~~~~rb~\~Ehn|m~n~o~g~~v~~~~H~~~~~z~~~~i\~Q~P~~~~~xL\~`d~~m}2~~R~~~~Z~db~;jl~\~~~E~~y~~~~~~@~~}~Ny~xc~~~~n~ +@1295939c-9f68-32cb-61b2-02b8e32185b2 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,862-1106 length=250 error-free_length=251 read_identity=99.623% +TGCTCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCGCA ++ +~^~~l~vi~~~~~~~Je~jf~~x~~z~}]~~^~~~y~~|~~J~~s~~~~Yu~]|v~[tt~HwZa~s]~nv~z~]~~Rh~~f~~H~W~kgx~e~~~~~~~~~~~~zl~~~jQ~)W~~~~~~{~~\~~{~~~~d~~~~~~~~s~~xbj~~Sp~~}~q~d~~~R~~;]{~M~v~~~W|~~f~~~~yX~~~y~~~~~EM~Z~~~[a~~c~~x~~T~~}~~~~~~~~~v~n~>~~~Vn~~~p~~qnQ~~~vi~~~ +@c49741d7-efd7-244f-cb48-fc6aad67de6e DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1963-2545 length=596 error-free_length=597 read_identity=99.836% +CAGTTACGTATTGCTCCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~l`~~^~~p~~~~^Y~~o~~~~~~~~~gj~~t~~~s~}~S~C~qqz~R~Z~r~~~~~~~w~~0~y2~~~~~~~q~~~ecd^~~~~dT~e~g~bXjf~~~~O~~p~p~_j~~w~[~~~~~~~_r~CY~~~~~Yqva~~Ttnm~\~~~~~;~d~oit~in~~~]~tT~}~~_~~~~pAvA~V~ph~a~~k~n~~|i~p8~~a~~~~~si~~~~ztU~K\pRZ~~Sg~ij~~r~l~~~~~~~~rX~q~~t{~~~~~~~~~}~v~C~bi~~~j~~|~|~~~~~~~c~~\~~~~~k~d~~~~~{~y&~~~W~o~O~r~~noj~~W~~f~U~{~Xv~~~Zo~~~UO~~~~mqf|~~J~~{~p~~~~x~X~v~K~~~x2~~v|~lVV~]no~ey~~_~~\~~~e_~H~~r~~~~~~_s~o~d~y~u~S~~~~~~_`~~~h~~~|~v~~[~~~s~y]~~~pc~t~jw~~~l?~~~~~~~t~Vn~by~~~i~u~~~~~t~qJ+_u~~|~~~~ad~Y~o~'~O~i|~~~u~~~~~~~~~~~q~n~up~:~^{~W~~~p~~x~v~}~x~O~p_~~y~~w~lt^l~f~]~~Hg~xn~h~{n~u~f~or +@cefde18c-c233-1789-6d14-f5d82f57c1d5 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,0-2545 length=2547 error-free_length=2549 read_identity=99.922% +TGCTTTAGGAGAGAAGAATATTTATTATACAAATATAAAAATCTATACATTCTTAGCTGATGATATATACTTAATCAAAAAGTCTTTTAATTTGGATATATGCATCATTTCCTTCATTGTGGTGTCTCTGCTTCTCAGATGTATTAATCCATTCTCCAAGTAGTTTCAGTAACCAAAACTGTGAAGAGAATACTCATTTCATCATACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCCAATGTGGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +r~zdfc~`~~~\~?~~~~dd~\~Y|AoNo~~~y~u~9~~~;e~~~~k~~~~~~~~~~}~~~~v~~~~bR~~~D~~~pp~~~IJ~}qq~yg~jXy~~a`W~~~~~~q~X~v[t~~~~~~x~n~cFVzSt~i~~~~~}PX~~ky~~~~~~~~~~|~{~~'o$~Q}~~~~~W~~~~s^|]g~t~f~o~~b~~~~~q]~~y}w~{~~Q~wY~n~{k`t~~lj~c|~~~~~~~~o=t~T~~~~lV~~~e~~~~~~Or~~~BVnm~~]~x~~j~~~c~~~m~Uj~~~u~~n~k~P~k~s~~~~wqk~~llj~zvma~irauu~~~~4~~[yo~`~~~~bi~~~v~~~~~x~~t~Dc~~~~~~@qTj~i`~__zkj~~lW~q~~Jn~~p~D`~w~~lt~~[~~yS~~Ly~x~~Ji~q~ck~q~~~x|~tx~h~~Hu~GA~~~d~u~[~~~~+~~x~~~ceyys~~~~~~~5~~~M~~]~vjk~~~a~~`~~v~~_{x~~g~~~t{X~yqz~~G~d~~u~T~~~~~~~6~~~~~X~~~~~S~~~z~~q~m~~}~~~~~VY_~}Xew~ru~~~~i~_~(~xx~~m~x~~t~z~~^~~~h~~|~~~~~gg~X~~\~~~~~~~~~n~~J_^s~~~~~|~~kZR~~~~~~e~O~~~~~~~~~~~~`w~~}~~IB~rY^n~bKlW?~~~~~~M~~p~ewy~~w~~~D]*~~k~^~~~aU~~}dhk~~~~.l~x~T~J~~~~~~~wz|~v~~a~~~{~j~_qs~J~~~~~~pi~~d~~~~~}~n~oh~~m~~p~~~~~~~~r{~p~`r~y~a~~~XU~b~~j~~gt~~xd~~H~~~~~~~~Q~a~~_~fw~~~~~c~~yl~~_~q]~~`~Dvn~~~f~GY~xn3ps~~~~~~~~~l|f|oN~T~~~~~f~x~n~~~~|ee}o~~~Yr~~~~k`m~_~M~jzb~~~~~~~~~~~c~~|TU~s~~~o~hQrw~~|\c~~~~sOn~~|\~~\~~~~~n~~~qg~~~cV~L~r~~-~~~RPp~j~~X~S~~~~~~`~y~[~~p~~~~y~Y~y~~~x~~~~5~z~~]r~~~~~~~~r~9~T~x~~~yeq~{~~O~^e1{d~}~~~~~~:~Cz~a~~9e~g~~~~~~`~~M~yI~~}~~~}~~Qx~~Bk~m~~:~I~~~~~~~~~~~kx~Fg~~~~~~~~x\~F|~~}\~~f~~D~~~rhG~~~|6v~~~~~St_r|m~~~W~~~~~~Aw~~q~~bv~G~O~i_~~~|~~Pb~\Zi~e2~h~~~l~{~~~l~~_~~z~ufvp~~V~~~t~8~~~z~~Oeex~~7~~WD~~R~~jl~~~~vKy}~r~~~pdq_~~~~~~~~~U~d~~~~nYK~~~yZ~~~~~V~~~]Qq~~h~~~~Ocrn~~~~Q}~p~X~nz~g~~\~~s~~~m~|~~Nzja~~~uny~~>L~zj~~`~~~~y~~~~~_~X~s~~{>~~~~~Sz~~f;~d~~pg~~~oG~~j~T~~[~~~~~~~~~Uj~]o~~~~}~j~[~~|~Y~}~ou~~b~~~O~ZFg~W7t~~~~n~}v~~~~em~~~~~~~~~~~u]~~c~~o~~'p~if~~y~~\~h~p~y~~~~~}sR~sQ[~~~vW~~~~~b~g~~`~Sq~~~{~~~~~~mx~~f~~~~~~~F~V~~~w~~o~E~~u~b~~~xbL}i~ifut~~]~~~~[~f>~~~wC~~~I~~Z_t~~~rno~~~zeF~~w~~WN2z~~~|g~sn~~~f~~~~~|~~~O~~~~O~~~~f~~4VHj|i~~~q~U~w1~~~xcu~~~~~~v~~~~~~r~jm~~~WL\~~~~v2|~~~~~o~X~~R~|~ov~Ho~~it~P~~~~~~~^~c~_y~j~~~~~~~~}\~~x~~a~z~~~x~~~~~i~~b~~^~~~~rz~~~~~~~a~~~~sKws~~~~Ah~~~w;~~~^wv~A~~~jp~O~`~~~s~~~~mc~y~~~~V~6~y@q~~~~~~|N^~~~~brxL}~~k\[~mG~~~j~~ov~W~~eo~w~~J~~~\}~~~'p~~~vg~Y~Z~~x~j~n~~~~~qj~~~f~My~Dn~~~~g{~h~si~~~~rd~h~~d~~uUK~~o/~n~}Bpm~U~~Np~~@~r~<~~~~~i~~}cu~s~7D~~o3~jy~[z~~_P~wd~R[~o~~Q~f~~~~~t~K~Zf}~~e~Q~~on~ww~Y~~~~~b~R~Q~~P}q~~~^~Z~~f~vR~PB~~~~~~pV]C~~X~~}~j~p~^~~s[~~t~f~b~p~d|~p~P~dX~~u~k<~b~H~dw~~~~~`p~~~~g~cN~}e~R~~~H1~~~~}~X~~=~e~ro~Gc~~~~F~~N~Z~~~~Z~g~X~~3n~Z~v~y>:iZ~~T~~~~~~~jDpr~n~s~~~~~yuM~h~Q~s~~~7~~~mGO~e~P~~~;~c~w9@~o~r~~Wz~~stN_G~h~;b~v^|~~_~~\~~~~N~s[}~~d~w~~~~~H{~~~~~~Ef~s~^r~H~K~a~~~~~Y~g~~~~x~~~~p~~~{McsM~~~R~~^~~|~~~l~a^~~~W]qXYo~~R~Yo~~~E~~~t^d~~~u~~~~l~~}T~~f~~~~~t~~v~~_~y~~vl~~yM~~b~~~~~~~g^~a~~~?~~~~d~~ +@56a4de34-dd51-b578-9366-d5f77c419075 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1939-2505 length=581 error-free_length=581 read_identity=99.664% +CAGTTACGTATTGCTGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTAT ++ +~c~b~~~yuv~k~T~~~~[~~~][g~~~~~~ia~v~]vrr\~~~J~~~W~k}~m~o~I(TrtK~\eo~~~~~{~~~]~~e~Ru~~~~P~~~~Z~~~~~~]~~~~~~~~~~~R~c~dZs`~~~V~~mnv~~R~|~~~~bi~h~f|B~~~qN~mOg~~=~6_dErk~~~m~~~~5~~s~h~m~~~~X~~~~~~[~yuq~~~~c~M~f~b~~~~M~~k~~P~i~~oM~~~~~~+~js~o~~~~p~~~iiygxH~~~~q~~~aDlT~Yb~~s~~~b|~{~~b~W~~~~~~X~xg~hQ~~~]~~[~j[~kw~~~~o~~R~d|~~}S~~~~Z~~~eG~~]~Q~~O=~~~r~~yO~~{g_c~~~~~~x~v~~~vg~~~~~Sv~~a~L~~bH=~q~~nsp~~~srt~e`~~Y~Y~~~~hr~~Vx~s~xY|~h{~gr~~~~~r~c~^bs~V~s~~~F~j~~d~l~~z~~~xir~Y~z~o~~~zn~l~vf~if~f~X~~~~a~X~~~~~~~{~~f~~kZ{~l~~E~~~~p~~U~jfi~~ue~~~~_~~c~z]~fc6~~~~~~~Kj?teTIZex~>t`~\~crm~t~~~~~R +@db6fb3b7-b9e6-57c8-a4a8-07b6794432fc random_seq length=1172 error-free_length=1174 read_identity=99.832% +TCGTTCAGTTACGTATTGCTTCTCCGGGTAGGCGCAGCACCAAGCGTGGGACGCCCAAACCCCCCTGGTTGGACGCCCGCAACTTTATGTCAACTTAGTGGAACTCAATCCATGGTATACGCAAACGAAATCTGTGCGGAATTTATTCTGTTGAGCGCTTCGCCACTAATCAGCCCTTCAGTGATATTACACGGCGTGGCCCCAAGCGACTAACTGCCGATGTTTGACAACAGCGTATCCAAGTCCCTACCTCACATTTCGCGGTTTAAGATATATTAGTAGGTCCTGGCCGAAATCTAGACGTAGCGTCGTAAGCTAATTCGGCAAGCCTCCCCGGTGTAAACTCGAGTGTACGATCGATATCCTTTCAAACGGTCCTATTCTTTATGCCCAAGTACTAGGGTCGAGGCCCTAGCGGGCAGATAAACACTCGATTCGTATCAAGACTTGACTCAGACTGCAGATAAGACACTAGGAGGCATTTTGAAGACTTGACGATAACACTCGCTTCAAACATGTTTATAGGCCCGGCCAAGCCGATTGTTCAGAACATGCGTCAAGGCTAGAAGACACACCGCCTGAACTTCTCACCTTGATATTGTGACTAGTATGGCACATTACACGTTGTTCTCATACCGGCGCGTATGGGCGCAAGTACCGCCCGATCTATCTGGCTGATTTAAGAACTCAAATTTATAATCGGTTAGCCTGGGCCTGTGGGGTACCCGGACATCACAGACGCTCATCGTGCCCCGACCAAACGATTAAAGCTTCCATAGCGTGCGCTAGGTGTGAATCGTAATTGATGAGGAGAAAGAGTTTCAGACGCGTGACAATACCACGCCCAGACGAGGTGATTGAGAGACGTGCGTGCTAAACTCATTGATTCCGTCGTTCTGGTCGGTCCCGATGCGCACGCTTGAACGACTCCAATAGCCCGTTCGTCCACAATTCATTGAATTTAGTTTTAGTAAAAAAGATGTCTTCGGAATAATACTAAGCCGTAGAGCTGCAAGAAGCTCGGACGGGTTACACAAGAAGATGCTCGAAGACGACTGTCCGGCGTCTGCATTGTGAACCCCTATCGCGTATCGAGCTTGCGAGTGCGCTGTCTGGGCCGTAGAGCGGGAGTAGTCATATAGTGACCGTGGGTAAGCTACTAGCACTGCCGA ++ +~~~J~~P~~B~>j]~~r~vtr~u~\~K~~~a~e~RvI~~}~y~~x~~~~~em~~[~~~\gb~~~~~q~~~Krl~~~~F~Ye}~d~~z~fi~f?j~~~~Sye~~~~~~b~|e~x~~~~~~~~|~~~~N~>i~c~~Z~~~~~Sx~~u~~~~Sgs~~~_~t~~~v~~~~~q_t~~~D>~~~_U~q~~~Ya~~~~~~~~l~~~~~~~~~d~m=~}~_~~b~~y~~X~~k~e~~~s~t~Bf~iz~i~[~O~~~~~~~~a~~~~~~WpTo~~tl~~d~~d~\~~st|zoY~~z~v~~~b,Z~L^~~~~~e~x|~~wkdc~~~~~~y~~_urdCq~~u~,e~)UyA~Nn|~m~~y~~aa~~b^~~~~~dv~~k~~U~gqgb~~aV~}f~t|~~c~R_~[k~lxxue|~~n~o~~fah~c~~K~~lT~~~~~~~~gc~i~~~n~~n~~>Z7~`~~~~~r~|p\~~*(~hbny~~Wl~~m~~~~~~~i~~b~~\~~~~~~~~~d~q|N~~up~~~~j~aYW~~rn~;~t~~f~~~~Kq\~~~~~~~O~~|~~~c~~iJh~~~~iz~~~~~iyenZr~cK~~c~z}_~}~~~~~p~~~WB~~rN~oi~l~~wc~L~~f~~j_~~~~~~~8T~F~~b\~~~~e~~~jW~~~|~\~~~p~~r~yo~~~~~~~iH~LoO~~~~~~mF~~w~~~`~U~~~n~~~~}j~~~`~~}Gz~~~V~X~u~~eo~~~~~i~bkY8~~^~~a~~u~k~a~~~~o~ve~~rvk~P~j~`fS~~~K~cTaYh~~~~~~lc[M~|~~N_zm|~~Q|qfy~~z~~~\~~q~~~~~~xj~~~p{~~~r~~~~sz~~~~~~z~~~~|LY~W~U~d[~~~|~~lWr~~~~~ig~~`~_{~_~~~~l~~~~~~~~~~Z~~~~~~V~`kY~~~]~F~fZ~{~~~{FEP~~~~~K~mn~~~~mfr~miFmW~~~~~~~y~p~o~]~`uR}~~~~~~yqW~~~~~~~p~~~~~~~lb~~~~X~~q~~Cp_E~J~|~A~k|kM~e~~~o~~~KL~~~J~tfQ~~~~~~n~~s~t~~~~{s@s~~|~~U~~yz~~~a~~fP~g~~im~~Hm~~~|~9~w~~~~~A}npw~ug~~or~c~~|SR~~~~~~e~za~@W{~~~]~v~~~|<~~xz~t~g~^i^~~Iq~~k~~U~XL~iQa~p@xn~h~R +@5fa98872-a648-12c6-747c-2d1e219ac2e0 DDX5_MANE(-),-strand,1725-2473 length=767 error-free_length=768 read_identity=99.872% +TCGTTCAGTTACGTATTGCTCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCAC ++ +~~~Y~l~~~~~~~~~~~~~|~~~~~~~~~~evp~~~~jk~~A~~~J~~NX~~H~~_~~~~~~~{~~~~t~~~D~~_~~~JX{~~Ov~~~u~~~~~~~~~~~~I~~~~~g~~xp\~s~e~~u:~~~~~d~~~hp_=~~f~~~~ed~em~v~d~]~~l}~~~~r~~~~~~a}m~O~~~~~~w~~r^~nk~P~~~~~~~{~l~~b~~~~5dg~~~|~~z~)~q~~~u~~an~t~u9k~~~~~Si~|~~u~~~EN`~~~~~m~~~c}r~~~ph~Tf\0y~~P^~p~~~~~~>~~Q~Kg|de~~~~~~L\~~b~~~~~~~Y~~Kk~`q|~~~y~~~\h~|~~~~dmm~T~~~k6x~of~z~Q~l~~~k>~~~^Po~~~~~~~~~o}~K~|z~~g~~~~dK~TMY~yaia~n~uS~~d~}~~v~~~g~s~~~~I{{~~~[~~~r|~{~jk~~~C~Q~~K~~~zvZ~~iy~X~~~~n~~~~[y~~~}~~~~~~hn~?~~~~~s~S~~~vb~~~~~~~v~~~h[~i~~~_{~~u~~jb{~~~~~~D~`~f~~~~~r~~h~~~~~~~~\~~~S~z~~~~}~~tn~gl~~~h;~~~~~~lxa~zS~j~n~~~~o~k\~~eveu`z~~W~~AU~I~h~~~~~{~xkrd~~B~~t~~~Vo~~~~kY~~~pr~~~|q|~~~~~~?~l_~~{~~\~t~~~~~~po~~~~~~~}~~bQ~~`I~~~idw~~~~hb[=~~~]nwJi~~0yb~~oPtdal~~ki~X~~~~~~6~~~~~mpNe~~~~~~~~y~~~~g~~vf~Gs~~p{~~~O~~~@~~~~}av~~~~~<~~~~~~K~vO~~~~~~~~~~u~D~Y{~~~~~~cT\EK~?~~~~?z~~~\~~~~v~~~~~Qe~~~h~bEr~~~}mb~=y~~~~~i~~zp~y~_vZs6j~~~~~~~[~~Zk~~~DU~~~~~~~~~If~~ix~H~~f~~~_|~~~`~~m~~O~~V~~~oyg~_]~~~~~~d~`~PO~I~~~wMF{~f~~fvH~~~~q~o~~~q~~b~~5~~~~|o~~L{oZ~~y~~~l}~q~bXg=~~~~}~~dfl~~p~~mb~~uO~~p~a~p~~~nbt|~~bru~V~k~Q~]Xud~w~~_z~xV~~WS~y~s~~|O~~~~~~}~~~~~~~O~o~~h}~d~j~~V~j~]~~y~~r~~ep~k~yq~~~Iu[r_tVu~s~~|E~~c~~~~~~v~F~~bb~~QU~~~\~~~~~~T~~~~Y~~Y~~~~y~~t~~~~~~~^~A~~{%~_n&~_~~~~u~~~~aU~~~h~~O~~xi]~~~~D~Ad~u~~fv~-h~~~Mu]~~~~kgh~~w~~\~~~d{~~~~~S~vU~~T~lyx~~w~~~~{~~oi_~~g~~~~~~q~w~~\~~~l|n~~~y~~e~~]A~~~~~~~~~}~[~{w~nB~~~~~~~y~~~~Nl_mwhx~~~vnUpZOwox~V~~~U~~x~~~|z~t~~~~~~r~~~~`~^~~~F~~kCsoI~~~~Ow~x-Vwr~L~~`i~V~~x~~~~^~qidR~~~pG`~~~~P~T~m>~~VqOu~~~p~~~~~~~KgF~^~}~r~o~y~~]~~x~~~yq~zcw~~~~z~~~~~hn~~~wcz~~~~~~~~js~~~Rp~~~~~zewf~z~fbHZ~r~~~Jd~~~~hx~mp}~z~c~YSt~~~~K^b~~X~{kr~~~y~~~~i^~do~~~~~D~~~<~x~_n@m~wW~}~uiQ~~~]~avl[f~mbY~Z~&]~m~~~n~~d~Uy~{~~~~~~q~_~dRr]~\|f[~X~~~`~~\v~g{x~tRp~p|~~pWz~~~mysg~~o|~k~~~~j{~~~~~~~i~~~C~^~~`~~0K~b~~|~}i~j_~^~Q~~~~M`v~~i~:~w~Xaz[~t~qvt~~~~r~x~~Nj~~~~~~~~~~~QR~~~~~n~H~~~c~b~~~~}~~~9Gt~nsngIQ~^^Iayiv~~~jNY~~~f~~H~it~~~~~~~~}f}~qA~b~sO~~h~~i~~w~8s{r~v~~Xa~~p~~~u~{~~q~~~~~~nC~O~l~w~~~lt~r`6~~Y~~j~k~~~jySl~bge<~~Y~~~yi~~~~~s~~~F~Y~~Yqx~eW~~~|^R~~\~~gs}~~~tV~=g~}~Jl~~~~~ys~k~N~~~~q~~e~~~~~k~~~i~~~~EE~d~~gK~~Z~~~{p~~m~X5}S~~~~:^~(v~lw~~DT~~~q~~f]~N~t~~~~b~Vky~~~~8~~n~~~~f~D~~~l~~j~:~~~m~V~~~jdU~~~hkCZl)K~~|~~~~O~g~~~f~k~~~~~s~~~@a~~~~HQl~=b~v|~;~~fg~~}o;rb~yq~]~j~f~f~~p~va*~t~~gp~m~~Q~~~~~~~a{g~ym~[~~B~lg~xq~~_~N~~~~y~~~Z~b~~~`Of~tU~~~~y~v~~~y~~~{~~M~|n~~r~~|~~~~~~a}~{e~Q~~~y~~~n~m~~~}~jU~~~~nn~~~Wv~\~~eYv~ZN~~zk~X_R~]~~~4~km~l~~~1~~~{f~~tP~~~|~~|~~~~z~b~}S~b~b~~s~~~~~a~5k]~~pv~q~m~{~~~z~~~Wh~}~}~bx~~~e|v~~s~}x~~~n{t~mdTr~~~fxxe~~}~~~Y~~N~~~r~~~i~gM~f~qf~~~~~~cubsq~~9~~~~u~~~~~~z~~n~~G{xv~O~Y~~~~~~~~p~~~T~z~~;n~pJ~~~~~~~~v~Mpe~Go_vzgrW~qm~mX~\~~]`~~~ip~~~~~X~~~~~~l~U~T~u~~~M~w~~d~t~~~~~~~~~~~~~~~l~~~P}F~Nc~~~~~m~~E~o~~`W~~x~t~_Cs~~~~k?~L~^~v|rp~~~~~~vu~~~~~~~~~~zp~~~}~k~~a~~~xM~n\~~~~X{r~~S~~~~~r~k~~~p~~~~~~~~o~~~~ +@d34bbf27-8f43-d46b-0ba5-ba4c4a1ce89b DDX5_MANE(-),+strand,704-3589 length=2900 error-free_length=2904 read_identity=99.794% +TCAGTTACGTATTGCTCTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTGCA ++ +~~~~~~{~ri~~~~~~f~~iT|T~q]o~Wc\~~~~~~~~zv~~r~~Q~~~~~`j^~~_~~~~~s~~~~v~J~~~~~~~~7~|~~~~~nsh~w~~~~~F_Mc~~U~wg~~X~~~~~~~~_n%~Hd~F~~~z~~q~~j~~g~zj~~~vvp~a~~~~~g~|~vwQ\~~~e~~u~Oiyv~[f~~~~~{~~e~q^~~~~~~~=t~~wcz~~kcd2wtF[~d~~~~~nkz~~~~~~v~s~~~~TYn~~rK~tQr_s~~~iv~~~~~~hp~R~~~Ym~p~~~c~~\g~h~l]~~~~~~]~~Zk~~~~~~~~Z~hL~u~x~~mb~~~~~]~~tf~~`v~~~_N~~~~~~~dX~~U~@Y~m~ph~~~Ro~ry~9~~V~~~Vhw~~~~d~rw~O~~~q~~~R~~~E~~c`~~kU~b~Z~~~~~p~~~j}~pXrO~~r~v~~~~<~~~~]~t~~~~~~~sy~~~~{~~~~qt~ajJmo~~~~~~bz~~K~~vi~Us~Zfxf7~~~~t~~j~P~9ec~~~~~L~~~~~~C~~6~~~~~a~~Vh~p~Z~~~~~~~~ljtn~~~~{eo~~_~~~~~~~~c~~~X~~d~r~g|~bgPxNn~jRvV~~u~~jQ~~~w~~~~~~vh~z}~c~~<~~v~b~~~j~bs~~~~~~~?~]~~~~~~u~~~~~~Y~~}w~~~pH~~~~aZg~U~~xT~j~~~~~~~~~~~~~~~~~W~{pj{tI~WlYrV~Uk~~p~~~~HU~~V~|~\~~pfu~~~z~O~~~~u~~le~9~t~~{d~~~~C~q~X~~Em~kO~~~~:~~~{~pY~~|^~~~~~~~~~~~~~~~~~pL~~c~Q~I~~~~~~bVyF~~~o~Jc~~~~~~~~~~h~bXd~~`qh~~G~~~_~~y~~[~xoR~s~l~v~~`~~~~~~~~~~~~~~Q{~~~^6~~fUpv~~t~~~~~~~~Wfy~~ui~~~~Q{~b|~~P~h[uCN~u~~A~~~R~apF~~~~c~~~sk~cQ~~~s~~~{~_g~~Jp~~+~~~~~{V~W<~`~tx~h~~Vm~~~~~lI~~biP~~~~f~~~q~~szn~~c~J~o`kQ~~~~ivaf~~~~~~WH~r~z~~|~y~~Yq~~~`y}~C~~ni~n~~t~T~O~pd~m~{~~nu~ivl~~d~td~~z~~b~~~i~\~~~vj~~{~o~~~_~~~~~e}i~b~T~X)r~~q~~c~[~~~~~~r~_~a~~]~~8~~~~o~y~ie~^~L~t~B~~~i~~~~E~~~~~~~p~~~~tvy~[~~~~~~|c\v~z~~wovx~~mp~}G~@~e~gc~s~x~~~r~Z~O~~~~nx~~D~i~jyx~w~~~~{~~}~~g^~~j~~~aq~~~vx~7~v~~~z`tnWYngS6j~wh~~]~%c~~~~~Nkf~~~~[~[x~~~~~~~l~f~n~~~~D~~~~~~~~s~~~~~~dJwpw~edpnl~~~~~~^s~~hQ~P|~~p.~~K~lu~j~k~~i[~~~~ +@786c1978-769d-6968-3ff4-d4d86c5e73ca DDX5_MANE(-),+strand,3322-3684 length=384 error-free_length=385 read_identity=99.749% +ACTTCGTTCAGTTACGTATTGCTATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~f~e~~tu4Ok~f~~~~T~~~~`I~~~~V~~h}~}W~~|}~@yd~~~Py[i~E~~|q~F~~~j~Zm~q=p|~~~~\k~u~~y~~~{I~~M~@~P>~~~~X~N~~gP~e^~~~~m~L~~~xuvz~~~~~~hMb~~~k~~wyS~~~R~T|~~~X~~x~kr~~~|~s~~~~D~~~wsc~c|~~~~~v~~~~~l~g~~~p^~|r~~~Rm~wi~~~z~8cs~n~~S~~~~~m~n~~~~T~l~~~~lVk~f~uo~g~x~[~~zPrRu=sY~~{~~~~~Xfr~RJ~~~~~~i~~~~~~~kU~'~~~~~~~~~~~m~~Z~s\~gi~~~~9u~~s~\~_~~k~~~~~~~~~vBX7~~~~~~~S~~Y~Cgn{q~d~x~r~t~~CDt~J~~~gm~ +@72c8aedc-9d73-c1d8-d043-bd7e291a2a3b DDX5_MANE(-),+strand,0-3684 length=3706 error-free_length=3708 read_identity=99.946% +TACTTCGTTCAGTTACGTATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +v~~~~~~~~C~mk~h~~~~~~C~j~v~~~~~~~~~tp~tL~~Nnwl~~}c|~~~cdpm~~~~wo;~rJ~~~_~Z~~~a~~E^M~?~~~i`l~V~~~[i~w~X~~~nU~~~~~dq<~R~~~l~~~~o~~~~~ut~~~~P~~wt~~~~~uPno=~K~~~~u~~~F~~i~~XIp~~~~z~{~n~~~~~~k~cYs~tiR~uuv~\~e~U~~~~~\~~~~~=~~~~~~aY~rv~~~~Lm~s~yitwOY~|yaYo~g@~~C~0~N~~~~z]v]~Il]~~~G~~~~~Z~}~~~~{h~`~~gD~W~Jx~w'z~~~sW~~w~|~~~_~}[x~~~>~hZ~~~~~Y~~X~|{E~u7~~~~~~~D~~~y~b~Sq~~u-a~d~tz~{W~~c~bA~~~~z~~~~n~zp~^~~X~~~~~~~~~~~~~@U~~~~~~[~~~~~WM~~g>~~u~h~sfe~~JX~v~~~~xg'9|u~hvc[~q~~~~eZ~~~~~~~~~~~J~~_~~~~~w~x~m~~~~~~~~~p~~~_~{L||~~~~~^r~z~T~]~~wk[~~f~~y~~~~~~_~g~~g~wgn~u~~~{Ck~~~~~~~~1z~~dQ~sx~~~~5rp~~m~~E~T~~~n~~~iTfXG~~~~~~r~~p~~~~~bmNd~|Y~{~~~d~E~4~~m[~~~h]~~~q~v~~W~~_~~u~~~~~~fD~s~~~~~y~tz~~m~~~p~~l~UvR~L~4~~zmq~~u~t~~~{~~ze~~b~Qy~~Mp~~~xi~~~~]~~~~~~~q~~*Ro~~~~ZS~~ph~{g~-~~}LY~~r~~~~~~z~~k~~~~qt~vq~~}~~~x~~h~~~~~P~~~zxu~~aBk~~~~b~~~~r~u~~~~~~w~~~_A^|xro~~~lL~~~~~~~Bz~q~~b~~~~T~~te~~oq[}k~|[t~~~~~~~~~~XV~~~~^~g~va~Lx~~woQl~X~[~ur~~~~s~xj&~~x~n~[~}yQ~\~~hFi~~~~~Z~~]av~~~~R~~~~c|~~~_~~~~~~~~~[gw~FYp~~~~~~Ky|~~~~|L~~s`nun~~~u~Z~~~~io~k~~~X~U~~~GS~~~E~~tmmD~~~h~l~~~~~~~~~~Zo~DN~~~~~~s~~~~~~{uz~wv~m~{~~~~~~~~~~~x~jy~ks~zvu~Em~~^~A~~~al~cX~~~l~~~Rl~[~~~~~i~~~~~~~H~v~~h=~v~~~S~pw~~~~~g~lc~~~~~~i~~~~~[~y~~~nj~U~~~~~dy~}~t~>~|~{n~~arp~~~~Z~wq~~~~~O~~jL~~~r{~~}tl~3~~r~~~|V~ok_~~~~}{~Ef{~Jb~~~y~Pv~~~qk~T~1~~~~~~|~~x~~~~~l~_~`~E~~~V~~G~~~w}`~~eS~~~~~~~NyB~~4~~~~T~}~~=`~z[~l~r~n~~~y~~~_Y~~p~~~~~~~}~x~L~h~~~~om~~z~~~~~~h~~QT~V~~~_vt~~W~~v}d~~~~~~g~p~u~~~o~~9l~~1ds~~~~~Q~~m~zHY~b~~~b~\~~X~~~~P~~~\b~~S~~7~<~~~QZ~~x~Ww~~tN~~tnu:~~~~~_Uc~dEw~p~~~[~~si~~~~U~~~~O~~~~~kX}~~XTb~~~m~~~~~F~~~~~m~~~~gk~~~y~c~Pm~u~~D~V~~f~Wtz~n~jz~~ep~~~l~S~~i~ktz~Xu~~~~~~~~~~~~iv~Up~~.Y~T~~TDvG~~Vk~_~~~~~~glx~~~Vdp~~\~|}~~~~~~~@~~~fL~~~Uj~~~s~~~T~e~U~iUf~M{~~~qi~m~bl~Us~s^~i~~~~bxbiur~~kxv~~m~~q~~SM~~~k~vnb~~Y~~q~~~~k~C~ln~~m~~~S~fp`yf~t~x^~~~_~~Ysj~~`gU~Tio^~~~_~~~{~~~~y~~K~~~lmx~~~M~f~~e~~i~Pya~~~N~~x~}~~wy~[~~~~~~|k~~m1z~O~~~|id~~u~o~~~~~[~~P~f~~~e~g~yP~~~~P|~}~~~~i{Be~~~gwWm~~u~~Igb~~gq~~~wkr~~~~Rk~~gU~~~~s~~]_~~~~a~~~~~~~qxM~~i~~~~~~~~rX~~3l~~s~~^4~PW~or~~2~~s~t~y~~nkup~)M{j~~f~~vc~~~~~~~s~~~eh~A~~~~q~~~C~g~~h~Z3~~~~~~~Rz~7M~~~~~~~h~~~M~~~~c~~~~h~~t~vi~~d~~s~p[~~xh~~~w~j~~K~Y~gs~~a~~[~~~|~Z~~h~~~~iZ~nbwZ~~`~~~~f~~a~^m~g~~~~~~~h~~k{~W~~~Z~`~~~[~~~Ux~ju~_~~{~~~R~X~vi_uifw)~~~~~~~~Uk~ip|~~el~~~~~r~~~~}p~~m~~w~`~~~~k~~Fu~~~~8=~A~k~~~cldZzv:~~^{~~p~~~~Vj~~k~F~T~`i~~~t~|U~u~~]J~p~~l~?~~~~[U~~~~~~~Tv?>lc~~}~g~~~~~~J~~[u~~~y~~i~~~~c~b~~~~~\~mv~~~XS~~~~k~~d}~YV~~f~~~s~~k~]b~o~~~Rk~p~o~~~n~|~l~~~~w~As~z~|WK~~x~jwp~~~~~~+kW~l~q~Wu~Fp~zi~ht{~~~~u~~~~\y~~<~~xq~X~~~t~~g~KxSy2~~P~aJ~~G~~~c>Q~osh~~MH~~u~{~~~~~~t~~~~q~hp~~po~~~~p~~~~~e{~~~dy~jq~~~~9~~~eo~v~~Qk~cz~~eX~~f~vT`ge~~~k~~~~X~~~~`~V|w~~~~~~~m~0~{~~@~~~~^h~~~~~~~~~_~~~u~~X~~~cFpitu\~~vr~dz~~~}~~~AfJ~~{~M~~~=~f~~h~~~~O~~~~~|p~~~~~~~~~~tXK~:~v>~~~~~~k~Z_~xatb~~~\xqe(oJh~~~~~~~~~n~{Eb~~u~~QFd~~ev~Z~~~~s~~~~c2~~y~~nR~~fR~nk~~~~~~~~~~Q~\~zb`~7~H~~k~~~^Q`y~8~U~~n~~wh~~~+om~g~~~s~~~}k~~~~wIno~~=u~~V~~~~~w@~~L~~r}~~qW~p[~~~~~~~~~~~~~~~j~~{~qw~T~mF}m8I~U~G~~~~~~jR~~~~w}~[~_~j~n\~~~l~~~~a[x~~~~|~~f~U~~f~~~t~~~{~a~V~p~~~~~~K~~~y~~J~@io~~~kLm~~~g~T~~~~~?kf[~~~~~i~Y~t~~a~~~~h~p^~b~~~~~n~~f`~js~~~~y~WZv_~~~~`vn~if~~z~~~~OHbz~dj~U~~~~t~_~oaxv~~^gx~i~~}U~~~~~fc~wi}l~v~~~~ZvMz7~~~~wt=~P~|~~i^~~~~~a~zo~K~Y~~~an~~~sQ~w~~~~~b~w~tl~~~~~~~~~u~~~~~~~~~~~~~~S~~~~|Iq~L~~k}^~jy`Nq~o~~z~Qu~w~{~f~~QG_L~~~~{~~~B~`|~V~~~k~~u}_a~]~~~~~~T~}o~~~Vp~D~~~~c~~~~~~~ba~~\~~Me~~~B~~~~W~~~~Xr~W<~Nlz~~n~~~~\a~~~O~{~~~6u~SV|~~l~}c~~JV~~c~`z~\~~~}~~~~e~~ua~~[~~y~~z~~~~k~~}~~Bu~S~Gc~~~^~~~g~~^Qsiq~~k~~~~~oo~IJx~T~~p~~r~~gk~rj~`]~~~~i~~~~~~ch~~n~~~~~z~~Z~~~~~]~~~p~vX~~~~~~v~~N~Sq~~gp~cC~X~~~~f~u]Y~mf~~l~~~~hru~vQ~~p~~~~j~~~l~p~wI~~rOB{Tvl~~f~~~Xj~x~~~Xm~~U~~yeU~~~~~p~~~{~w~R~~~~~~~~}~oZ~~<~n~~~~b +@d9e80381-0791-af4f-9c87-3daeb172e5ec DDX5_MANE(-),-strand,1015-2619 length=1618 error-free_length=1620 read_identity=99.878% +GTTACGTATTGCTCTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGCA ++ +~@S~~~~~pK~~~~~G~~r~j~~~Vol~~^~z~Z=~~bs~a~~esj~~yH_r~K~~%~w{{~~~~r~~~T~M~~~~h~~~m~~~~~~~~~~bl~~~~Cur~tkWz~~~~Z~~[y~~~~~}~~~~y~~K{~~~wMhs~[~r~~~~~G~v~g~M~i~~a~k~~\~Y~~~~~~~~_[~~pW\o~~~r~e~r~~~3Vc`vgrd{~~R~V~>jxV~~~~~Y~x~~~~~~~~~g|b~~Zm}~vp~~~~x~~P~`HP~~~~~ZTu|C~~OY]\s~~]~C~~~U~~~~~~~pvWn~~U~h8~~~}~j~~[z~ayT~}~~*Y~u~~~~~qS`~~~lww~~~b~~{~vV~~~~~~~~Kt~~~~~j~~bj~~~~\^~~Xts~~~~~~~uZz~UF~~~pf~Yz~`~_r~I_~~O}~~~k~~~~k}~b]p~~^~~~ank~~XI~~~~~uz~~x~~~~~~`y~~k~~~~~~~~~~|^~~u{~h~~~f~~~~~~~~q\~~~~~~~\~~~~y^~~g_l^dGKr~~>I;~~~yp~Yp~v.]RlDT_~~~~pS_np~Y{sl~wp~O~w~~d~u~~t~y~Xup~~Ky[~c:i~m~~H~XS^~~s~W~~~~~u~~~~~oh~~~~~~h~]cf~~~v[~Ig~~~G~K~~}~~~~~M~z~~~~~~~ddFyaT~6~~~~~~>;~~~/~v~~x2~Z~~h~~v~8~~~~~~b~{~~~y~~~~~~~~g~ko~~~~~>u~~~~a~oIb~Pb@|A~~~s~Vgy~~~~~~~cQ~~g~w~r;~~~~jzm~~iu~~~y_~pi~wIr~/udmr~owjr~V~pgq~.~~~~dse~~~~r~~s~~_~~~{*f~~~~~~~g~~~~q~y~~x~~~~IN~`~=~f~xU}N~~Hb~Xs~zo~~~~x~~w~~c~~~g~k~~cv~fU~h~|~~_dr~~]~~Z~~=~~$~~~cS~S~~~~U~~{^Q;~x]n~~o~~Y~~u~znZvw,~go~=~lI`|~~vb~d~q~~~VRbt~x~u~~~~~Uj~u~~[~5rJ~~}~~~Rdm~~{~Z~~]~T~kNg~c~v~ovz~~V~~Y~Kk~~X~~~~~~~~~~~~~m~~e~~5Wd_~~~~~~I~d~~~~~pT~~}L~ev~~z~{_~~~~c~~zgj~^~~~~Sj~~~^j~u~~~~~pr~;T~y~~n~V~WX~~~~~^~~Skxw~~jyo{n~t~~~a~~ex~~~~~~_~~~}~i~~o~v~~$~~~G~Oo~~z~T~~~~~~h~~T~Z|e~~Gj~Yq~~f~~}~~r~~~~LhV~~}~Oj~9~v~~~~~j~i~~z~_M`z~~~~~c~~Q~~~~~~\\~co\~~~Y~~~~^hW~;g~~2~lw~~~q~~~g~p~v~Qq~t~~~Qts~d~c~_~~o~~~~Vr~qru~~~uc~~~n~I~~x~p~~i~]~Y~I~~7nmV~~y~~~`QU~~~}~|P~UNdP~~~~~iTp~j~~vk~x`~~~q~xWer\~~~~z~~x~y~fbd~k}~~~hbY~M{~M@~N~~O~~~~~~~|O~~~g~~~~~~Z~~~pn~~~O~~~~~~~x~~~~[~~~~^~~~^D~\~~~~{A~[P~v~~k~YS\b~UK~b~~~~tf~~M~~~~hs~|~tR~O~~~_zM~~~g~W~u~~~~_~~~~~~nK~Opq~s~m~~~h~c~l~~]~jH~t~~~~~h~~~~I]~~F~ +@dc37f1da-08e6-715a-ae25-0190a45348ce DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,988-1986 length=1013 error-free_length=1011 read_identity=99.805% +GTTACGTATTGCTGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCAATCGAACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTAC ++ +~~~~K~~a3@~n~PnxpaB~~~q~|c~T~;~W{~~~v~~o~m~i_u~z~~u~~~~~z~~k~Ub~~~~~zU~P~~t~~~~~~~~iy_~fj~~T~>|*Q|~~U~~fh~~^w~~~tt~~~|~~~ly~~~~~~w~~Qx~~qf`~~Wy~S~/~~~~k~]~>~~z~~~~~~~p~~lw3~~m~~I~~p~~~[X~{~i\~a~w~YmO|~~v~~~~~Z~~~S~~c~~p~~~uP~e~~~~~~cc-~~d~~}~o~uzyv~~~~~P~~s~F~x;~~~_~~mj~~~~k~9U{jZ~czLx~~e~~~zz~r~~~y~~V~~~y~~C~Qg~~~~~~D~~v~~~~~u~~~~n~~~~a~~q~`g~~~Zm|}h~~k~~~i|~~~~~~~~~~~~~~~~~E~e~w~~~~~~Z~~~~~_w~~~~~~~}K}~j~V~~~~~k~~a~~W}~~~~Br~~j~~~~r~~~~~Hg~f~r~~~~~p~~~R~~^Vw~S~U~~hk~~a~s~r~~Z]~~TSuR~duz~k~_f~~~w~l~~q~~vV`~ZeO~}~~~~{~~~~y~~z>~~~a~~jymr~[~dJ~~~~~~T~~~~`t~9~~~~i~~e~x~~~~v~~N~b~N~~~~^]nca~~~nt~|nwo~ddz7RQ~r~~Y~h~~t~\~~~~d~~F~~bZ~~~~~n{w~~~~c_u~weO~wZ~~/|Ra~_h~~~~~~I~Qxo~d~~p~~i7~~Wj~~j{zb~~JwaNne~~~~~~U~~_~n~~Y~~|m=~~w~~~~~~~}~~~~m~~~p~~~~Cw~D~]\l~~|~~z~~~~h~Yg}~~ka[~sN~~O~~UId~~~X~~f{u~~~~lofdf~~x~thUR~~XW~|~~x~~~~~uz~YsR~~v~~Sg~~LxU{?x)t{PU'HN~>~r~~~~ud}}~~J_vf~Y~du~}|a~j~~w~~Jn~~[~j~Z~~~~v~~~~~q~~b~_~T~~^R~qs~J~~~~tF~~~Yx~iRwn}r\~~~P~\Yza~Wr~~z~p~~~~~qf~{~~~~~w~~~~~~r`yi~~~~~Zp~~~X~~~~~~~~pm~~q~VV +@8f88ebb4-4dcc-85d5-4439-16a75aa6a783 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1025-2115 length=1120 error-free_length=1121 read_identity=99.912% +ACTTCGTTCAGTTACGTATTGCTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGGCAATACG ++ +~f~[STW~~~b~ux~~~hV~~~~~R~~~~hPvqvK~V~{~~~~~~~w{~~-bX~8~~z~~~tpQ~o~~n~~pL~~l~~?xuPR~~~flf~]~~Vu]~y~~~~~g~~~~~~~~T~g~~~~~~~~~d~~i~~~~C~`~~~r~~~~~~M~th~~i~y~~zq~tx~~~{~~~~~~~U~`~~~|~SvRkc~|~~f|~~~~~|~~~}rl~ywO~~~~~~kw~~[~v~~~~~d~~VV~z~~ip~~G~~d~Z~Od8t~Wfr~d~`X~~D~~~~U~~~~~x~UCl~4g~~~~T~~~m4~~~~~~~~~k~~lw~~K~PQ~~~c~z~~~p~~j~l~Z~n~~ns~~X~N~?~au~xsrj~on~~~~~ar~hY}~~i~~~~~~~~nf~~~~~~~~|V}{d~_~r~c~~~]~~q~p~g\~dU~PvtciV~~|~\yRi~~~~b]~_~~~`G~g~~~~~~d~imEV~|a~:}~m~~~~~~~~nI~~u]f~~~~~~~~~~sI}HGw~~~~~ZK~{~~~~~]yy~zt~~N]~~~~~J\YF~oF~~~~~~~u~~w~ehZ~~|~~~A~p~~~u~~~~n[)q~bO~uv\~~~M~~~~`~~~~~tu~~\g~~~~o~~~~~c~~o~5~X~N~d~~~~s~x~~}~x~~~~~~a~{~~~~~x~~~Pbix~~{~v~~~w\h_~yd~`P~u~lC~~U~xq~:~oP~~~~oh~~~S~~~ta~Za~~~v~a~~c~~~sh~~z~~H~~~{hh~p~~dT~mE~9u_]~NuJ0z{~p~jfk~p~~~~e~~~~~~~p~~~~~~~~~Cq~~~hT~~~:~rX~~~Z~~~k@~lZys~~A~bz~~~Z~~e~~p~~~~x~~~r\~r~U~~~~~~Iy~9s~xi~~~~~^c~~~~~Jgq&~~~~Hd~q}h{~~~R~~~z^~V\~xH~r~}~~~~|~~f~rPE~~~~B~~~LnF~~kT~^~~~p~~~v{f~~zc~M~n~~~mvmoO~gq~~~eu~a~~l~~~p~\~~~Fy~~~~~~S~~~q;~~f~.r~Z~vs~~uW~~~~[~~~~^~~}~~~~x~qi}~~l~~~_~~zwP~~~o~}~~~t~~~~~~~~<~~|~~YQ~~k~~`~h~~|~W~~~~|M~|W~T~~xn~~~~ei~x~~Fd~X~y~^~~~~~~~~nn[p~~~~l +@aa200698-0daf-3d2b-3804-9f404e184fcc DDX5_MANE(-),+strand,3368-3684 length=339 error-free_length=340 read_identity=99.718% +TACTTCGTTCAGTTACGTATTGCTTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~~~jY~~~C~~\e;~~[cV~~N~U~~{~~~~ps~~Z~~h~Mg~~n|~~~uIfx`v~~~~I~~f~c~~~~h[~Zn~d~j{Mf~~~~q|~~~l~~~~n_~n~~tdI~~~{~C~W~~~T~~~~~~qS~s~o~~~~u~~J~Vl~~~~~~~a@r~Lzc~~{[~~~?~~~~~Z~~~x6~F~^~r~lj~~K~P$~~tY~~~~~x~~Vw~~~{~~~rK~~Z~~~kH~~~h~~l^w~~~~~~~~m~~x]~~{~~~~~~]^~Ts~p~o~~c~i{~~hg~~o\~d~P~~~~~~~`~s~~~M~M~~4x~~p~dZ~~~~~~~tc~E~Yr~B~B~~~~~~~~q~~~~X~~h~] +@b6c7ba1e-11e2-4e87-b586-bed36349ccb5 DDX5_MANE(-),-strand,2751-3684 length=936 error-free_length=935 read_identity=99.895% +CTCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~h~m~~]U~wfz~m~pfH~K~r:~~W~~~~~sJtYr_~~fj~l~~~~|~y~~XzB^~~~~~y~~~xdqX~~~~E~~|~p~k~~vx~~~e~~~~~6~~_~~~,~xy~W~koi~Xk]~jM]~~~g~~~a~~Uera}~~~s~O~~~u~~~~/\bg}~t~~~~~\~~~c~~~~~l~h~{~~~[~~~i{st~~rt~~c~oVIs~|~~Tl~~~s~~O~dd~~i`~t~~~~~~}~~~~~yw6{~~~~~Y~`~~~~~~~~~iVl~~~w~~ePs~~P~y~v~~jD~~~~~e~~X~||~X~~x~_~~~u^obb~~~~~~U~~w~vn5fiE~~]~~}k~xu~~a~g~~V~~~~~~~Vgj~~t~~azl~~rx~~}~|~~Tb~~X~Og~~etXtf~~~~~~~~~~D~~~d1~~SkfI~~~~~e[|~~\~~~~T~~~~~c~aH~~K~{~~~c~OY~~~n~v~P~~~~~~S~~u~_J~6~~~~~gZHsf~i~\~~w|~~^lM~~~h~Vh^q~s~~~~~~~~~ibA~~~~}~~~~~~m`x~y~m~_fi~~V~i~~lUcT`~|h~~~h~^~~s~~~~~P^~~~~~v\~~~i~~o`r^~~~~m~^d~w~~~~a~c~~~~~~~q~~mT~H~~]t~~~R~_~~~~~~o~g~~u~^~~~M~~V~r~g{}Z]&~sp~-~o~g~~~{~~~Z~z~sA~~~Xf~VZ~Q~~L~~~~~vh~~~cw~~~~v~~{~~~V~~d~~~~~~qk~~~|~~g~f~Q~agz~~~s^~~~~~~uv~k~~~}~~~T|~'~~n}~~~~~j~Rx~~q~~x~~~r~bO~~~~od~[n~~|~V~tm~~~~~~~k~~odF~~~e~~~h~P~~~V~-~~~a|~~Q~]lf\g~p<~x~~Z~~sp~~~~~~|~Y~s~~~MYw~~~~v|~t~~jbe~eX~~f_~e~b2~o~~~yh~`ocn~~~~~^~~~~^~~n~~~uvCd~~l}~z~w~bir~~~~~b~~`G~j~~zyRvm~~Ck~w~RS~yv~~~~~~~Rg~~b~_b~c~~wT~~~~~~~h`Z~~~~m~l~;~l{kW~~~g~~N~~~[k~~~Fjb~~~~h`|n~~o~~x~NT~~h~ +@bb9b81f2-7c0a-5a39-737b-4677b373f2cc DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,2399-2545 length=161 error-free_length=161 read_identity=99.429% +CAGTTACGTATTGCTGGACCGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~>~h~~~~|tS~~~P~BS'~YBg~x]jaqi~z~~~~R~~~e~~uq~~~~~t~~z~o~~~~~n~~~~~~~~~~~~~~~bapwh~p~~P~~~>Y~~~V~~~\uz~y~~~k_~i~~~~s~d~~~~\e~~w~~dzZg}~~a~~~ShQi~~~~f~g~~p1~~x~~~ +@1537af8f-b4b1-da6f-adc6-ce09ad1fcdf6 DDX5_MANE(-),+strand,2916-3684 length=768 error-free_length=770 read_identity=99.745% +CTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +{~~yYyw~}y~_~N_~~~cdf~~~kf~~~S~~~e~LxK~S~f{~~~~Ezh~~c~~~~~~~~~~~~6~~EmwF_~Tq~~~~~~~~V~uwK~~~~oU~~~t]~YdKU~~~~~~~~~~~~L~l~~bMn~~j~u~{~~~~p`~~g~n-~~_~~}^~~u~~{[;M~w~sd~~~r~|n|~~~oo~~~}p}f~F?U~~?\fwL~f|~~~~~~~VH~~ljx~~t~~~4~~~~z~~~~~~~qoy~~6o~~S~~~u~~~~~~D~~}~~\b~~~~~~~v~R~~~~V[~~~e~d~~9~~~}Ipi~~k~~~~~jc~~~~~~i~`~~~~K~~~~~~~~~~~~VW~~~`~~_~a~~~V~~~~~~~{~~lby~3j~~~lxhc~kv~p~x~[~~k~f\~g~HG~~D~~~y~~~xQm~{~w^b=~kd~r~~tKx~[~~~t[~~~~~~p~j}~~]~~~~~~Yv~]~~~~~On{~xi~~b~~~`]~~~juBX$~F~~~T~~v~i~r.}~xq~mS~~~[`_oi~nf~fq~~d~~B~~~jxM~b_~~}ZH~i{~~~v~~z~~Jb~~~:b~{~r:~c~~~~e~P~~~~~~~h~~{~az~~~U|ws~}m~~H{~~~l~~~U~~J~~~~k~~~_.~v~g@~c~~~~~p~O~J~c~i~~W~`~Suh~x}b=~KcQ~~~n`~K~~~y~~~Xy~~~~~h~n~~~qI~~W~e~h~~f~:g~_~~~u~~~~~~w~~~3p~c~rWnu~I~~I~hzT8u`Z~~~`~x~~~~zP~~~~~{~m~~~~~~~~xKg~~\~~~~~ +@5c89a3c9-8b4b-80d1-f321-c5c89fa5f3de DDX5_MANE(-),+strand,1017-1884 length=903 error-free_length=905 read_identity=99.782% +GCTCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCCCGGGGCGTGGTAGGGAACAGTCGTAGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGGCAATACGTA ++ +zHq~~~~~~~]~~~~~~S~n~~~~~~~Np~N`~M~%n~g~~J}~~~{~~Z~w~h~^~fi~pzn~n~~K~~~~Xk~~~j~xkzzVQ~~~ccf~~~rlZ~~~~z~~z~~m~~`3{i~R~~~~~F~s~0Vvm~~htYVt~~tGw~~~=e~i~k}a}~~N~~y~~b~h~q~h~~kxovi~h~~~~~]~pwR~~~~~~fm~g2a~W<~~jU~O]~~~yjW~~~~g~~h]rw~~~~~X}~~M~f~~~~r_p=~~~v~vT~~~~ru~~~~Sh~~~iz~i~~~~zg~~z~~W~-~a~w~U~u~~~w~~p~5j~~Tl_ys~]\W~~~~~~~~~s~y~~~~~y~~~~~w~j~~~Ym~~~~~~~~~~mP~~|~~u8~R~~o~~~~~q~}IK~t~~n~neO~~~~~qUvm>I~~X~>x~~r~klcbg~~~_t`~~h~~~~j_~^~~~c~~~~h5e~~~d~~~^W~r~~~~~~~~P~}~|g~~z~m~~~~~d~h~~~~~~l~~~Uj~tR~~Xv~~~~~~p~~~~y}s~~e}~oN.~~~{~\w~~p~~~~~~ye\~~Pe~J~Ll}~~~~Yw_~~~a~j~~Sc~~axwo~~~~~WX~2~~~~~~~etor~t}x~~k~~~~c~~~}~~~f~~wl|~~~~~m~o~W~~SNM~~~x~~~W~~~~d~~~~q~x~~~R~~~t~~ee~~G~~~{~~~~~~~~U~o~iH~~~~~~~v~~~~\Se`~~m~~}~>~~~r~m~S~~~~~~g~z~~n~~~~m~u~~~d`~~~mkg~~~jO~g~~~~~c|~~~u~?~}~i~~~~~~~~~~~~~~~~~vdpH~]i~`~~~bl^~~a{T`~~~~~~~~~7~~yR~~ub~e~j~~~~[~~vV~~l~Lw~Os~n~ux~~~o~k{~l~~~~~~~~~~{~~~m~~~~~~wv~~~~w`~k~a~~~ea +@84042bec-ef90-d70b-cd17-d06b1adc85bb DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1318-2545 length=1231 error-free_length=1229 read_identity=99.839% +CTTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +v~M~~m~~~~~~~d~~~k~]~Q~dV~~~~~up@~jupp~s~~~~~~}qy~X8~c~ZdH~r]m~~~r~~~~~~~h>_~E~~l~d~{~u~Op~~oz~|5q~97RX~pc~y}~k'~~~wiep~h}~~~~~~~~x~~~~~~Xj~~~|dq~z~i~~~~~|cu~~Rq~eu~~~hMO[~~~~~~~z~~UPk{~~~~~~u~xr~~u~~l~~\{H=~lS~Un~~~~~~b~~~~xb~~~~{~~z~xmb~~sKU]~\~:}ho~~Lr~j~a~~~W~~{{~K~T~~~f~~~~k[~~~~~G~~~~S~~l~yWu~nXs~~~r~ih:v~~uUgNY~~x~i~~~cldVI|~~~R~~~|~~|~S]~~~aq?[uJs~_~S~|~~~~ptX}0~~~~r~~~X~~x~~~~~~~~Z/~N~~~m~~~~8~~~~L~m~w~~]~nl}~~c~~~~c~~~_~~{~~~~~z~pph~~~~~~~~Q~vv~~~~f~~a~~~~~j~~~~~~~}M~~~~~Oye~U~~t~~~y~Zu~z~znvU~~~o~|~^~Q~n~~~~~mliqF_sN\n~~~{p&g~~T~~~~a~er\~p~`~~J~>~~\~~i~[~]z~~W~~Uv~~~~r~~~Ll~~S~^Qa}/~M~~~xhs~~Kx~~h~4~]~~~~~~e~~a^~~~]tgl~~d}~\~~~pb~~~~~[~~~~~S~~~~~nnv~_t~k~m_~~~\w~~~XQzX~~o~_~~~r~~i~}~~~Q~~\~W{~~~d~d~~t~~]|~~~~pn~~o~~~eb|~.~~p~~]~ueL~~uuwrz[~~~~~k~]W~~oM~yl~(bMmIL}~g~~ra}{~~L\~xhf~~~~~z~~nwb~Z~~m~kl~c~~~B~~~d~v~~~~is~~{~~c~s~~~~~i~~]~~~~e_~~~}~a{~Ya~D~xT~~~w~~Q~z~~~l~~w~[~~~~~K~}~~ry~~~~d~~c~~~~}~~~~D~~~oyag~b~O~~~~nu~olwf~~~~|~xyfi~~~~~~~~~~~r~~~~~~|hr~~b~`~~~S~~~l{~~~~P~~~l~vU~~Ws~Rk~~~~~k~~cv~~s~~P~~~~~z~~pa~~~yx~~~~~yi~~m~`~~~~|~N\~er~~~M~~|AfX~T~y~e~y~~t~~~~\~g~c~bI~~Z~~~~~~jw~^~fmowt~~~byo~w~~xURKB~~q~r~~~~s]nY\G~~x~L~h~~~f`~y~v~~~L~b~~~~_~~~~{_~~~~~~u~~~~z~~~~aJhpK~~~~~~~~~~~~~g~~p{|~~~~[~p~~=wva +@07454fde-fad9-da61-76f9-07184d530022 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,75-1275 length=1202 error-free_length=1203 read_identity=99.836% +TTCGTTCAGTTACGTATTGCTAAGTCTTTTAATTTGGATATATGCATCATTTCCTTCATTGTGGTGTCTCTGCTTCTCAGATGTATTAATCCATTCTCCAAAGTAGTTTCAGTAACCAAAACTGTGAAGAGAATACTCATTTCATCATACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCAATGTGGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCCAGGTCTCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACACCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGCAATACGTAACTG ++ +~p`~r~vc~~us~~e~_~~~~~~~~~n\j~~~~^}~y~pMh~~b~{~~xl~~}~Sh~D~f~~~~~~~~N~~r|~cF~~~~n~~a~m~~~~~f~dt~~~~hf~X~E~~~zwd~[oh~~i~z`~hs~~~~~~~n~~~~fhW~~~~~~~w{~~~~~~~~]~az~~~~jQM~~~X~aQcgJ~~~_~X~k~~Q~~~~Xk~~8~~~~e[~wT~~dexOS\~x~~s4~~t~~~~~X~~~>~~~F~bU~~~~~~^~~s~u~~~gV~~~sn/as~~~~kwH~~~~~o~X~yO}r~~L~~{~bX~~~~~h8~~o~;~A~~s_~~h`q~e_~~~`~~Pc~~]{~~~~~[p~~~~q~~~O~~~z~~~~~~rH~~~~~~t~p}Y~~~~~~~~~~~~~~Z~j~~~~T^{~R~~k~W~rg~~vW~k~W~i~~~Ong~~~o~~gii~~~~Ks~y~~~r~~~{~T~~~d~~i~~i~~D~o~~~Tte{~~~~~~z~gxS~~~~~~S~~~S~~l~uE~~~|~~~~zv~~vZ~~~~~~^z~~g|~~j~~~~~ck~~~x~Vx\~Xm~u\|9k~~~~~~~~{~~~~e~~~~~~Y]~k~~~s~~~Y~~~mSS1~~~~~Y~~~c~~~~~e@y~al~og~yjcd~k~~~Y~~{~w~~f~~o~_~v@~~}~|~p\~dC|~~~p~~~~~x~~~~~Z~~~lq~jxQf~~Sd~~~~~v~~}~~~~~~~~uU~u0_~~~~~~D~~~~l~5e~~V^q~}~~~~~~zh~~\z~~~~x_~x~~k~~~~|~~~~~k~~~~w~_j~J~~H~~5~d~~j\~e~~u~~Non~p~~~~~~X~~~~~dj~m~a~s~tv~J~~~Y~~~VqmU]~Vdst~~~~i~~~s~sIi~~~oVP~~volb~dg~~~~Y~~R~x~h~~wxb~as~~~~P~}~U~~~~~~n~~~~dGk~n_qL~~h~~~;~O~b}~|~~}~~~~~~~~~~|_qY~b~~~~m~~}_Jh~`u~\~~~~ensR~~~a~e~~B{~~~u~w~~~~j~~~Keu}~~~P~~~H~Q~~~u~~~~c[~~~~~e~~~~~~b~g~~~~~V~X~a~h~~~~~qu~~~jTf~4~~~~W~_~>i~~q9V~[~~~i~~x~~~~Zo~%$ZQn~~~~~~~kz~O~p~~~{~{~~xa|~~~b~~t{Rr~~Z~p~~~~[|~t~~u~~`~&syk}p~j|~~~~\M~]~Pv~~~{~~[z~~~~~~~~~~Q~~~~~~~~{~~~ +@c2a2fd61-79c3-4e44-c30e-48c955ad69ec DDX5_MANE(-),+strand,1954-3339 length=1399 error-free_length=1399 read_identity=99.859% +AGTTACGTATTGCTTCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTT ++ +q~~WZ`~~~~Ub~~~{~~{~y~~~d~~~k~~z~~K~v{+NZ}~s~~k~~o`~~~n~j~~~~~~@vtc~S~~~~~vtzr~~~~iV~~~~[~u~~q.~|x~~ss~~qu~~~~~~a~~~~~~~~}zv~lyg~[z_~~~W}~}~~~~o~~~~~qkb~~|~~~~~~~~~l~~m~^~hz~e~~~~~q~qf~ns~er~zf~~Y~~o}{VtkQ~F\}]~~_mam~~~~~~~~~~~~a~~~~}~|~~~~~~N~~~g~W~~~~~~|H~~~aRn~~~~~Mz~~~~V|wSgv~~xQ~~HspK~~~O~ca~~~~RU@v~ru~~~~e~~~=~~y~b~~~~~Zg~l~~m{~~~U~s~i~~~yw~a~uw~pF~~~dI~Qtpd~a~~n~~~y\~:~~h~i~h~~~b~~~~g~~]~~I~~x~~~~~~~~s~;M~~r~`~,x~~si`RZ~~~x~O~~~~~~~~~~~r~t~X~~\~u~~~v[~~a~~P~k~~dm~U~~a~~~ynUh~~~~a~~~~~~Y~~s~~~n^~T~~~6~~~wL~^~l~~~~~~~~~~~l~t~~~k\~~~~j~~R~~~LxA|~~~~d~~~_~~elxs^~~z~~k~~e~~djg~~}~~~~T~gf~~o~~~~k~~~~Y~}~g_0]~~~~~~eg`~~xgr~~~bhZl~~e~~mu~~~zX{~~r~~~~~~~~~~~Ym~[~~~~{~[~~~~~K~z~[~~QQ~~~~~~~p~~~~Z~~u~~F~~LfM~|~p~~~s{qRR~~~~~~aKo~~q~~:~~~~lc~M~~~~ih~~~y~]~v~~~j_~f~~Te~uctK~ydfj~~~~~SL~~~[{~a~~N~~W}~~~~~~fy~Ff~w~Vou~~~~h~r~y~~~~~_^~~~KkD~~_B{~~~ck~P~Eo?ow~;@~~a~E~t~u~F~P~~~~~~~~~a~~dv~~~vY~`v~~]f~s~l|~\]~q~~v~b~A~~~~~/~_~~Dn~|~yoY,~~Fsu~~~~~j~~~|~~~~~~~~r~~~_}~aj~~GlH~~~{~`~~XD~UE9|(?Nm~~~~u_m~~~ypV~5t^~T~~k~~~l~M~nu~~~~~X)~~~wmK~~jNe~~[^~|~~LRk~e~~~kxdg~x~z~~P~t~r{Xnaj~5ow~~d~~~V~nq|~d~~~~~~~~~~~~je~~~~~c~e~~~W0i~~}~~sk~~~Ce~j~~~mX~~v~~sR~f~~|p}M~t~z~l~~W~~~}~~`\U~sy~b*-~pkG~~Z9~`Tv~~~x~~~~a~~~V~~~n~]su~~~~k~=~~~~~xSWO~~~~~~V~n~qD~>M~r~~~~~~~~~k~Ti~fe~~~]~H~~~~~~~~|~~~~~vX~]|k~~~rd~~r~~~~~~u~j~~~~~~wio~~~Fs~`qZ~~b~~~t{~P~~~~~S~~~~~leY~~~~~~x~l{b~ex~~t~F~c~~~~~~h|~~R~~ql~4w{ox~~~m~O +@aaf75081-a1f2-1ce4-ff04-80b1169bb312 DDX5_MANE(-),-strand,357-1870 length=1533 error-free_length=1536 read_identity=99.806% +ACTTCGTTCAGTTACGTATTGCTTACATTTGACATAAGGCATTAACATCAATTAAAGCCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAA ++ +{m~[I~~~~~vN~~~~~fa~~W~~~~~N_~~u{o}~~N~C~~:|i;~~~z[_~b~~y~}'~u~Xv~~~{{~~Z=t~~R~tih4~~~~~}k~q~~d2w}~~{5V~~|~z~^~x~~~~~i~~~~~~~~~~~~~~~}~~B~~~~~~~~~v~~A~~E~[^T~p~y~b~~Q~~dq~p~~~W~gp~~kQ~v~u~}~~m~D_~l~~~f~~~dk~~?f~~~vR`a~~\@~~Vb/~~~}~>~~~PS~|nPe~~~R~|U~u~t~~Y|{\]~~~~~~_~~~^ja~f}~~~Wy~zy^~~~o~~^z~~jv~w~~~y~~~~~~~~~~^Z~~\~~~;~~~~~t~P~z~{p~~Z~~~o~xT~Eoa}~^k~~q~~f~Lxs~S~ev~~p~~~~~~y~p~Z|g~~~gdw~|~ak~^b~~~~~~`~~D~~k~~o`~Ym~~Jj{~~~kkk~~~~~c~\U~6~'v~i~?~a~zo]~a~~~qvn~~~u~~x~q~~x~i~r~~L~t~~~l~~~~~~@~~~~~~V{~D~~~_~~~z~x~~~~{~wP~~~`~~~~~~zh~ce~~q~~w~~~d~{\X\~~~~~~N~zy{~VI~DjC~~~~S/rt~~~~gFS~~u~{~~vb~~~Bszv~~X~{~~~~gU~O~m~{~~~~XMh~L~j~~\Bw~~iuN~}~~~w~~~xx2~~\h~~~~~e~~zxm~gh{p~~~~~^~~~U`~~~~~~Y~F~mH~~~oD~z]~~rQ~~e~-~~~jrtF~g~qx~~~~u~w/[~~G~~;~~~ghc~~~~~~~~j~ki_mg~~c~`~~~~Q~~i~dw~nT~iwmrb~~~Xe~~U~Sw~~~~`~~~~rcKd~~~~~_~~~HE~~ps~~~~{~~S]~~~~T~~~~~~~V6~~mi~i~~~~~~yg~~~~_~o~~~;r~X~w~ZR~mW~G~p~|F~c^m~~~a~~t~~~s~}jc~~~Mv~v~~frm~~~~~l~~~~I~~~~y~~isV~~~~~~~Wp~~~}~~~~~~~~p|~r~{<~~~~~~~~~~fZqQ~~l~~~f~~~~`Izl~q~'~~pn~~~~~~~~~~Zp~`Te~w~Lj~~v~~;~~~~~~P~~um~uO~~|[j]%~~~~v~~~~~Z~sTE~m~~~~~~~~~~~~lg~~~~_i~]~~~~~~5We~~~V~~~s~~~i~~~~~~~W~~r~~~Zk~~~q[~~~~~~\y~~r~~~V~~~~y~nu~y`~~~~~8~u~M~mM~~~~~~~~cZ|_~`~~~r~_~[~~~~~~6~~~f{~~m_~~~khf~~~~~Nx~|~i~~~HwX~~yy~|egiw]J~~r~t]~~~~i~~v~~\s~~wVn~Zo~~~w^}{P~S~~j~\zdo~~lUol~~~N~~~NR~^~~~~~~~lrn~~~o~]~~~~~t^F~n~lj:~~~c~w~~~|h~^~~~~~ca~~~~~~q~~o8~D~~~m~=~~~~~]I`t~i~d~~~X6~~d~~o~~h~~ei~x~~~z~c~1~~n~ur~~~~~v~]~~~~h:F~~e~~m~~~~~~~~~6p~qn|m~~~ho~~~~~c~~~~z~~~C~~~~ +@164b125f-bc8c-f2f9-0c4d-da3920cddef4 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,0-2545 length=2571 error-free_length=2571 read_identity=99.923% +TGTACTTCGTTCAGTTACGTATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +l~~~+~u6~~~2~,~L~~~~~~yts~te~~X~~u~~ir~wE~g~~~~~~~L]~~~fT~~~~@~hGr~~~~{o~m~`rx~]T~~~~~X~~~~hh~~~~_sj~~~Z~b~~~d~~8cO~~n~~~~~^fe~g~~~oW~{~~~~w~~~p~~~]~`a~hu~~~~loycH~~~qzd~]~o_~dG~~l~~Il~~~~d~~'i~~p}d~Z]g_~yo~d~S_~wuot~~U~~~~~~~~~t[~p~~~d~~}~\TC~f~u~~~~~~~~I~z~~~]~SfkSf~~}~~~~~?~`~tV~x~W~~AY)~~m|A~~ld~~~|~~~`jh~|~k~~~~~~h~~y_~m~0~~~~~l~nq~~a~~~~l}~}w~~~~~~v~_Z~~~`_~|~~~t~~~~~~~d~~~~~~{~fwrJk~~~~r~~~i~~~ac~~~~D~u~M~~~~~w~~~v~|~~dj{m~VovEm~~~~0~~|W+p~H~~~sw~Ap~lw'~Q~~rn}~~s~~~~~r~~P~^~z~MZ~~~~~~~~~h{<~~~c~~d~~~~~`7~~~~q~~Xn~e~|~~~~~~~~x~~~_~~wi{~j~~~gs~~~1s~~~~~~~~~~~~~~~cp~k_~~dxkZ~~~Xt~%~~tG]s~Yz}~~~klsx_~~~~~~V~_RJ~~~~~~btyRwl~~~~~~~~~~r~~z]`~h~~~~~UlsmV~aPf~q~F~~~~~~k~g~~xi~~ZYo~U~~~~;~~~q~k~]~~~~Zy\~e~~~~~M~Z$~Wb~~R~~~~~~Y^~~~~~I~c~zB~lZS~~u~r~c^~~~a~r~}^~~~JF~~~~~~k~|~`3dr~n~s~~~~w~_~~qhh~2~~~~4f~~~~~pu~w~b~~~_:~~~~~L~~~~wj~~~t~~vx~U~~~~~~~~n\~sgcuy~~~}L~~~f~v~~~~~f~Z~CT~~~~ep~~~gr{?~t~~q~~Xt~~~mke~~wt~~~p~~~~u{~~~~c~xi~fT~|s~~~~~~~}~~m~ze~~~~~_~~a~~zf~~~n~p~Q~yx~~^{{~~;y}~~~~cF~~s\k~at~~~~v~}WI~~r~_~N|~x~zZ~s~i~Rp~~f{Y~~w_ob~I~~g=J~~U~~~~c~~D~~~p~~}~~~\~WH~d~_~~~~~lQ~~n~~~~~~~[Fo~w~~~~~~~K~~~jg~~~d~~~p-[~~~~e~~O~=e~~~~~d~~~f~t~~~~~~q~A~~rw~[~c~~~X~~~t~~~~L~]~~s~e~I~~|j~[~~~~~~~x^[~kRz~~Xuo~|~~~kupa~V`~z~`t~~}~~~~wq~y~~~H~~~~|~~nd9@h~Mr~v~^~~~~sb~v~jP~~~~~~~~~}~X~~S>~~~~~~~u~~~q~~~R~~~~y~~~~~Kc~~w~~~Sr~~~~~~r~~~q~O~mk~~~~~~~~~u~r~l~~~~~~~~~>~~~m~~t~~~~h~~~~~V~S}~Y~X~|~~~~:~~Tq~~k~_c~~~mcvm~~dc~_~|~~~~~~P~~~~^~z~~~f~V~p_o~r~Vq~Gie~\~x~~~dyjn~~~]ct~[s~~~y~~~~r~t~~~~~hH~~X~}~}v~~~~~m~~~Vg~~~{\M~~tbl~~G~~}~~~Z~~~~\~iE~~b~~{~b~~r~~~f~~N~R~s~~~~~Xd~~~~~h~~~dj~~~~~m~gv~~d_~~RWY~~}7S~m}t~~ss~~T,s~fJ~ZvK~V~^~Glk}N~~~~^~~~~~~~Oi]Nf~~bT~~~~~~~9~~~tZ~~~~Sep~~fV~Q~~~~~~vW}~~c~~y~LX\~~~m~gkq~~~~~`~~|]~~~p~~p~k~~~X~~q~~~j~bK~~~~q~~M~~~Il~0~~~f~~~~vritb~~R~_~ri~~~~~~rn~mV:j~}~T~n@W~~~E~f~~~~R~E~v~f[~n~^~vcJ~~t~~~~b~bX~~~w~~^n~~~br~Tz~~~tf~l~~~h~~~}c~~q~~Ru~pi~~~at`~~~~~q~~~~~v~Nx~~~b~~X~~~~~~~~~Zq +@94adf209-0f5f-5b23-83c3-2a7a1e307dca DDX5_MANE(-),+strand,1011-1427 length=437 error-free_length=438 read_identity=99.779% +CTTCGTTCAGTTACGTATTGCTCTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCT ++ +~NQ~~~~~~i~{~~S~~J~WTKO~uw~Q`~~qu~~D~{~i~Z~j}~~~~~~~av~~y~r{u~~~~~~Z~~~~~~~~~~o~cV~~8g~|~~c\~uz~}Tzg~_~~~~~b~5]hD~~~~~~~W~nR~~~d~~~~[~~[~`a~~~~`-~~~|~Uo|z~h~~~~~~~~~^~X~~~a~~~~n~~~~}}~~~}aqj~~~~~`0~~~YZp~~i~k~~~qZJ~~M?~~~sM~~~~~~eso~~k~~~~p~~~~~Z`~U~mfda&iQsmz{~~a~~~X~~~z~~|vg~T~~~~~^~u~~~~x~~~Q~~Y~~i~T~~~~=[d~o~~~WP~|~x~V~~o~OR~~~~~S~~~~~mo~~~jZ~~~h~~~~~~~~~J3~~~Nh~~cR~~wi~~r~~~~ml~q~~~j~~~~q~m_~~fqU~P~bYB~~~~~~~{~~~a_q~~~e|I~~g~~~~ +@08556bb4-8f29-5614-b337-dc9f4ba59d68 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,0-2545 length=2545 error-free_length=2545 read_identity=99.844% +ACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACAACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTAGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~8~e~pz~pa~~~}g~~~z~~~~~~~u~lwcpVl~nF~G~~~my~~~d~~p~o~~~~\~~~Gl{~_~~t[~~~~~]~~x~~Jp~~~~~~~~\Mi~~Xwb~~~~~~q~~~~~~~~mz~~~~~e\~~Qw~~~~W~yvk~~~~}~~w~~bW~~bom~~W~~~r~{w~~~a~ggu_~~}~~~^~~mo~h~~~~~~v~~|~~r~~T~~I~O2u|~~N~Z~~~~k`~~~^~in\~~Xf~~~~~~y~u~Roe~~IUM~~~~~~~~~{~L~\~}~~~_dd~uWmME~~Y~r~{~~rTK~~mR{~~d~~~~p~o`~~p}~-~Aj~~~~~~nLx~_~~f~g~~{Q~u~~bB~~{~h~}~Lt~~~~q]~~htwjL~I~~~u~~~c~~[~~~~~~~F~~~i_S~dx~~]~~~z?~~r~d}a~~Cf~~hq~~~~~~~hi~~[_~~`r~|~v~~~~pqK~~~~~~~a`~~~~T~}~~u~~{c~~qC~~~i~mPRK~~~G~~`W~u~~aG~}p^~~kM~g~~~|]~~~t~~~]j~~~`~o~N~~]~u~~~~WeT~v~Nt~~~k~~~~~~~~y~~~~~~~~l}~zQ~~xr~n~W~~a~js{q~YqhxC~~~~~~_~~ph~a~~Z~~~h~nh>^~~~b~~~~~~~~~~~j~~c~{~~U~~~~qr~~~ZlS~~~~Ge~C~~GYv~~q~~d6~f~gh~u~~~~d~u_~bW~~q|qOS~~?~~sj~z~c~<~vsm~M~~~~~x~dW~B~~~lqHM~{_o~~~z~2m~~yo~I~qo~vHe~~~~~_~~~~~~xs~~~r~f~~g~~~}~~~~)~~~~~lA~~~~~\Z^~~~YkdJ~~Xlf~f~~x~~~~~~~g~~~v~r~C~`~~~^~~}SW~~V~~j~l/p}~h~O~~~~g~x~~}nM~~aitr~~p~y~~G~}~c~~~}~~K~~T~Wm~~Q~~|~\~\{~a~~~~l~hYR~h~b~~~{~~~~~~@v~~~~L~~~~~~}KMX~~b_IY~:~~L~~~~k~~~t~~g~E~~p~~RN~~d~n{~kX~~^~|~~vpNq~~~~~~n~jl~~o~~I~n~~a~Xv~~~~~~\~~~Wc~O~ao~~~~~~f~~~X~~~~`~~m~~~x~~~~~~~i~~~mdJy~q~~~]~~[~[~_~ri}zpZ~~pey~p}~~~~~~~~~~]c~sg~~~i~rV~\jo~~~~~~~xrZf~~_~~Ip~~{~i~~~~o~v~~~qF~d|~~{~~x~~~U[~k~,m~~kg~lqWSU~Q}~p~}~@~~~~~~~~k~vc{Z~~~Ky~~~uV~~f}d\d~g~k~~~~~~xu~~%~~~d~|\~4f~~~b~~X~~~hEY~~?~~~vt~~~~~kV~~~~~~x~r~n~jv~~~p]9}~a~~~_V~o~j~~~~O{~~z~~gQ~X~v~}~z~i~~U~~qx~~~w~~]k~~[~~~Gvn~~p~|~~~~~~^~~~Yi~~iqUzzrp^Xw~~~~z~W~~4~~~{X~~~HY~r~q~~P~~ws~~~Hipx~~~\k~~~~~~pw~m~i6~~M~~~~~+f~~~_~~n~fo~~n~~a~xI~&[~|~~us~~k~a=a_{~~~O|~kkw~~a~R~~i~~O~~~~~R~~~~~v~~q~~~el~~~~s~zk~~~n\~~~~~oY~s~~~~pqv~x~~~_~~~~~f~n~|~W~z~~Dgz~~~~^[^~~d_A~Npm~~~~~Z^bt~~l~~~~~f~~~]l|~~ +@5807989b-1634-f755-6fcc-952cb37bc749 DDX5_MANE(-),+strand,292-2580 length=2306 error-free_length=2309 read_identity=99.871% +TCGTTCAGTTACGTATTGCTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCA ++ +C>~~N~~~~~~~~up~~G~q~}~~~~~~sk~}~]uy~^~~~Zd~~~~I~~L~~~?_~~t~~~~~`~~j~J~~~kn~ff|~~~~rY[~6~t~WkugLdv~~w~~~~~~~~~~v~~~~~~~~~~nx~pj~~L~t~~~~PS~~~~x~~~u~~~k~~~L~|~W~~~~~~p~~~~`~~iq~bV~[~m~d~}~T~~X_~N~~\j~g~~~~~~~f~~k~~or~~Q~~~~~a~~Ph~~~|~~~~{~~}~~~vo~`~~~~~~~~q~~~~`~~~~~~w~~p~}~~~}~;~~~~d~~~C~w~Ln~[~^S~~~~@~ycpi~~~~~inO_~~Wv~~~~~r~~~~~K~~~~_hRF~~nYo~~~m~m~~}~~~~~~~~m~g~p~~ZL~~~~V~~i~ix~~~v~~~~~~~I~_~tq}~~~~z~~~~_~_Xr{~yt~~t~~Yy~~~~Fd]~~Mx~~7~~uO~~~q~~~V~~mb~xiM~~q~~~~~~~tC^~l_Azz~pj~~~j;~w~~~G~~o~~Q~~ra~Tf~~~ob~~N~z~~~jd~~~g[~~d_~P~~e&l~(=]~~~~~p^~~~~1]i~~~@k~~~~~`~~}~~2~~Ym~~{b~~~~~~~~~~ccfIP~~~_s|c~~~~~p~~~l{~~H~~|gpk~~yi~~~tp~kv~~}x~~~TmY~ho~~l~p6]~zw~~~~@~y~~b~~~~v~~~~mx~~~~~w:Y~D~~j~~~p~~~~~~~~~QK~~~~i~sN~lx~b~se|~W~Ogs~~~~|~~f~~~R~b~~~yG~y~~jj~~~k~c~~~~~[~^~~~~~~~~~q~G~~~~~~~~]~~wt~a~~w~~t~Aqf~Om~~~~~~~t~r}~~nM~qY~~^v~~~~~~\p~~~r~~h^~~`lR~Av~~~~~k~maZ~~u~~~~~y~~~~~~]t~~^~~~~M~5~~~~~~~~~~~t~~~cUg~~c~f<~~~~n~~i~|y~W~~~~GX~~~~Mz~i\~~~~~Y~~c~gQ~~~~tU~~~~~~Pb{ag~~~~nez~v~~~m~~Sk~~N~~~~~`Hwk~~~~~S%arU~f{~Q~~cuW]~]zdz~p~~n}vv~~nd~ld~~~~@~~~~~s~~S~Sie~~~~~~~qs~fe\~~~~q~qR~~b~c~~~~~~~~Gw~~~uoS~~~~~~~~~~~Lv~in~jc~i~d~=l~~~~~~~~~~~~~~~t\~~~~~~~w~f~~~\c|~~~~~~~XkV~~o~~~~~Ar~~~~~~~@~W~~y~h~V~~su~m~b~~~Y~u~]~~~]~q\2l~~}~l~~u~~~~~~~y~qh~du~U~u~p~~6~~*~~~g~~e~R~~~~~~~~+~~~~mUn~Wlz}qUn~OF~Z|A|~~}~~~~~~h~o|~~~~~~me~~~p}~~w~~~~~~Yr~~~jz~m~~~~O~~~?Q~~~~~~q~a~Ycn[~hp|~K[~U~e~Zx~~~~~~y~?~~]em~~{x~~~dB~~?~~~R~~~:~p~N~~]~~/aVg~~?~~~bo~~w~uX~~~h~~3~dhW~~~~uPh~e~p~~u~~~h~w~~^~~~~Z~TM~b~~x~~~~~t~A~~k~~|~Cx~r~p~~i}W~TL~~b~~~~o~~~r~L~ZVQy~~~yago_~~k~~f~~Ug~z~h~f~~~~qjyr~X5~~~~~~~U~~`xlR~~K~~Z~Mz[~~~~~k~~~~{e~~d~~~~~~^~~~~~~N~Z~e~~~~~}O~o~n~G~~~~S~~a~~~~~rS~T~e~~}~~~[~~~~gA~~}~~|~~~~~~~^?~ah{~~~U~~~[~j~~~~~~Orvvj~lS~X`l~~~~~~d~J~v~m~~xW~~_~\~~~\~~~~~~xen^}t~~r~~~~~~e~~g~~~~~tz~~~~~~~T~~~~~w~~~~|~He~~l~_~~~~~kz~je~sI~~1yV~w~~~o~T~~jY~Xb>~~~~~~~~~~~TtW~e~{~~~z~q~~~o~~p~}~~}~{l~kz_~~~}Wi~s~~a~~|}~o~~9n~~~~~~]}~~r~~~o~~~~q~fu~~[~KkCh~~|~~h~~c~n~wY~~d~skaT~~sd~\v~s~S6`~~z +@79294f99-95a2-e4b6-13f4-b92da0bfeb49 DDX5_MANE(-),+strand,3176-3684 length=522 error-free_length=523 read_identity=99.814% +CAGTTACGTATTGCTTTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~~n{R~xux~~~~~\~~~~~d|[~~~~~~^)L~~~~~n~~L~~~~s~Gzm[/~~~~~~G~~~~Nu~~~~~g~~v~~~~D~P~c}v~Rzo`~^~x~qv~E~~~~fBb~~rC~~^~ZVy~~j~~~X~~~w~~~H~z~pN~\~~n~~e~~~~p~~~~~~~~vfx~K~~}Yh~~~Yj_kwK~b~~~s~~i~~~~~~~~t~~G_~g~~~~Y~~q~~|~~~~z~~X~y~u~~~~q~~}~~~~~~p~wTc~~q~~w~{{{~X~~~~~~~Z~~x6~V~m~w~~~s~V~~h~~hLR~~:B~v~~~p~kP~N,~u~~4~~]~~i~~~~~Uu5uAe~~t~~~~?~~~~~~P~a~~w~~x|v~~z~~~~~c~~q~~v~~u~Pu~~e~~{~~~~~T~|~_~~Q~~k~h~i~~y~~bp^~U~ksjoN+~nV~~~~ok~4~~t~]Y]~~~~Q~~e~~~~DenK~u~t~/~Hdn~`~gy~dk\~E~t~~~~~kl~~w~Ws~R~C~~x~a~YWRb~~a~jt~qXl~}~_~Ry~~~~[O~ +@17c2ddb5-7968-439b-cd88-acd9882869c4 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1000-2488 length=1520 error-free_length=1521 read_identity=99.935% +GTACTTCGTTCAGTTACGTATTGCTGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCGCAATACG ++ +~^gm~~~?~~~c~p~|~~X~9^~~~l~~E~\w~MN~_it~~U~rweCE~~~~~t~~}~{~~~~K|7p~u~~qLjYq~~axWIWjjO~~~~~k~~})~h~|~~~q~~~~G~wk~x~Qi~~;eE~v~~g~u~^~wH~~|~~[~Sy~~|~L~J~|r~~~~UVg~~~~r~~~c~~~}~~~~~~~~~c~~n~u%b~tz~sw~vP~~q}h~~~~~xhyj~p~~~~o~Xxb~~~~~~^~D~~xn~X~~m\~a~o~~~~W~Um[~~~~G~\~K~.]~x~rw~U~~~|}{a~~~Y~~G~~~~~~WiX~~~~~Q~~~~IFu~h~~~lN~Kt~~t5ox~@~~~c~~~u~~~ju~~Js~w~f~~~~~~~r~`b~~~~~~~~~J~~~~~~Xx~~~U~~~t~j~~h~~]~~~~~y~J~~t|Sh_~~~~~sHxK~~j~~~~~~~t~~g~pc~n~sJ~R~~~m~J^~~~~~g~~~J~~~~y~~~rjb{v|i~~~~~~Q~~}~~~~~~~~~|~~q~vh~l~~Q~~XI~~~dg~~~k~~~g|~gf~ku~~W~~~~~P~|~~Kq{k~x~~~~~sehV~~~_ZFu~c~H~~~~~~HYZw~~u~lZ~bp~~~~~w~f~m~~t~~~~~~wj~~k~v~~~~~~jv~~~~~~~~~~Z~~gMp^~~~L~t~u~~~|~R~h~~~u~~X~~~~~~i~~~~i?~^o~~J~~~izq~t~k~k[~~~o~[~~~i~~r~p~~~~~i~~{v^~~Nc~~~Q~C~~pS~~~~~K~o~xX~x~n~~~th~~{ph~{o~~\meS~~v~~~~~vxsmT~~~~~~mHyi~~~~~~~~r~~~`~~P~j~PkfA~{wp3li~p|Kn~~~`~iY~h\~d~~~~n~~~~@~~Qy~~}~~v~~jrU~~S_rlc~~~~aD~~~Xn~~s~~~|~d~~~~~~~~~~p~~~~l~~T~Z~~~x~~~~bu~~XU~d~Jd{~l_O|^~nij~e~~~z~9~~~`~Z~wp~7~~~B~s~~sb~~f~\~~~~d}}~~~~~J~~o~~p<~~Z^^m~N~n2~~~~~hff~a~m~qZ~~~~~t~_~~T~`~~~~~~~n~~uqt~~s~~~~~~v~le~~$~~y~J~[a~~~[~~~^~?o~~p>~~~z~_N~~a~~h~~~~H~~~~~~al~~~~~~o~r~~~y\WE~k~Ox~oa~~~~~~~w~~^[~pX~~miw~Yj~~w~~ty~x~~~~R`X~~ak~}~~~~~~~~E~~~~~c~J~~~~wr~n_~~_}~~ka~t~|~~~i~x~kY~~~~~~tI~~~~et~O~~~~N|~X{~~>A~a~~D~~Y~~~E~SJ~~V~~~|~b~z~~^~~~~Z~~G~ug~~~~~vcgu~|aqQ~~)T}s~y9~~~~~Qv^JVw~~~~fK,~~~~~~e~~@~E~~~t~~u~~vv>~a~~~N~~~~xp~~~~~~W~z~Y~|~i~~~H~~~~~lz~q}~~R~~~~m~{~~i~jT~]~~~~Mlp~~~xr\~yW~~O~~~~~~~~t~~~~~~~~|U{y~~o~n~~~~~~6<|Y~vz~s~~a~c~_R~~~~j/\Vf~~s~{~~w~~rfw~h~SRk~~~ +@8803e6f4-e47d-d548-46a5-6db8583ceb4b DDX5_MANE(-),-strand,1219-1757 length=546 error-free_length=547 read_identity=99.822% +CGTATTGCTTTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCA ++ +~~~~fn~~~~O~~}~~~~tzm~~~b~~~~d~~~~u~~~~~`~~m~~{~~Ks~~io}~[~~~~~~_f~~j~ov~a~~~}B~p~g{~~k~{t~~~rM~~b~w~w~L>~Ttw~N~F~u~{~yl~~~~~kY~~~c^~~~~c~~lVm~~sd~ul~~~J~~~~~kY~i~h~:~*F~v~{~w~ER~~~~~I|~~lw~r~~`e~o~q~~~t~u~~Ze~~~~~~~~I~~~}~UqvUz~l~~~~~~~b~zxLe_~n~~etgvcdtr~~~~~~~A~qk~}o~Z}h~~S~`~ln~~~~~rP}K?y`~~Y~m~~o~~m~k~~H~~~j~d~~U~~h~~~f`~~`~~{rZ~~fl~|~~~~Gc~~j~t~~~~a~~Zf~~~~~m~x~`_}~~~[n~~Yoo~~~Sr~~{~xw~~Z~~~~~~q~~~ts~kUr~`~~~~~u~~~~XV]~z~~u~n~~^~~~~lk~w~cy~~~~~~~a~~X~~l~~~~l~z~g~G~~~l~~jyM~K~s~S~IN~~~K~v_~~~y~~cn~datn~~~[~}n~s~~~~~q~~W~~~R`~~~mi~g~~~l +@6f21e486-d917-3e87-0ca0-7c3a403cff71 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,67-901 length=863 error-free_length=864 read_identity=99.886% +ACTTCGTTCAGTTACGTATTGCTTAATCAAAAAGTCTTTTAATTTGGATATATGCATCATTTCCTTCATTGTGGTGTCTCTGCTTCTCAGATGTATTAATCCATTCTCCAAAGTAGTTTCAGTAACCAAAACTGTGAAGAGAATACTCATTTCATCATACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCCAATGTGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGCAATAC ++ +~a~~~~njp~K<~~~~m~~cyPo~Zw~rWA~~~~~{~~~w~~~~K;~~~H~~zy~~vm~u~~~i~P~~~im~~~~~l~p~~~P~~~~~X~~Wu~~~k~h~~~~~~~~~~lY~y~~~^~~~`uV5`>~~zb}yv~~~~~~f~`~7~~P~~~~~~~~~v~~~~~i~~q~~{~~S~u~~l'~~~{~y~~~g~~~lz~^]~~p_l~~LhXI~v~lYh~x{~qbz~F~~{~~m~V~~~l~~~~~T~~~yo~~~s~~~~~~5~_v~~~xZw|RT~~~[Vg~~~~~d1~l~R~h~~~~~~GLt~~~~~q~~ga~~~ep:~r~~mxn~~~U~p~h~lpl~l~~~~~~^~~~t/~Y~x~k{~~l~~z~\Q[m~~o~~~Mf~~^b~Ht~k~~~cx~~[+V~W_~v~~I~~~~~~y~~D~~~lr~t_~oWo{vq~~X~~I~~~~~~co~~~m~~~~~~~~~h~3.e\~_~~~~Z~~~A~N~`_yV~^~n~~~~e~~p~~~~s~.~~~~T~~~~M~~x~7Jw~~~~^D~~~~~~~xdX~I~~~l~xc~~>~~.t~~~~~l~~U~[i~~u_~y~_~~B~V~~~~~~~W}n~~~~7{~N~~~`~~.~nN~~~{b~w~~~V~~~}~s~~~1vky~_~Lt~dT[~WI~~~~3~~~<}~~~Zgl~cwX~~Zn~~e~~~ji~~]Rc^Dp~~~gxD~~H~k~D~~~~~~~rq~~~N~q~~~~ou~]~eai~P|~~~~S~~~~x~~~~R~b~~~~~p~~i~j~Z~~~x~~vr~~~~tf~~~~~~~v{~z3~~~q~~m~~j~~~e~~v~~~pksWk{~Z~~~uV2?~~~~S~O~u~~}~~~~jg~gjo~~~~k~g~~=snh~~oH~~~~~~~~~n~WaP~r~~~ +@94e1999b-6eab-2d7e-cb75-0ca58638ba7f DDX5_MANE(-),-strand,2654-3684 length=1047 error-free_length=1050 read_identity=99.718% +TCGTTCAGTTACGTATTGCTCTTACTTCTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~~~~~yfH~m~~~~i~~~}s~K~n~~dox~rs~SDvr~~~~~~m~~fs~~~~~~~<~~v~ftR~C~~~kq~LQ~t~O~~^Q~~R~xj~t~~~p|~~s~`~b~~~~~r~w~~~z~\S~~~~h~~k\n~~~~~~]wq~~u~Xi~m~cIqfb~~IZ~~~z~OPx}~~an~J~`~M~d~~N~~u~~~~G~c~~~w~m~~~~~~X~n~~,`~Z~~P;~o_~~~~~~~~~~O~~~Q~~QJ~~~dr~~z~d~`~r~J~~J~~~w~~Zl~a~g~~Ay~Y~~~i~~zV~~Y~~~~O~{Wp~~~~yNxg~R~~~~~p~`q~~A4~i~gdVK~~~~~~~~~~~~~~r~~~p~wp~~Z\~~i~y~p:~~]NZU~Tj~~~z~y~uu~~~~Z|~~Y~~~~eP}~_~~~HCW~S~~g~~~r|j~~}~~~p~~~o~d~t~~~~~m~~e{Nip~|~~~{C~~~~]f~~~P~kcp~~~Yk~Jf~~m~m~~~]~~~?~~~n~~~[o~}7{s~~t~W~~~b~~es0~R~b~~yZ~d~c~~^j~~>~e|~H{oU~~K~sy~d[~n~Rt~a~~`~^w~~pms~~i~~~~m~x=`~~~yjz~`}~`~dy~n~~~~X~~~_e~~~e~~~k~xt~~~~BkJ~~|B~~~~~{~v~~~~~~~~~E~~c~~~Y~~S~~~|e~~~$~~~~~nny~NzM~~~~r~~~`YygE~~~~~~~~~~~d~n~x~~p^~~f~b~~~bZ~~h~~~Woq~~~Yt~~~~~Z~~~r`&r~m~.siif~~z~~~j~~@~~~~~t|cm~Zcc>~~dL~m~a~~~v~Ov%IdXYlr~~~m~~im~~~~ua~~~~~~~nb~~~~Ns~L~~~~jk~~pKf~z~~|~p~~vo~~~~{~w~~T~~~~~8[}U~PVty~~~~}~~nn{~~~r~~hce[a~~~~f~IR^~~h|w~~~x~~~{jxap]~~ak|||~~~~p|w~~~~{~N~t~~~Sh[r~~b~}yD~~ku_~}~ia~~~j~~~O~~~~~~~~oIrGd~i~e~~~~~q~~~x~~~k~~]u~~~F{|~~~~zr~\~^~~~b[~~~~~UAI~~~h~~vh~ +@2bf5b8e1-c631-e3ed-e024-780f66bc2445 DDX5_MANE(-),+strand,3341-3684 length=345 error-free_length=346 read_identity=99.722% +GCTTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +ubwfr~~~~~y~oz~~~wS~~o~dy~l[~~~Vc~~\~~4Ht~T~~~~~~}y]ygk~km~~~~X~{U~~~~vt~]p~~~8~~~~qv~Vg~[H~~~~~~~~a}~_]~~~~_~e~h~s~y~~~~tbaxuM~e~~{~~~~\~~~~~~~~Kyg~~InQ~ldQg~m~~~lr(~yt~X~n~*i~t~6~2~2i~~T~~u~~~~~~~~R~o~~j[~~~H~~l~~~g}~~x~~?wac~~]~~k~J~a~~zi~~~~(P~Vb~~P~ax~}~c~~~~`e~|~l\p~~~~a~Rm~~~~~X~8K~~~~~n{[~~y~~~~~~~~F~p~~~C~~j~~~~Qs~pZt~9n~E~~P~D~~f\~{j +@bffd6736-c98f-d502-668c-0c19f138fa26 DDX5_MANE(-),+strand,360-1030 length=609 error-free_length=608 read_identity=99.839% +CTATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTAGGCGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATTCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAG ++ +t~g~~~~_~UxT6`pV=~~yigw~~[~~~~~~~N~w~y~t~~~n~~~i~~~m~~~~~~h~~Lw~~~g|JdiO~g~N~y~P_|kY~~~~~yjjn~~~~~~o~l~{~^lye~lua~c~fX~~~~~r~~~Tb~~[~~~~fl~s~z~~Tpa~~x~~}v~m~v~q~~^``~e~~~~~~J~~wT~~~~~~~}et~~~~Seg~b~?y~~T|~~~o~m>[~~:de0j~m~Dmk~~~~y~v~|kj~~Z~~~H~}~Ec~~~{~u~~~M~bz~~~~n~~yl~~~~T~~[~~~~v~~~~~~~~r~u~~~Mz~~~ZY~~~a>~~~n~~~q[~=~k~~pw~~~~kuq~U~~o~m~X~~@Y~~i~~~~~~~zo~~~c~~G~~~~~~[~~~~(~i~~~~{~O~p|~JS~~~~c~~~~w~~w^%UIV~~ux~~S~N~~~p~L~D~~~v~~~~~~bWlzK|~~sv~u}~POI~~~|~~v~l~n~}jX~~~~d]z~~~~~~~~~[~{~~b~~JA~~~~~fR~~~~~~~b~~~~~~8F~axvd~~pO~~~~~g~eb~~~~~~~~~n~~~~~d`~~~sE{jy~`L~~~~~mbz~j~c~~Phqb~k{;d~)wp~~~N~~h~~h~~~~B~~k +@8f976b35-9b0e-d694-cc6f-df4383e86a09 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,713-2545 length=1896 error-free_length=1900 read_identity=99.687% +TATTGCTCAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACAGTCACGCGTTGATGGCAATTATCCCAAGCGTCACATATTCCGCTGATTTAGAATATTTGCCTACTAATGTGGAGTGCGACTGGCCAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTCATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAAGCAATACGTA ++ +~~~~{R~~lX~cYr~uszBp~~~~~C~O~~~~q~~~~~~P~~~~~~~r~~~:h~~^uf~~b~z~~~~~Usf7~~q~~~a8~Z~~viDi~~~r~~~~~~i~~~ik~~~~>~~h~{p~~I~M~O~~u~'~))f[~rg~Yb~o~~q~wz~~Yt~Xm~~~h~~z~k~~~~z~V~~~~~~r~~]~R~~`luj~Kze~~w~~~~~i~k~`~=~~~~W~\~~~kv~c~~~q~~h~j~~bt~_~~hk~rz~~w~t~~~~~{x}=~S~~~Oa~~~~<~`~g~~yV:e~M~~|n~|~~~~~]~>~~j~VsQi:w~r~_yl~~~O~M~hrk~r`~`~~~~l~W~Fe~LzSx~s~~~~~s~~~zMz~~;^ql\~%mhLr[~~~~}kS?aQ~~4~~~~i~~~;G~~~~~r~~~r|~~~~~~~P~~~~qO~d~Fu[~~~~g~j~|~~[~vW~~~~6s~~~F~g\yf~_~~~p~I~~j~~d~~~~k}Au~~~l~GwK~r~~~2G~~~~~~~~~~~{~t~~dY~~~tO]~~~~tp~y~~yqo~l1~~~sd~x~~m~~~~{i~E~~}y~~~ghl~Jts~~~~~~^[c~\ww^~i~z{~~~Noegx~~a~`~y~~~T~~~~UmM~\~^~~bpn~Z\'zy~~,~~7\b~`~~f~>~~Qv~~V}~Z~sk~Yt~~~~}UR~^~d~~~~~}~~~~~~}|~~v^_c~~~7B~]~OI~j~\J~~~~~~~wS~q~~[m~~~~~u~~~u~~~uqR`~~~~Gqc\_m{z~~~~~~Tm~~r~~~~\~~~Z~~m~~n~~J~g~~~S~~l~kCgL~~W~Y~[~d{~e~>~~^~pa~~~\~~~~~~~~~~~~~~~`~xy~~q~Y'~~~o~tP~f~~~~l~~g~~{{M~~~~~~z~~~c~~~y~_Q~~v~c`fNx~P~\~~\~~~w~{y|~~df~~~~~~{r~~~~Y~crt~Mdn[vn~~z~~~~~Gb\~~t~~KH~m~~~p|~~~~tQ{cob~l~G~~a~bv~~~~~~~~~~~~ev~}R~J~~~~~s~~\}zS~~~o~w~u~~]~R~fZ~]~~~~O~i~~~~N[f~~FpK}~\~~~\~~~~~e~~~b~~~~~n~~~~}izq~>bSDc~~~~~o~_d~~~xpBw~~[~~~k~bT~~~~~V~Pp~~~~~~~|~|~~W~~~WX~:~g~~pwQr[~zcn{~~k~~j~x~~~~ld~~~~v~~}~U~~lx~s~~~~~\~~f~~~r~~p~a~~ba~~A~}~z~~~~~dfd~~~m~~~~U{c~~~~~~:[~~~Pj~~~~fv~^uYg~Xi~p~~~~~~||n]~~~~~Ml+~N~~~J~ky~xS~Z~~Z~~~~[~~Z~~m~~~x~~~~~~f~wr~~~~~PclXM~~,`y\~cj~d~~~~cxz~~~~~~~V~{D~~_B~xi@v~~=~ivx~~~~~~R~~py~~~~~~=~~~~~~z~jvr~u~~~hk~~~:~~~~u~~Ye~~`~~~n~v~a~~~~~~~~e~~xqU[Vu~~~~m~_~Q~~s~o~id~g~~P~~s~~yvhH<~v~~qo~~~~~p~]h~~yx~~Z~~bT~~s~~as~~~~~lo~vhpusxl~p~~~}~~~~~u~~~~{~~~~~J~~~~vO~~p[~`yd~~o~~~Wz~~~sn{~~~~~~kl~c~ge~~~~~~Kj}~~~~iqec~~~~~~~~~~}~~^~~~~y~~>~c~I~~~~s~S~~~~~~~~||~~~|~Hv`s~WfTmkth}~~~~+5~b.~nU~~~~UU~~~~m~y~~~~~~~~Flr~q~~~~j~~~~y~~t~~~~~~r}~~~~_c~~at~~~~w~~~~~~~~~~~ksp~}~losE~~~~~n~u'~~~~~Q~~~~nj~c~~}q~~n~~~~~~x]e~~~`]n~~~~p~{~~~p~~o~~~Uy~gH^VPxw~~{~V~a~j]Ymm~~~~~rZjisuma~~}~~_~s~~~~~~~~~~uU~zdwy~w~`T~~q~aj~~~~~~~~~]~~S8X~~/~~z~~~c~F_~~g`}i~t~~~~~~{u~}~i~~~8~~~~~~~Y~~~~~~{~Lr~~~~~~x~~~f~n~~~~d~~i~~~~x~s~f~zo8~~~p~~6y~U~~r~\~tb~~~o~~l~d~~\u~V~~C~Pz~o~{~~heij~zz~~~~[q~~~~~_~}~u~~~~k~~~~V~r~H~~GoT~P~~~be~~kc~9~~~~vI~~}~~D~~Obm~Q~~{\~h`~qsk~~~~~oy~~~~`~~~~cuY~~sgC~~r~~~~~M~~~a~~IQ\tXiHCYw~~P{~~Q~~~~r~~~~Bb~~mW~~e~~~U~Y~jU@~tY~~~Jnp~yiQQ~~~~~~~Dn~~2r~A~~z~~MQa~b~y~n~S~~z~n~B~~yrvR~zW~sYX~~~nu]~~~{~]~fbZg~~NXb~~~~~~~i~~~~o~o~~~v~~~~_|~~o~~~~~~u~o~~qyQ~G~~~~~ +@cf408a47-ff77-eafa-52e1-36efed623ab2 DDX5_MANE(-),-strand,681-1227 length=562 error-free_length=562 read_identity=99.653% +TCAGTTACGTATTGCTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCT ++ +~l~dl~~h~?~~e~~~~~m~sF~~~~x~~~y~~g}r~xZbbn~~kw~]~u~n]~~~~T~~~~^~~~]~~oal(7Ie~~w~~ov~O~~St~~kl~e~Z~s~~\~|P~~?t~~c~~[~zkv~o|c~~U~~e~~~Y~~~~aAx]gB~~dP~O~~}~Gjf~~~~~~E_|~~~F~i]~~c`~~~v~~E~~^id~Y~osw~~imxt\A~~~usSi_~_p~rSg9~w~~~zo~.Sn:~~~~~}~~~ed~~~w~~~[~~~~~~~~~~~~~~~a~Q~I~~Zd~~~pO6~\~t~~~~[~~z~S}\~~R~~~~~Ry~~~~Su~~~~~~a~~~-~dl~~~~~O~a~~~~~n~~~~~~~~~~fo~md~~}~~~z~rn~~~~~~~~Su~~~y^~v~~~~4]Aewr~i~\~~~v~~~g_(~~Vr~~~~~~~~n~~~}~~~~}~~p[~_~~~~|~~x~kz~~~~~mW~~~N~x~~~P~~g~~o{~~~m~~A~h~~~~~~~x~~~~w~~~~,~~~~t~~~p~~~fN^t`re}c~}~i~~~~~C`~~~~w~~V~U~~~~~s~~R~~~~y~~}`~q~~~~~i~CDy~~~~~Yr]~~~~~~~~~~~~n~M~Y~iP~~}~wRb~~~~zi~~~\~z~L~~c~Q~~w~~^~KAL~~ie~lc~{c~O~pFb~~~;~~qu~~~~|x~ty~f~0{XvS~@~Wa~~~~~~~~~nT~w~~xY~~yjwjm~~~~~~x[~~~~wO~~D~~~~~M~~~~QJ~~|~~~~GB~~q~u~~~N~~~~~~c~tEx~~~J~~~~~tmr~~p~~~~w~~~i~~O~q~i~kN~~r~~b~~~~x~'~{o]~p~~Pquq~^~~~~dj~~VZz~H~}~~~O~|~~~~~Kxi~~~~~~~w~~~~rs}~~~~u~_a~z~~~~~~}~~\~WYhv~~~~f~~4p~~G9~|~~W~~~*~~k~|~~N~~s~~~vaL~~~~y~~{?~~~jc~~Fsgl~~qv~~~~~~R~~~~~~l~~~~~P~B^~~[~~~~~~\~~~~~Q~_~~~~~~~pec~~~q{~_SZ~~L~[Zwyu~~~{m~~s~~b~]~k~A~~k~kE?~N~X|cS~~~|~~Xj~~~~~w~{~~Z~ek~~~~~~~~~]~~I~~~~wH~~~~~l~~\j~~pS~~tDe~}~xnpj~~~zxu~~n~o~~ys~~~~~~~5vuj~p~Ygt~nj~UP~w|nwu~8~~|~~~l~~v~o&?~~$~Z]~R~~cT~~]i~Jxao~R|`~~Y~^u~X~|~Tiqe~~~@Mu}B~p~~~~_~~~~)~~~~~~CO~~}B~qkl~~|d~~Ma~~`~ +@fa5289c6-d46c-cbec-dc65-fb916f824461 DDX5_MANE(-),+strand,2692-3684 length=1016 error-free_length=1017 read_identity=99.903% +GTTACGTATTGCTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCAGCAATACGTAAC ++ +~~x~~U~~~~jn~~~~r~~irZS~k~~i|~>~`~[g~X~s~fu~~~~~d~~~o~e~~G~~_~y~d~~}~j~~\~~~~D~~~K_l:~~~~krj{~u~iT~xF~~~~~m~~~ra~j|~p~~~~n~~~T~~~~~~~b~x~~~~~~~SO~Q^~~~~z~~~~~~~4~~~~^~~~~~l|dSs~mDoE}~~~~~x~~y~~~7~~;~yr~~~vi~~~_~hPfRs_~~~|~lw~~t~~~fB~~~~[dta[|x~~jV2M~^{~~v~~~~~wO~~~?~X~~`OT~G~~s~~y~~~~~~~^~~~~~~~]~~tj~]MP~~~~i~a_~~~~~yg~~z~~~~y~~~~~~~~~~{|q]~NJ{W8~P~~o~~~v^~~jTx~e~~~u~^~~~~~w~sf~kI~a~~~jse~~go|~~~z~~fx~~~{~dQ~p~~~~~~~~SqntW~~~~~^~r~8o~~~HKal~|n~m~U~~~~~K~aA~~~r~O~~~9=~xqTz^~~~a~~~e[~~~~~~~~~~JS~~~d~~n[~{~~8?~wd~z~~~}~~~~Rn~~~Pge~~~sH^~up~~d~~[~~K~~|t~c~Jn~~~2z~~t~~~~e~T~~~~F~~k~~~~~~~~M~sf~~~~~wsoo~~~~~dsg{~~S~~~~~vd~~~_~~Zc~[~we^{~~~~~~p~~~~~~o~e~~k~~~~~M~~~~pL~~~u~~eJo~~~n_~~j~Z~~~k~~~D~q~~s~~~~A~n~\nxy~`xsi~~~m~R~Q|~n~d~~~y~~`sW~~~~5~\~h~~~~~~~~d~r}{~ev~~G~~~~~]~[y^dxZc~~byYz4~\~~o~~CW~m~~~~~~z~R^v~~~~}~^w~~~~Iza~~~~~p~a~~*~~~~~~~~~Y~~z~_~~~~~sk~g~~~ynv~j~[~e~iwdz~~a~f\~W~~~m~~HD^~}r~l~~_~cd~~~wp~HkPoy~yM^~e~g~t~~S~bx~oZY~pe~~~Zgz~~~|6~~l~~]iQ~~~~~~~~~~~p~~~ak~k2~~~n~{]j~o|~~~~r~{~~k~~~~~or~~~~~~vd~ +@5fbf8b1e-1149-c1af-35c8-5a632fe5bf44 DDX5_MANE(-),+strand,198-314 length=150 error-free_length=151 read_identity=99.394% +TGTACTTCGTTCAGTTACGTATTGCTGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGCAATACGT ++ +~~~`~I~~~|sb~~2~l~i}~ry~~~h~~~~~}~~~~~<{~~as~]~V~a~~mT~X~=~@~~~~~~~~LV~ER=|~{ko_~v~z~~b~~[~H~~ns~n~]bd~Xf~~z~XK%w~~}Vk~;Sav~~TEv~~n~~~~~~~zt~~i~qNVE~N +@898b4a56-158d-db47-2282-733d1944a094 DDX5_MANE(-),+strand,871-1680 length=821 error-free_length=822 read_identity=99.880% +TTACGTATTGCTTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGG ++ +|O~ym>Mu~O~3~~~mr~YNx~T~Z~evdgX~~~}R_~~Nr\~~~}~~~u~~`~wmd~x~~~~~_~`s~~~~U~~~~kZ~~OX~~i~~c~~gv~~~~~u~~]~~k~~~}~e~~~~ufS~~~<~~~W~,y)~^~~~~~~~~qo~~^~~h~~~~Q~O~k~~~~~b~~g~WHk~ut~~~~~~\s{Go~~~veJ~n~i{xda~b~M~~~N~e~~qs}~~[q~v]V~~~}~~~~@~t~~~~~~~~~~~~;j`d~~~I~czR~y|~~~eV~g~r@t|~~~~~~~~U|xjhP~~W~~y~8~v~t~~s~V~~~U~~~{~x~q~~o~`s~]|~~~ul~~~~Tz_~~~~Q~~~~kg2~~[1\~}~uhe~gL~{~~~_~~w~7h~~~~~~~g~~~~~c~~xp~Qu~]x~Qz~~U{~~n~s~jM|~j~~~~~yu~~~R~w]G~~~~~_~l~xm~~~~~B~}b~~N~~|~{~~~~~~~~~_~p~~~e~~Y~~~j~]~p~~~~{dU~Q~~~db^~~~~~cecf~~~~~|~~~~~~gSc~~MK~^~~~~_y~p~Zc~|.v~d|h~A~~~~sY~~~cd~e~}~d~~o~~~~~~~a~}~D~~m~~ns[H{~oL|~7~~tW~|~~~S~~~SzO~~~~lq~~~~I~@KV~o6Z~|\~s~~~~~ty~~~~~Uk~i~d~~~zi~~~`~t~{N~ng~~x~V~~O~~~~~n~v~~t~v~c~bzbP~e`~~P~~wj~aw~~~~~~~r~~ts]e~~s~k~yP~{i~avt~~~~{~IN9~~A~~[~g~~~~~~~Y~g~~x~[~y~~j~~<~~~;~~`xx~~~~~[~x\~~~r}i~~~g~~~~~~~~~ +@bad3c9e8-859b-9338-5fa6-de1f0ce117e2 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,0-2545 length=2565 error-free_length=2565 read_identity=99.922% +TCGTTCAGTTACGTATTGCTTTAGGAGAGAAGAATATTTATTATACAAATATAAAAATCTATACATTCTTAGCTGATGATATATACTTAATCAAAAAGTCTTTTAATTTGGATATATGCATCATTTCCTTCATTGTGGTGTCTCTGCTTCTCAGATGTATTAATCCATTCTCCAAAGTAGTTTCAGTAACCAAAACTGTGAAGAGAATACTCATTTCATCATACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCCAATGTGGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~`~~JsZd{~[~v~~~~h~~dU~l~~~S~~~~~v~e~{V]~p~~T~v~~~~~d~sd~Sr~~y~OzvY~{~hr~~~~~Z~@b~~~~~m~~{w~~YUMgp~~~~^~X~~eTz~~w~~~~~~~~~~~~~~~ta~~S~~~nk~~~~~~`~]~~~|~~~~~~Wq~~~~Hgb~}~}~~~~~~~~~~~}|@~6~~~~~R{~~~i~~~~~~~~4idxa_i~~~~~pdg~~~sz~n~W`~~|e~~b~~~c~o~~{]~~k~~~~q~~~ojf~/\~W~~~m~X~bo~sxA`~~~U~u~\~~~~~p~~B~\~07xw~t~~~~~~l~~~n_~~|~Py|~~~~~a{~z~~~~~|~x~w~~~~af|~ixu]uwM~dg~Ib~~~b~~U~f~~~P~~j~r~~~~~lV{zW~~}~~~~n~~~~~~~~w~~=~~~~c~~Z;~_P~~~Q~~~~~~~N~~}~_g~~~~~~~~d~~Hw~~~~q~T~va>d~`b~~Q~~~hh~xh^c~~y~ir}e~~~~~~<~~~s~Lm_~~~~~bRg~~~~]py~nT~~e~~~`^~Y~m~O~{~h~~~~~r~l~~M~c~~~f~~~d~~~S~~~p~~~~~~}~~t?~~~+[g~~~i~~~~D~~m~~~{~~~~Dup;~~~S[n~h~^a~~g~~l~b~wQ~ZmOL~~e~r~l~~K~x=~~~~Ebr~Z~]~~y[~|~~~q~L~~~~ZW~~d~~UL8~~~g~vx~^E_mF~~_~~~R~wRg~~t~~~{~s}~~~~~~rg~|~~~~~~~|~a~~S~~(@vV~~~M~~hqo~~~~~zk~~~~`~~~~m_k~UiQ~[]~g~~~3~bW~~p~~~~[Tx~~X~~~~8~~^Q~M~hZp~q~~~~~~~lpl~Wv~~~odcT~~~~}]~~~~~~~OyhF_B~[lhx~~R~~}Y~X~S~|t}dp~~f~brWa~ps~~~c~_~~~~~~~Ma~~8h~j~~~~~~7~~~r~q~R|teZ~m~~~~u~~~~~~~~~~~u\~~t~rzU`~~gz~a~\~~~~xWW~~~`\a~~~~~g~:~~~k~~~U~~fx~~]p~~~~v~~~~k~p~~~_~mN~r~~Q~~~yp~~~~U~dj~y~~w~r~NZ~~zZhv~~9~~q~~~~~~~~a~~~}t~~~~~~~c~~~~x~~~dh~kcY~n~~~~k~~j~~Bw[`~Q~@q~~~~s>~~~if~y~lSrwVfs~tdY~~o~p~;n~~g~gRkg~n~x~iY~~D~~~e~b~~~~~~7~~~ypcj~~vph|~t~~~~~~~~p~~`~~~l7~~~~~a~~~~wQ~yp~~a~~~d~~z(~~lvfLYPv~x~~~~~~~om~~VXd~n~~_~^c~g~~s~~~~~c~v~~~V~~~~~~~JkZp~~v~~~~aeQ~~~~m~se~~~~~~~~~~~r~~]d~~~~y~x~~~a~~~~~~~~~~~~~~~M~~~~Wq~g~e~~rv~~~}~I~~~~~r~h~~~~Z~~~~jP{~~^~~~~z~~~vQ~~^~~~c~~~cJ~]O~~~~zo~~~~~j~~p~>~~q~~~rv~~~]W~~~~~0~~m~]~lRX~~~~~~z~~~at~~~~~~]]g~~~~~~Ui~~~~T~dmv~fv~~q~G\~~~~m~||y~~DT~~~~e~~~~~|[~yi~~~~~sk~~f~~~~~l~~~y~~~~ko~u~\~~~qh~~iu~m~~K~~~~t_~~vuou~u~vsw~x~x~~H~Q~~~~~~~n~~~~{\h~~~f~P~b~Y~[~a|t~~~l~e~~~~mO{~~c~~~I~~t~~/~i9~g~H~~~W~~~_a~]pRt~~~|`~f~~~~~~~~rh~|~~~~~~~~f~~~~~xdI~z~pe}~sxx~~~e~~~~~~~~~a]~o~w\~~ft~~~~~~yx~j~V~b~~m~e~~~~v~~y[J~\|~fi\U~z~W~wZ}y~~~~~~y~~e~WE~~in~~~~~~~z~y~~kX~~VsQ`~~Bkd_inH~~~o~v~o~fo~Fin~`B~~~fv~_~et}~ujkot~U~~~~za~~~~~~~~Q|P~~dx~~~~f\~U~~~~~~~y~kF~xws~~U~t~Nv~~~~oU~e_~i~r|w~w~a~~b~~~~~z~|~~~xt~~~o~~r~gp~Q~~~~w~uqe~s~A~~~~QU`{~~B~~~~|}gS~^~~~~~~~Xy.~~Z~h~~~~~N~~~~h~~~bZ~~~~ZIx~~~~~G~~~m~~kx~~~U~nL~~~~~c~~~~O~~^~~i|w}~r~~l{~t~o~~~z{X~z~lb~~gpj~~j~~~~~a~\~~Q~~~~~h`~~~Hm~~~a~~~y~j~~k~~h~~RhyI~~p~X~~alZ~~ +@19f55ce7-2c8d-6995-d593-b8c24f02d8dc DDX5_MANE(-),+strand,3339-3684 length=368 error-free_length=369 read_identity=99.739% +TACTTCGTTCAGTTACGTATTGCTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~~~~~~~~~~u~y5Y~qp~bl~P~~~~rn>~~m~~VYn~~o~~~~~i~_~~~l\\c}t~~y~a~~~_o~K~c&XV~gg~v~~~~~~~l~~v~~~w~R{~~~~b~~~~ya~~~<~c?~~uc~r~~l~~L~~~cA~uv~Y~l~~~Px~~M;u~~~nnu~{[~~~~~~~~k~r~n~n{~~~oqy~~~w~~~~L~~`~~~~~~dH~h~~~~~q~~W~~~~~~~~~~~~~Zr~~~~~~~4~~~y~`~~~Y~~a~~~~~w~iVZi~~txs~~~~~~px~~~~~_{~~~~~~~X~|?~~~Hqk~W~=~LTy~~S~Y~rd~~T~~{~~~~~~s~~~~~y~~~~~~S~~@pX~~5u~U~~~~~~~~~~~~hcW~~~~ +@c71cb2ab-e14f-8626-2588-9d169ae7a677 DDX5_MANE(-),-strand,2891-3613 length=723 error-free_length=722 read_identity=99.864% +CCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGGCG ++ +~~~~~h~~~~y|~'bYM~~~~~~z~~~^Frk~en~~O~pQ~v~\~y~~~w~sF}~Wh~~~=hc~~~B~~~~~~~M~~~{~Y~~Y~s~~~|~O~{fp~~M~[~{YB{~~~Cm~~~~~p{~Z~t~~a~~kk~~)~~g~r~{~M~~~Px~o~~~x~~l~rL~e.~c~k~f~`bxt~~wu_~~~~y~~~~~t~S~~o~~~~~~~S~b~y~~~H~Z~~yh~Z~tv~u~~M~~~a~eT~~~~i~~|~~~er~~~~l~~p~~~~oT~k\~u~wC~~~sc~~~~~~~~zEY~~~^`wc~s~~~~~~~T~~~Z~~g{~~Z\~ae~~~~pU~>y~K~}~~WZdnZ_~~u8~~l~fl~~~s~q~HX~u~e~V~~Ch~~W~V~~~~~~~~o~S~~~|~~~ZP~ST~aX~yg~G~jp~}T_i~~a~}Ub~D~~|Kvd~~6~~\~n{Uza~~~~~s~~~Z}~~~j~zw~w~~~g~r@su~R~~vh~~h~~~~jq~gUEzgR~=~~Y~~~zh~~~UK~zPo~<~~~~g~~~~TY~|~T~vPW~~_~@~~b~~~~b~~~~E~~md~~]~3~~~r~v~^{~z~bh~~~~m~dux~`~~py~q~~\z~~~~~~t~~~~~~~~U~~w_e~VP~]f~~jY~~~~o~}b{~XSZ~~{~{~~~{j~~w~u_~\~v}J~y~~~R}d~~q~x|~~~_eWdN~~~~nU~dZ~{~^~~~m~{~d~X:[c~t~T~~~~R~id~j^~%z~; +@f8c1e576-1780-970d-d4df-ed2468633ef4 DDX5_MANE(-),-strand,3646-3684 length=38 error-free_length=39 read_identity=98.113% +TAAGCTGCACTACTAGAGACCGGTAGAATGAATGAGGT ++ +~~n~q~~~~r~~~Q~`y~S~~ib~WeRM~~~~m~~~c~ +@b0a0b388-e31f-124a-ce38-0f8dd09fd07c DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1973-2545 length=582 error-free_length=583 read_identity=99.832% +TACGTATTGCTCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~hM~~l~Sjn>z~e~~~`~~~~~~~~]~z~~~Q~~~i~~~S~~wH~~~~~~~a~f~~~~r~~gzeae~}~~X[u~~~~~o~k\~~~~Qk~~~X^~z~~~~~~~~do~bez~Mb~nc~O~~a~~~|~~~}f~~~~y~~~~K`nl~Zo~~~`~h~[jJc~~Kw~~~xm~E~~~~utpit~fm(~?k~{~~~~~A[~=msx~~~~~~](}v~~~~~?Y~~{~~p~ry~B~~~~c~jfV~~v~e\~~y~~dGJ~SA|~a~q~~~Y~~~~~]v~ets{~h~}~~~wv~f~}~`~~~d~x~~w_~vS~~~~m~~m~~`g~~~~~~ft~x{3~~M~|~~~~~l~_~~~~u~]~Z~`i~e:~~:[DbmV~V~;nl~m~cs~~~~~$t~~~~~~~U~U~~~[rm~o~}\_~~~l~~~szRO~~~|~~I~~~v~~To9~~~s~~n~~~hk~~~~h~~~~~i'I~x~;~~f~k~~~@~}Vr~zc{\~~~~_~~~~~]~~~~nh~Be~}y~~~~~wy~~~o~~xs|D~~~~u~~r~~~n~~~~~Xy~~kn~~~~~JXXW~~z~~~r~~~~~q~~~~~mh~d~M{^~~}~~~~~n +@9fcfd9b5-ab5d-ac84-2c3c-e1284186a5ba DDX5_MANE(-),+strand,1116-1756 length=639 error-free_length=640 read_identity=99.847% +TTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAA ++ +~z{^~~DfmU~~R~~~b~`~\T~~~~~{~j~~Inwz~[~J~~y~~~~~~P~Zp~u|[c^~~s~<~~~~?~ai~~Qt~|_~~~~~s~{,l~^~r~n~z~~B~q~o^r~~~U7~~~~f~q{~I~~z~~f^~~S~vP?N~|~~~~up~~~P~~~y~D~@~qW;~_4~rb~~cRTB{~~~r~~~~I~cX[RaBc~TP~~~~~~~~c~r~~s~Wp~gkqQ~~~~~~~~~~~~~~~~]y~rN~T~cx~~|~~~~ob~g~c\~po~~~_~~~?w~?an~~~a~eUXrR~~y~~~~~~grtcW~fh~~~q~u3z~hl~~~U~~~~~~~~~~~~~~~~~~~{~~LjV[~n~~{~p~~~v~zm~Sqs&~W~~l~xpv~~q~~j~Wu~`oo~~]~x~~~~~~~~P~U<~~~~~q~~~q~\~~io~~~~j~dQb~~~~~~r~G~v:~G{vzg~~~p~~]c~~@~~kx~R~~?~_9~~~O~~pZ~~~~tbr~_ss~s~W~~~~f~~K~~\~~nV~~Gv~~e~s~~~~~~~~mX~r~~Fzh~o~~~~nv~~tm~~]V~]~~O~`~~~~upme~s~~k~~~~~x^d~s~~f~~Q~~~~~~~cU~Py~^m~~~~Qe~~kbdo{~{~~pv~Q~x~uHto~~i~{^h~~vuba~z~v +@0c9a675d-2b8e-f08b-05f2-eb492ca3c395 DDX5_MANE(-),-strand,550-3684 length=3162 error-free_length=3162 read_identity=99.748% +ATGTACTTCGTTCAGTTACGTATTGCTAAAGCTATCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATATATAAAATAAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTG ++ +~~~y~_b~~\V~~~Mtj~~U~A~~~~u~~~Jp~~~p~0~~Cu~X[RB~~~~~~kN|\k~~~~~pN~~pkp~s~~x~~~~~~XR~~~~pzy~~~iJ]~i~C~~~Whx~~~eItn~~J~~~x~~p~~eiI~z~i~~ac~|G~Sh~zfx~~~~qo~k\~f~~~Xu~~~~x~~~~qV~~i~zI~_~~~~~~W~l~~~~~~J~`~Qq|~[n~~NWj~w~7~g~o~x~b~~d~[y~~^MM~Or~~f|]~~~~~n`~{~S~Ggxn~~~}~b~N~yl~~~tr~~~~m9~b~t(~~~~AS~~~q~~}~~~tqr~~~f~~v~~}[]o~S~~Jn~~?~~~MAc~~~T~~~Aa~~p~~~~~~~~d~~~o~~j~_~~~c~~~wu~~n~~o~~~_~jcIvu~d~~~~~m~~~~h~~b6z~qHiCSVx~ml~~~}{NX~`oZ|~~n~~~~~~~irm~iqoS{q~~~~t~W~Q~~]7X~3~~}w}J~~~~~~~Pxf~~~WQ~O~~i~~~~}~VX~>~~~~~l~W~4~~~tr~mq~~~~~u~~~~}~~|m~w~fl~~~u~e~~Qz~~~~q~~f~j~~r^~z~~~~~~~ig~_~~~~n~~~F~~~~~~T~m~U~~~~~~XpkNy~w~g~rve~~~~u_~{U~c~~z~z~~~c~NO)L%~~~~gR~~NYd'qNy[~V~~_QQ^~~~ip~M~~q}~W^~~~n}b~|~Jt~~~Zb~s~~~~^~n~f~~~W~~~~~nug~`~~~~S~h~~~cKR'K?Q}~\~N~x~~m~~b~ut`?u`~~Xwm~~~g~~~~~~~~~bp~~s|~~~MB~~~~~_~~kf~p~~~~~~}a~~]~~qs~ylt1~~K~e~~~~zt[~~~i~h~~~u~j~~~~hs}~y~~pt_~^iS~~FxfG]~~|~s2^~~~~~?~~~~~t~~~~~~~e~~a~|~e~~q+~~~~~~~{~xo~c~Iu~Z`~~x~~e|~~i~e~zS~~~~uv~~\~k~S~~~^N~u~~h~~~~~~itks~~s~x~~U\M~~M~~m~J~~~w~~q~mj~j~~O\jwV~~}~~~~~~~~~~~r=~qct~9~~~~~~~~~B~M~~L~~X~~~~~~~~~rd~~~qLO~~p~~~~~_~V~V~~~S~~~~`~9H~l~~~~~a~~]t~u\~a{R~~~a~~~rx~~~~~~~~~~~i~~~~~~h~~~lit~r.~v~~~pgie~~~~xm~i~SrhVe~p~|~~j~Ma~~~~~~~~~~~~~y}~~zG~~t~sW~~~~e~~~~vAdB^MII~~~~}F\~~~Z~~~~~~~P[~h~~dX_~nsQ~~v~X~~~jxp~~en_T]~B~_N~c?~h~~~i~~~~z~~B~dp~n~~~}t~~~~ww~y~~n~vV~~~~s~~~~~~f~~xos~~KT~v`~|d~zbh~~~w~^~~~v~Yorh~|~~\lr~~~U~}~Td~yV~Oy~Yh|~~~~~~i|~:g~~[~~v~~~~n~|~`uma~~c~~Tgr~c~[{q~|~fw~ng~~~{~~~~TtFyl~h~qln~~eD]m~~|WT~z~~~Zb|~~uvPuuU~y~Uej~ou~2~y~ls~>d~~~{~~n~o~~~~~y~~~?u~~~~~~~~~~~k~_~w~~~~~~]~i~B~~~q~Lw~~~r~l~jo~~~\UN~~~~Y~fVo~~~~~d~~iq0F~~}~~~Cyp~GE^~~~~~~|dv~~~k~y~~~~b~~h~h~~5Y]]p~f~o~~=N~?~~~~&u4~~~G\~`U~RU~~W~hzw~O~~~i~~~~djc~~~~~ki~~{~~~~[wd~~Z\t~~~X~w~~~VU~~~k~p~}~~c~~s~~~~~~~D~Qh~~~V~w~~r~wyi~~Mj~~~t~~b{~s_U`{~~~zA~e~t~xc~z~~~~pss~~~V~~~]~~Qd~~~fL~~W~~y~^~~~~r{~e~~X~~~pf~`~o~Gk~~~~~~~vp~~}~~~~Gr~~~}~=~j~~Q~~~L~~~~~~~~~~|~lw~~eJ=~~~W~~~0~o~V~~`n~~zdx~e~jryg~P~tNp~~th~~~~~~~~VO~Hm~K]~i~~kT~~c~~~q`~g~~|~~~~~Vv~~~~~~~~O~~~d~~~~~~W~~~~~~r|N~bphQ~~~rj~~x~q~U~Rp~~~~q~~h~~~~~~o~u~~Q~k~~r~~~~`~~~~~X~gu~~f~~~Ul~L~d~[B~{N~D~~~~~~~r~~~~~i~t~f~nr~|~zf~|~r~m\]z~kj~~~~~~~y~~W~bo[~~^~~~~~~V{~~s~tz~~O~hX~]fkg~~~_o~n~~~F|~~q~mn~~p`~O~wy~~~~\~EXc~~~~~[~x>a~{~~~~sV~~{Y~~~~T~~~~~~~i{~~~~Yd~eKnOIi~{N~~V|~~G~qyz~xzU~~z~~x~~Z~~~~~~~~~~~v~~~d~~L~~~~]E~~t~~q~q~~~~Y~~~~I^~~|j~~~r~~~|~~sZ[m~j~l~~Dt~~~~~~q`~~~~fh~~{~~~}~M~~ty~i~~M~LR9~\~~~~~qV~_x{s~~~c~~~S~q~7G}|~Tm~~c~~~kvo~~~~~~A~m~~~~~~~|a;M~~~wU~h~~x~~d~~wEa~~nu-~~v~~rn~~~~L~k~~dIY~f~u|[Y~L~wjN~~t~~yp~~~~~c?~~~\F~~~~i~~~~]~~~[~r~~~~~~Xv`~~~~~~g~~Q~p{~~~T~~~-U~m~|x~VBzT~~n~zh~~~~~~~~~m~}~~bo~~|~~g~qes~fViW~~~~r~m~~f~Qe~~~~~~~m~XNqH~~\w~~~~~~~~~dy~tb~~~L~~p~p~~~y~~~~J_~~v~Uv~5a~~zB|~f~O|~P|~k~~o~i~~x~~~~~~~~~~p~y~)~~~ln~~p~c~r~u~~~mv^~~~~~~~H~~~v~~t~~\Q~i~tx[][~~cmfo~~l~~~p~r~~~~~~cZm~~~~H`~^~sx~~y~i~|~~f~~~~~~~~~~~~~~M~~k`~c~~~~~~yM~~~T~fP~~h~J~~~x~B~~|~~~~i~~Ru~~~g~~Ht~Mu~~~~~~~q6y~Z~~~F~s~{~v~Wd_~I~~~]~~~~~~~~Vxf~~~~~~~~n~F~~~~~b~G~~~{~~m\w~o~bxT~~~~~~VRwKX~~[Vz~~~~~~~~g~lf~`~>~~c~~~~hgw7L}~p~\y~~6gY~q~~~~~~l7Nq~~~~~~]~~~~i~^]s~~J~h~~~~~~~~~~~9~d|q~~\]~~~ze~~~z|~tL~~j~~O~c~c~~~~~~~^x~^xH~~~~~E~~z~M~j\~xT~M~l~~Tz~~c~wT~Q~U~~k~~X~w~~~3~~MO~{~~map~~~\~~P~~~a~~~~ob~~~~~~~~\d~~~ssh~h{~~~~~~~~~~~~~~~~^~~r~~}b~~j~~~]wN~~@~~~wp]~~Sp~~~PO~~|N~~~~~~~~~~~R~~~~~~~~~qV~`X~gN~~o~~~u~~s~~'|~V~~z~iJ~~~mj~Tc<~s~dqh~~a~~~f~}~~~~t\~>Q~z~~~h~iR~~~~Pz~~~~~j~~~VNbv~~~d~M~iK~~~_~~j~~~~~}x~pl~~Y~~~~~~~~~~P~~X~LLVl~o~YNl~~k~=~~otk~~n~b~~~r~~Lw~]~~~~>Sm~e~a~~~u~~Z`~~R}z~~r~~~yE~jVpr~~~~s~~nu~~~cjg}~zv~W(~~~vgT{~~~~~~~~~~~~u~~~j~~~~na~~~~t~~~f~~~~~~C~~~sz~u~~~~~~~~y}P~ZCn~~~~~~d~~`~~~k~~~~~l|~L~~~y~~_~~~m~oQ~~m;Hdx~{0e~~~~z~~~js~~~~V~~~q~~~~c~~~'~`~~~e;~~~~~~~~N~~~~~~~a~m~~x~Jh~_~~~Oo~|~x~~~~v~~T~~nie~um~~~=E`~~~~~~meo~~~c~cw~:~~hy~r|~g~~}x~~j~p~h~^T~~`~~~~~d~~a~~~~~j~~c~~~~~~t~~~m~`U~~zzyA~z~bbz~~^~f~uy~Ejd{~~~d{~~}e~~~~~~~~t~~~~~4~ +@d0d5813d-b533-de03-130c-50406cded62c DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,202-858 length=683 error-free_length=680 read_identity=99.570% +TACTTCGTTCAGTTACGTATTGCTACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCCAATGTGGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTATAGATAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACAC ++ +`~~~~~k~~u~k~~~~~~~~~}`~~u~d~~~tj~f~t~~~k~i~l}~OP~b~~~z~~ZS~~~~~~{k~c~~_~~,s~i~~~X~c~~~~m`~t~K~~^~~~u~~t~hs~~~~ta~~~iq~jU~l~~kRX~~l~w~`[~^~~n~~~~~1~~~y~~~~b~~xs~~~~q~~}]~~~~~~xQ~~~p~~~y}~~~~z~q~~~`~`?z~~~~~Q~~~FW~k~~~~~.lo~~A~w~~~`b~~{~y}~~XKHTXO~~~~u~~~~~~~~~Oj~~~~v~~~t~~~~SO~~~~~~~~~~~i~~~Yv~~-~4fl~Xsbo_~~Bp~P~ev~{~}w~s~eYx~a~~~~mk_~~~~~~~J~~m~~][~|SO~W~LP~|~~,x~zn0ySp~h~~e~<~O~~P~~~~~F~Ip~~s~~~K~Vp~i~ZL~~~v~L}~m~~E~~~~~~~v~~~~~~~~~TA|}rsw~~~4i`*~INJr|~~B~~Xi;R~~~~~~L~Zy~~~~~l`~jy~cV~o~~~M~~fs~~~|p[~~a~~q~U~~~fuy~Gm~~f~~~~~v~~~~~~ycg~mE~~~_~z~6|~~~~v~~~~\y~~~~~~Z~r~~t~~~~~~~~I~~~~~v~~~~a~H~nj:~~i~~i~~g~`~~su+uX~s~wq~~~~{~{a~~~~A~~~~~~dE~~rpME~~~~~~2~_~j~~~f~~X~~~~~jl~SlOd~ +@60c210a5-7947-007d-d592-a1a346b4f56b DDX5_MANE(-),+strand,1997-3155 length=1173 error-free_length=1173 read_identity=99.832% +TACGTATTGCTACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCGTGCAGGAGTTGAACACTTCATAAAGATTTAGGGAATACAGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCA ++ +k~~~~~`c~J~df~~m~~m~ap_~QdK~~tu~Yk~~R~~~Z~~lNy~~[[~~~j~~sY~q{~~~~pe~~m]~~~~~x~~i`~~sg~~X~f\F~w~~~wj~~lX~~~~~~~~~k~~U~wXd~~^JH|K_\OVR~bp~Gy\h~~~a~~~~~~~f_~~dqb~tI~an~v~f~uX~u~^~~~f~~~z~W~~~~~ogot~~~~~~gw~|sd~~~~I~~f`~m~k~yBiVdNd~~~~~dH~u~~~ge~~~sXX~~Z~~~~}~LqY{~Xw~~~\~~eS~~~~gZ~~WHz~^~~z~S~~TX~~~~~~~~~~~~~Pp~t}iY~~~F~~~H~~~~~~~b{_~~~~~b~z~~~LK_~k~~~~~l~~[W~~~G~~~Ip~~~~S~s~~~~|RwZw~~`=ir~g~~~~~I~~~~~e~Q~~LM~x~aN~Y~gX~h~w~~fYzr~~d~h@o[~C~~~~M~M~WArW~~a{O~m~~~aM~~]~~;~~~_~~ti{Bc~o~V]~W~~~<~hd~~~V~~~~~~~~~~~w~eg~~~le~~~r^~~~`~~~~s~~~~~~oq~pH}A~~_m~~_~~~~w~~~~~~_u~~~~~~~~cj}~~~q}~~{_t~}}~~~;~~~~~~Vz8~u~t~~~J~~~~~Q~S~f~~~Z~~~~~~@Gj~l~}~zJe~~~~~{~~^~~~~~j{p~~~~k~~y~~u~~I~~~~~~~~~~~y~~~~~~^~~ba~x~~~~W~~i~~s}c~~h~uUuJ~f[~~}~Z~~~~~Qn~~~~[Q~]ax~p~U~~T~q~~K~~~~~~~E|~~~zo~V~d~~~~@G6k~k`c~qbJ}~R~mr`n~p~_~~_~~T~~~^y|H~u~~ZK~bgbA~~~x~n~~n~~z~~~~~~h~w~m~K~~Z~~)`|~m~~~~t~~~^~Qq~~dl~Ru^Wtt{~~`[pxkt~p\f~~Xa~~~O~~h~m~~~V~e~\u~g~~~lW~~~u~~~~~~q~~~~~P~r~~kq~z^~~ZX~~~lq~~~xey~~~uNx~~`w~~p~~p~~~~D~R~uv~l~~a~}~~_~w~}Lp~~~y~g~Ps~~j~~]~~~~~~P_~~~~~~~~d~~~~~~u>~y~~ydx~xuvlBs~y~~t~g~~s~~~Oe~~~u`k~un~~~zRg~5v~U~H~}~~~~~~~`~~~\~x~~~t_~~z~~~~~~~{~p~x~n~~~o~~~{~L|n~\~~{~y~~~~V{~~~~~~~~~O~A +@dd7a65ac-b334-0875-8cae-fb79bccbf676 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,2315-2545 length=231 error-free_length=230 read_identity=99.592% +TCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~q~~~xQ_~~~~~~~~~h~j~/a{~c~^ki~Y~~~~s~~rl~]~`~~}~~~~~]v`jg~Mc~t~~tx~~}c~||~y~~y~\~~~~[]~~T~~~tt~~~HLZ`~~~~~~m~~~]chH~qatr~n~dS~u~~O~~k~q +@289677d8-f6ae-45e5-9ed8-7a6c6e56fe20 DDX5_MANE(-),-strand,1789-3269 length=1504 error-free_length=1507 read_identity=99.803% +ATGTACTTCGTTCAGTTACGTATTGCTCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTA ++ +rruy~t9~~~~`Qz~~~WsK~~e~~~~VdeTd~|~~h~:~~kp~~K~~~~~~UdXB~q_S~~^m~~~~~q~Ku~~~~~~~~~o~~~~~o\~~~~~~q~a~pg/~~J~~}~_s<~~~~9~}~}cyJK|i~~x~~~q~~dg~I|Y~a~de~ra~W~q~~~~|~~~N~~~F3f~u~~h~b`~~UtJaLX~~~A~~~2~~~~~~~}~~~~Ujb_~~~~~~~~~o~cV~d~~~~~D~~~S~~~~~~~~~~6}~~ey~~i~~o~~kC~d~k~~~w~~~~F~~t_yd~us~|pk~}n~~~~qlrb5v~~~~~~{lp:~~~Kt~~p~~~w~~~~n\~~~|~~[~~~yp~}~~~fcv~~Eg{~Zl~Oz~Is~x~~~}ee~z~~rz~~~~~~~~o~m~~~~~~~~e~wy~Y{~~~~~~~~~~~Q~d~~W~~~~~j~ss~w~~O~~`~~~l~~mTa~E~~~~~~~~~~{~p~x~o~j~t~~~r~~~j|~~~~k~~~SZ~Xg~~~~~~~^~i~~~^~sk~Q~~~~~w~~mW~y{]~~k~\~~~Zq~~~v~n~~~m~~u~n[\~~~~~~~Wcd~~~nq~l}~~~~~~>~b~bg~~~q~~~~~~r~p~~`lb~~~~PJk~H~~XMm~~k~z~~z^~K~z~~~~wc_d[~@~t~~~b~v~X~~QmM{a~~r~c~~s~~|~c~Y~x~~~]~~~~S~~C~~`~~~x~~sh~6~~~~q~y~~~~~y~~~~d~~~~^~re~~~~v~~~pY~Bd_~g~~~~U~}~~oVq~_~`~P~~~yq~}~@~~~~~Y~~~~~~~Hb3{a~~~~~_~~~b~~o~~[\*|W~~f?~~~~rd~~d~ODwb~~jy]~u~r~~~bp~~~~b~~@X~~~X~~G~~p~~~~~~~~tvfURrhi~~~L\$~~~~z{W~~~~~~S=~~Oc~_~~f~V~~~p~~`r~|~dgRUr~~|~~~?~~~?~~i~~~n~~kW~w~~~~u~a~>~~z~~l~~~~~~WU~~w~;z~~~~sdq~ln~vd[_~~~~R}c~~~~~~~~o~~]Y~qP~]}~}~~L~[V~b~~m~]~~\~~~~~^~~~~~~Oz~~\~~R~\~M`~Ej~~~Pxfq~w~~~~~5~rK~p~~~~l~~~mm~~~~:ok~~~Glali~~~~e~~~~~~~w@K~~hr~~~~yi~M~k~~e~[~a~~j~~~Z~~~~~\p}~_u~~c~Y~~~~~~e~sWzpa~}~~~~~~~~~~G~~~~~y~~{~~~~|~~~u~~~pN~psC0~~mezi~~~~~~j~~~~nP~~~~~~cp~R~|~m~~k~~~~~~~~~qS~r~~~S~~karvU~~~z~s~~~~~y~|qyRhonQuz~~~ur~~~prn~j~~~~~~T~~`wsj~c~Btr~1~E~~jtqj<\~~]H~~d|sa~~~?~~z~y]~C~m~{~~im~V~Cr~~~K~}~TE~s~o~~~k~~c~Gq~~~YY~~~o~~~S~~~~~|~~V~~w~k}~]vs~Y~~cCHf~~v~f~s~~Gk~~w~~hrmsn~~~~ws~i>}L~~~l~~~qxy~~xi`~q~~~~`~nsx~~r~~~ +@161e2e54-dd69-8a5f-3665-5cb361aca363 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,2207-2545 length=350 error-free_length=349 read_identity=99.725% +TGCTGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAAGCAATAC ++ +~_n~~~~w~~`~i~~~q~d~~~f~~aH~{a~ga~~~~~~~u~~d~{~~~aH~S~~I~~~m~i~~ytpx~H~B~~~~~_S~~cR~~~QLe~~{Wv~w~~~~~pkup~~~~~~zYzqq~b\~~~qm~t~rT~rr~~~~~~e^~~~;?I~~d~~~}~~~~X1ft~~a~Q~k>~~r~\~N~~*~~_w +@6de5bf8f-c3d6-1307-7730-52b673dcae0f DDX5_MANE(-),+strand,2055-3286 length=1259 error-free_length=1261 read_identity=99.843% +CGTTCAGTTACGTATTGCTCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAGCAATACGTAA ++ +~k~~j}r~~~s~~~;Gk~Y~~W{d~y~m~~~\~f[~N~~~t_~vd~~~~~~~~on~=~qp~}~g~@~t~~~]~~u~~~up~y~~~~~~X~~__z^~~ldJg~j~hq~zl~|~F~~~|mgR~~H~~~~~~T~}~~~~~gYds~~~~y~~~~~~~~~pmo~~_~J}e~if~H~lLsk~~~~~~~~~~~9~~{tqptVgW9fnSq~n~~~f~~~s~~q>j}l_G~o~~~TT~oa~r~~~~~L~~~~~\Uv~~wV~~~~np~{~~fW~H~~e[o^~I5~b~~~l~~bZ~~q~~~Cj~>l{iC~q~~e~h~W~~~~~~~\~p~p~~~~~~|~~~l~~q\r`~]~kje~~V~P~s~~P~~dg~~~~h|pkk~p~g~~~~qp~y~~S~~~r~~b~~~~~~~~~~g~~~w~J^~s~~~~qt~~AN~~v~~>_~~c~l~^~xz~~]hx~~~T~f\~~~~~~~~~~~~h~~z~>zk~Kgk{~~~N~g~q~v~\~~~~}~~~~~~~~~~~f~q~~~f~~f~q~~~~l~{xx~~rvf)~~~~j~~~~~~~~~`~g~}~l~f~}~~~Ju~o{~~~~l~x~~se~`~|~~rl~ZcH]~r~~=~~~~ds~V~~~w~Zn~~]z~~~\~~~W~~L~~wuX~~~X~~es~~`c~~~~~~zU~wo{n~~~~~~x~Oo~~~}~~~U~~~~ryi~~t~qd~~~~~~~~jI~l`~~~^v~~t~W_~~f~~~~~~~~l~~~eW~qK~~~~W~ot_~~m~~~kdce~~~~~~v~~~~~~~l~~~wi_l[~~j~b~d~~{R~^~~~l~r~~~~p=~rQn~~~~~~~~A~~s~~~Xi~n~~~~~~~U~~~~~j~~~a~~hh~~;~`~gc~~~oY~6ude~~~~~~~ghp~~~~~~t~~~~~~~~~nWR~t~[~~~~s~3g~m~gj{Y~~H]~~x~~~|~~}~~~o\e|~~~}O~~U~~or~h~~q~b~{~W~~uq,~}YgJY~~~@juf~~~}v~Z~~e}`~~~~`~~~~||~~ks~R~~k~~~m~{~~%~~O~|ijV~Yc~~~~~~~~~~~JS~~~~~~b'}[~~I~~~~~~kH~`Z~~_~~T~{~xi~}~~~~~~Ke~~K~z~~g]~pw~w~o~Nu~w~q~s~~T~~y~~~~~jx~q~~~e~x~~~V~k~~~~~~m~~x~u~~`~~~~~~~~hb_sw_e}~~~d~~~~p~~eYsXD~}~zR~~~v~~~~~}~~~v~~~s~~}g~~~~~~Vj[k~dap~r~~~~}~~~}~}~Z~ZHT~V~~~Z~~~~2~[;~~~w~A~~R~~~x +@d14e385a-07b5-3015-9531-117ef2ddb7fd DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,820-1799 length=991 error-free_length=992 read_identity=99.901% +TTACGTATTGCTTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCG ++ +~t[]~~q~~~YOdO~b~~~~j~~~~^~Z~r~k~|Wx~|t~~R{~~~~O~}~}~~~~Z~RQ~~Z~\JA~~~~~5[~j~~^8xz~~~~~~~~Uyh~~~}~~~~~_~x~~qy~v_>T5~~s~b~~~~~s~~~i~~~s~~L~wG~~uH~fp\Ot~~_~Jxi~~h~~io]~r~Hl~U~~km~q|~KJh~~~~~nX~~~~~~~df~~~u~r~~~~a~~~~~\~d~Qq>~d~~~i~w~sgc~~~^~~~v~~nlX~h~o=}bP~~~~t~~~~~b}~`~ +@5d5f7307-f89e-f230-7493-7ca8d5208cc4 DDX5_MANE(-),-strand,394-736 length=360 error-free_length=361 read_identity=99.733% +GTTACGTATTGCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTGAGGATCTCTAGAATTCCCTGAATTATTGGAGCAATA ++ +Cd~UH~Z~~?~~~~~~~fQv~~ve~qc~~vq~~~~B~eL~~C~~~~Aq~~~~d~y]~~~o}`~~z~~~EcS~~~p~}nw~^~`~~pl~s|~u~~~~>[~~{~~~~~y~B~~~y~~~~~oK~~:S~p~~qN~g\~~~~^:5~~ot~t\~2{~~WhU~~tH~~~s_ny~z~v~~r~~p~~~~~~~~~}\~~~~~Y~~lp~~\~~f~~|~~H*~~~;__m?~_qcgr~~r~~T~~~z~~tu~~~~j~yc~~~~~~~~w~~~|i~ra~~~~~~~S~G~~|m~~S~mhhD~~jW~~~~T[qQ`f~F~~~~~~~~\~|~~~~]wby&~7%~m~~~{S~~b~}~^V~~~SQ~l~pjp~~Z~~~~~~~ +@51adde97-b4c4-0bae-89f1-ca73f9138cd1 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,0-2545 length=2543 error-free_length=2546 read_identity=99.805% +TTTAGGAGAGAAGAATATTTATTATACAAATATAAAAATCTATACATTCTTAGCTGATGATATATACTTAATCAAAAAGTCTTTTAATTTGGATATATGCATCATTTCCTTCATTGTGGTGTCTCTGCTTCTCAGATGTTATTAATCCATTCTCCAAAGTAGTTTCAGTAACCAAAACTGTGAAGAGAATACTCATTTCATCATACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCCAATGTGGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +y~~~w~~~~th~t~~~{Q\~nj~~S~\~~t~y]~~~nRB~`~>~{~~~b]K~~~sp~~~O~~~~~~~~oui~sQ~^l{~t~ha~~~}H~[~}~;`p~~~~q~~[~t~k~~r~vw~~~~j]nE~t~~h~~|~~F~~k=k_dj?_~w~F~P~|x~~}{nL~p~U~~N~~_s~~l~~~_&<`m~Z~fJ~~kcM~NO~e~~ko~T~>~bjH~~Xr~o~~~~~~m~>~~~~~~wc~~TcO~~~~w~~~~~~YbK~~Sv~u~~~y~~~~~Y{~vm~v~k~~~~l~~~`~rgqhdi~a~~~~]~~M\~|~~~b~kL~eg~Cb~tbrvr~@~tk~q~~~~~~]~w~~r}~~~f~h~~~v~~~~[q~q~xmr~~W~~~z~~~~~~`~~~~6m~g~~kn~~sn~~~hyXi~~~U}m^~s~~ipqr4~or~~N~hL~i~~|~~~~~~~~~KU~;F~~d_\c~bV~Zl~b~~~D~jm~~~~D~~~z_W~~~~~|fQ~~~~d~~wnS~~{i~~~~y~~~d~~^~sI~~bx~q~~~~~~i~~ru~~~3j^~La~~I`=g~zp~@~I~Wg~~*p~~~~c~~~t~o~~a~x~l~UgQ~~l`O~v~~~~]om~^~m~Ut~~~~~cx~zk~y~Q^}~~b~n[~z~~~~~b~bfJolS~~aw~~~~~z~~s~~~c~~V~Mm~`e~~d~Tt~p~j~~N^mb~~~[s~~~~up[~~s~o~~~p`kr~~~}~~z[d~~~pU~v~_~g~\~ui~Tr`~~~|[^~d~h~~|c~~~ep~~~~~~X~~~~i~~}~~M~~Tt~~~~g~}~i~~_~~~}nmC~~~~~~ol|j~~u~~F~~~~oa~~V~~~~~~rc~~~i~~d~A~N~~~n~~~M^Y~y@~s~zo~x~~vp~~~~~~~h~e~~\~~~2]~{~~~a|~~f~~~{{~~~{ix^~}~~~=f~~k~\~n~~lf_W~~`~m~~R~~~~R]~~~ho~~[b~~~~[~WW~~~~~nT~~~~~p~~~i~~f~~~{~~~wY~mWq~~md~~~~_~~~k~~~~~~~~~~k^wyb~\~~~[~~~~~~~l~\~~~~l~~~~~R~~N{~~~dkuh~~N{~~~a~~`~~y~~~Yzx~z~a*~Ug~avpJ~~~\~~~~&~wp}~~OG~A~t~~~v~~~~=o~~~~~~>~L~}Qp~~>~u[~~Q~L~~[~~z~~~~~~{|~~~W~~~~kG~~~~K\~w'olMy~~R~~~~Afcb~K~r~~~~~~~~cyN/|b%~WotZ~~t~}``z~w~~pl~na`~~~~~~~VJm~~~~p~9~~b~~~~~~hi~Q~~~a~~~vU_d~p~~~~|~~~~~ar~~'~i~y~m~pvbpM~ja~~6~lH~~~~~~~~~~~V~~~~t~x~~o~~~~k~~p~s~~QP~~v~~~~o~]yvzpn~xZ~sP~~~~~V~~o``~~~~b~~~~{0r~CH~L~q~Osy}z~~~N~sd~bu~~~~~~}L~~u~i]^X~\~~R~}~~eO~~~~~`~~~~~{~~~~o}~[~y~~~~~SMrn~~~~f~~a~v[~~]~~x~~~~~OdK~A~~~~Y~r~~~t~N~b~~~u~~tS~~Ygo~~~~re~~~vx~~cc5h~~~~~p<~M~~J~U~~~~wt~]~q~~l~z[~~~D}^~W~~N~~~~L~dyAk~|~Ln`~j~u~U~R~zpr~~~N~~~\^~th~s~~~~q~~~CLP~~~~~e~~~~~~~~~~~~~]~~l~At^g~]~~~sw~P~~OVsn~Tf~~~x~~[~uXO]~y~~p~~~_~dt~[~~[P~I~~~w~R~~^pFj~~~C~zjKq|~g~m^~;~`~~~~r~L~~~q~~e~^~~~~~]~~~~~~~Pv~`~~F~~~~~y~Y~x~~|e~~~~xv[~~dxX~YV~~a~~h~~~~~_~~[z~c~wElp~ck~~~~_o~~~~~~~~utu~t~~~GqO~~~~~~~op~~~U~~~{d~s~~~b~~z~~~i{G~~ld~fTR~{~~~~y~~l]~^b~w~u~_m?}s~~i~h~eh~Zl~o]NW~v~~~V~~iU~~~~]hDK~a~~~~~~t~<~~|~z~~~~~~~s~~~~j~M~~~~~~hb~~~g~~wIT~~~~R~~~o~~G~~Z~~r~~~y~~h~~~~'~~[~i`-O~D~~V~s~hmt~wU~~D~~\~~~~s~~~nd~t~~~`~v*~egG~%~Ow~~n~s{~^~~~m~~~~v~~|~~~~~~`~q~q4~~~~~~p^~~r~H~~~br|~nZhVx~~u~~'~et_|~~t~~~e~~vesVS~O\~uzle~~~~~~~~~~~;~~~~~~~u~~t~~O~~~~~~~ho~~h~o~~\~k~~@~~~~w~le~q~~O_~~~ux~~ku~v~j~m~~~~x(cxbv~~WoY~~g`g~~~`~Fx~~~~~~x~~V~Uo~~~~~p~~~~l~~~_~~~i~~~~e~~~~q`~v~~W~~~~L~~y~~}~~y~~Sil{d~p~~q~\~ie~~~~9~~~o~lp~~t~~q`~~fR[~:~7z~~&+MnW~~~~~~h~~wco~~~`~tdqQ7pg^~~g~c~~f~~r~p~w~~u~M~~~~}Q~~~@~~mzR~~~~k~i~rUte~~~q~u~z~~~~~~~Z~~~1~~~~~~S~~l~~`~~~ih~Nh~~~~T~q~jw~odu~tu~~{m~tlvp~ +@96fdebf0-b13e-c8e9-f19d-3d5657670ba2 DDX5_MANE(-),+strand,2080-2443 length=350 error-free_length=349 read_identity=99.725% +ATTGCTAAGATAGTTATCTTGTCATTGAGGGGGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTAT ++ +~~~~~T~ol~~~u}q~~Z~cg~YxW~~R~t~~~~~l~~~~l~~[~~j[Mn~t~~~ohqv~h~C~l}t~Y~~~~~~~u{J~~~p~~~j~~w~~~~~~~~~~~``~~Y~~J~~=~~w}n\~~~~~~f{K~q~y~~r~lo~~~~~~~~P~b~[~~~~q~sfq~~x~~~*~p}\pp>~Lc~cFi~~~~~yj~k~~~~~~j~~~~~~Fjq~~m~~YtW~~~~un^pQe~~~~6~~~~~~~q~~~~~~t~~~bKr~~k`e~~^~~nS~~Z~~~~M~Tz}~t~`~~~D~~z~~~~GY~~~~~qc~i~~~m{kr'*~fqW~o~Q]L~~~~~~Ju~~~N_iU~~~r~~=~~~jx~U~y~ +@d884c253-e28f-6b9e-d4d1-e473e0c8d9f8 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,501-1472 length=972 error-free_length=972 read_identity=99.797% +TGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGC ++ +~}P~~~~s{@~~p~~Os~{~lTx~~i}O~Wh~~~~in~x~J~~~f~dS~pgu`JJ;~~r~o~~~N~;x~~~~~zlj~~[~R~~yk~~m~d[~t~w`}~~~R~~~}v~~K`~~i~\+c~x~~~~an~~X~~~~;l~~Rqf~p~~Z~U~mu~iuWSia~~~~~~K~~~oml~W~t~~~~pu}J~~~~~~~~P9~sJ[~~i~klVh}~h\s{k~~~\\~b~~}v~Y~c~~W~sq{qda`~~~zPZn~j~~~~~w~~~Q~d6~~~uka`~~~~y~uw~b~e~Z~~~~~vf`~~~~kx~~~}Y~~W~~~~~~x~~R~~~~h~~~~~kz~~q~m~Cn~o~V~~pAYU~~~~z~~~y~d~~Q~~l~~~H~Rz~~~~I~~~~~~r~~~,Hdq~pTTd~~y~~~xX~~~~7A~~~oM~~~q~'n~ue:~~N~sch~~dy~a`~D~q~h~e~c~rje~~~~c~~~~~}~u~~~X~~|~~i~WI~K~~~e~j~~~~~~~~n~~~e~~~~~~~~};~~~~~~v~s~m~t{~}~~~~jaa:MMx~~u~~Z~{~X~~B~~_~y~]~}~~~mmYt~X~~~Cp~~~}_~NY~6~~~e~~b~z~~~~]`~~~~gF~i}~~~~n~)L2aVl~~~v~~~de~_RX~~~~~~~k~g~~l~~~Q~~~~Dz~p~~\~Q~~s}fq~f~~~~a~siuj~~~~^(y~~PZ~~PR~~W~b~zW~ys~~~L~~~k~y~L~~~~B~`~~~~~z~~~s~~n~va~f~~z~~~~~~~~~~T~n~a*~~wrsVCx~~~~|~o~`A~~[~j|~~~~lgslpm~~~~~f~u~~~~~~~jRy~{~~~}~qe\~oS~Jtq~~g~[~~X~~~H~j~Zck9~~m~~J~a~~~~~XQh~gT~kd^~N~R~~~yqq|~f~sX~~~~~n~~~~~~S~~~~~~{N~xtk~~K~~~}~~~~`~mo~~~y\~T~~~xv~~Z~W~ni~zq~~Z|~~~~~~c~~{~~^L~^y~~~~~ +@bb2e9855-47fb-1dcf-839e-84b186513650 DDX5_MANE(-),+strand,3316-3684 length=394 error-free_length=395 read_identity=99.756% +ATGTACTTCGTTCAGTTACGTATTGCTTGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTAATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +~~p~~~d~~^~~l~~~o~~`xz~~x~~~~soY1c~ox~~l~~~~~~~~\~k~}~k~~~~~~~~~~z~HY~h]jL~{~9~A~~~i~~v~mZ`|~~~O~~n~ybu~3~~~~~~~r~~b}qdo~~_~g~vW~~~~~~~~~r~~~~~~~U~~vx~~~~~~~p~~~~~~\~~~cq~J~~oqj^S~~~~~~~D~[~g`~~~~~~i~:~~~Ui~~~Eq~i~s~~~oxnk~s~X~~l{}~(q~~I~~~c~k^~(J~T`w~R~~qt~~~~~T~L~QZnW~hVj~~sYb~pMxU~~~~~~IaV~~Eb~Nk~~v~g~Jer~~j~~~~~v~h{n~~~\~g~r~~~]~]~}~~O~~:~~~Lb~l~~~x~]|Y~~~/~~~~~~~ow~~T~s~~~~MY~~~~~^~~~~P +@beb9131f-e048-432f-ff3c-3cfe5eff3287 DDX5_MANE(-),-strand,2578-3684 length=1118 error-free_length=1119 read_identity=99.912% +CTGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCTAGTAGCAAGTTGAACCGGAGTGGACGCTAATCCCTAATGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +rMoc`{~~q~~~~Q~_~~~^~c~q~~[L~H~[~t~~sh~v~z~nrBkj~~~~~;~j~~sj~{~w~Y~v~~p}~l~~h~~v~h~~\x~|~~~~~~~m~~z_m_~~~~``~~m~~WP~~~~w~~~~{~~~~~~Cpd~~~E~zwc~sX~y~r~h~~;l~{~~k~~~u~~n~~Em~~~~~~w~kxSbo~[~wV~C8~~~uu~mqus~~~t~h~~e~_p~~o~yr~~~~~~~~f~~q|~~pnd~vm~~]v~~~~~6~x~z~~h~~~kq~ys~~yWnk~e~~~~~~~~{/~~r~~~z~~~~AnN~~~{~~n~~wtudh~~Vu~~e~~~~x~~~~~~~~~~~~~Xq~~Xee~~~~~Tej}~~Pwh~~~~~y~YF~C}_~sY~k~~~xZXZ~Q~a~s~~n~~Pd~R~~~o~~e~~~z]~~o~m~~v~z~~p~_~~Gw{O~~izV~~~z~~~~~=~~~~~m~&~lN6P~~x~m~~~z~~~l~~~hk~~q~X~~~}~~n~G~~~y~~~l~~~_~~~G~~~q~k~~~sD~~~~Z\lq~vl~~~n~e~~~~x~~~~~~rV~E~~~~xq~Y|~d~^~|~t}~_~js~~C{}~~d~~;~|y~M~l~~J~t~V~~|~~~~PM~~j~`~~Y~eTh~U~?Gv~^X~~q~~~~zW~~~r~Tk~~~}~?~Yzhx~~amp~s~~~~~~ultO~~iH~~~WhT~~~~~~~~~xS~~q~~~~~^y~b~~~}~~~o~lE~~@~v/~l~~~~~~Q~~Tf~~~~1~Qq~~L\<~~S~~~>~~~~wh~~Z_~~~e~q~~S~{y~~}I~~~~~Ltdb~f~~~s~~~rD~~~t~iu~~~~~+I~~Z|[~~pfr~~~~|m~~~~mk~~ofD~~}^~~~n~so\~s~~~~S~~D~~R~~~k~X~~~T~~py~~~m~~~V~~~~~~~~~S~~~m~~O~~m=~~~~~~Y}e~y~X[|n~~~~~L~l~~Z~~~~ov~~MS~z~~~~~~~~uh~~~~\7~~^~z~~~~~r~~~g~~NRh~EyfE~~~~~c~{pP~U~~M~Q~~ab~v]~~~~~~h~~~~~~~se~~~~p~~~~~~b~lT~~n~kj^~~yknsegV~~~~Yqq~b~U~~q~~~~.~G~~~ax~^bZ~~~~}~v~~~~d~~]sn}~~wg~~gBg +@3a47f301-3ef6-fe7d-7fe5-07cb01f5a3b9 DDX5_MANE(-),-strand,1432-3558 length=2127 error-free_length=2128 read_identity=99.860% +CTTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGAACGAAGTATATAGAAAA ++ +~y~~~~~~~~u{|~~h~~~{~d~~LPu~mp~~~|~n[~~~~n~d~~~~B~~~r~~W~|d~igN~~~s~~~~~~s-~Z~~~~KkRn~l~hA~c~vm~4~~~~~~~~~~y~~~o[PCpWK~z~Yyq~~~~~p~~~x~~g~b~~m\XwRg[~mu~s~~~~~V~u~~~~sOj~Q~~~vDqb~~~~~~~~xc\~~i~~~~Y~k~W_~~\}V~~~slkz]~tg~~~~z~~;~~~~~~~~~k[~~[w~N~g`Y~~~~UQt~~l~~~~?~~nS~i~qI~pel~vj~s~R~~W~~~W~~~~rIy~~~~}~~eE~~R~~~~~~z~~~~|~~~~~~MnD$~~~Ae~~g~x~~~|~\~uv~`>~iZ~g~[n~vec~~[}~x{~~\~aM~~\v~r~~T~o^zW~hfqq~k~~k~~~~v|X~~~~~~~ya~~~]~~~t~~~~Om}WJ~~{>~~jr~UQ`u~~~z~}~~~~~qr~bcq{~we~~~e~q~~V|~~~H~~?A~~~~~~~s~~Z~~~$j.Z~]X~~~~~~~~M~lr~]s[dQ~~r~~c~m~n~~r~|~a}~lcg~~~~rTdo~~v~_~~~G*~~~~~~M~~]s~~~v~qwlmi~~~~~~~~~~~p~O~~~~`~i~~~g~~Y~~sqMX~~~~T~~~~~~~dzT~~}~n~~r~[~~o~~G|~~~~~ol~qv=~YtB~~~~}~gD~f~~~v~~~~cm~V~4~c~~~w{z~~uy~~~n~~~~R~~~~xg~~s|~t~}~~~;~~~~~\yYAp~~x~~~Z~~~~Gya~~_U[q~~fb~n\~jT~~~~~bpx~~_~~~jfx~k~~~~{~~~^~~~z~~~~D~~~E{~MSi~~~]U~ed~2~pgs~~~~~fr]~~l~l~~~~~K~~~~~~~~~U~~Ygxj}t~~is~~j~v~gL~~~quv~ef[~~~~~~~~D~r~~~~e~~~F~~~~~~~~~~~~~~~F~8~n~~{~u~~~<~~~~~o~k~~d\~~~~oT~~~c~~~m~~~~~~~~~~|Il~~ga~~aZz~o_~~lw~~B~Z~~g~Y~~d~l~~~~~|~W~BaUgT~]~~a`~~p~~B[m~e~~y~P~~~~~_W~~~~~~l{~l~~Mi~~m~g~~~~b~~~~pH~~iu~~&~~W~~is~Td\x{~[~[u]~a~~~~~~~f~~~~q~l5~~~~[~c~~~nd}X[~~~~~=~~~~~~n{|~~I~~w_U:i~~~n~o~~a}o~~p~m~~~r~~~~~~ip~~ji_~V~~||Oc~E~~y~~j|~M~qN~~}~~~~~~~~~~ntp~~~U~~~}X~~ew|^np@gA~~~~~~~t~~~~~~~Ic~m~z@~~py~cy~~v~xx~Vh~~{~}~o~~~~E~~~Kyg~~rcN~~~~rr[~~~lnY~~ML~r~`~~~l~~~~~~Y^b~rQ~~Ixn~gJ^~~~ao~~~~~~~~~n;~~u~~I~~N~~b~j~]~Oe~s~[~~~~l~a~9H~}~[~~b~~G~~V~d~~~~ +@6ea98a43-4090-0b32-0d0f-41ac51316de2 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1537-2448 length=927 error-free_length=927 read_identity=99.788% +TCAGTTACGTATTGCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGC ++ +iZ~~s~~~~~~_~~~K`l~qF~~~[~xqO~~~~~~s~_~~~~~~~~~ch}~~u~`~]~b{s~~~~{Q~~oz5~~l~v~}~~~~bj~~U^j~j~~T~~q~~^kq~~~~k~n~~N~~~x~~u~q~~~l~~yb`~~~~dXb~~]~~i~t{~~^~n~~~|~{~vn~~|~~~e~h~k~y~k0~~~~~~[yM~K~w~Uw~mH~d~vyny~~z~r~~xh[~~h~~~N~~~t~~~fL~F~~_~~lH~~~z~~~~\~Ioi~~~~xy~~wj~~~u_~R~p~G~mb~|~{~~l~w~Y~~e~r~ybtkO~~PV~~~vT~`~lm~~~~~~~~~~~~~~~V]~~~~_e~~~~~~~~~~=~~Y~{~l~~erB~~~~_n~~\~vr~[~~q~~x~~}~a~y~|i~~~S~~6~[~q~~hY~~~~~~~~k~gd0bk~~~~q~~tw~bE~X~Y~f~~~~~~d~~u~~~~a~~~YnG~~v~x|~~~B~z~~~~~~fm~Rc~~Wxau~{id{~~~a~~~~~~>|~~~\~~Vq~~u~AZ~~~~~~~~~~a~y~_r_a~~~~~~~k>~q~sm~R~z~~gKp}[~~~W~~~~~~~~cJ9~]nZM~~~y~~y~G~_~~_X~~~~~uv~h~a~~~L~m~~~~~.~{m~~K^~nc~r?C~~~t1zA~^~W~~~Ur~]~~?w~~Z~fw~P~~e~wIKz~~~~~~~~~~~~bZ~S>[Ybt~Mez~lh~~~~~_JT~~~~~\B}|~~i}L~_~\~~~~o~~~K~~g~~~~~~pi~~~~}w~z~~~~~~~~cy~~~~~~W~~jXS~~g~~~~~~~~~~~jA~O~n~~y~I~ud~^K~Qf~~~e~\~jt~u~{]w~~f~~s~~~kW~b~~~~`d{~~~~~e~~~~~~~~Tu~]~z~~~~~Kn{Xf~~~~~~Y~~b~~~tx~~~WxT\~~~~~~~~ugWfc~C~~~~~~~cjv4~~~s~~~ +@cde16c29-d716-bc89-f561-819183f97ca8 DDX5_MANE(-),+strand,2739-3684 length=955 error-free_length=957 read_identity=99.588% +GTATTGCTACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAATGAAAGTTTTCATGGTAGGTTCAACATGGGTTTATTGCTAGAAAGATCCAGGGGATAGCTTTAGGTTTAACTTCGGCTCACCAACGTAACTTTCTAATCATTTATTTCAGTAATAGCTAGAAGTGGGTCTGAATGTTTTCCCAGAGTCTGATACGTGTTTTTTTTTGCCAGAAGAGAGGTCTTCAGGAGACTTCATTTAAATTCTGATTATTAAACTGAGGCTTTAATTGATGTTAATGCCTTATGTCAAATGTAAAGTTAGAATTTGCTAGGGCTGGGATAGGGAGTGATATTTCTAGGACTTAGACATTGAAAACTATTCAGCCTGTAGTAACCTGGATGGTTTTCAATGGCATGGTTAGTCAAATTCATGGTTTTAAACTTAGAAGCAGCTTTCGGGGAGAGGGTAGGTTGGAGCATTTATTACATATTTTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCAGCAA ++ +@~zA~~g~~~e~~~~h~~qw~}R~Z~~~~Wa~x~~~_~}L~~~~~~~~Hrue.p~~~LmE~~Rk~|~~~~~c~r~~~~~q~~xba~~~q~~~~~J+x~XU~~~~~@`~G~t~{~~Y~~~~~~nA`jy{~h~~~qi~m~f~~~~~~~~g~~~dVt~~~~~~}~~vi~~~~u~E~VKn~Cpm~~E~~|~~~t~~R~~y~~~~[Ex~~|~~r~~~~jufi~~~mv~~w~~~e~~~p~x~h~k`~P~S~~~v~R~}~_~~~~b~~~w~Z~~s~qhNYb~Zo~g`u~~~eOnXx}~~~~w~~~~~z~{~~~~~v~~`~~~~~[~Lm~~~jurY~movbm~|~~S~~~|y`~_~~~~~G~~~yZ~Y~~~~~~R~j~_~V~~~~n~~~jv~iu~f~~q~s~~OV~~HJ~~l~~{_~~~~~~~~s~q~~~{~~~~~v~`~~~U~s~~~~~c~~|~Y~1^y~~~<~esnz~~~^NXa~~~~bN~Pm~R~~~|~x~o~]~~~y~]N~~g~v~`~NuI~~~_r~~~~~~~~gip~~0<~\~g~~~h~a~~x~~:l~:~~~Cs~~aV~~~Y~~j~~~e~~~~~~~~~~y~~~~~~p~S~~~a~p~~]~S~~g~~^rd~~~nq~~~~~l^~U~~~~f~~K~~z~SE~~~x~~~~~~Yi~q~~s~~vw~u~f/h;~eUm~~r~h~z~q~~~~~x~~sXP~~~I~l|~~~~~~~x~~~w~~~FRz~r~qz~=~~f~~~~i~~*~~~~~~~~~*~xpwMDg~n~xV~g,~~~~~T~w~~Xwrvj?~b~t|ko{~~~~~4}~q~~~h~~~~~s~~~~x~~~v~~z_~~i~:~aZZ~~~~~s~z~~~nv~~q~~~~i~R~~~Kw~~~bwk~~e~~~y~~~Y~~xf~~}Q~~~\m~~~~N~L~@~~VQhs~~X]~~U~Qa~ps_c]g~ioV~~~Sv~~Jei~~~NU~~dm~~a~~~~~~~~c~\~}~bS~~~~~ +@9d8a01ce-d65d-f8f4-91b9-4222ed2d02a6 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,870-2545 length=1696 error-free_length=1697 read_identity=99.942% +GTTCAGTTACGTATTGCTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAAGCAA ++ +~~~d~~1x~~~iU~~~f~~`~~~{~T^q~~r~~~~~W~u~l~~x~]k~~~~v~wk~y~~~~~~~~~~~~[~~l~~~am~~~b~~s~~-~_~~z~m~x~~k~{~~~wwY~~fjV~X~c~jy~~~`~T~~~R~D~x~~~{~ai~wupO~E~~|~~wp~qP~~|~/~~~~~~=~~~~Q~~~io~~~j~~~~s~~~bfeM~~a~~~rR~~~~{~~~y}~g~~~^~~p~~~a~J~~|~~~~~~~jc~~~~|J~~~~Q~~~Xc~Wyxi~~c~~~~{znG~~i~~SC~y~~~~~~i~~~xG~J~~~l~~~~~~[v~~~~w~~`~id{~n~~|~~]~~z~~~b~{~~~dhz~~~j[~~~~~t~~I~~~~N~wR~~ex~~~cGk~~o~j~~~~~^zS~~~~`~~~Z{~|~~w~~Z~~~~~~C~{~b~~~~_~~~~~~qq~~~a~~e~c~~~m~Fzk~~`~~~{~~~~~i~~~~ps~~~~x~~j~r~ma~~~B~~~g~~\e~~}~~~X~~~{~^l~~~~~z~~~~~~~~~`xJuC~~H`~Zk`~~k~~{~~ocuyt|u~i~^~~~~tC_~e,D~`>SZ~~~~~~~~lu~~loxs~ro~~~~U~~~~~~a~d~~Pl~~~~~~~~W~~yli~~Gt~o~~~~Y~udLv~R~}~~~~~~=dzZ~r~~~e__~v~~~i~{~~~[Y~~~~~c~~~Phqd~rg~~]G~~~~~yv~p~'~~~~~b=~ay~Vzgipm~t~~~j~~~~~e~~~d~r~~<~lg~pt~~{~~~~~y~~~~~~^sk~`~`~c~[c~mU~^~y~~~~h~~~7n~~~~~m`~~~~h~Wr5~~R~~k~~~~~~~Q~~~~~~~~~~~~~~~~}~~d~et\~~~ra~~~~~~ha~~~}gc~~~t~~~~~~C~~l~~a~~_0~~~uv|~~n~`~~~~~~~~~}~~~b~~Z`V~~`~~~o~e~~~~~{~~Nt~~qP~~~v~~~~~~k~\~b~~~~j~~U~~~ql~M~~~~~~[~~~?~~}~~~~~~~~~Wip:~y~vut~s_Q~}~~O~tw~V~y~~{{~kG^~~e~~~~k~~u~~~Mn~~~~~y~{u~~~Na~~e~o~g4}~~~w~p~]b~c~}~~~jot~l~~saY~^~~~~d~~~o_~~~~~~}~~gmj~~~L~qj~~~~~~~~~{yeV~~~RqV~lxc~~~t~~~~^2or~~s~^~~10h\~~P~i~]s~~~~o~yN~~~mO~:~?~~}~`~>~~~v_~~~~u~{~~~~~~~~~U~~k~~~~i~~x~Js~~~~~~~~~~r~~~q}`~{YTW~~~~~~^n~~u~rt~X~{m~~~~rqff~p~k>~~~h~~~Zy~~~~^~~f~~:~(X~T~[n)ssk~p~o~`~~~X~U3~~{~~~Fq~u~|zw~~~gn~fk~d~~aR~Sfm~~?~~x~b~u^~~~o\rZRo~~~U~h=v~c~~~~tqq~Ho~~_~f~k~~yFX^6~Qw~}~~~u~e~`~~~|~~~~~~o|~~.g~~~ln~~p~~p~~~aa~~a~Y~~rLSj^~Vb|t~~~fY~~~~t;~~d~~~~~@T~~~~~g~~~]f~~~pa`~~~s~~s~]~~~~~|x~~[a~~l~~qz~u~~LU~~~~~p~~~o~h~z~~n~|v~~~o~~~_Z~l~Y~~~~o~~~J}v~~~~~~~y[h~`~~~~}~bKM~~~~~~~w~~z~8~p~v~~o~fd~[~j~_~~~~~wO~~~~~]~~~~~~~~~Uqv~~~~~o +@84e0d46c-0cc1-7ce7-46db-be50b3a592b2 random_seq length=309 error-free_length=310 read_identity=99.691% +CTTCGTTCAGTTACGTATTGCTATCGCAGGTCACTAATCCACGGCAAGACACAAGGCCTCCAGATCCTTGCGACGCGCGTATCTGTTTAGGACAAGCTTGTCTGTGGTAACTCTCAAGCCGAGTGGTGCCTACATCCACCTGGCGCACCATCAGGAGAGTTGTGGATCCACAATGGTGGATGCTGCTCTCATGACGAAGATGTCTTTTCTGGCATGCAATCGGGAGCCAAGAAATGTAATGCGTCCGATCCTCTCGTCGGCCACTATCATCGAGAGGAGTGCCATGTGGCCGGCCTTAAGACCACCAAA ++ +xqgu~Z~?~hi@c~~~~o~]~~~~3y~]~^XY~~]y~Ts`~x:~~p~M~df~n~~~d~V~~~c~JH~~~~x~iG}~~~Yv{~PO~r~l~~~~~~~~zn~~~~~~~~~~x}~~Qn_~~ezb~~~uZg~~~~i~~~}~~]~~~f~~~~~i~s~r~h~'wS~k~~~~~~~~~~v3s~e~~h~~F~T~~~~~Yjq~a~~~~t~l~wd~_d~~7~d~d~~v~~Hp~^~~~m~~~K;d~h~~~~~~~P{~~~~~~~~kfg~~Uj~~~~~b~~~nhf~b[~~~~~}[aLwj~l~~~n~e~~~~tQ~~~^Tn~C~~~ +@ec6f812b-1253-8bf5-e1a9-4c77a9cdc3f4 DDX5_MANE(-),+strand,0-1610 length=1637 error-free_length=1636 read_identity=99.939% +TACTTCGTTCAGTTACGTATTGCTACCTCATTCATTTCTACCGGTCTCTAGTAGTGCAGCTTCGGCTGGTGTCATCGGTGTCCTTCCTCCGCTGCCGCCCCCGCAAGGCTTCGCCGTCATCGAGGCCATTTCCAGCGACTTGTCGCACGCTTTTCTATATACTTCGTTCCCCCGCCAACCGCAACCATTGACGCCATGTCGGGTTATTCGAGTGACCGAGACCGCGGCCGGGACCGAGGGTTTGGTGCACCTCGATTTGGAGGAAGTAGGGCAGGGCCCTTATCTGGAAAGAAGTTTGGAAACCCTGGGGAGAAATTAGTTAAAAAGAAGTGGAATCTTGATGAGCTGCCTAAATTTGAGAAGAATTTTTATCAAGAGCACCCTGATTTGGCTAGGCGCACAGCACAAGAGGTGGAAACATACAGAAGAAGCAAGGAAATTACAGTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGC ++ +~i~~W~~~~~~ino~u~Iu~~~o~{lL~~R~~A~Xc~~~ax~~~q~~b~t~1~nk~{F~~~~~~~BVE~~~q^~C~~~exF{~~]~~~~~~kn~~~l~b^lX~~~[~~>~x~~YO~~Ot~~Q~~~\a~~~~~~~PO~~~~i]Be~QvP~aq~g~^S~~~~~~V~~~p~]&Rls\x5a~~`~~Dl~~~[gmFq~bpw~e~~V~|WJ^a~qk~gDVc~Iv~Ig~~~{}x{ba~p~l~~~~~l~l~~~~~~~~~O~~~~k~~~~~~~T~~~~{S~v~f~s~b|~~zo{~~~~~[c~~~~i~~~x~~c~~~~X\~Z~~~]~~~~g|~4~~~}Z~~~sn~~~i~I~~~~~~|v~gQ~T{~~O~~~~k~r~~_~~~rl~~j~n~~~~~~~pCt^~~~~~b~g~~~b|~~~~~s~~~~~~~~~~~~~~~~O~W~~~S~~~~s~~~~~~~~arU~~f~~~|~~[pc~~~~gae~~=~~V~z~~~_r~~~nx~~}~wJ~~~k~~~~~~~~~~~~{dw{Vhqv~~~mp~~~~kx~~~r~k~~xtl8dY~C~~pvaez~~~~~~~~}~~~~|~~d7}~~~X~~~~~~~~Vt~~~F7lL~~~~q~N~9~~S_~~~~~~~~y~~up~T~K~}o~~Ou~~~~~c~~~[h~~~~~~~^Lx~~}~~SMf~u~k~RyM~b~~~~~~~~~~~~~~~]tu~~~~~t~~~~~V~~~~`~~~~~~~~~cAJo~~cl~a~j~uv~~~)~~~h~g[~4]~|~r~~dlV~~n~~~~?~~~j~~v~~~d~iG:~z~~~~~~~~~f~~~~q~~~\v~~}~~~a~]~~q~se~~r^~~~~~~~~~~f~~rd~~N~~~~q~~~~~k~K~~Zs}kG~~rk~~~~}~~~l~o~R~~~[g~fE~~g~~~~Xa~q~~~~~~b~X~jX~Oe~~\c~~i~Zcc~~R~V~Yo~~{YXY~~a|Vh~e~~c~~~~~~~~y~=~Z~~m~~~~z~~~sbo|~d|`~~~~~r~~~~f~[~S|~~~]r~{stVLyw~~]a~~w~I~~~=l~V~~y]~arKi~o~~~^~f~~~~lg_|~s~I~~c{qpW^~~~~~~~~uN~~~~~y~~m~]kz~~~~~~W~wY~]\~D~v~~~~Mj~~~~~~~~~~z~~g;w~~~y~~``~~~~~O~~W~~~u~l~~~~~h~t~~qh~~~f~~~~xlv~%pW~k~~~T~~~h~M~~~~~V~~~xf~~m~~W~~~~s~~~~~~v~~q`~~~~~~~~~~~UU{_|~~~~~~rn0~~l~~~u~~Q~~~q~<~t~G~j~~VP~j`~`z~~~x~u~~~zn~~tus@^[~Ug~~~j~~l~i~kN~~~~~m~^~|~l~^e;~~~~~Pg~~g~[~~ib~~^~[~O~~~~~C~~~~~~~|~~n~d~~~~R~~pb~~~~@im~~~i~d]~~c~~~}~V~~~p}~'~~~~dxO~{z1j~~|~k~\v~~f~~~~e~~PO`M~s~H~~@~-~`~~up~~~~~~yV~~~v]|~M~h~p~~~~~|~R~o~U`~~~}T~~^R|u~~~M~~~~~^~~O~Wf~~~f~~~_~uZ~~~~h~~t~q~jx~~~iO~Xv+g~x~~N~~goX~~=~d~f~Z~Qr~S~~~~~~~~~~p~SP~~~n~~~~m-~nr~gu~~~~u~~~~~~~~~ +@da631747-ce67-00ef-5ada-6abace898a3f DDX5_MANE(-),+strand,624-2624 length=2034 error-free_length=2033 read_identity=99.951% +TCAGTTACGTATTGCTCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGCCTATATTTTATCCACGACGACCCTATGCATAAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTACTTTGGTCTAAGTCAGACCCGACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATG ++ +q;~^ni^~~C~~Yxn~pv}~~U~~~~[{~z]~~~~U~~~~~~q~~x~dkw~~~N~~~S~t~~~~y~~>tm~~~~~~}~~~~J~[~~~~Ch`~~~~c~~a~~~H]T|~{~~ht~~c~~p[V~~j~kk~~~~Cb~~~]~~~~~h~~~~~~~i~~~~~~h{~~sZfD6~n~~~u~~r~~r~~~~Z~~~~~~{Zr~a~~~U~~~-~~_~~~~q~a~a~~~~~^~~~~~~~~t~~~~~y~~~]~~~~~~ru{~|~~v~~~~g~~_`~z~~qd~~[~vnU~~h~~~~~Vn~Rp~~~~V~F~~lZy~~~~r~~Nlw~~r~~fi~~~~~kf~||~~~~p~O~~~~~L~ne~~~~}~~~Tn}~K~{}~~Y<~Ex~~~~~~~~~~~c~~~~~~+Lesip~~{dXx~~~rX~~~~l~~E~xd[ZtGy~~:~~j~~}f~f~H~~R9~~~kN~~g~~~b`~~b~c~rn~~]t~d~~~~~~~~~p~E~~~~Dw~|~~v~s{Yc~~iotd~~~~~~l\~~tI|~~~~af@^e~I~y~^q`u~~~}~~m~~~~~o~~~Zxr~u~~~~~_~l|X~~_{~c~Xrf~ct~~~~~~~r~||~~~U~x~~N~a~>o~`x~qo~~~sis~x~~u~~~~~~q~~q~g~~~~~y~x~~9dn~~~~fZDI~~|~~j}~~~\~\~~~P5~~}g~|~qMQk~e~~~~~~p~~~~~~~~~~r~`L~B~~~y~~~~~~~~q~~P~|~~~n~^~~~oxtLf~ECh~t~~`S~~~d}~~K~~~~~~~~yv~x~[b~~~P~~n~~~~P?xa~~e~q~~~~s~~}^jz~~rt~~~Ljxu~~~~~~~~~~~E~~z~~TrO~c~~Q~IXs~x]b~~{{~p~Ukj~~{~~~~T~Y~~w~~qk~~~~~b~~~~ibh~x}M(mep\~|~~~m~y~o~R~~~oPvgmf~~~~~~u~~TXph~~~~~I~~zy~~~~~b~g~R~~~~Pzq_~m~cm~~~f~g~~b~~r~~`o~~~vV~}g~~bT~~~~~u~~~|~~]t\l~u~\u~~O~yv~~~o~q~~}~~~B~t~~nz~~~}~b~~~~~~~~~~~q~~~~~~~~cVypr~Xp~~~g~~~nb~~y_~ekw~yoEV~ba~~UX~h~gd~^~~~y~~~~~Z~~~~{g|~L~~Y~~~~~p~~~Fnq_~~~~|~{d~~L~~~~~~R~~~~~~~~~M~~~(~~~Q~>~~qn|~f~~~~~<~~p~~l~~~~=_z~z~~w~~a~hXuZ~~~~gm~~~~cd~~~~~j~~joxp~v~~~H~Nx~~y~e~~~~d~~a~~~G[R~_~~~~~hw~S~~~~~Vw~~`P~~iq[~rZ~^~c~~UW~~~~^hd~~w~~~~?~vkd~p~~u~~Jir~~~p~~y~~hn~z~`~~~~{l\$YJ~OlrWyy~cy~qu~~~~~~k~~~h~~~n~|~gSj{~~i~~~~.u\~~~~V~~~~d~~~~~~J~~~~~~~ww~~~}~n}l~bfj~-~f~~~sJ|~~}~t~Pzi~Z}~~~~~~t~s~~f_cq`~Q~~~j[~s}~~~Is~~^F~j|^u~t~dc~^~o~E~~=]~L~~~@b~An~x~~cX~aek{cO~~~~~~~~~~~H~~~y~0~~b}~~\~dvr~r~~~~`p~~9~Qp~~~Mhk~U~v~c~~c~~gnJ_FL]~Ocq~~~~~B]`is~~~lQ~~x~l~mx~~v~`~~~~`~csx~~~~a`~~~f~~~]e~[E~~~~~~`|~~~~me~~~k~l~~{YyC~~~~~eO~~Tp~i~k~~~~c]~~~~vk~d~~~z_m~~M~~~<~~y=~p~k~f~~l}~e~~~~~to~Df~h~~~~~~~~`[X~~~~kZ~~~x~~~~~{v\~k~q~g|}~~~~~~~~T~~~~~<~~~w~~~h~Q~~~~Evva~S~{~~T~P~~W~~~~~~~u}~T~~~~~~~~zh~^|~pmpo~~~~w~~~~V~~~~~~~~p~~~~~q~H~~P~~~]~~~`PKJ~~~k~~m~t~d~~a~c~~k9A~~~~pn~~~qai~k~^gz~&Y~~r~y~~~Qg~~~~~~~z~~~~~s~_~~~~~~~I~~wl~~U~~]g~_~~pj~~L~y~~m~~~~~~~o~~o~~~~^hIZ~s~i~1~@pvpo~~~~}~~~~B~X~_Up~e~se~o~x~~ +@e33ef18e-e23c-8743-8368-73ab9d74dd6c DDX5_MANE(-),-strand,627-2120 length=1517 error-free_length=1520 read_identity=99.804% +ACTTCGTTCAGTTACGTATTGCTGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTGCAA ++ +v`z~~M~{~~~~tY~~_~~o~~~g~p~~t~e~~qJ~{nRf~~s^~~~n`~bvp~~~~v~AmxY~~~~~~V~~|~m{~~{~~|~~~~+c~~x~~yh~x_~U~}{f~t~~~|~~~l~~~Os~~~~~~~~~~~pi~uSy~Y~~|~~~~~~j~v~~~Y~eo~~:s~SjS~~p~Z[~~~~~~qM~k~q~~~~r~~~~~~~~j{~~~~~W`~~W\S~~~`~~~~~~~~y~~BZ[~~R9~ai~a~~p~[~~e:~Th~~jt^~S~]V~hb~~|~~q~{wNa~~~X~sm~~k~~u~~l~~~~Y~Vt~~~p~}~gc~~z~~~~Vc~U~t~@t~~~idfS~~d~~yG~w~g_~/~guZ~py~~|~^~~~{vo~O~~pIV~n~m~W~lx~h~~~~~~~~~gk~w~~|q~y~w{us~~~~~~~~~p~~~\o^f_~~~~Ky~~nq~~~mQZ~_mK~t]~~~~~I~~lq~vaP~~~^m~~~~~V?e~~~b~~~p_n~~~~[~~j~Z~jx~~~~n~~]~j~a~~~P~~~~S~u~g~~~g~I~~~~gxg~~~~~~z~~^_f~~v~~wk~v`~|b_~n~~~D~bQ~T~~j~~w~~ku~eX~j~Y`~~~ny~~~~g~~~~~~|~y~y~~kr~~~~6~u~v~~~n~_~t~e~~ceba~~~~~[~~{~zWP~qp}~~qjb~~b~F~o~d~p}t~r~~~~~~k~~~vbv`~iE>~W~~m~~~m~~~yTa~h~w~~K~~~e~~~~ST~K~Zm~~~~~~w~T=~~V~~~hZ~~~~d~~~~`~~~~i~Y5~tq~u~s~~p~~j^;~~qm}~b~l~~ehe~~~~Br~~rr]~~~~~~~~v~~x~~hK~o_~~~tf~;h~~g~~\~~~Et~~~~~~~~~xp~~~k~i~~[~}~~~t3~~~u~ab~~~~y~~&~~~r~~~~~w~hy~~~~~~~~\~~~ +@f03514bd-1c27-ca31-b254-3f3317f092d7 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,765-2545 length=1782 error-free_length=1784 read_identity=99.778% +GGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGCAA ++ +olZ~~~tkw/~~XOor]d~\Ub_~~~Z~~~}~~~~~~~~C~~~~w]~z~f^m~~~~~b~~~cwVSxj~~ud~~LH~~s~~~~]~~~]~~dz~~`rmiK~~~~~~~|~s{z~~~~s_~S~~~~~~\y`~m~\~k~[~~pc~`~~~~~_fj[bz~~~~~~m_}o~~~~e~r}Z~3~9~Z~D~go~~x~~y~|\m}~~~~~~~~d_]~~~~K^~p~~~~~~m~~~e~~K[u~S~XSz]~~=~z~|O~~~~yY~~x~ymMr~~~~kqb~aZl?Z~~~g~~~~~~~~~~~YUWGy_~t~~~~U~]~~gqLp~q>w~cj~~z~~~~~~j~i~o~~~|~~~=`~Q~~~~k@~~k~~~~~x~~~x~v{~Vw~~be~~~{S~I~~~~ucm~~~~~oM~wD~~K~~~sf~~d~~~]R~q~y}~~~~~g~=_{~x~~~~Q~~M}~~~~Teub~j~l~~~~_~]~~~~O~~~N~~~x~~:tv~z~U~~~`~~~|~@e~~sxzv;mR~hu~~r~~n~T~~~uw~yxzk~~~~~f~~~~n~Frs~U~zbE~~~y~~~~v~~~~~~~p~~~~d~~~~~~~|~\Z~~~\~~~~~~~~~~~}~~~~jP~fq~~Plo~{i~~eqi~~~z~|~N~|}~~y~|~Q~u~t~~~~sWiuv~~u~~Wk~~t~R~~~~~_~~~~~~~[~~~s~\~n~]~x~t~ki~~~j`~~~~~iK~|~z~~?mP~~p~~vij~yXh~~gx\m{~{Z~w~lq~~y~~sr~~~~~~~~~~~~~[z~~J\~~~z~~~ol~T~~n~~~~{~~q^~Xh~~~~bWiv~~hVox~~~~H~~mkL~z~m~~`c~c~~P~~~|~yx~~~~~~~~Pj~~~~qb~~b~~~~Ssv~H~~k~~v~~~~]dd~~~~~y~t~W~~~oM~~}m~r~~~W~~j`~~~~~~~o~~rf~~>o~~~~JS~~~~V~~u~~~~~~w~~~g~~~~~c8~w~~~~~~~~{LZm~~Ov~~\s~~an~m~`~Qm~I~~~~~hX@X~~h~~~~~~~~x~n~\~~~~i~~~jZeCP~p~l~i~h~F~~\~~t~}~Thx~~|~zKN~~~~~x9~~~U`~~~~~~~~~~~o~q~x~~~~~~n~3~~~~~~~~Hl~~~~B:j~i~~]~erwj}~~~~~~f~|~c~~~t~~i~~E~~~~~~l~~~}~C~~lz~~~~~~n~~~~=n~~x~y~~4r/pf~~~n~r~]~x~~~~W~~~~~oG~~~ty~~~~~zf~6bvo~cb~~y~~Q~V~~u~~~~o~~e~~k~l~ts~z~~~~t8r~~w~}~r~~Y~~zU~~~u~d~saX~vSu~f~~~~ESj~~~li*h~~ff=~~~a~~~~~~|~~s~{Yzk~~~~z~~~~~{n~~viwf~pY~~c~~k~e^~p~~fo~~~~~~~K~S~t~o~ja~z~~~o~~~J~U~~bBl~uax~~y~~~~~~~~~~~~~Y~~~g~~W{p~m~v~~~S~~Z~~~~u~~~~~~~~~x~~QhK\~~~h~~w`wqf~~~~|~c~~~|~~ZS~~Q~~~~I^~~a~~h~q^~xp~.|~~w.,~~bn~~j~a~~X~~~~~z~7~~~u~~~~n~~Q~8~~~~~~~k}~r~~F~rz~~v8~~q~|~~a-(ueyq~~=~g~~~p|~~X~U6~~~~f~jr~ZAc~~~~J~~xMppe~~cy~D~P~~~~~o~~~~uh~~z~~~~~~dM~f}}~vB~~~Yiy~~~~s~l~[~~{~~~fb`|uy~~~w~[c(~?~C~~~~~~~~~~~~v~~q~~~p~~^~~~~~~~~i~~~~~~iXd~lAq~T~~~]mtE~~c~~ +@112cceb7-c797-99f0-3462-40dfeb2864aa DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1139-2545 length=1404 error-free_length=1406 read_identity=99.859% +AAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~z~~V~ox~e~~z~~~G}ng{D'~h~]~xqU~~~o'ihODZ~e~Q~~~L~~~Vv~Z~:~~_~~~X~Vn:lI~~~y~~r~z~~Hoz~7oSw~~M~~t~s_~~~~jx~{|X~~~`b~~~.~~^~Od~~q~O~~~~~~~E~R~~_N~~~~.B^hMx[fc~~Pv^~t~~~~k~~~~wssr~~~S~{~~~a}~~~~X~~o~u`t~~~eU~~Z~~{~d}~~~Kn~I~~S~jx~{~~~u~~\~~Y~~_~a~~d~e~~g~~N;xL~~~{g|w~Z~~~~~i7~2~~b~~~~R~a~~~a~~~]~~~vqp@~m~`bbb~U[4~~mBw~i{q~~^m~~U?b~Y~~~~cb~gZ~SX~~{~\~_~~S~u~S~~oY~~~~~J~~Y~~~~~~~~M~~sk~~~~_~~R~y~P~D~~~n[~~WL~\~~J~~w~~~~~~~~~*~~~~~~~~=~r~~y7~uu~~~if>;o~v~vq~~d~~`~~~~~~p~~T~Iw~~k~~cd~Yk~~~o~~Yxl~aU~~u~~}V~~gx~~~nxt~~~~~~]~~~h~~~b~~~A~~~~~?~~~~J~bo~t~b{~a~~Zfg~~_~o~eV~UA~sV[~NZ^~~~~~rJ{~}~~~~wK~M~~qd~yv~~~~b~z:~~~y~y~CI~~vz~nq~~~dr~~~I~~~~~~~^Q~f1~ssP~~~~~~|il~~~|~~p[~~~~~~QfS~~~~~~F~ip~~~~~~~^~neW~5kf~lI5~vHP~~~b~~h~|~~l~z~~~~~~~~~l~~~~~~~~~~~~~~D~w^~~~ivdk~s~o~~m\~~~~~~~rU~~K~~~~t~w~u~w~P=~~~~~~~Pr{O~yx~c~~qq~n~~~~~i~m9~~W~~~~~~~~jw~Xk~~yi]~~h~k~pkh~_s~R~Q{~~~x~~p~H~W~~~~c~~~~~~c~~g/K~Yn~s~~o~Q@~~~X~sp~~~~n~_~~a~~o{G~k~~S~ow~Qcxf~Hv~xa~~~~~r~~~XFUe~~da~~~c~~}~~~~~~l~~~~x~~{FZt~~~~t~{~~dq>~^e~g~{~~~~lyZ~~w~[~n~^~~g~~Dj~o~~~i~s+tlYUN~~~~~K]~~W~~~~~~~~C~u{~~]~~~m=dx%~IYck~~~~~\~~a~~e~~ys~~~e~g~}~~lyv~~wT~~~~~c{~3|~~Xc~~~~~|~|c~~~~Q~~N~up~~~~~lZN~~~~\~gl~ge~~~~y~iG~~~~~b~~~bw]3~~~k~~~~~k~ea~~~xo{~~t~~~~~~jWsFb~Oq~~~}SzcxH|~XC~r~~~Lm~q~~~~~~~~N~~~~}~~f~~~o~~~~~a~T~`|~~|n~h~~}~az~~Z}~~~o~~s~~l~~[~~~~R~~[~~~~~~zxa}~~~~6~_~i~~~~~~z\~i|~ca~~H~}~~U~>~~i~~uaUcUy~bgb~f~Zs~~\s~~~~~~x~~VR~~~R~~HS~~~~~ +@a516a69f-0f6d-9010-c079-9266a20f3c20 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,684-2545 length=1887 error-free_length=1888 read_identity=99.947% +ATGTACTTCGTTCAGTTACGTATTGCTGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~w~~~~~~~~~gi~~sWQ~u~~?N~~~_~~p~~}u~~~~~~~v~~~~~~)~~~r~q~~v~~~~~p~~d~~~~~~h^~~~z`d~~i~a}^~p~l{k~r~~h~~Z~~i~S}~m~~~d~~f~z~~~~l~~~~~bR~~~~~~{~~Q~~~~~~n~w~~w~~~~|~~Zx~~rw~~~~~~~U~@i~[dQ~~0b~QbP7T~~~l`~~w~~j~~~~~~fd~~|~~U~~~~~~A~~~~~q~~~>~~dm|~~~~g~~~~~Sb~r~,~~~}~\~~~X}~~~~~~~J~Jo^~~~~~r[~~~~~[~Ppc~~~~~~y~~~d~~o~~~ro~Z~~~~[~|~~H|~~~kd~S~~~Wg~p~~p~M~~~pe~~{~~~~E~~q{_~z~~g~~L~p`|~PtP~a~g~_~~r~~~~VSm~~VOQ~~L~~ev~Z~~qQ~~qOkkKh~Hc~~sgms~~cmRc~~S~_~da~XpU~~~~~~|~O~~~}c~b~u~QNRq~~z~I~x~}H~~~~~~~~z~~z~s~S~~f~~tddAr~~w~jsb~n~~o~g~~~~~~}~~~~~Z~~~t~~~~W~~]T~~~~f~~I~~~~o~~~~~~~~~O~yzc~~~P^zi~y~~t~k~~~~~rx~t~b~pU~v~D~[~~~~~~~~~n~~m~~~I~cZP~~~~jY_~~~~O\~=~~~~~~~~wy~_~~ax~~~~t~x~\rc~c~~rT~~xa\~k~~s~~~~~~~R~`~m~qm~~~~~~~]~seUk~~~~b~~~r}~~^s~~zvt~~~~~H~~Dr~k|-Wk~R~~ly{4~~~~~i~~3~~~~~~bSh~~nUXb~k~~Q~~~~~Uh~~~[~~K}r~Yzt~~~~~~ynbw~\~m~_Tk~v~~~~e~~~~~Xz~~~~wfe}~~X~fS~=~i~~fr~ifk~~M~~~ulV~~i~~d~Zx~~~~~~~Zuy~[~frM~~~~~~~~~Ya~x~~~~~~}~ooo~~hm~~h~~%~`W~j~~~~r>D~XS~~~`q~~~~~w]~~~~~w{~{~~x~~~k~~v~~~~~~_X~zi~~~~~~l~e~n~~KN~~p~]~~~~~tZ~kq~~Vw{~Iy}~W3~a~~~~~~~~~~~~_~t~~n~~~z~[k~~~Ze~~~U~~U~~fn~~~~@~~~~~kG@e~uq8rh~~Kcf]~~~s~~fX~~~\~}~~~z~~v~~`~~~k~~5a~k^sdx~~p~~~}~fo~p^NJL~hS~~m[~~~cx{~hl~~~~~~~m~~q~~v~p~~~~~o~~~~~~~uF~~~~G~r~~~B~p~~t~~~~~~~~|f~~{~x~~~j~~Gv~~m~X\~~~~?~~~~kb~~~{u~~L~Zgcbk|~~~~~~~dW~~f~u~c~~~l|Qn~~~;~ugn~~~~~~lhhr~S}~va~~kUP~~~~~q~~^g7m~~~to~~~y~~~~~~lEZ~~~~~Se~~~g~y~O~rE~~w~~~~~~~~~~~o~~~_nq~~C~~~s~o~?~~|O~~W~~p~p~e~|~~~~~~~_~~V~~Y?~z~a~~~~~~m~~~~~w~~~~D~~~~~cd~~s~`~e~~~~Rx~~]}h~xT~~~~~~~~~~MNt~k~~}z~j~U~~~~~p~h~v~~~~|c[~^x~~r~~im~~~~~~~S~~~~l~~mG~wr~;~6~~~g~~a~|~~U~x~~sQ~~~~>~~~~g~d~~~~T:~l{~~X~~~~P~~~~~K~~K~V~qO~~~qw~o~~~cwb~~jp~~T~G_~~r~~~~~~~~5~v~~e|~~~D~~KxqiX~~~~bf~~}~c~~z[H~~n~Jt~~~~~~1c~~~R~~~r~~~]~X~|~s~vxN`~r~z~~~~xUs~e~~~~~~UwxtIY4~XgrP~~S~u]mp~{y~b`~~~S~w~Y~~Wm~Wzz~~w~V~e~~~mu~~TA~~~e~~~~N]~n}~Zw~~n~~~~~\~~~H~k{~~~~~~qOcX~~}~q~~o~~Z8~~~`G~~~~?y~~~~x~_~ +@2e073b28-4588-ca01-fd4d-707356b25b4f DDX5_MANE(-),-strand,716-3684 length=2991 error-free_length=2993 read_identity=99.933% +TCAGTTACGTATTGCTGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGCAATACGT ++ +~Y~~w~~~~}d\~~~~~~~f~{~~ippY?~v{~~~n~~~L^q~\~~s~x~~~XWvf~~g~kB~~}~~q~6~`~[M?|~d~[~~~R~~~~~T_~_~~~Ki~~~j~s~~]~^a~m}~~~~sp~~~~~T~~[~uW~kK~~d~j~v~~}z~iU_xl~J~~j~a~h~iZr~~~~p~z~\~a~s~u/t~~~~~N~l~~~~~s~m~u~~~aus~~~v~tm~~~~~~~ylrq]~~~~~}~v~~eM~~~~@~u~u{vLp~LK~Q~[~:~j~[kM~n~t~b~~~~`Y~~z~sfzU~~~fy~~~~~~yW~~~~~~~N\Y~~~y~~r~k_~~~B~~~~~m~v~u~'|Z~~hR~~~ycZVk\m~~OXvA~~~~Q{yWC~m~~~~~~~~vni~~~~K~Wz~Z~U~g~~~~~~~~XzY~x~s~~g~~~`~~~~~zei^|~ybk~~~Z_R\p~~~~~~~~~~na~n~~~~f~~~{BT~^~~~~~~~~~~~;~{~~~~~~Y~~~Up~~ZIXQ~~&~~~m//kd~~mg~8wr~~V~~R~{~~Q~~~Q~~~Efg~~~~~f~~~~~~~~8GI~~`.hdj~l~p~~~O~~~n~~FJh~~~~~~~~V~~~~~~~1~~~R~p~kqh~~BW~~{~{~{E~v~~~~~~i~B~~~~~U~~S~~~y~~v~~~i~~U{~ia~~Y~~f^~~~~~~vG{~f~w~~Tw~a~P~~Jn~~@~~n~~~~~~~iTo~m~Pnw~t{dgqc~f~~~LpVu~|ejf~fZ~~-~~e~~k~~P~l~~~~m_d\r~~~~v~~9~~~~~~~i~~~S~~~{~f~~~~:~~u~~~~Q~~a~~~k~~~Ihd~~oe~~y~p|~P~~MzH~~p~~>~Z~tKz~~~u~~y~J[~=~^]~~hSYi~aY~M~p{~be~~a~~_M~~ki~~~~q~~~~~n~~~X~un{~~~~~~~~~~LN~vp~g~~_~~~~~~X~\~s~~\~~~~~c{~VHa~~~Zb]~h_~W~?G~~`f~~~i~n~~w~rJc~~~~~Ca~~~~~~~p~eY~~~~Qo~~~~~~~D~~~|U~~Q~Wv~Z~KwMn~~~~~o~~~~k~~d~~~~~~d~WaN~R~~~~~_~lX~~~~~tP~~~~~X~}J`~~mg~~~~~=~|~w~~~~~~~{~~~`S~~~_~~v6~~lY~_k}ue`=r~~[~~yx~N~~]~}~~~p~~~~~n~~~~~~~~~~~~U~~Qpw}~~~a4v~pd~~Ye~~~}vOjd~~[~d~~X~^]~~norX~s~^w~~Yth~~~qrZ\~z~~~~~~v~r~sa~~pe~~~~ppq~v~~e}~~W~~x~~a~~~zc]~sNlhf~~~~qt~~~~~~~mQp~~y~~~~t~Z[`~ri~~nzeja_~~~O~s{jfsf~f\~~~n~~~x~~K~~om~~~~~~Q~~q~~~e[|[7~~~~~~S~^l_~~~~f~~u~~~~>~~~~`o~~i|~~]f~,~~~~~~~{~~~|n~~lXr~~~~~~~~q~~~~~Ao~~~Qt~~~~~~r~~~~u~~l~rO~H~z~~~y~~d^k~o~~~~~~t~~h~m~eg~Yym~~b~U~k~~~i~j~g~[~-~y~~~}~wg~^~~~Y~~~~~f~~j[b~Fdk~~~b~~~rlK~~=h~ev~~~~~~~Wx~~~G~~t`q~p_~~Uk~zt~qQ~u~SG~~~~~~~kJ~~;~kt~{u5j~~~_[~~y~yuU~V~~6[~a~~~~~u~~x~~G~~~D=~~XY~w~~~~s~~~~~~C~w~~`~~~~rhQ_~Em~f2V[~~~~~~~~~tk~~J~~~l`~~y~n~a~~~~~~~~cZ~x~H~~~X~~_Hd~~~~~~v~~St~~~~~~n~e~ox~Jzcez~~~~s~~~}~~~~i~~~~~ml~cr]~n~~z~~~~~_~~^gu~~~c~Due~fe_@^~~~e~~~~~~y\~~~v~~~g~O~~{dy^s~~~XuS~~~~~y\wx~~bz~~~~~qQ~t~f~d~cu~u~~~~bp~~~T~Z~wZ~~~~q]BK~do~~~c;~~m~~q~~\~~~f~n~4d~~~jl~W~~~{^~~~^~`nIbrhp~~~~~s~~~cbpo~C~~Mqs~~~~~i~r~~~~L~~~~~?~~rtt]~i~~u~~M~~~p~Opf~mq^~~~~w~~`N|s~m~~~~~}~F~n~~f~~|Jy~~~~~~phs~[~~~~~]~v~|~h~Rbr~~b~}dY?~p}~~~~r*~~um~i~~~~y%ey~~~L~e&M4~~~Y~~~~~~~~3~~~~~~~r~~J~~a~{oGGPh~j~in~~~w~~~~_n|e3Si~~9dm~~~~y~~~~~~~~Sq~~hz~~u~[~m~~fk}~y~~~~~~b|~~|~~Hnq~~gi~l~a_~~~e~~~gq~jZuvMU~~~X~v~~~~T@y'D~8DTv~~~~~~~~h~iI~~ZPppzT~*{~cp~W^@~xO`oU~Nn~~~~r~~u~~~~~~V~vy~~xm~qb~~~~8~~jV~~o~~gi`~~sb~a~~~\~~~y~Mnd`~~t~~ml~~J~~yA~o~~b~f~~}~V~~~~~~~\~~u~~b~~>L~~R~~~~~=l~~~~n~|~~{~V~~~t_~rb~|~n^oYy~}z~~~}~Y~~~^z|~x~~~~~~~A~~~i~~~~~~~~~~x~o~|Z~~w~p~s~~~\p~n~X~c~\Z~~~vG~M~~S~~msq~~~~U~~~~M~ql~]i~~~~~~p~~s~7wu~c^~~`~Ny~~<~|^~NH~soqU~~o~~_~~~mX}~|\x~~~~~~~~~~~>~g~~~~Oh~~~i~Zj~R~T~ct]v~d9_`~uU~~~~~~~u~~~R~~~q~~a~|~Y~|~X~~~~~W~v,O~vV~~QU~~~~~|~~~~~~yi~S +@ad5e2c0e-2cbf-ca4a-728c-370220f91b72 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,0-2545 length=2568 error-free_length=2571 read_identity=99.729% +TGTACTTCGTTCAGTTACGTATTGCTTTAGGAGAGAAGAATATTTATTATACAAATATAAAAATCTATACATTCTTAGCTGATGATATATACTTAATCAAAAAGTCTTTTAATTTGGATATATGCATCATTTCCTTCATTGTGGTGTCTCTGCTTCTCAGATGTATTAATCCATTCTCCAAGTAGTTTCAGTAACCAAAACTGTGAAGAGAATACTCATTTCATCATACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCCAATGTGGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACCTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAAACACCATTCGTATCTGCTTAGTGTCAAAAACAGGATGAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~)KpcY~~~~~|~~~|~?~~`~v~vXv~vo^\~\y~t`i~~Z~~~y{~~ub~~gw~~~~~z~~~r~iG~~~~~AZh~~~~j~Z~~D~~~p~~Q~~~~~~[~i~]~^~d_~qp~k~a~]X~wvps~~~~~~~EdRN~Yc~~~~h~a~p~~~~~~c~~~~~r~N|~Kr~g~~lui~UooL*~~~~~~~gaJ~}~^~~~~~}oxl~~D~m6`t~~~ni3I^~~~~~Ha~~l~~e~~~~rzv~k=~~~~~g\~~~Y~6~Tl~~x~~y|PW~~R~~S~~~~}~~~~~m~~{~~|i~s~~O~~:^~S~Mha\n~O~j~q~~i~~~jG~c\~w~^G~~~iG~7~`G}~~~~~x~~@~~~~f~6r~~~~r~~~csn~o~~~~[f_xl~I~[xi~~~~~e~~sj~~~~~~~b~~~s~~gpi~~xlQ~~~~cq~~~~~vm~~v8Zq~[~~~~~k~Z~~~~~~~kd~~~~}~~~\~~~~~r~~o~~fj~~~pd~~s~x~{~p~~\~~~~~~Oi~X~[~~n~ve~yWrd~~M~~~Z~~u]~U~~_~~~~~w`^~~~~z~p~~~~~~~~E&~r~~~~~]~d^~W~v~itO~\|~~~g{[~~u~d~~~X\~~]~~d~a|a~~~~~~~Z~~r~~~~~X]r~~g~~pyq~~j~~~~~~t~~~eWvt~i~~~~~~~~~r~~~~~~n~~}~~~;~~P~~~}~}~~~~~~i:~`~~~~~~~~~a~~~M~qk~}l~wi~~sq~~w~~vsjz~~~~Fo~r~~~~~X~^~~~~~~~~~~~~hFon~~q~~~~~~~~~~~N~~wb}~~X}T~~|~S~yQ}~r~Z~~~E~~~e~~H~,g~S~`~F~~Kz~~}~q~g~~~~~~Z^~~~M~~~~~~~~^Hs~~AQoiJ~~~~~~q~~~q~ut{q~vW~Zzu~A~nl~~~~v~~bU~iSv~~qpw~~~m=~~~~~~~4~q~~U~N~~~f~6~}TnC=h~?b~JZ~~~O~~~~~_nhjfr~n{~~~~dY~{o~L~~~u~~~Ah~~~~h8x~2~j~~~ly~~~mq~4e~~~~MU|~~T~~~g~~~]~U_P~~|e~~~~~~~~~~T{~U~~|~~~e}~o~~n}yr~~~~~ca~~~~~~h~uSgv~~o~~QVx[hl~~~V~~~~y~~*~~~~~U~^l~r~~~~{ii~{l~~~~[I~~~|~~~~~p~l~~~~~yu~0~~qi~z~~b~p~exk~s~O~~k7x~zpv~~~7~s~yLv~~Ho{~~k~~~~V~xjV_r~~~~`~~~~~~a~e~~~c~y~}~~~~~z~~~~=dMb~jk~~~~nf~7~~ci~&~v~{~~o~Nv~~z~~di~eo~}~_~~~~nj~~_~i~u~~d~b~Z~~~~Y~~~~~v~6fnbkhz~~~~~rF~~~~}i~~~~~_x~~~~Cltoxk@~~~u~pj~OrB}~t~~r~~~~f~~~~xT~~~YM~d~~~mj]}~XT~~~~~_x~r~pl~~~~~~Kn~s=~jq~`~~~~~t~~~,~ng~dz~~~X~~ghS~r~~~~~~_~~~~[re~~~W~~V~~~~~~~w~~~~~~x{~~~^~~~~~~_~~]~~V~~}~o~^|~p~~~~Q~~~9vw~~k~r0~~~>O{F~~~|~u~~~~~~~{~j~}~~~d~v~~S^~G]~~~mr~~~~{~~\~~k9~kq~~H~~~z~~l|I~k~~\|Y~tV~~~~~~w~~}~d~t~X|DL~~~~x~l}~~~~mT~~|~~~~~~~~~~~~~t~~~P~~E~~~~7L~Zj~~~a~}~~~x~h~~~~~p~g~S~c~[k~8{|~~pz~~~~pl~|K~~lm~~T~>~~p~~~~Rk~~^~}~~~tzSh~~~Do~~~~}~~]uV~nb~~~~g~~~Q~~>~~~~cAz~~~~U~~`~~~{~~~pP|[c~~~~~~~~~C~~~~~g~~]Vj}~V~~~~~~Uuwq~~\~cM~~~~~q;~eG>~~~~nMrmWAs~~M~~v~~~`~UU~~~ZPX +@9930ea56-f3fb-6a16-2e0c-c7b4f79b0c23 DDX5_MANE(-),+strand,810-3072 length=2262 error-free_length=2263 read_identity=99.956% +TGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTGAAATACAATAAATGAAGGCAATGCATGGCCTTCCAATAAAAAATATTTGAAGACTGAATTAAGTGGAAATTGTACTTTATTTTATATAATGTCATGTAAAACTTTGCTTAAGATGGTCTGGTTTTTTTTTTGTTTTTGTTTGGTTTTTTTTTTCCATGAAAACAAATGACTGTTCCTTTTTATTTAATTTGGGAGGCAGGGGGAATCAGAAGGCCCTTCTTTATAATGAGCTATTCATATTGCAGGAGTCAGAATGAATTGATACAGGTGAATTTTTAGTTACAGGCTAAATTGCATAAAAGCTTTGTCAGCTTCCAGCATCAGGGGAGTCATTTAATAGCCTTTTTCCTTATTTGCTAGTATGGTTAAATGAGAAAATAGTAAAATAGATACAAAGTCATCTATATAGTGTGAGAACGTGGGTGACTTTTTCAAAGTTTATAATTTAAAAAGCTCCAAATAACTGGCTTTTTCAAGAGACTTATACTCATGCTCTTGGCTATACTGTGAATTACTGAAATGTTGAACAAACCTGTGAAAGACATACATTAGCCCTTTAAGATGGCCAGGAGCTAAGCTTGAGTCTCCTTTACTGAATTTCGTTCTTAGTGCAGGTTACTTGTAGATTCTAGTCTTCACAGGCTCCCTGGGGCTCTTAACTAGTCACACTGGGAGTCATGAATGTCTTTCCAATAATTCAGGGAATTCTAGAGATCCTCAAACTGTAAGGTCTATTCATACTCAACACAAGGAAAAAACCTCATTAAAATTAATGACTAATCAGGAGGCAACGTAACCAAAAGCACAGTGAAG ++ +~Obf~}~~t~~~~~~~i~~~~Y~~`~~~~~M|~~~e~}~i~~Kgj~l|~~~~Os~~`~c{~~~~d~~~~~~s~~~~p~F~~~~S~b~^~~~~~~~c~~~~~~~Z~~~~~~S~~~~p>O`~~~~~}Ev~~~~H~iq~~~aq~~~\~~~~~|~~~~~~~~~~~z~~dRQ~p~hboY~~~~n~m~~Tz{nj~M~s~u~~~~U~~~V~r~tm~~h~wRk~~~~nj~_~~~~~~~~~jwoc~~~}t]~~o~~~H~t~~~}~n~d~~~rc~~~~~~~tty~~~~~~~~~~~~]~~~~Zy~~~^~c~m~~~~~~~~~~}~pE~~\~oP~`s~~~~~q>~~~i~~~v/[V<~~~~z~r~v~ou?~~BSl~~~H~~~X~~~~~~~~~r|~~h~yy~~~~~~~_g~q}~~~t~~p~~~y~m~~[~~~;d~~rm_~~s~~~~~~L~~~zn~~]~n~~~~~i~~~~~~f~sWv~~aPu~~Rk~j^I~r~~~iYt?~~U{Li~Q[w~~=r`l~~~J~Ho~^s~|~\oK0~~Y~^~r~~~w~~}~s~-~~T~~?x~~Es~~~~a~~~~~U~n~~~{k~~~}~{~~X~~~K[`~w~~gvw{]~x^~f~M~D~u~fn~~Z~~~J~~~Ue~><~~~~~~~~~_~~~By~ao~~~|U~~~~r~sX~~_~~~~~fo~~s~r~~~Hy~~jK~~p~~fw~cb~~}~~~~W~~aw~~~~~~~~~~~~~~s~~r~~x~M_~~~7kmkx~k~~~r~b|~~~~b\gBq9gG~~~~~w~wn~~~|p~~~jxvmsv~~~Uml~o~~~M~~\~~~C~~~d~~~~~~~^p~xE~~~nw~}uZt?~~~nk~~~Mvlus~~M~u}~c~~~~~~uqI~~Y~~~~c~P_Yb~~]~~~|X~}~o|~~~~~~~c~alig~`W~xt~~esd[A}~~~~~J~~~U~~p~~~w~~~y~|~xl~NC~v|4~~~~~~~{~~~^~~~~~~~QE~a|~C~~~_~~~~~Stp~j~a~~~b~o~}~z{S~~~g~D~p~~~~zhV~qb~e~]~Z~~~~~~OvY~i~_~~~~U~~~~~LS~~H~^~f~~~~~~~]~~~ou~w~~Xw~|~tb~d~~~~~~~c~b:q~~c~~s~~z~~dW^M~~~~~~~~\WHq~~w?d~u~~~v~}~~~~P~~~~n~Q]I~~~~~~_f~~Yz~b~~WK^}~c~~~~^~~~~X~ur~~^~~a~{r~~gh~~~~~H~by~y~~mc}~^~~~~i~XX~h~<~~k{~~j~~~huyr~~~~{~QJ~~~S~~~Ndz~~~~~|~Q|~~~w~~TiMtS~~~~P~Y~m~~Wa~~~lmf~~~~~4~~~~~~~~~x~~{j~~wl~~}~@~~~X~pK~ed~~sD~~~oQSv~~V~~~g~F~~~Y~k~~~~~~t~]~]~f~~~s~~~r~~~]~~~2p|~i~Tmbq~j[~f~~~f~~~~~~hSC~r~~~Lqj~~~~~~~~7~~c~h~k~{~~~~N~c~~~~~cR~}c~`&~Y~}~~ZK~\~~~i~uo~q~~~~~hJ{q~S~~t~w~c{~t~~~p~Zr~~~^t~~Gn~L}~R|[~~~~s~~Fp~-~~~zK~c~~~~~~~~~~iU~~~~~~~VDp~~\o~\~~~~~^~V~~`t{c~r~qh~~r~~~tgL~ex~~~i~~Z~~~~~f~~ld~~o1gB~vb~~q~q~~~r~~~~y~~~|~e~~~?~~~v~tLB~_c}Odw~t%]~q[~~j~\~~~~~k~~=~S~~yu~j~~~~]S~~hz~Bw~~~x~~~z~~~~Q~~~]~~~Yll~~~So~~~~~tl~d~~~~G~~b^~~~b~S~~~~Ufd~~^~~~~pO~~~zu~kV~~~~o~h}z~|R~mg][~~~W~T{~Y~~~yls~Z~~jh~y]~~`fjG~~~~~q~q~~f~T6,m~~j~g~b~~~~~~z~~~~^~>@~~~a~~~rr~~le~~~~~`~~~khG~~~~~D~U~~h}fvx~kkt~~l;\cc~~~Y~~r~~~~~v~A~~~~e~~~p~~*~~~~~~~~~~6~aiV~pe~~Pwc|9Exx\~~~~PYdf~~~~4~`~~~~~~~e~~[~~\~g~~~~~~Y~q~A~~buq~n~~j~bo~qn~~~~~~~~H~z~l{~~~w~~aY]~~~ba~k~~~~~~j~~g~u~jpD~~~;~~aTv~~~~~~~d~~~~~n{r~z~)~~~~~~~~~u<[jpU~z~zMh~q_g~~~lJ_~~~~~~~a~oC~~8~j~gq3k~~}~~~F~~~{{Zu~[~lh~uEb`ee~u~~T~~MJy~~~p~m`^u~~`L|~f~~z~|~~~g3~~;~~~~~E~~r~~~~~j~}~s\~W~~~b~~p~c~tpv~~~~d~~ilfhd| +@52baa12a-3f08-bc86-a7b6-162986677fdf DDX5_MANE(-),-strand,2579-3684 length=1115 error-free_length=1116 read_identity=99.912% +TTGCTTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGCAATA ++ +RnZ~~~~dpp~~~~~sZ~~~}~~~~~~T~}~~poj~~m~~~~~~p|>`~~~~~}x~~f~~~~~x}~O~~~`~~~z~|~~~~~Gb~wr_~~~r}~~~~~Wfr~~~~~~~~~|~n_|~r~~{~~{~~~dl~dz~b\}~~OG~~~~~~~~op{~~~~~UN]~~{~Q~~w~~R~en~p`~~~~qx~y~t~~cP~~~[~~m~H~~~V~~~~~q~~EN~~c~^wla~~~^~~~X~~s~t~~~lyc~~~~~Vd~~~~~2~~~ov~m~v~~~Yr~~~z~~cs~j~~3w~~0~SZn~~~Y~r}~~nD~[Zs~y~z~q~~~Spp~j~H~~~a~~c~~~a~d~p~~~~P~~~~~x~~zax~~~~Sg~q~T~e~x~~pys~~gmf~~~~~~Z~pwa~~~~~~~~~~o~Y~J~S~~~{~1~~~~~~~^~~~~[e~~V~_e~[~f~~N~~gdmqn~i7Z~~~~o~`r~RY~~~ubcry~mY[wp~~v~~~M_~~o~~~b~sU~~~~~~~msbcbK~l{|~~~Kb~~~-{~~kA}~~~~b`~~~~~Ur~~~r~f}ZY~~~K]Tf~~ZP~~~Lq~e~O?~~~y~~t~~~~d\~i~~[vi~vjc~j~~;Ns~_x~dm~Qq~`~t~~{hxvP~~~v~x~~O^bY~~R~~c^~H~z~~y\lp~~~~ve~V~~s~~Br}~~~~~n$~~~s~~~o_Ph~~~~~G~~~~~k~~~~|T~~t$;~tO~wEh,~~p]~T~~~x~X~kMB~~n~~~3|~~~W~~~k~~~~~J~}|~~~r9r~Y~n~f~ncjh~~s~~h~~~~~d~~~~i~~~~Q~k~~~5~e~~dn~f~u~{~~~pS~~~~[~h]~~|~USjh~@~w~~lk~u~~|~~~~b~s~CX~rte~l~rb~w~~~q~k~w~[c~~f~J~~~Twq~~_~|zY~k~~Vy_o~~~~~e]b~~~Z~{~~a]~}~~a{~~~{_e~~~~~~~x~cc~~s~l~qh~~~7|~~~h~Agq|^~n~k~w~~fo~~C}~~~s~Qv~~~{~~D~~~f}_~~~d~;NNarY~HwceJ~\~V~n~~~~\YppvQq~w~GJ~~g~_nKV]~~r~~~Huy~~PI~s~i~d~|fY~~~~~~~~~~~~S`~Z~<~~U~F~~~tbz~~~~~Z~~~~~a_~~~R~k +@87737d70-3550-44db-7f18-80dac90e9995 DDX5_MANE(-),-strand,0-3684 length=3691 error-free_length=3694 read_identity=99.919% +ACGTATTGCTTGGGGAGAAAAATCACATTTATTAGTTAAGACGACCACAGGCTGGACACAACACACATGCTAAAAAGTGGACTGTCTTTTAAAACTTCCAAGGTAAATAGGTAAATGTTTTCCACAGCCCAACAATCATTTCAGTGTTTACAAATTAAAAGGCCCACGGTTAAGACATTAAACAGTAAAATATGTAATAAATGCTCCAACCTACCCTCTCCCCCGAAAGCTGCTTCTAAGTTTAAAACCATGAATTTGACTAACCATGCCATTGAAAACCATCCAGGTTACTACAGGCTGAATTAGTTTTCAATGTCTAAGTCCTAGAAATATCACTCCCTATCCCAGCCCTAGCAAATTCTAACTTTACATTTGACATAAGGCATTAACATCAATTAAAGCCTCAGTTTAATAATCAGAATTTAAATGAAGTCTCCTGAAGACCTCTCTTCTGGCAAAAAAAAACACGTATCAGACTCTGGGAAAACATTCAGACCCACTTCTAGCTATTACTGAAATAAATGATTAGAAAGTTACGTTGGTGAGCCGAAGTTAAACCTAAAGCTATCCCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~~~~r~~u~~~~~~vg~~~|d~~|~m|~~~~{u~`pa~~~~~nh~y~~um~~~~~b~~\.~~xve~~~w~~l~~~g~w~1~~T>~~~~~~Ra~B9~Mp~~~~~p~>~~~{~~~r~~`~vh<~~by~~~U~~~~~~~~~~~~~L~~~e;d~~~t~m~vp`?~k~~8ll~~~?~~~q~~~~~~~~qfbT~f[~R~~~O~Mxo~~svd~`~~~~A~~~~~~~~xt}9~o7~arA~^w~~~c>~d~~U~~~~~zq~~~qdZ~~9~rf~~~~fq~~cI~~Y~~jm~un~~~`c[~~~QL~~h~~MN~~~Z~~Z~~ok~a~~~~hH^~}uv~~]~wp~~}~~~g~~dpi~b~~~vY]l~~`~m~~qz~~~]~r~~iW~~~V~\~arR~~db~{_~O~~~}~Y`~a~Dfpmgx~~~~~Ndsa~M~~hl~~m~_~qw~~~~ex~~c~0z~WWg~rp~y`~~~yH~~x~~~~}~x~s~~E~~~~_~j}~~~j~s~~~~~kwnr~~~_d~~TRAt~~~[~~i~x~z~~d~rwl~~W~[iw~~uoS~~f~~~f~~z~v~~~~~~~u~~~~~~t~~~~~~~~OI}~~~~~~[~~c~~~~~~nf~e~~~~~~>eol~/~El~~P~~ko~~Fw~~z_Qq~~u~Y~~f~~qR~}|~~~~~~~wd\~~~~~~h~~nmx~W~~qjRYffB~tX~^~ev~~~~~~~~~U_eWSn~~|w~}f~T~~y}do~I~~j~~~~~ee~p|~~q~T~~~~Rdzg~~~p~~a`~~~~Q~p~YG~~m~~e~~~~~j~~~zy~~~t~~~n~~|~~~~~~~=[~mu~~~~l~~~~S[saY~~~p^e~~~~p~~~R~~~c~tq~}pP~vz{~~~~~V~~~~q~e`~rjj~~~h\q~~~m~~qX~}~~~~~~~D~~u.~e~~~~~~Tpp[~~~~~~~qv~~|~g{q~~~|~O~s~}~~x~~z~X~~U~ze~~~~~~e~zi~~b~~~~p~{`~Sg~~~T0]~~~~~~~}\~e~o\~~~r~~~~~~~~~~~~N~~~~~~~A~~n~~~E~v|hnb~~Y~~`~~q[p~jo~a~}U~s^~U~T~~~v~s~~r~j~b~xj~4~~~~~u~XZ~v~c~~~y~~~y~~z~~o~~~~W~~~Vr~b~o~y~o~~~Y~~vfu~U~~~tx~~}gLp[m9~i~~~~~wcz~~~~o\sd~~fm~~4~~~Fn~gn~9g~c~~~~Ku~~~~y~V~~@h~b~~~Frqh~}m~}u_Tb~~~~~s~~f~~~}~~~u~~~~~]~~~jll~cQ~~~~~~~~~~Lm~~z~O~~~b~~~~~~wYL~~ta~~Z~~~~~~~e~W~z~~~~~g~~~~z~~~~~~`M~~~~~~~~l~s~eO~d~~~ni~k~lqkH~i~~~T~r~~~[~~~t{kgjcoN{~Mz~~~r~g~t~[~~~~~~~p~o~~|~~~tKx~{~~mm~e~~~S~p~~~~~~~~^~~~~~~R~~~~~~jg~~r~R~~~~~@~~rT~~~~~g~~~T~7v~~~];~y~~~~vNo~n{I~~b|~X~z~~~B~@~}y~fx~UU~}[zb~~]~E~~d~~~6LzZ~x~~~~~[~~y~yw~~~z~~~~H~~~Pi~ks~~~l~Yd~~~pqV~s~wv~~~~lr~k~~~_a~~~~~~al~~~xZ_~~d~X~wc~f?)~~~~~~4t~j~~~~xZ~~~~~~~~~~om~u`~>~~~VK~~z~_~~?~~|~~~xV~~k~~~lzl~~]ot~BU~~~J~~~D~z~~|~~~_~x~~~s~h`\~~~~Sh~~~~fr~~~G~^n~Z~~~`q|~`m~~n~\q~t~f~^~~K~~~OneH~~~~V~~~x~w~~~~0~~~~qU~~~~}=yc~~~m~l|~^~{~~|~~~S~~~~j~m~@ri~WpYT~~~\~~~~mhM~~~~~~~c~~{~~y~n~~j~~_Y=q~X~z~~~|k~t~~~~~\ei\~~aZ|~~~~~~}~k~u~~zd~~~j~X~t~~o~~~~~~~~Kc~~bmd~lq~~4~y~d~~~^fm~~~~nq~T_~y~A~~~~U~w~~~v~~~~~~~~~~~~~f~~~~~~W~n~fq~|j&~~v~~~~~}v~~~d~~~E[h~~~~l~m~~~~~q~u~~~~~~~~~~t~~~|x~L~~ix~^W~~dV~~g~m~Llb~~~y~~`~l~~~~q~~E~T~~g~~~~\~~G~~s~~p~~~~a9pLhG~m_~~y~~d~~~~~~~~[u~f~ozm~~~~u~}~~~~a~Z~~~l~B[~c~~~jwj~~~~~z~~~1W~~ep~k}~~~g]~~~z~~~~d~~~~M~~g~~~~^=OQ~~kp~mS~~`~|e}~~~~~rj~{Xg~~f/W~_L^^~c~~~~~~~~~~Pxt~l~~~~u~~~E~~h`~~sYfg~~~Hv~~~X~g~d~~~~vu~q~{`~~~~b~~~~~~~~~~~~^~-w~a~~~p~uv~~uv~~l~~~~~~Ih~~[{~]~mJls~v~~~~N~~r~~~f~]~~k~~tX~~~~~Q}g~w]Q~~\lq~F[dQ~g~`t~oVcq~~n2~~~~raj~a~~~~el~i~a~~~~~a~~~~~f~X~[R~~~X~9~~~b~~~~~t~N~~vc~ypo~qt~~~y~~q~~~~\~~~~wc~poP~~xo~~~~`Rb:{~~~~~~~~s~[~hj~q~~~Y~ln~~F{X~WT~~~~}O~~~w~~~]sf~~~l~zn~f^q~~~Azx~~~s~~~r~_~T~~|Tndk~~~br~~f}~{Xfm~WkT~d`~~o~mWOQ~~~~~~O~k~~ix~U~~~T~~oB~P~~~~~~~~~~~~xa~~~}~~~ixf~l~~~~~~c~v~~~V~~w~~Z~~~W~l~~~Cdb~~i~~~q~x~m~~]~~c~~Zz~~U~~~>w~Sz~nm~p~~~ii~~~~~\~`~wa~XoT~bZ~r~~}d~}IbQ~~~_l~~~~|~c~W~~j~~~`~~kb~~~~f~ky[WY~(ytg~~~~m~{~w6~p~~y~~~~~mwn~lb~yg~n~s~~ZO~~~~I~~p~~Mp~q~s~~yz~~~Rv~~~~~p`~~xZo~C~~~[n~~q~~rnO_~~~Z~^~a,zu~znr~aZ~f\r~n~~~~\~~y~o~~}q~z~~v~~~zP~q~~wo~~~vL~{nm~~\~~YkH~~ke~~Bh~~~e~}~]vG~~_~Uoll~\k~~~~~~~~~Y~~~~~_~~~lokx\~yJ~~~~s~y~~q~~l~j~~~~~~qUbg|fz~i~~~~af~~~~n~~bT-FP~lyM~~r~~~~~~X~c~{~U~U~y~_o~]~a~~~~~r~~~9`~J^~D~Zv~r~s{~~h~~|yb~~na~gq~r~~@~~~~q~>~~qNw~ +@ed078c56-fe85-9e1b-a429-21d62fe00729 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,930-2246 length=1336 error-free_length=1338 read_identity=99.852% +CTTCGTTCAGTTACGTATTGCTTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTGCCTTGGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGT ++ +s~k^`~~~hs~~~~JTh~icf~~Q`~p~i|`~j~riz~g~~~~~i~~aNa~g~~~~nQ~-R~~x~~~v{W~~^~BdO~~~ob~~\~Ql~~Lc~]~~|~>Cb~~mo{d~~}~~~^~~T~~~~~T~h~e^~`~b~~~~~~~~=P~~|~~V~\~Q~~_~~'P,Q~zr~nVK~^~~~j~y~x~[ZL~~qw~~~U~ek~~rW~~n~b~~g~~~~~~~N{a~N~~}kz_~~~|}Z~zqS~v~~~~~v~~~~{~Ff^S$Z~`~~=~~[~~~~~~Uy`~~K~~~G=~l~~~~y~Ql~~~~w~~a~~m~~m~~Zvu~Z~~~~|rP|~i~~~[~~S~c~~{~t~V~hmt~~~`x~~~~y<~~~~~eia~~~~~~~`~e~z~~a\~j9~q~~~~~~~~~gXtl~v~Ui~~~b^]~Ip~~~v~~U~~nlj~~_~f*~hZ~~ir~~H_~~~~f~v~~~~n~~X~~~sz~i{~~~~^~nZt~os~h~~~_q~~~~~~^X~~|~~~b~~~h~{2~{y~j~P~~T~~|~~aV~~~jB~~M~~\_tb{tl~~~~~i~Pk~~~^~H~)x~M~f~c~~*~~w~R~~>~{~~k~~~~~W~~q~yG~~~^~~~d=[~~~~l~~~~l~T~Q~MY~~sj~~~~~O~tv~i6~~~U]~d~I~vVy~\~~amc~hy`|2~~~jm`~~~~~hf~j~_<~|f~~jw~~~~~~nV~lUt~~e~~o~U~~~~~~~~~k~~gp~~~~r~~}~~gE~~t7~l~~PtuK~~~~~~~X~~~~m~lm~~U~~~zn~v~U~~r~~~~~f~^~~t~~unO~~~r~~~~~j~ow~sdU~~~M~e~w~;~~~~OS~~L~~~~~~[~Zj~~~~h~~Y~7~k~~~W~~~uZ~~~~~a~~~Mc}~y~d~~~~~|~~~x~h~~~Mg~_~~~~~g~~vm~~k~~|~l~~E~~~~~~>o~sCp\~~~\~]~8K~~c~~[~~~r6~]~ +@d828c764-5bc2-a382-6020-3af37f6378da DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1264-2545 length=1286 error-free_length=1289 read_identity=99.770% +GTATTGCTTACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~~io~~~t~\o~~~~~~~~~xaq~Y~[_~edWx~{Wb~Y~~~~~o~p~W~~r~~~X~uz~V~|~~~S3{~_~~K~~~2o~~~~t~h~{{g~~~~~~~~o~~V~_b~~~E~K~z~o~v~~~~EC~3r~~yl~g~~~~~n~\~~~~~Row%]~~{~S~~~~[~u~~~~~w~~~yXz~~N~{ka~ad~qX~~~~S~i~~y~\~Q~`~s]~~~o~w~i~~~~e[p~c~~w~s~~~t~~|~aY~k~~~~~~~~~{`~~~~~~Ok~Jz~~~~[~g~~~\~~kY{~~~~~x~~c~K~~~~~~~vY~j~~~~~^~~~`~t{~|~~la~~~k~~_k~{~~~~zRww~~~j6H~v~~~~p~~~~~Vdu~V~~E~~~]X~~~~>a~@eh~~w~~Q~~~b~]~~~~~ZV~Qx[i~~vs~~{~eW~i~~xwpi~~s~~~~~~~v~r~eW~ij~~~~~ZV~~~~~~~~~~~~|~_~kJ~~~WYUp~~~~~a~~~~Ci{~~g~~~?~u~~y~~~~j~~~~~il~w^J~~~o~zjd~O~~b~Z~~~l~`Xh~c~~yEX~~~m~h~u}~~~x|~9~~~~~}W~~~~~u~~~~~~~~~~~]~~~u~~~~~~~p_~~~}~~x|~~ol~~.~~vn~~j~u~~xR~j~B~zc~~~~~b~~~?;a~~~~~~yh~s~i~~~o~h~~~~~~~~~~~~Re~~_P~~~~~~~Nj~~;~v~~~N~~}_~\V~m~~~pt~|~}~~~lo~MqSZWr~p~wH~~Y~u~u~~~~~vqd`~T~t~~~~~_^~~~~iL`Y~a}~T~]pP~qw~p~f~n~~u~~~~|~~~~^~~~%7~_~kYyk~~~~dv~ypB~~~~~uPvc~u~~~z`v|`~~~~~|~~~tz~~N~~~OoN~~~~~acjx~Tb?3~V~~~~~~~}~_~~`y~~~`e~h~|~~~~~~~uj~e{~~~\w~sjp~~}~~~~jI~_~am~~u~~W~~Y~u{~`~yr{b~7~~~~~~~~UlZ?~~~~~]e~_o~~~;a~~~`]vm~~<~~~~~~wgwZ~|r\mc~~~^Q~T~Jd`k~~~\~~~~~~v~Y~~~X~X~~~}j~/]O~jv~~~~~~~~m~Y~~~~~~u~z~~u~cX~~~~m%~X~|~Y~~~~~S~x~~r~~~~k~~~~~rn~~z~mg~n~lsI~~{~~:s~X~z~~f~~~~n~~wsZ~~~~~~~~~~h~~~c~Z~w~~^q~p}F~~~l~UY_g~~~[4~~0~l~~~z~~e]~~~\~~Vo~t~~a~{Z~[~{~~~~Z~~~~~9F~mW}~~n~~~X~q~wk5~Y~~~~~~~~~s~i~B`~~a~z}~|~zn~~~Tzjo +@85f08d14-b4ff-3ce6-cabb-4fd6124ebe8e DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,2120-2545 length=426 error-free_length=425 read_identity=99.773% +GAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACCTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +he}~]w~~~u~~~~~aJd~~~~o~~~~~~~~~{~~E~~{?v|\K~~l~~va~Z~z~~~Z~n~q~~KY~n~~`~~d{@0J^~~~{~~~~~~~~~~Wbe~hS~~noH~~~~~~po~~~~~~{~v~~p~~~~~ud~~~pqO~_~~~@e~~t~~~~V~~~~~~K~~o~~oL~~wW~~~~u~~~~~g~~~~N{~~~~~D~~~~~~~~~~q~~@M~a0cI=;~~~~l~9~i~~~~~~m~~~~~~l~~~~P~a~~Swj~}~~a~~~CyEz~~s~b~~Xi~~~~~~~l~~~~~|~m~qD~~~[S~^~~wS~~~~kf~X~j~ex~~v~~~~zqx~g~~I~~~qo~~~~bD~~~e~|e}_~~~~~~~[t~~~c~~~~~~~~~~~x~~~~{~~Yf{~c~~~aynK~Zv~~~1~~cAa}~ph~~gdB~}Z~kUn~~~| +@b902c830-3fe4-1b5a-d418-0c97fc6ea403 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,326-2545 length=2227 error-free_length=2228 read_identity=99.688% +CGTATTGCTGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~|~~~~~~~ygN~t~mv~qf~N~o|~~V~[u~~M~c~~]~M~~~~~~~}~~~~~~~x~]qz~~~~x~~V~~~~~~~~q}~y~~W~f`~`~~~~~~~]n~fy~Rs^[~|nd~wr~i~~~y~V~~~~~~~a~~~t.jL~[~~~~}~[~~~h~Ij~~pY~V~p~O~we~~~~~c~~|~6~~~~~~~~~~m~budU~ZQ~~~~d~~%{~~Hm~~wpc~@~X~u~p~~U~~Xmu~~Gld~p~i~s}~a~y~~~~ij~bJ~~[~y~~q~~~~~~c5Th~g~m~~~~~~~~sW~~~K~r~~~Ohav1b~`M~~VR~~~r~~~]~~|~~~~~~~~v~~x]m\~~^q~j~lV~~~~f~~~\}]~}]n~z~K}~~|~xcb^m`~~{v%Y~nF~^~r^ITun~~D~~Z~ww~~~l~~~~~n~~?~|~~~~~x~~~~z~ff~~~~X~~~l~ZY~q~o~]~~L~~~~o^~~O~fbc~Sj~~~~o`K_~~P~~UpAf~9~U~}d~~Wa~~~~~~~~~~~d\~~~~~~c~~[~Hgm~ok~c46~~~~~~?~~{~h~bqa~~N~~~~|~~=~~~~cf~l~u~baj`~~~~~g~~~~U~~~Y~~s~~T^~~~f~h~~~~~~~ug]~~~k~~~Wmd~r~~~~F~~~K~|~~u~m~v~e~~~~X~zz}o~Y~qZRK~~~~_d~~~h~-~;~~~~~~d~~~uu~f~~~~~~~~~~o~v~~~h~~~~~~Y~~znL~~v~xs(ol~~~ai2~~uX~{~c{~~~~gK~~C~~~~~~i~{~Z~R~Hfz~P~Po~~~[~k~]}_~p~~~~h~ph~^o~~~~e~W@jv~~nx~~~ccMkk~fA~~vo~~~v~~f~~U\Y~jpc~ey~~~~~~ex~r~U~z~u~mvg~W~~`~~~~~][9{~s~FWj~=~|M~v~]f~~{~i~~~~~^p~~~QR|~m~j}~f\~MB~Sp;~~^ek~cd~~y~~~3u~Q~d~~~o~~m~e~ak~~~~~l~k~~~~gu~~S~~~~~Z~~~~~u~b~~~q~\~~W~|~~~v~~r~cez~Y~~~zu~_~~~~~~~~>~G{~~m~F~~~~]~~~~~~~p~~u~~~~~n~b~qp~~~~p~~~~fcL~s~~&m~d^U~~~|c~~r~~~~S~~~Xq~ier~~@~~x~~r|}}g~~~br~~X~~~~~~vYdJpjz{rke~~{~~O~__~o~~~~~~~~~~~tqMgl^C~|~t~~^{m~9~U]~~{~i~So~~~f~R~~_~rb~~~~s~~j^~~T~~~}~D~hBjq{m~~~j_o~~t~{~~~~~~~~vu~s~v~X~~~a~]~~~Iv~wWh~~~~qh~~g~~~l~~~~o~~~t~u~|~~~~h^~t~~o~~~~~~c~~w~~~o~~~~~~s~_~~~~s~}~~~~{~~Go~T~~u~~~~~~~Otmp~g~~~~~~~^~K{y~~~~~m~~~~~i~Xa~~~~~z~Z~u~~PrfX~p~Oz~bp~~~~f~u~~~wpN~~}~Y~\~H{~~T7~~~~~~u~~~B[]~{~~~~w~b~|~~y~M~Iy~~~~`~k~~~~~~~whg~~b~~W~~~g~~~~bvn~L`o~h|~g~~m~~n~~aQ~WP\~f}~~~~~~e~~~X~~m|~Ty}~Z~d~~SlwK~y~N]Gziy~O~~{~~P~Oy`~~~{~t~~~~~\owl~~~~~~~@~~~sF~s~{~rM~~~~~Dk~~~cs~~~~kg~~r~k~~~g~_~|R~~~~~r~Vc~gt~~~~hr]}r~~~~hp~t~uY\~q~~~~o~~~m~~x~~~s~~~y~~~`~~x{k~l~b~~~~~~Hf~M~~~Vb~t~sv~~9^}~~~~p~zs~h~c^~~b~~~c~~~~~s~~~~~vc~s]X}~^~m~~f~vrvi~SJz~zA~PL~|~~~~uMY~~m?b~j~f~=~~~y~~~~UP~~ptU~~G~~z>F~~iG~~~YP~~~oo~~~TRlcbTxkTg~~~B~d~~~~~]~j~~u~\edO~~}~|~-~ypW~~~~~~_~~~~~uX~F~9[n`~u~q~~c~~7~~E|eQ~~uP~~~Y~~^y~~~[~~F~~~~{J~~ai~{~~wEq~~p~~~w~~vz-Ly^S~~~~~~o~~~o~m~li~t~\~@~~3~Zq~~ir~~kjBv~~~~~V~VhweY~~Wo~~~`~x-m~X~~~q~Hnl`l~u~~~~R~SzU~l|P~~w~~~~~o~~rc~_~t~~yS~Es~~c~yda~tu~~j~~x~~a~t~~~~~~~}a~&~fL~~|~h{~{a~U~su~~Z~~~~~uJ~~~~~tw@~~j~~|Qi~~|~T~~|cwh~Jo~g}~_~~}~ +@a90392fa-ae64-f12f-c146-697a49cdba82 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1452-2545 length=1097 error-free_length=1099 read_identity=99.820% +ATTGCTCTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~~~P[~~~ly~~~~~~~}}qb~~h~b~~~~~~~~~Wx~NJ~~^{~~~~~^v~~{}~~Rb~~p~~~~~jR~v=~~~^qi~c~ZP~prE~Y~~~~j^~~~}~do~`~~~[lS~}~~b{~~}~j~~|`~~Z~rc~vx~p~~sx~~~~~y~~i'~~~~Uk~~~~g~8OdQO~Z~U~~x~L~~~~a~~~d~~~{~w~~is~~~~~~~~]~O~~~d~h~]P~~~~t~pw~y~~~~~~~~g~~~sL~g``~Plt~~^~~v~qy~_~~~~P~~DY~X~~~~]~uWj~~~t~~~~~~~~~5dy~u~q~~}v~~]~~Zu~~So~~_~a~~c~~~g~~|~~~P~~x~~T~X~~~~]~~}f~~~~}~yS|p~~~~~[s~~Z~~s~~~a<~U0~~~dj~x~sCS~~~~~q{Z~~E9~~eu~;~w~~~~v~~~~R~vU~~~~Tx~~~e~~H~~lrZ~~~J~~P~~~~~~@a~~y~~~~~~Adk~f~~~~~R<~~ie~~~jUp~~~~harv~~~pjSRp~~~~iZ~~vZk~z}pl~~~x~w~~~x~I~~~~|~u~~~~k~~b~~~Qu~~~s~~u~~_~lI~~`;t^~hg~x+K~g~~~~nizbUUY~~l~Cd~|n~avv~I~~~u~~hlty~x`j~~R~uy~~L~~~\[~\}~vo~Wxb~~=ilG~j]~~k~~O~~~V{~~S~~~~~~d~o~~~~V~`~cx~h~k~~~i~z~~~~e~~xqc~~~~~~~~~~~~~~^~~~_y~lZb~Z~~~M~~~k~lq~~~~~ll~~~~~h~~~~~u_@~~F~~i^~n~~~~~r~V~`K6~u^~~~~S~}~~}rZr~W~~~~r~~~~u~~t]g~~~Rn~~~~`~f~~~~~~\~u~~|~~K~~G~~~|~~~~W~~~r~~j~~~~~~dr~~d~~~~mp~~~~u~dzg~~~h~~~U~ +@8c4bb30a-2fb6-1fa8-2ebf-70f504725231 DDX5_MANE(-),-strand,1808-3684 length=1874 error-free_length=1876 read_identity=99.577% +TTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAAATTACTTCCAAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGAACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCAGGGTTTCCAAACTTCTTTCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~~~_~~~~Gr~~~~Q~b~~~\~g~~~D~n~s~b~'~o%0~omT~~{uk_e~~~~nnk~~~~AO~l~xj~~g~~~k~~~C~|~b~dN~l~w~~f~~xn~xz~viv(~~x~Wox~~~T}~~qvd~Lq~~{~~~~~~jc~v~mm~q~hY~~~~~~~~~~~z~~]~~_~tvg~~Ov~[~~~g~~~~U[~\~o~d~rTf~]U~~~~>ccXZN~~zm~~p~~~~~~~]H]~~~~f~RbE~~~~~Od~sJy~~~~~ms~zK~a~O~~~~~~Ku~~u~l~~lS~~g~~~~~~y}~z~~~}~C~~~~~~W~~~~X~`i~~~~[t~pqo:~~b~~~~b~m~VU|~~ew~~~~~~u~mw:~A~|~xg~~~k~~~~~~~~mM[RoZ~kd~M~X~~\~~gby~ev~~~v~~~~xMRTvnpzI~q~~~~^~vWlrva~|~1~n~~qh~~c~~}~~p~c]S~~}q~~I~zx^Je~{~~h~u{~l~}~oh~`{c~~~~~yvs~S~r~_~~~o~Z~~~YQ~~~y|[~~~x~~~a~y}|~\>wy~e~~pE~l~_~~~lv~R~yh~~~|p~~~~~~|~~~~~h~r~xf~~be~~?~~~VHb_~Duv~~OC~|~~'re~%hZ~eM~v{~}`~)ef~p[~i~x~~~~~~~~~l~~~~N~~u~~_n~~~KMho~~~~~~~t~~~~~~~c~~Ul~Zdc~co}nw~~~~~~~~~~h~~~nr~~{~~[d~~v~~e~]x~~p~~_~~~`~az~VO~~~o~`~~~W~c~~~~~N~~vd~~~~~fnl~Qh~~~~~~~S~~~~~t~Le~Om~r~~>XW~~ptfWtuRy~;e}~~~~~t~~[~~K~~`~~~T~Z~~~~w~u~m\~oz|~~~ei~~kz~~~s~t~pxL~~t~~kM~~H~~~~~~~Neb~f~m~~{W|v~~~~~~~Yr~f~uU~~~~~~t~~~~~~~~~uA~t^Q~z~~R`lA~_~~~~~v~~~_~~~fw~~3~~~g~h~~Ocag~s~yLl~ay~~~~~L~UX~z~m~~X~g_~~~~~pv~~tJ~e}S~~i~~~~[lt~~~~y~~~~~t~~~~}v~\~~\}n~~~~~~~z~luak~~~~p~v[wrqmu~|w{a~qc~~~~~~}z~~d~uP~~~s~v~lw~g~i~{~~~~~~t[~cF~~~~W~~}~~~W~~wx`~~\~~5~k~~~|{w~dzUJK~~lr~q~~~e~l~cr~~~~r~uw~~~~~~~~~f|~z~~n~~p~~~~~~ak~~}Z~~~l~~~~{S8r(~z{f~v~t[~~~~~vxN~m~~n~~~~i~~~~~~m~~~o\y~qlX~uW_~5K~i~~}~]~~@Tnv~~~~]~~~~5R~Z~~~y~~hS~wf^~~nS~~t~~~~~~u~~;e|~~~~~~~~~v~~~S~hjjv~~~~~xW~~~J}~+o~~~~)~~~O~~{~My~~~}~jX~~~xg~~~y|a~|x~~~q~~Pkon~~n~~~~~d{{~]~~d~jGlsm~~~m~w~~~~~~~~V~hq~q~~yc~~~u~~~N~~~l~J~jL~~m~~p~~~gZ~~x~~~Z~~wjw~~x~^~l~~~~~~~6r~~~~~z~~~~~~~~~~~Q{~~~~~fjuMw~S\_~~~~~~~~~x^yc[%a~)j~~~~_~[Z~~ax>iliz|u~Bav~~~~qc`~~@~^rmw~shmj~~h~lvpg~x~~~~j~nJ~y~~jbp~~~~~~~~~}~~@qeex~~QJv~~~~~~~~q~~jJ~\eoxW~~~~~mM[x~I~~~x~gM~jx~~L~~~~wN~~~~|Q~~~~~u~~~q~F~~~~_zQ~z~~~X~~~~~~v~~ht~~~~~~~t~~~~q~~~g~g~\~~~a~t~~~~P~W~|~~~f~~Wqw~~v~l~k~~c]~~~~=~~n~k~~~jV~~qe~~~]~~qpir~ohayjt~_~~~ +@fccfe1c7-0791-d447-9bbd-d020d32b2781 DDX5_MANE(-),+strand,3508-3684 length=201 error-free_length=200 read_identity=99.535% +TACTTCGTTCAGTTACGTATTGCTACTGTTTAATGTCTTAACCGTGGGCCTTTTAATTTGTAAACACTGAAATGATTGTTGGGCTGTGGAAAACATTTACCTATTTACCTTGGAAGTTTTAAAAGACAGTCCACTTTTTAGCATGTGTGTTGTGTCCCAGCCTGTGGTCGTCTTAACTAATAAATGTGATTTTTCTCCCCA ++ +zq|~r~so~~G~~~o8|~q~j~~~~~j~~~~~h~~b~~~[~~~~[~m~mj~y~T@u~~~~\~~U~~^bj~Hx~~r5~oc~~}~d~~h~L~~~~r~~jW~l~~F~~~fz~~~~4{~~B~~~qi~~~vs~~~i~~I`ypgiz~~~~~~~~nw~x~KOVn$7~z~~~~\ub~~uc~~~Qj~~~~d`~~~~[~^~~qm~~h~I~~ +@90426025-c93a-f444-07f7-faae7507ea2e DDX5_MANE(-),+strand,948-1476 length=548 error-free_length=549 read_identity=99.822% +TTCGTTCAGTTACGTATTGCTCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTA ++ +~K~~i~sdz~v~~~~j~~~e~d~a~q~zl~~~~Lcki~fflR`~~k~[~~i~~C~dum~~jp~I~f~~~M~~~~~~~oT~~z~nZ~~yjl~~)f~~~~\~~u~~W~Q~~0~nv~~~~~~~~a?~~r~~~~{{~|~x~~~^~~~~e~~~~~~~utj{~_~l~~~~tV~c~~`a~~~io~~d~~~tkv~~~~~~~q}ya~~D~J~~=~~~~~~~jE~l~~~~~}`~~Aq~~BQ~~~~j^ENP~~w~rr~mQ}~~HG_v~{o6&iurz~de~kn~~{+\~x~N~~xlpr_~`NWc`Avo~~gw~j~~h~~rE~n6sQ~~|c~ua^df~9~~r~~w~~~~V~~~~{6t~~^[Ckksd~~zi~pG~~~YjLYrI~ne~~~~~8~X{~~S~WZ~~q_n~~w~~i~~~~U}s~~~g~y~pbS~NH~zy~~~~~~rm~~zs~~gn~~~Nn~ne~~m~~~~~db~~Yn~}~yz~~~~d~K~~~JG~~b~~~~pdY~8~~~~ +@c6247ff0-4136-ff1e-83f3-6007ed60aa05 DDX5_MANE(-),+strand,1293-2227 length=935 error-free_length=935 read_identity=99.789% +TAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCA ++ +~r~~~~{~~~~_bU~~~yK~~~~W|g~~~~1~dL`~~~i~~~~~jq`~~cYsy~LTq~qs~{~~~|xXR~N~T~s~~~~~~o~~f]~V~~R~z~~[~o~~~~c~~~pk}~~c~k~]~~~\~~~~c~z~~~~`HaA[{p~~l~~~~l~~~~{~~~^~~~~Y~~~tv~~~aK~~~\Yo~~~~~~~n~~~cp~qW~H\~~~{~~;U~s~~~~~]~~~~N~~~c~?~b~~~~g~~~~~~~~~~h~^~~ts~~sG~~~^W~~~[ry~~~~~~~p~k~~~~~S:~~|Gl~~`ls@f~px~d~~~~\~}~~~~~~}~~T~e~Y]~gw~M~~~ldi~~R}~~~z~|~~~Zj~~e~~hD|~~~~~~lG~~S~~i~N~vss{o~~~w~~~~e|cT~f~~~~~{jKln~~~kv^`~~YP~~~sp~~~x|gh~~~~hs~~~7~~M~~~~S~~~f~~~~~~~|-~X~~~~~~m~~~r[~~I~~~mb~~~j~]q~h~~~X~~~~tp~~~~g~~u~~Z~WX~~B{~mz~uk~~ic~r~y~w~~~[~~~|~~\~~~~~w~h~~Ys~~T~t~d]y~~~ny~~o~t~~~~~~~R~~~~~~~]~e~V~~~v~jy~~;z~~~~~q~~}}~jh~~zTT~~~R~~y\k~~t~~y~~~~|~mu|W~Zf~~~ng~~~In{u~~zk~~G~~~Z~~^~~~~~9u~~z~~~~^~~~x~}MeW~m~~~du~~~~xc~n~u}~~V~~~n~\ulnem=j~|~W~~s~T~~{~~~~~d~~~~~z~~l~E~mg~~~[aL~W~|S]y~~~~C~~gl~~~q~~m~~Ul~~K~~m~~|~~~ZlG~~~~d~J~~~~~~~p~~bUNL~y~D-~~~a~m~}~~G]~[~~~~~R~~~wtyiyw]~}~\~~~~~{FTsp:u~~~~h~~r~~tX~~VT~~~~y~~~~hr~~~~s~y~~|~~[~z~~~~vl~~O~~~ +@7fe8ff7f-b2a0-b5a3-eeb7-e29b7b2ce442 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,0-2545 length=2576 error-free_length=2578 read_identity=99.923% +TACGTATTGCTTTAGGAGAGAAGAATATTTATTATACAAATATAAAAATCTATACATTCTTAGCTGATGATATATACTTAATCAAAAAGTCTTTTAATTTGGATATATGCATCATTTCCTTCATTGTGGTGTCTCTGCTTCTCAGATGTATTAATCCATTCTCCAAAGTAGTTTCAGTAACCAAAACTGTGAAGAGAATACTCATTTCATCATACTTCGAATAAAGTTGTTCCAATGAGGACTGCATAGTTTCCAAATAACCAGGCCACACAGAAATCCCATTTTCTAGTAACTCATTAAATAGCCCTTGACAAACCTGTCTTAGTTCCAATGTGGGGCCTCTTCCTACATCCAAAGCAACCTTAATAGGGGCTAAACAAGGGTGAAGTTTAAGTACCTTTCTATGAAGATTTTTCTTTCTTGTAAAGGAGTTCTCTGTCAGCTGGAAAGAATCATAGAGGTAGGCCAGCATGCCTCGGTCTAGGTCCCCATTTACAGAGAGAACACAAGGACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACCGTTCATTGAGGGCTTCTTACCTCATAGCTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +oi~s~~~d~~~H~a~3e~k~~a~he~~HjN~j~`\|b~y~u~~~~r~yT~Z|b[~~~~~g^r~~^~o~~~~~tb~~|~~~~~i{~~{~~J~gRv[U~^~~~Q~^~|^q~~~~~~~^~qp~w|~~~~T~p~~~~~~~~~V~~~o~r~~~~~~u~~X~G~b~b~~KGl~uh@a~<~~nY~l~~~~~tJd~~~~k~~~n~Ifpb~a~~O~~~~~?~hq~u~rsJ~cp~~~A}~r~~D~mh~~Z~r~~ne~~d~~et~~p~~~~Le~~~7~~~~~~~m;~~~~~~iH~~~~~~Y~T~Vc~~~~C~c~b~~~b~}]~~~h|{u~~{Z~j~~~QJ~j_~~~~~~q~~~vMgp~p~~~{ZBi~~e~~~~tN~~[a~l~kh~h~~l~sy~u~~~R~~~W~~~n~~~~~~pv~~~~\~~p~~~~nF~[~~~Nq~~~~~T]]M~oV~~V~~X^~~h~~~e~|c~vF~d~~S~~~yhb6~~~~}i~~~~>`]R~~~~hhv~}uW~}{~~~~~~~~t~~~?~%6CxjAuz~~~~Xv~~z~z~~~~~~^~Iq~~~~G~~w~l~Z~~~T~Y~~~Q~f~U|~~~0m~z~u~~~s~~w~a~dn~~Vx~uL~~oh~O~~~m~~|VW~~ym~vw~~Fw~6~~~p~u~~W~@~R|~~u~~~~k~}~~~~^BR~l~~~~unb~ss~~~~~~~km~~g)~x~~w~~k~U~z~~~~~}t~~~~~a~BZkG\~lw~~~\~C~~~~~~~i~`e~~~Pg~~~~N~~~~3~~~~~~~~r~~z~KQ~~p~~~}a~ey~~h~~yOJaL~~~j~~3Q~~~~~~~~~~~^m~v~{~~_~~~z~~l~k~~~~~~T~~~~ek~~y|~fy~h~~nx~~}m~gln~XoU~M~Y~~e~z~~~x<~~~r~rd~~~~~d~~~~~~q~M~~~Qq~~j~~j~~s~^~WK^~~~~~a~~~6K~~qw~~q~eti~~~~s~~~~Z~~r~~~~t~~~~k}~~~~.ij~~e7Q}~~~~m~~;h~8~~g~vM`o~_~D~}iv~~~osk\~~~x~~~~Tq|^~~~y~~Il~C6k~q~~~V~Y~~~X~~~~~~mu}Vg~X~~~~~~k~~ki{~~~~~~~_~~~~~~~}n~~JS~m~[~~{~t~qr*~~y~e~t~~~Z~b~~bkqdog~f~e~R~p~~~~|ZkEm~Yo~~gY~L`~g~~s~~~I~~~~[R~~~Q~~~a~~t~~~~~Qv\`~a~Q~~H~~bY~H~{|~~~~~e~F~~{p~]~~~~~o~~~o~~G[nr~y~i][Iq~n~f~~<[~`~~~P~~~~]~~~~~~~~p~S~u~~HT~~~V~~g~~~~pio~~~~~~~~~~~~~~m]~C~~e~hh~~~~~v~~qf]z~v}Q~O`o~~~-~~~~~~u~~~}~~~|~~~~~~|~K~~;~M~~~V~~~~~~_|t~~}x~K~~u~~~s~~~~~~~nbeT~~ew~~~~x~ZxVE~~h~~|~~~~~~w=~ldk~~e>~~~f~~YVR|b~o~:~O~~~}~~~~~kl~~U~e~~Tb~@~}~~zC}~w~~~~~~~s~}~Ro~\~~~~~j~u~z~K~~~~r~Z~~~:~~~htVjx~L^g~~\~r~y~~~~~~~~i~i{~TXjz~Z~~~=~~~~q~goh~y{6~~a}fi~fn~~X~I~`t~~~`~~~~_N~~~V~~\\@~~o~v~~rm~Ew~}|SVL~~~~j~o~~~~~~~r~~~~W~~~~~Z~~~~~~[r~^B:~~~~haQ~m~~~~r~~yc~R~~~h~~~~~~~|~~~u~~~~e~vqo~k~d3~q~~Q~~|~YN~o~~~~~~~n~}A~~~~~~~~~w~Q|~~nH~~y~~~~q~n\n~{~`Y}~~~^j~~~~~b~~~~~}~~z{~su~~~{~~n~~~~x~~~V@sVq~U~~~~j~~~~~M~~:~R~~m~h~~~~~~~^b~z~bF~*~~\~Z~gI~~g6{[[_\~~~~~~~~~~T`~v~q~~~ey[~ +@155b5525-8697-2e1f-65dd-ed74391aed78 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1619-2545 length=949 error-free_length=950 read_identity=99.896% +TACTTCGTTCAGTTACGTATTGCTGAACACTATGTTAATTGCCTGGATCTGGTAAACAAGAGGCTACCTTATGGCCTTGCTCAGATTGGAGTGTGTTTTCATCCTGTTTTTGACACTAAGCAGATACGAAATGGTGTTAAAAGTATTGGTGAGAAGACTGAAGCTTCGTTAGTATGGTTTACTCCTCCGAGAACTCAAACCAGTGGCTTGATTTCTGGTTACGTCATCGACTCCAGTGGTGGAGAAAGTTTGCCATGAGTCCATCTAACTTCAGCAGCAGTGACTGTCAGGATGAAGAAGGCCGGAAAGGAAACAAACTTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAA ++ +~~r~~Ny~J~~~z}~ki}~r~~~~~v~~]db~~o~[~h~~~~f~~F\h~q~~~~~~~ce~mbif~~RMoanl~~UF~~p~j~_~f~~`~o~~?jv~~ulD~~a~w~~~swkp~`~~e~ql~{~s~~~5~~~~~T~~s~~~A~~e~~~pz~~~m~E~~h~a~~~~~kuc~~~~~~~m~~|~~~u~~~Fw~~qa~~|UNiUmzg:~ct~~~k~~~N~Tqfeh~~~~K~~~~E|~~~~~~`~~~~iA~~p~px~~~~~:~6~~~~~|~]x~g~~~~g~~Ws~P~]~~~~j~H~Lzs~k~\{~~F~~^M~~~Q~g~z~`gx~N~u~~~ei~~f~~~~~~a^~ghN~~~w~a~~~~~~~~~~m~x~~~~V~~~jn~b~~k~X~~M~k~~~~~s~~~x~~~~q~i~^~b~~N~~~~dq~~~~~~tzu~~~lwo~~~~~}~~~~~x~jJbzBK~~~~HW~~~o~S~h~~~`~j~~~e~L~~~~~n~X~~~R~~~Wv~o~R{~~~~W@~x~~r~~~~x~~~~~`~|~r~~~~s~~wO~~AuHFpP~~~~xcX~~~~SEM~~X~~k~X~~~r~~s~~~~~]~~~~mN}~~~~B~|~CI~~~V~t~xg~~j|~~~~o~l~~~N~~~~id~}~~x~~~a~I~~~o~~~`~~`~~ze~~q~|~{~~G~g~jb~~~~n~~~~~m~wFdy~~g~Sb~~~p~~~~o~~N~y~~~gj~~o~~t\~~]~r~qK~~~h~~~LK{~We~~~gkw~y~~~~H~O~~~br~~v~~~~~~~~h~~~IzYi~~~v~~|~~~~T~~^}~~I~\V^a9jz~h~~mz}fdle~~f~&~l{q~~~kF~ak~l~~~x~D~^^e~~~m~~~`Rf`~~~~~~_t~~o~rcj~P~g~~~vn~~~~x~j~~~J~~~~~{~~~}~~XS~s^Z~}~b~GC~~_~xK~~~~~`qqe~~5~~\~~}~~Htlht~xpb~~~~t~~~ +@844027a1-d906-de96-a8c9-1c1963a737ed DDX5_MANE(-),-strand,560-2282 length=1742 error-free_length=1743 read_identity=99.943% +TTCGTTCAGTTACGTATTGCTCCTGGATCTTTCTAGCAATAAACCCATGTTGAACCTACCATGAAAACTTTCATTCACTGTGCTTTTGGTTACGTTGCCTCCTGATTAGTCATTAATTTTAATGAGGTTTTTTCCTTGTGTTGAGTATGAATAGACCTTACAGTTTGAGGATCTCTAGAATTCCCTGAATTATTGGAAAGACATTCATGACTCCCAGTGTGACTAGTTAAGAGCCCCAGGGAGCCTGTGAAGACTAGAATCTACAAGTAACCTGCACTAAGAACGAAATTCAGTAAAGGAGACTCAAGCTTAGCTCCTGGCCATCTTAAAGGGCTAATGTATGTCTTTCACAGGTTTGTTCAACATTTCAGTAATTCACAGTATAGCCAAGAGCATGAGTATAAGTCTCTTGAAAAAGCCAGTTATTTGGAGCTTTTTAAATTATAAACTTTGAAAAAGTCACCCACGTTCTCACACTATATAGATGACTTTGTATCTATTTTACTATTTTCTCATTTAACCATACTAGCAAATAAGGAAAAAGGCTATTAAATGACTCCCCTGATGCTGGAAGCTGACAAAGCTTTTATGCAATTTAGCCTGTAACTAAAAATTCACCTGTATCAATTCATTCTGACTCCTGCAATATGAATAGCTCATTATAAAGAAGGGCCTTCTGATTCCCCCTGCCTCCCAAATTAAATAAAAAGGAACAGTCATTTGTTTTCATGGAAAAAAAAAACCAAACAAAAACAAAAAAAAAACCAGACCATCTTAAGCAAAGTTTTACATGACATTATATAAAATAAAGTACAATTTCCACTTAATTCAGTCTTCAAATATTTTTTATTGGAAGGCCATGCATTGCCTTCATTTATTGTATTTCAAATCACTGTACATTTACTTTTGTGAAAACACTGCCTGCATTTTCTAGTACAAAAAAAACCTAAAAATTGTTTCAGGAATGTAGAGAAATATCCAACTTAAATAGCGAAAAAGTGCACCATAATTACTGCTGCACTGCAGTCATTTCTGCAATTCCCATGTTTCTTAAATAACTATCTTGTCAGATAACACACAATATAAAGAGCAATTATGAAAAACAGACATTTACATATACTTCTAAAGTCTTATTGGGAATATCCTGTTGGCATTGGATAACCAATCATAGGTGCAGCTGCAGTAGCAGGATATGCATATGCCTGTTGGTTCATACCATTGTGCATATTTGGAACATTACTTCCGTATTGCTGAGTGCTATCATAACCATTCTGGTAAGTCCCTGTTGGATTACCAGTCCTAAAACTGGTCTGTATACCAGCAGACACAAATTACTTCCAAAGCTCCCATTGGTGTAATTTGCAGCACTGTAAACACCATTCTGAGTTTTTGCCCCAAAATCTCTTTTAAGCAGGCTAGAGTAACCTCTGTCATAATTTTCCCTGTCTCTAAAGGTATTAAATCCACCCCTTTTGCCCGCAGAGTATCTGTCCCGACGGTCATCCTTCATGCCTCCTCTACCCCTGGAACGACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAAT ++ +wC~~?}kn~~~~~~_p~SfreujT~~Gonh\~~~~~y~k{g~dvq~~~z~i~~~~~~~RZ~~~9~}~xo~~o~[~~~io~~[~~g~_~`~~~l|Tt~~~~EnjB~d~zR_~j~~t~~~v~[~~~~~R[Y^~{rx~~~pl~Q~~fSz~nt~m~N~~m~o~~M;\|~~r~~M1~~~m~~g~~w~HVl~~~~h~~~X~~~~~~lH~z~~tx~i~~^~~t~~]~~~p~~~q~j~c~~~~~~gtxs~~~x~qt~~~~~rh~~~~^~k~~~`~{~~~ee~~Ni~~Wiv~~Er~}~d~{~~{{ygl~~~~~q~~~z~~~K~~~~~Q~~~S~m~~~~rm~~~m|~cwu]trx~~~~~z~~~~~~e~~~~o~e_~~~~~pP{~~4G~~~j~_~~ZYc~~~~H;h~~a~~mr{~~w~~~]~{iz~~qisRq~~[~~~~|~~Z~~s~pt^~e|~~~~hh~~~~U~~~X~x~~~~~EZ}~~w~~~~~~~S~~~e~~~~a~Q~~~~~~dc~Ql~mo~~~^a~~~~yOdp~P~~~hdKv{U}~vU~~~~qp~}~b~~~~~V~~~~[~~c~~~yb~Jx~N~~~~}u~G~~~~~~~~~~^~U~~~w~~~~~~~~~{K~~\pu~f~WmG~~~~~~=kY~`w~~}~j`~_~{Rz~vk~X~k~,r~~~s~zjzO~s~~~G~~K~~~~~{~YL~i~mse~~d~ul~~~i~~~~~~[~~X~Y~~~~~~_~~~~~~e^~~~~vd~~~~~_~~~~Nmovz~~~t~~~Dv~~~Tmk~^~~|~~LVro~~~~W~~=_~~~~~~GO~~~~U~~~~e~~~~~{}~~h~~~~H~~~~]~=~~~~t~b~~~~bopl~~~H~~~p~~s~h~q~~~~~~~Q:~k~s~Z~J~Y~~~~~~~r~~~i~~~pW~j~X^_~h~v~~t~~a~~tc~^|ye~~~\Z~~~o~jn1i~~Xc~~~^]B{~~~~q~~~s~~R]h~~nm~~_~$8R~^~j~~||~tk~Z~~~~f-E~~~h~~~~~~@Xo~~~o~c~~|n~~c~~~O~~~~~l~~~~~~~~cYU~~:~~]a~~~s~p~~t~~~~~`~~~~mhmf~~~~bT~~]~~~KP~u]~lYK~X~`~~~~~~~q~~L~k~~~~q~~nxazo~~x~I~l8~~~~Wp~a\~fmo~|^~_w~~3{~sx~~m~m~~~~J0~~U\~z~c~~~~~i~I~^~R/~n~~~~~~~~~q~~o~~~\~p~~ffw}~o~b_s~~[~v~~iq~Cv3~t~~~~c~fX~~ah~~y}pK~~zktl~~~uKr8~~c^~m~~~~~~~~~~~~~~t~l~s`lvo~l~~VE~~~Zh~~xR|~~`~~~J~\h`sjfU_~M~~^ntj~g~~o~~~~~P~q~SP~u~KD~~~~[~}~oqoB~{@~~~y~~~~~\c~Ks~~~j~ajz~~~~O~~id~~~~wjd~Px~~~e~~t~p~~~~~~ejbuOrR~~a~by~xi~~~~hO~W~~vL~~o~Q~~~~J~~mp|~p~0|d~~~~~|~wyR~~\s~~O~~~s~~l~~>~]~~~~ul~~~~~~Fa_~~~]\~~~~gpl~~~kg~o~~x~qVM]j~~y~r~~{Gm~~~s~~~~~v~~~~~~~YZol~~~kjs~~^~Y~~~~i~~[~~~~f~q~~~~~D~~`qnW~~~dY~x~w~Z~_W~~ubXZ~~p~w~~~ls~qH^~~~v~~V~Ug~Mk~tNf~yi~~~~V~~Q~~~8duZ;~\~~~~zo~~c~~~~z~VJ~}~~l~x~c~~h~~zs~~~iA~}~~|~T~i~Pew~~~~~{F~~_k~k~~~J`~~~~~ +@3fab698e-9b9a-7f59-8620-05ec12b39838 DDX5_MANE(-),-strand,2389-3253 length=897 error-free_length=898 read_identity=99.890% +TGTACTTCGTTCAGTTACGTATTGCTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTAATGACTTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGCAA ++ +n~~s}~~vw~V[~ar~r~~m~L~~;F~~~~~~~~~\~~u~~~~~o~\~~~~~~~kq~~~~~~gSsvjh~kr}~~~=~eci~~~~~X~tq~`c~~~k\y~~~c~~knS~e{K{~~a~~~i{~o~_md8d~`~r~~Y~~q~~~yqT~~~~Wp~|~j~~q~~~~~IJet~~~~~~~~m~~~~~eX~~|y~~R~~o~S_fj~~w~~~W~~R~_t~~t)W~bj~P~~quvl~~~~xw~~~y^~{~~o~XT~e~~~Hrx~~d~Xh~jvY~p~_~qlx~m_~l~~~~~{vnbh~~~~~p~~~~~gf~8~n~~~i~I~~M~~~~~RZ~~~|~~\xD~~`v~~~i~~~~~gh~~~~~~UVr~~~~~~7~~~f~~~P~~_Q~~lmhRk~{>~~~~~m~~i~~~~c~~k~[~~~~~~~y~p~~~iq~~|~~ensR~Y\`~I~uC~f~~U~f\~~~~~~~~n~~~~}~~T~~t_~~~~v{~~v~}i~zd~~~~~~~~~~t~ +@acec5ca6-e568-6162-2dda-622c811572bd DDX5_MANE(-),-strand,2780-3684 length=958 error-free_length=959 read_identity=99.897% +CTTCGTTCAGTTACGTATTGCTAGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCGCCTCTCTATAGAAACACTCACATGATACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGTGTCAAACCGCGGACTCATGTTTCAAAGTTCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGTGCAATA ++ +~~xD~~~wh~w~WJ~~{~~LM~~W~~m~c~~rf~Q~x~~~LK~~~~~~~t~XSD~~H~~h~m~~~~~~~k~z}~]~]T~ayw~~|~b~9~`~{~_~~~~svjvogk~~~v~7~U@~V~r~~~~lu~~G~~;~ftj~~~N~`~~~~?t~~c~k~r\T~~~U~~cv[~yc{y~Nb~t^~~~~~e~~~_~~eM~~~~~~~Qfx~~~~~l~~~P~U~~~~~~~~|~~IR~f~~~SXl~~`oq~[~Z~~~~~~~~ns~?WB~^d~~v~v~~~~~Q~~|Ln~~~~X~~~~h~^d~~V~~~~~~y~~~GyX~~~~~b~~kr^~~K~~P~I~~~~~~~de~~vn8P~~~~~~i{`^_~t~~~~~~~~qr~yS~~o~o[o~w~~[~~~Z~~_~y~`~j~~~q~~|~~~jw~\e[~~UzJ~Xj0~~XI~~~~l|Cl~t~~~~~}~ms~~|~P~Ti~~hS~~`~_~}ns~Z~~W~~{~~~~~~~~~r}~^~~~pV~~~A~~~~~~~~mt~~^nm~~~~~~fh~y~y~r~ee}~~JT~W~~pN~~~~L~]~~|~~~~~sd~~a[W~z~Z~~~~m~~X|~[~Te;~R~oV~x_e|l~~~~~~Jz~z~Y~~~~~~K~~~~~~~xo~~~~~~~v{~~~~~~~~^~}~~Ww~~U~~~~~~~n~SA~~]~L_l~~~~~_NEjI)8x0~Y~d~~+{~sX~k~~~~~~c~~t~a~w~~~~~~~~W~q~~~tyAll-~c~ox~~_{~~~f~Ik~~~~r~~~~~~~~xw~~~D~~~m~xcr4Nk~~bP~qq}~~U~`}u_~~a~~~~~~~~~xum~c{~<~~]o^~T~~~r~i~u~j~\~~~~~Of~~H~~u~rj~~~~~~~hq~q~p~^~y~~~~c|~~~~~~~~~rQ~~~~~~~~~]~~r~~~x~~>Z~~Yc~~g~~~~j~~v~L~~~sH~~~4g_~~~~~~~~~lj)~~z~q~~=cq~t~m}~~~~~~~~~~x~~~ +@cb58e2d6-8c30-154f-1799-451f01b8566c DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,1858-2545 length=712 error-free_length=713 read_identity=99.862% +TGTACTTCGTTCAGTTACGTATTGCTGCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTGACCTCTAACTGTAATTTCCTTGCTTCTTCTGTATGTTTCCACCTCTTGTGCTGTGCGCCTAGCCAAATCAGGGTGCTCTTGATAAAAATTCTTCTCAAATTTAGGCAGCTCATCAAGATTCCACTTCTTTTTAACTAATTTCTCCCCAGGGTTTCCAAACTTCTTTCCAGATAAGGGCCCTGCCCTACTTCCTCCAAATCGAGGTGCACCAAACCCTCGGTCCCGGCCGCGGTCTCGGTCACTCGAATAACCCGACATGGCGTCAATGGTTGCGGTTGGCGGGGAACGAAGTATATAGAAAAGCGTGCGACAAGTCGCTGGAAATGGCCTCGATGACGGCGAAGCCTTGCGGGGGCGGCAGCGGAGGAAGGACACCGATGACACCAGCGAAGCTGCACTACTAGAGACCGGTAGAAATGAATGAGGT ++ +~ws~~W~m~~U~AOw~dg~~~ss~~~pe~~~~t~~g~~~~`rm~~~u~~e7i~E~Z~~qx~~~~~]~u~F~~b~~~Hav~~~~_V~Ls~qs~|~o~q~~~W~~~~mg~[~~~~\VI~~~w~~~~~d~~~X~~~V~~~~y~[~~A~~~~i~q~r~~s~~nCr~|s~~~~~~~t~iu>~~~SS_\t~~~:~~~]V~PQ}~r~~~~a~~k~~~~~~~~~~~qk`~~Jm}~~qjkchgxS~X[T~MU~~1~q~i7~c~~~~~j~~no~~~~~j~~~j~~Q~~~~u~~~kM~~~~~~~~~oI\~~z~w~o~~~z~sr~p~l~v~CW~~~g~~c~~fT~~~~~~`~~~l~~~~~~Bud~~~|~~~~t~i~~~B|~o~~DF~9o~v~~~~~~~~~P~C~w~Q~~~~~~~~~j~~x~~~tKsL~~~m~R~{`n~~~~~~~~~~~~T~NZ~bp{h_~~k~mi~J~~~~~~~~(~~~~Mp~W~~~~R~}w~{~~~~>p~~~~yy~~fU~s~z~Ouphwv~v~~^~~~~~~~~D~Udi@~~~_~m~~~r~~~~~~n~Y~~E~e~~~Y~~~~j~~~i~~~~~~~k~~~~~Z6O~~a~~{B~Tv~~L$~~Zjyp~~~G~~~Oot~~~h~~f~~~z~oa~X~~~{~f~r~~ +@7f0f1867-9837-cec3-83a0-68198492e488 DDX5_MANE(-),+strand,1379-2261 length=888 error-free_length=890 read_identity=99.779% +GTATTGCTGGGCTAGATGTGGAAGATGTGAAATTTGTCTCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGAATGGTGTTTACAGTGCTGCAAATTACACCAATGGGAGCTTTGGAAGTAATTTTGTGTCTGCTGGTATACAGACCAGTTTTAGGACTGGTAATCCAACAGGGACTTACCAGAATGGTTATGATAGCACTCAGCAATACGGAAGTAATGTTCCAAATATGCACAATGGTATGAACCAACAGGCATATGCATATCCTGCTACTGCAGCTGCACCTATGATTGGTTATCCAATGCCAACAGGATATTCCCAATAAGACTTTAGAAGTATATGTAAATGTCTGTTTTTCATAATTGCTCTTTATATTGTGTGTTATCTGACAAGATAGTTATTTAAGAAACATGGGAATTGCAGAAATGACTGCAGTGCAGCAGTAATTATGGTGCACTTTTTCGCTATTTAAGTTGGATATTTCTCTACATTCCTGAAACAATTTTTAGGTTTTTTTTGTACTAGAAAATGCAGGCAGTGTTTTCACAAAAGTAAATGTACAGTGATTTGA ++ +Mi~~~~I[b~~om~~~~~~SW[byo~~~~~~wqg{(~~$~}g~^~~TYT`~`~~~~q~~~d~Y~~~OwmPk~^~x~~j~6~]~~~r~~Ql~~^4~v~V~~u{`K~Zy~~~Fqi~~~}~~k~i~~~~~e~~~{e~|~|oC~~dt~a~]~~s~~a~~t~~jr~u=~~~~g<^~~~~eZ{i[e~~~|Tt~cZ~~~~~~~|~e~lWe~~vB~~~ua~~~~Tv~o~~U~~by~t~~~\~~f~~~xJ~~~~o~~j~~S~pq~~~~~~~f~q~~`Yz~~~q~o~x~~O`HY~~~~~`~s~~~~~`Q~~~~~w~~*hpp}qw~VQ~~~~U~u[Kq|k~}~~O~~~qvc~~s~~i~~~~kb~~w^0~~~~M~af~~~c~X~~y\~~~C{ox~~~N~~n~~dSR~~~~~~~xN`c~q{~\~b~b~~sj~Rxzz~m~~|>~~~k~_~~q~Vl~~~~~vF~~~~~~P~~f~f~~`~~~fV~~~i~~gng~~ve~~~<~Wj~~~~~s[~~u~~~~~~~~m{~~U~~~QNx{c~~`l|~~~]~f>~kml~~~z~~~f~n~n~l~{~h~Q~~~l~~mkN~~K~mu~~2~~~A~v~O~~@~p~ko^~z|m~~~~~~}~~~~m~~tR~R~~~~xA~w~~f~v~~~~~ru~~~~~~~M~st~o~z~J~g +@4267c140-1334-8087-3e86-c6717095e988 DDX5_MANE_readthrough_to_POLG2_MANE(-),+strand,1916-2545 length=666 error-free_length=665 read_identity=99.853% +TGTACTTCGTTCAGTTACGTATTGCTTACTACAATTTTCCCTGGGGAAAGGAGTTAATAGAAACCCTGTGGAACCTAGGAGATCACGAACTTTTACACATGTATCCTGGCAATGTGTCTAAATTACATGGCCGAGATGGACGAAAAAATGTGGTTCCTTGTGTTCTCTCTGTAAATGGGGACCTAGACCGAGGCATGCTGGCCTACCTCTATGATTCTTTCCAGCTGACAGAGAACTCCTTTACAAGAAAGAAAAATCTTCATAGAAAGGTACTTAAACTTCACCCTTGTTTAGCCCCTATTAAGGTTGCTTTGGATGTAGGAAGAGGCCCCACATTGGAACTAAGACAGGTTTGTCAAGGGCTATTTAATGAGTTACTAGAAAATGGGATTTCTGTGTGGCCTGGTTATTTGGAAACTATGCAGTCCTCATTGGAACAACTTTATTCGAAGTATGATGAAATGAGTATTCTCTTCACAGTTTTGGTTACTGAAACTACTTTGGAGAATGGATTAATACATCTGAGAAGCAGAGACACCACAATGAAGGAAATGATGCATATATCCAAATTAAAAGACTTTTTTGATTAAGTATATATCATCAGCTAAGAATGTATAGATTTTTATATTTGTATAATAAATATTCTTCTCTCCTAAGCAATACGTA ++ +]~~j~~E~~~~~~~s6Y~y~~SUg~eU~~v~f~y~oP~~~v~`Ys~u_~~g~voe~s~~~~~gdo~k~~~y~_W~~Wz~~~~ji~~~~~fKM~hB~~~~~~zi~^mt~kkfxdT~~x~~~W~dk~i~~~~~~~~y{~O~~iy~Y~o~jttn~~~~R~~t_~~t~~~~~j~s~~~~~~l~V{~~~v~o~~~RRc~~p~~{~~~~j~~ln@~k[o~a~g~~~~{~~~~~~~l~~~~~~~~d]tp~;~l~~~~~~~~mP}~f~d~~Q(WvQwy~~~~^~~u~d~~~~~~~\~xiC~~~[z^~~~~~@~^~cQ~f~t~_j~j~~~~T~~~`J~6Y~~i~~~~~~~d>~]~~e~~wn~yh~~y~|~~B|~j~k~^~~~~~~~~~~~rq~~uf~~~m~`^~r~~~~~{~~~~Z~~RdS~~~~5|~~~V~p~~qwpm~l~~x~~~P~~{[~~~`~u{D~`vr~_~~~~e~b~~M~c~~~~~~~~va~~~~s|a~~X~~~e~siWz~~{Z~~~i}~X~~~~~~~Z~~{~~~?~~~^~}~~`a~~~~v`[il]~v~|ox~~St~~V~~~rZx~~r~~b~~E~]:yR~w$e()d{~qV~~~~~n~^~~bdX~~~ec~w~~~Wk~f}d~~T~~~w8~~~~~~_b=88~~lI~~~|~Dg|[~~c~~~qb~~_~~~~~~ +@73651d90-062f-4899-6b7d-c1910a9633f0 DDX5_MANE(-),+strand,420-719 length=320 error-free_length=321 read_identity=99.701% +CTTCGTTCAGTTACGTATTGCTTTAGAGGTCACAACTGCCCGAAGCCAGTTCTAAATTTTTATGAAGCCAATTTCCCTGCAAATGTCATGGATGTTATTGCAAGACAGAATTTCACTGAACCCACTGCTATTCAAGCTCAGGGATGGCCAGTTGCTCTAAGTGGATTGGATATGGTTGGAGTGGCACAGACTGGATCTGGGAAAACATTGTCTTATTTGCTTCCTGCCATTGTCCACATCAATCATCAGCCATTCCTAGAGAGAGGCGATGGCCTATTTGTTTGGTGCTGGCACCAACTCGGGAACTGGCCCAACAGGTG ++ +~~~j~~o~I~~~~d~Scp~^ndlk~~fb~~~~~Y~z~~~q~~{T~~~T~~~~~~d~~k~la~~~~v~~lbt~~~~~~y~Tk~~~emu~~~^~fMaF~~~vF~~~~~~~a~~~~~~{Mty~~Y^~~~~~~em~z~N~l~~~v;[~~~{~h~~~|jSz~~~~~p~~I~~~~w~o~hzf|~G~~hk~~~p[~g~~~p~{~|g~~uKr~~~s|~~~~~U~T~~\ed~K(o~Se\Q~{z~~~x~~~~i~~~~~,~{~~B~~b~~~~~~iy~~z~~~~~Vl~~~~gS~`uR~Qg~~~mR~>R~r~\j~~a~~~wc~c[b[~~~~y\ +@cb97a3c9-76c3-937e-16cd-8fe633bd3939 DDX5_MANE(-),-strand,2289-2940 length=657 error-free_length=659 read_identity=99.703% +GTATTGCTCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGTAGGTTGTTCTTCTCAGATTGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTC ++ +}~F~^E~~~p~~k~~~Qw~_~~o~~{~q~~~~~[~~P{~~~~~~~~I~~~Zf~~~~~~]~~~~~Is~~|~k~~U~f~~~~~~~~~i~~ph\b~Y~~~q_~~M~~~g~wm~~dRK_~~~~~~-~w~~s~~x~_~~~~M~sWK~q~~{ng~~~n~~~h`g~~~C~x~~~]U~~1e~~~~~~~~~D~~p~G~P~~qT~~U~{~x`~_~~prBl~Rw~}~~~~~~~yum~~~~~_\3~~yb]|e~~~~s~~7_p=~|i~4:~~Zt~~[~/~~}~s^~~~~~O~fj~s~~~sWncf~~~~NZ~~~~~~u~Rg~a~~~Dh~~sWv@uk}gqSg~z~~~{t~~~^~~~o~s~~P~~Ybd~N~m~~{db~i~h~G~~s~~~|~~~g~whf~{\~~~Kn~d~~~lm~~g~~~~~p~~~~q~mfr~~g~~s~~~Ru~~~_~Zcqej~~~~~~~~~~~hz}]~~~x~~~~nV~n~~[v~J~~~~~~xb~~nxe~~l~~}_~~~~~~~l:~uAS~n~~vf~~XvZ~~li~~iE~y~y~5`{`~uo~~~Xp_jaW]~~~=~~~~Z~IN~~~~XwU~U}~ra~G~~e}~~x~~l~~~~~~~s{~p~~~~~n~r~~~rs~~hki~~~~~~~u~~zed~>~6~xme~~p~z~~~D{^~~~~Vs~~{r~~`t~> +@053ec11b-03bf-256b-9320-55cfaa8c3856 DDX5_MANE_readthrough_to_POLG2_MANE(-),-strand,490-2117 length=1636 error-free_length=1634 read_identity=99.879% +TATTGCTGAACACAAGGAACCACATTTTTTCGTCCATCTCGGCCATGTAATTTAGACACATTGCCAGGATACATGTGTAAAAGTTCGTGATCTCCTAGGTTCCACAGGGTTTCTATTAACTCCTTTCCCCAGGGAAAATTGTAGTAAAGTTTGTTTCCTTTCCGGCCTTCTTCATCCTGACAGTCACTGCTGCTGAAGTTAGATGGACTCATGGCAAACTTTCTCCACCACTGGAGTCGATGACGTAACCAGAAATCAAGCCACTGGTTTGAAGTTCTCGGAGGAGTAAACCATACTAACGAAGCTTCAGTCTTCTCACCAATACTTTTAACACCATTTCGTATCTGCTTAGTGTCAAAAACAGGATGAAAACACACTCCAATCTGAGCAAGGCCATAAGGTAGCCTCTTGTTTACCAGATCCAGGCAATTAACATAGTGTTCCAAGGCACCTGAACCTCTGTCTTCGACCAACTGAAGCAACTTGGGATTAATTGCTTGATTAGCTTCACGAAGCACAGAGATAAGGTCGCTCACTTGCTTTATGTTATTAGGTGTAAAGAAAGTGTATGCTGTGCCTGTTTTGGTACTGCGAGCAGTTCTTCCAATTCGATGAATATAATCCTCTGAGGAGTTAGGGTAGTCATAATTGATGACAAATTTCACATCTTCCACATCTAGCCCTCTGGAGGCCACATCTGTAGCAATCAGAATAGGAGCTTTTCCATGTTTGAATTCATTTAGAACCCAGTCACGCTCTTGTTGACTCTTGTCACCATGGATACCCATGGCAGGCCACCCATCTCTCCTCATTTTTCTGGTAAGCTCATCACATCTTCTTTTGGTTTCCACAAAAACAATGGTTTTATTCTCCTTCTCACTCATGATCTCTTCCATTAGACGAATAAGTTTTTCATCCTTTTCTACGTCATGACACACATCCACAATCTGAAGAATGTTGTGGTTTGCACTCAGTTCAAGTGCACCAATGTTTATATGAATATAGTCTTTCAGGAAATCTTCAGCAAGCTGTCTTACTTCTTTTGGCCAAGTCGCACTCCACATTAGAGTTTGCCTATCAGGTCTTATTTGATCCACAATCTTCCTTATTTGGGGTTCAAAGCCCATATCAAGCATTCTATCTGCTTCATCAAGGACAAGGGTAGGTTGTTCTTCTCAGATTGGTTTTTCCACACTCTAAAAAGTCAATCAGTCTTCCAGGTGTTGCAATACAGATTTCCACACCTCTCTCCAAATCACGTATTTGTGGTCCCTTAGGAGCACCACCGTAGATACAAGTAGACTTCAAGCGACATGCTCTACAATATTCAGCAGCTACTTGCTGCACCTGTTGGGCCAGTTCCCGAGTTGGTGCCAGCCACCAAACAAATAGGCCCATCGCCTCTCTCTAGGAATGGCTGATGATTGATGTGGACAATGGCAGGAAGCAAATAAGACAATGTTTTCCCAGATCCAGTCTGTGCCACTCCAACCATATCCAATCCACTTAGAGCAACTGGCCATCCCTGAGCTTGAATAGCAGTGGGTTCAGTGAAATTCTGTCTTGCAATAACATCCATGACATTTGCAGGGAAATTGGCTTCATAAAAATTTAGAACTGGCTTCGGGCAGTTGTG ++ +G~VK~LyNi~^~~H~~~e~~VQ~_Q_~u~HW~ob~T~~~G~u~~~\JR~~u~~~V~~~~~~L~~~~~U~~~o~~p{~Y~~~~~S~Q~~~~~e~~~~~s~Sh~rI{c~~~~U~:~~~~~~~~~o~~~~b__~~~~k~D~Q~~~W~~~~~j~y~~~~~~~~~f~z~~iy~~~{I~z~~~~~~~px~\y~qvX~yAd~~zkjkP~N~~^~_~~oVV~~~~~~r~k~~^)~~~~~~a~f~c~V~~~n~~[mp~SNwo~~n~T~~~~~n~~~~z[~xI~v~j{~q}X~|uP~~~~~~o~~~~~p|~~~~~~~}~~~~q~~~{v~u~~~jw~~~a~~~~~s~j<~j~eD~~O{~~~~~~~~~~~@~~~~~~~q~To~~f~~~~~~~~oW~]nU~~~bgd~/L~~u~]j~~~~~:~~b~p~~_w[~e~~noI~~~~~~h~~~qz~_:~+~i~nSh~~F~x~~~~~~~~g~y_p~^bM~~f~~~_~~a~~~~~x~~~~~st~V~~~v~~u~e~u~j~re~~~r~~e~d~~q~T~~T~~~~~~~~\Fg_rj~~~~~~~~Jeq~~F}~~`~r~~~~~|~~p~~]ufP~~~v~h~q~`~~~t~|I~hs~~~~~~~~~ooZTHK~~ay~~~~~~|~~Y~w~q~m~p~c~~~~~~~~~~~~~~T~k~f~y~F~~~~~y~~~t~n~~j`~~Y~~~f~~t}~e~V~~S~j~h~~~~~EV~~US~uv~~~d~~G(~~h~~~~~i~~~~~k}~~~qi~~~~~m~~Z~~~~~~o~ag~~q~~ql~q~z~~X{Hqe~~~~~v~~|~~i~hlj~y~~_~Vumi~~~~~~~~_~\~P~v~~w~~~~\~~~s~~~g~~~~w=s~ov_m~bX~Q~uml~~h~CX~~~P~~~~~~i~zQu}uy~~~~~~~~~~~g~y~zq~~k\~o~\~Yl~~q~|~~~d~~~{~~xmeys~~~~~|~{Z~Zj~~~~~~in~~~oL~~hY~~~~~~~~~~~~~u~~n~~~~u~X~~j~|uR~~~Qx~b~~~~\~~~2~~_~~N~o~f~=~~~g_~H~w~~u~~~~~~~~j~xw~?~s~cz~~~u^~~~\u~~p~^~~~.>v{~~~~Z~TM~Xd~~~zSk[~~k~~Nq~V~~~~_~~e~~aU~X~i~D~x9[~~L`~i~i~~g_~R|\~~_~~s~~%tWW{h~~~~~~~~v~/~~T-T~D}~~~~~|nJz~o~~Z~~B~s~~~~~|~~~~~~N~\~Mmz~[Q~~~v~~l~~~~b~iH~t~~~Ri~~}uj|]~z~}g~{Paw~~^~~8g{~~~~~~~~p~~o}}~~{~J^~~~SX~~~h~d~[~~{~\~{~~~~^m~e~~~~~~k~T}~y~SY~Y~~~~~c{\i~E~~\~~~~{~O~}~~~~~~a~~}a~~~~~~Nn~v~~~mu~~~~~~D~4'qnT~q~~~k~~~~~~L~~~~~~~~~dl~~[~jn~~a~~gf~y~~iSh~~da~jl~~~~~~{~tx~p~5oG~M~~~~q^~h~o}~~~~}~~]~~fy~~U~H~~[~st~~p~Q~~`~~~~\~~~~~H^j~^i~n~yZ~er~h~e~~~~~V~~}~~T~_~|~~~b~~~~~~~^~u~f]jmhnevu~VW~w~~R~~~~~~~~<~~~~V~~=rxn~ek~z~mow~^lT~~q~Fb~~~Q{i~f~~~~~iY~~hrs~}p[~~~~~ +@e1bf20a5-9745-38f0-f400-a5b192df53a7 DDX5_MANE(-),+strand,703-1764 length=1072 error-free_length=1073 read_identity=99.908% +TTACGTATTGCTACTGGCCCAACAGGTGCAGCAAGTAGCTGCTGAATATTGTAGAGCATGTCGCTTGAAGTCTACTTGTATCTACGGTGGTGCTCCTAAGGGACCACAAATACGTGATTTGGAGAGAGGTGTGGAAATCTGTATTGCAACACCTGGAAGACTGATTGACTTTTTAGAGTGTGGAAAAACCAATCTGAGAAGAACAACCTACCTTGTCCTTGATGAAGCAGATAGAATGCTTGATATGGGCTTTGAACCCCAAATAAGGAAGATTGTGGATCAAATAAGACCTGATAGGCAAACTCTAATGTGGAGTGCGACTTGGCCAAAAGAAGTAAGACAGCTTGCTGAAGATTTCCTGAAAGACTATATTCATATAAACATTGGTGCACTTGAACTGAGTGCAAACCACAACATTCTTCAGATTGTGGATGTGTGTCATGACGTAGAAAAGGATGAAAAACTTATTCGTCTAATGGAAGAGATCATGAGTGAGAAGGAGAATAAAACCATTGTTTTTGTGGAAACCAAAAGAAGATGTGATGAGCTTACCAGAAAAATGAGGAGAGATGGGTGGCCTGCCATGGGTATCCATGGTGACAAGAGTCAACAAGAGCGTGACTGGGTTCTAAATGAATTCAAACATGGAAAAGCTCCTATTCTGATTGCTACAGATGTGGCCTCCAGAGGGCTAGATGTGGAAGATGTGAAATTTGTCATCAATTATGACTACCCTAACTCCTCAGAGGATTATATTCATCGAATTGGAAGAACTGCTCGCAGTACCAAAACAGGCACAGCATACACTTTCTTTACACCTAATAACATAAAGCAAGTGAGCGACCTTATCTCTGTGCTTCGTGAAGCTAATCAAGCAATTAATCCCAAGTTGCTTCAGTTGGTCGAAGACAGAGGTTCAGGTCGTTCCAGGGGTAGAGGAGGCATGAAGGATGACCGTCGGGACAGATACTCTGCGGGCAAAAGGGGTGGATTTAATACCTTTAGAGACAGGAAAATTATGACAGAGGTTACTCTAGCCTGCTTAAAAGAGATTTTGGGGCAAAAACTCAGA ++ +`~~~~{~_~~~~~~~~~~`~~~zt~b~~=|W~X~~~X~~~~~av~\y~~~T@~t~l~~_~~eo~i~f~~~gu~G\T~~~~~W~v~~~~~~~~~ypr~wfm~n~~dIfk~~qc~H~~~~~~~~s~~~P~|~~~~~[o~x}b~vcifq~tz~L~~|yX~~~~b~Z|{a~x~~~~j~~~~~h~@fZ}~~~lg~^~H~~t~u~\~~~~y~;~~~~z~@_~~~cZ{r~~~T~~m~{rn~~~~wt~~~|~fS~Z~~~O~t~~~~oQ~~yl~~usy~~~Z~~~~~~~Q~s7kmbFNqi~V~~~W~nKr~~r~r~~~dc~~u~u~~~~j~&r~~~~~~j~F~~\~~~Cd~~~d~~~~Wc~`kP~js~P~b~gm~~~?S~W]~]hf~~~~~~{~~~W~~Q_l~6~~~~^~~Q~~l~~c~py~~~~~|~~~~coUg~{~`~~~p~~~~~~~~L~~^~Rt~~o~~~`~~]~~~~~~a;~~~~bm~?~ok~~~~~{~x~k~~~~fbt~~~~~[~~~~ZT~~t~~~^iA~t~~~~~~oj~~u~~~~n~m~{~~~~~O~Z~k~~bubV~[f~v~~U~~fs~~~~o~~~q~ca~~q~f~zzify~~vtw~~~~aU~~~~~~x~Y~~~~~~~P~~~~`Sl~~z~v~~~~k}^}k~~tr~Q~~T~~~~~~~~M~~~~{~~~P~f~}~|y~~~Y~~~dHz~?acl~~|^~~~~~~~~~~rv~~~~A~y~~~~v~a~G~hvh~~~~~^~t2~~~~~~~~~d~zw~_ah~~~z_~Ii~|~t~~l~~|_~~~\~~~~~~~~o~f~QF~~t~=~~y~Qlv|~~~~d~~~~xx~v~g~~~~:~]~~Ipx~~~~~~x~~~~Ys~~~^~~n~~~~~~p~~Z~~hn~=~^\w~~d~NU~~ee~~~~~~h~h~vxm~~qvi~~~~~y~Xo~~[s~~~~{~~woj~K~\~~~~V~~h~~~~[v~~~mHi~_m~\~~s~~|~^~A>v~~|vQ_~osn~\~~{tg~y~~T~~i~3~l~~e~j~~d~~~p~~Yd~~{~~aZf~ 0 @@ -80,11 +79,11 @@ def test_partition_gtf_no_cross_contamination(runner): assert "chr20" not in loaded.get_chroms() -def test_partition_intron_support_empty_for_chr17(runner): +def test_partition_junction_corrector_empty_for_chr17(runner): chr17_part = next(p for p in runner if p.region.name == "chr17") - loaded = chr17_part.load_intron_support() + loaded = chr17_part.load_junction_corrector() assert loaded is not None - assert list(loaded.introns("chr17")) == [] + assert list(loaded.intron_support.introns("chr17")) == [] def test_runner_len(runner): @@ -105,7 +104,7 @@ def test_runner_regions(runner): def test_run_calls_func_for_each_partition(runner): seen_regions = [] - def record_region(*, partition, gtf_data, intron_support): + def record_region(*, partition, gtf_data, junction_corrector): seen_regions.append(partition.region) runner.run(record_region) @@ -115,8 +114,8 @@ def record_region(*, partition, gtf_data, intron_support): def test_run_passes_correct_kwargs(runner): received = {} - def capture(*, partition, gtf_data, intron_support, extra): - received[partition.region.name] = (gtf_data, intron_support, extra) + def capture(*, partition, gtf_data, junction_corrector, extra): + received[partition.region.name] = (gtf_data, junction_corrector, extra) runner.run(capture, extra="value") assert set(received.keys()) == {"chr12", "chr17", "chr20"} @@ -127,21 +126,21 @@ def test_run_gtf_data_is_gtf_data_type(runner): from flair.gtf_io import GtfData received_types = [] - def check_type(*, partition, gtf_data, intron_support): + def check_type(*, partition, gtf_data, junction_corrector): received_types.append(type(gtf_data)) runner.run(check_type) assert all(t is GtfData for t in received_types) -def test_run_intron_support_is_intron_support_type(runner): +def test_run_junction_corrector_is_junction_corrector_type(runner): received_types = [] - def check_type(*, partition, gtf_data, intron_support): - received_types.append(type(intron_support)) + def check_type(*, partition, gtf_data, junction_corrector): + received_types.append(type(junction_corrector)) runner.run(check_type) - assert all(t is IntronSupport for t in received_types) + assert all(t is JunctionCorrector for t in received_types) def test_partition_no_gtf(tmp_path): @@ -152,9 +151,9 @@ def test_partition_no_gtf(tmp_path): assert part.load_gtf_data() is None -def test_partition_no_intron_support(tmp_path): +def test_partition_no_junction_corrector(tmp_path): regions = [CHR12_REGION] runner = PartitionRunner(regions, str(tmp_path)) part = list(runner)[0] - assert not os.path.exists(part.temp_path("intron_support.pkl")) - assert part.load_intron_support() is None + assert not os.path.exists(part.temp_path("junction_corrector.pkl")) + assert part.load_junction_corrector() is None