Repository 'sashimi_plot'
hg clone https://toolshed.g2.bx.psu.edu/repos/artbio/sashimi_plot

Changeset 0:9304dd9a16a2 (2019-08-23)
Next changeset 1:64aa67b5099f (2019-08-26)
Commit message:
"planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/sashimi_plot commit 746c03a1187e1d708af8628920a0c615cddcdacc"
added:
sashimi-plot.py
sashimi_plot.xml
test-data/ENCFF325HFX.chr10_27035000_27050000.bam
test-data/ENCFF450AIU.chr10_27035000_27050000.bam
test-data/ENCFF756PUW.chr10_27035000_27050000.bam
test-data/ENCFF914GVK.chr10_27035000_27050000.bam
test-data/annotation.gtf
test-data/default.pdf
test-data/overlay_with_aggregation.pdf
test-data/overlay_without_aggregation.pdf
b
diff -r 000000000000 -r 9304dd9a16a2 sashimi-plot.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sashimi-plot.py Fri Aug 23 11:38:29 2019 -0400
[
b'@@ -0,0 +1,1024 @@\n+#!/usr/bin/env python\n+\n+# Import modules\n+import copy\n+import os\n+import re\n+import subprocess as sp\n+import sys\n+from argparse import ArgumentParser\n+from collections import OrderedDict\n+\n+\n+def define_options():\n+    # Argument parsing\n+    parser = ArgumentParser(description="""Create sashimi plot for a given\n+                            genomic region""")\n+    parser.add_argument("-b", "--bam", type=str,\n+                        help="""\n+                        Individual bam file or file with a list of bam files.\n+                        In the case of a list of files the format is tsv:\n+                        1col: id for bam file,\n+                        2col: path of bam file,\n+                        3+col: additional columns\n+                        """)\n+    parser.add_argument("-c", "--coordinates", type=str,\n+                        help="Genomic region. Format: chr:start-end (1-based)")\n+    parser.add_argument("-o", "--out-prefix", type=str, dest="out_prefix",\n+                        default="sashimi",\n+                        help="Prefix for plot file name [default=%(default)s]")\n+    parser.add_argument("-S", "--out-strand", type=str, dest="out_strand",\n+                        default="both", help="""Only for --strand other than\n+                        \'NONE\'. Choose which signal strand to plot:\n+                        <both> <plus> <minus> [default=%(default)s]""")\n+    parser.add_argument("-M", "--min-coverage", type=int, default=1,\n+                        dest="min_coverage", help="""Minimum number of reads\n+                        supporting a junction to be drawn [default=1]""")\n+    parser.add_argument("-j", "--junctions-bed", type=str, default="",\n+                        dest="junctions_bed", help="""Junction BED file name\n+                        [default=no junction file]""")\n+    parser.add_argument("-g", "--gtf",\n+                        help="Gtf file with annotation (only exons is enough)")\n+    parser.add_argument("-s", "--strand", default="NONE", type=str,\n+                        help="""Strand specificity: <NONE> <SENSE> <ANTISENSE>\n+                        <MATE1_SENSE> <MATE2_SENSE> [default=%(default)s]""")\n+    parser.add_argument("--shrink", action="store_true",\n+                        help="""Shrink the junctions by a factor for nicer\n+                        display [default=%(default)s]""")\n+    parser.add_argument("-O", "--overlay", type=int,\n+                        help="Index of column with overlay levels (1-based)")\n+    parser.add_argument("-A", "--aggr", type=str, default="",\n+                        help="""Aggregate function for overlay:\n+                        <mean> <median> <mean_j> <median_j>.\n+                        Use mean_j | median_j to keep density overlay but\n+                        aggregate junction counts [default=no aggregation]""")\n+    parser.add_argument("-C", "--color-factor", type=int, dest="color_factor",\n+                        help="Index of column with color levels (1-based)")\n+    parser.add_argument("--alpha", type=float, default=0.5,\n+                        help="""Transparency level for density histogram\n+                        [default=%(default)s]""")\n+    parser.add_argument("-P", "--palette", type=str,\n+                        help="""Color palette file. tsv file with >=1 columns,\n+                        where the color is the first column""")\n+    parser.add_argument("-L", "--labels", type=int, dest="labels", default=1,\n+                        help="""Index of column with labels (1-based)\n+                        [default=%(default)s]""")\n+    parser.add_argument("--height", type=float, default=2,\n+                        help="""Height of the individual signal plot in inches\n+                        [default=%(default)s]""")\n+    parser.add_argument("--ann-height", type=float, default=1.5,\n+                        dest="ann_height", help="""Height of annotation plot in\n+                        inches [d'..b'= "",\n+                                              collapse = "|"),\n+                                        trim=F)\n+\n+                # Find max width of y text and y label and max width of y text\n+                # fix problems ggplot2 vs\n+                maxWidth = grid::unit.pmax(maxWidth,\n+                                           gpGrob$widths[2+vs] +\n+                                                gpGrob$widths[3+vs]);\n+                maxYtextWidth = grid::unit.pmax(maxYtextWidth,\n+                                                gpGrob$widths[3+vs]);\n+                density_grobs[[id]] = gpGrob;\n+                }\n+\n+                # Add x axis grob after density grobs BEFORE annotation grob\n+                density_grobs[["xaxis"]] = xaxisGrob\n+\n+                # Annotation grob\n+                if (%(args.gtf)s == 1) {\n+                        gtfGrob = ggplotGrob(gtfp);\n+                        maxWidth = grid::unit.pmax(maxWidth,\n+                                                   gtfGrob$widths[2+vs] +\n+                                                       gtfGrob$widths[3+vs]);\n+                        density_grobs[[\'gtf\']] = gtfGrob;\n+                }\n+\n+                # Reassign grob widths to align the plots\n+                for (id in names(density_grobs)) {\n+                    density_grobs[[id]]$widths[1] <-\n+                        density_grobs[[id]]$widths[1] +\n+                        maxWidth - (density_grobs[[id]]$widths[2 + vs] +\n+                                    maxYtextWidth)\n+# fix problems ggplot2 vs\n+                    density_grobs[[id]]$widths[3 + vs] <-\n+                        maxYtextWidth # fix problems ggplot2 vs\n+                }\n+\n+                # Heights for density, x axis and annotation\n+                heights = unit.c(\n+                        unit(rep(%(signal_height)s,\n+                                   length(density_list)), "in"),\n+                        x.axis.height,\n+                        unit(%(ann_height)s*%(args.gtf)s, "in")\n+                        )\n+\n+                # Arrange grobs\n+                argrobs = arrangeGrob(\n+                        grobs=density_grobs,\n+                        ncol=1,\n+                        heights = heights,\n+                );\n+\n+                # Save plot to file in the requested format\n+                if ("%(out_format)s" == "tiff"){\n+                        # TIFF images will be lzw-compressed\n+                        ggsave("%(out)s",\n+                               plot = argrobs,\n+                               device = "tiff",\n+                               width = width,\n+                               height = height,\n+                               units = "in",\n+                               dpi = %(out_resolution)s,\n+                               compression = "lzw")\n+                } else {\n+                        ggsave("%(out)s",\n+                               plot = argrobs,\n+                               device = "%(out_format)s",\n+                               width = width,\n+                               height = height,\n+                               units = "in",\n+                               dpi = %(out_resolution)s)\n+                }\n+\n+                dev.log = dev.off()\n+\n+                """ % ({\n+                        "out": "%s.%s" % (out_prefix, out_suffix),\n+                        "out_format": args.out_format,\n+                        "out_resolution": args.out_resolution,\n+                        "args.gtf": float(bool(args.gtf)),\n+                        "args.aggr": args.aggr.rstrip("_j"),\n+                        "signal_height": args.height,\n+                        "ann_height": args.ann_height,\n+                        "alpha": args.alpha,\n+                        })\n+        if os.getenv(\'GGSASHIMI_DEBUG\') is not None:\n+            with open("R_script", \'w\') as r:\n+                r.write(R_script)\n+        else:\n+            plot(R_script)\n+    exit()\n'
b
diff -r 000000000000 -r 9304dd9a16a2 sashimi_plot.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sashimi_plot.xml Fri Aug 23 11:38:29 2019 -0400
[
b'@@ -0,0 +1,203 @@\n+<tool id="sashimi_plot" name="Sashimi plot" version="0.1.0">\n+  <description>: visualization of splicing events across multiple samples</description>\n+  <requirements>\n+    <requirement type="package" version="3">python</requirement>\n+    <requirement type="package" version="1.3">samtools</requirement>\n+    <requirement type="package" version="2.2.1=r3.4.1_0">r-ggplot2</requirement>\n+    <requirement type="package" version="1.10.4=r3.4.1_0">r-data.table</requirement>\n+    <requirement type="package" version="2.2.1=r3.4.1_0">r-gridextra</requirement>\n+  </requirements>\n+  <stdio>\n+    <exit_code range="1:" level="fatal" description="Tool exception" />\n+  </stdio>\n+  <command detect_errors="exit_code"><![CDATA[\n+       touch index_bams.tsv &&\n+       #for $factor in $rep_factor:\n+           #for $sample in $factor.rep_sample:\n+               echo -e \'${sample.sampleName}\\t${sample.bamFile}\\t${factor.factorName}\' >> index_bams.tsv &&\n+               samtools index ${sample.bamFile} &&\n+           #end for\n+       #end for\n+\n+       python $__tool_directory__/sashimi-plot.py \n+           -b index_bams.tsv \n+           -g ${gtf_file} \n+           -c ${region}\n+           #if $adv_opts.adv_opts_selector=="advanced": \n+               -M ${adv_opts.min_coverage}\n+               -C ${adv_opts.color_levels}\n+               -O ${adv_opts.overlap.overlay}\n+               #if $adv_opts.overlap.overlay=="3" and not $adv_opts.overlap.agg=="":\n+                   -A ${adv_opts.overlap.agg}\n+               #end if\n+               ${adv_opts.shrink}\n+               --alpha ${adv_opts.alpha}\n+               --base-size=${adv_opts.base_size}\n+               --ann-height=${adv_opts.ann_height}\n+               --height=${adv_opts.height} \n+               --width=${adv_opts.width} \n+           #end if \n+           -o plot &&\n+       mv plot.pdf ${plot}\n+ \n+  ]]></command>\n+  <inputs>\n+    <param format="gtf" name="gtf_file" type="data" label="Genome annotation" help="" />\n+    <repeat name="rep_factor" title="Genotype" min="1">\n+        <param name="factorName" label="Factor name" type="text" help="Specify a factor level, typical values could be \'HOM\', \'HET\'" />\n+        <repeat name="rep_sample" title="Bam file" min="1">\n+            <param name="sampleName" type="text" label="Sample Name" help="Track name on plot"/>\n+            <param name="bamFile" type="data" format="bam" multiple="false" label="Alignment File" help=""/>\n+        </repeat>\n+    </repeat>\n+    <conditional name="adv_opts">\n+      <param name="adv_opts_selector" type="select" label="Advanced Options">\n+        <option value="basic" selected="True">Hide Advanced Options</option>\n+        <option value="advanced">Show Advanced Options</option>\n+      </param>\n+      <when value="basic" />\n+      <when value="advanced">\n+        <param name="shrink" type="boolean" label="Intron shrinkage" truevalue="--shrink" falsevalue="" checked="false" \n+          help="Shrink the introns by a factor for nicer display"/>\n+        <param name="min_coverage" label="Minimum coverage" type="integer" value="1" help="Minimum number of reads supporting a junction to be drawn [default=1]"/>\n+        <param name="color_levels" label="How to color samples ?" type="select">\n+          <option value="3" selected="True">By Genotype</option>\n+          <option value="1" >By Sample</option>\n+        </param>\n+        <conditional name="overlap">\n+          <param name="overlay" label="Overlay sample by Genotype ?" type="boolean" truevalue="3" falsevalue="1" checked="false" />\n+          <when value="3">\n+            <param name="agg" label="Aggregate function for overlay" type="select" help="Use mean_j | median_j to keep density overlay but aggregate junction counts">\n+              <option value="" selected="True">No aggregation</option>\n+              <option value="mean" >Mean counts</option>\n+              <option value="median" >Median counts</option>\n+              <option value="mean_'..b'mFile" value="ENCFF756PUW.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample4"/>\n+          <param name="bamFile" value="ENCFF325HFX.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+      </repeat>\n+      <param name="region" value="chr10:27040584-27048100" />\n+      <output name="plot" value="default.pdf" ftype="pdf" />\n+    </test>\n+    <test>\n+      <param name="gtf_file" value="annotation.gtf" ftype="gtf" />\n+      <repeat name="rep_factor">\n+        <param name="factorName" value="Endothelial" />\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample1" />\n+          <param name="bamFile" value="ENCFF450AIU.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample2" />\n+          <param name="bamFile" value="ENCFF914GVK.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+      </repeat>\n+      <repeat name="rep_factor">\n+        <param name="factorName" value="Epithelial" />\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample3" />\n+          <param name="bamFile" value="ENCFF756PUW.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample4"/>\n+          <param name="bamFile" value="ENCFF325HFX.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+      </repeat>\n+      <param name="region" value="chr10:27040584-27048100" />\n+      <param name="adv_opts_selector" value="advanced" />\n+      <param name="min_coverage" value="10" />\n+      <param name="color_levels" value="3" />\n+      <param name="alpha" value="0.25" />\n+      <param name="base_size" value="20" />\n+      <param name="ann_height" value="4" />\n+      <param name="height" value="3" />\n+      <param name="width" value="18" />\n+      <param name="overlay" value="True" />\n+      <output name="plot" file="overlay_without_aggregation.pdf" ftype="pdf" />\n+    </test>\n+    <test>\n+      <param name="gtf_file" value="annotation.gtf" ftype="gtf" />\n+      <repeat name="rep_factor">\n+        <param name="factorName" value="Endothelial" />\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample1" />\n+          <param name="bamFile" value="ENCFF450AIU.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample2" />\n+          <param name="bamFile" value="ENCFF914GVK.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+      </repeat>\n+      <repeat name="rep_factor">\n+        <param name="factorName" value="Epithelial" />\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample3" />\n+          <param name="bamFile" value="ENCFF756PUW.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+        <repeat name="rep_sample">\n+          <param name="sampleName" value="sample4"/>\n+          <param name="bamFile" value="ENCFF325HFX.chr10_27035000_27050000.bam" ftype="bam" />\n+        </repeat>\n+      </repeat>\n+      <param name="region" value="chr10:27040584-27048100" />\n+      <param name="adv_opts_selector" value="advanced" />\n+      <param name="color_levels" value="3" />\n+      <param name="ann_height" value="3" />\n+      <param name="height" value="3" />\n+      <param name="overlay" value="True" />\n+      <param name="agg" value="mean" />\n+      <param name="shrink" value="True" />\n+      <output name="plot" file="overlay_with_aggregation.pdf" ftype="pdf" />\n+    </test>\n+  </tests>\n+  <help>\n+\n+.. class:: infomark\n+\n+**What it does**\n+\n+Generate a sashimi plot from bam files in order to visualize splicing events.\n+  </help>\n+  <citations>\n+      <citation type="doi">10.1371/journal.pcbi.1006360</citation>\n+  </citations>\n+</tool>\n+\n'
b
diff -r 000000000000 -r 9304dd9a16a2 test-data/ENCFF325HFX.chr10_27035000_27050000.bam
b
Binary file test-data/ENCFF325HFX.chr10_27035000_27050000.bam has changed
b
diff -r 000000000000 -r 9304dd9a16a2 test-data/ENCFF450AIU.chr10_27035000_27050000.bam
b
Binary file test-data/ENCFF450AIU.chr10_27035000_27050000.bam has changed
b
diff -r 000000000000 -r 9304dd9a16a2 test-data/ENCFF756PUW.chr10_27035000_27050000.bam
b
Binary file test-data/ENCFF756PUW.chr10_27035000_27050000.bam has changed
b
diff -r 000000000000 -r 9304dd9a16a2 test-data/ENCFF914GVK.chr10_27035000_27050000.bam
b
Binary file test-data/ENCFF914GVK.chr10_27035000_27050000.bam has changed
b
diff -r 000000000000 -r 9304dd9a16a2 test-data/annotation.gtf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/annotation.gtf Fri Aug 23 11:38:29 2019 -0400
b
b'@@ -0,0 +1,361 @@\n+chr10\tHAVANA\tgene\t27035522\t27150016\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENSG00000136754.12"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1"; level 2; tag "ncRNA_host"; havana_gene "OTTHUMG00000017848.1";\n+chr10\tHAVANA\ttranscript\t27035522\t27149821\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376170.4"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-002"; level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS53499.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047284.1";\n+chr10\tHAVANA\texon\t27149676\t27149821\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376170.4"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-002"; exon_number 1;  exon_id "ENSE00001870571.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS53499.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047284.1";\n+chr10\tHAVANA\tCDS\t27149676\t27149792\t.\t-\t0\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376170.4"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-002"; exon_number 1;  exon_id "ENSE00001870571.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS53499.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047284.1";\n+chr10\tHAVANA\tstart_codon\t27149790\t27149792\t.\t-\t0\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376170.4"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-002"; exon_number 1;  exon_id "ENSE00001870571.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS53499.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047284.1";\n+chr10\tHAVANA\texon\t27112067\t27112234\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376170.4"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-002"; exon_number 2;  exon_id "ENSE00000926070.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS53499.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047284.1";\n+chr10\tHAVANA\tCDS\t27112067\t27112234\t.\t-\t0\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376170.4"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-002"; exon_number 2;  exon_id "ENSE00000926070.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS53499.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047284.1";\n+chr10\tHAVANA\texon\t27065994\t27066170\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376170.4"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-002"; exon_number 3;  exon_id "ENSE00001603723.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS53499.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047284.1";\n+chr10\tHAVANA\tCDS\t27065994\t27066170\t.\t-\t0\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376170.4"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-002"; exon_number 3;  exon_id "ENSE00001603723.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS53499.1"; havana_gene "OTTHUMG0000001'..b'THUMT00000047288.1";\n+chr10\tHAVANA\texon\t27040527\t27040712\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376140.3"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-006"; exon_number 10;  exon_id "ENSE00001098423.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS31171.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047288.1";\n+chr10\tHAVANA\tCDS\t27040527\t27040712\t.\t-\t2\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376140.3"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-006"; exon_number 10;  exon_id "ENSE00001098423.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS31171.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047288.1";\n+chr10\tHAVANA\texon\t27037499\t27037674\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376140.3"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-006"; exon_number 11;  exon_id "ENSE00001869699.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS31171.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047288.1";\n+chr10\tHAVANA\tCDS\t27037502\t27037674\t.\t-\t2\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376140.3"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-006"; exon_number 11;  exon_id "ENSE00001869699.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS31171.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047288.1";\n+chr10\tHAVANA\tstop_codon\t27037499\t27037501\t.\t-\t0\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376140.3"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-006"; exon_number 11;  exon_id "ENSE00001869699.1";  level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS31171.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047288.1";\n+chr10\tHAVANA\tUTR\t27037499\t27037501\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000376140.3"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "protein_coding"; transcript_status "KNOWN"; transcript_name "ABI1-006"; level 2; tag "basic"; tag "appris_candidate"; tag "CCDS"; ccdsid "CCDS31171.1"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047288.1";\n+chr10\tHAVANA\ttranscript\t27065555\t27112219\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000473481.1"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "processed_transcript"; transcript_status "KNOWN"; transcript_name "ABI1-008"; level 2; tag "basic"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047290.1";\n+chr10\tHAVANA\texon\t27112067\t27112219\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000473481.1"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "processed_transcript"; transcript_status "KNOWN"; transcript_name "ABI1-008"; exon_number 1;  exon_id "ENSE00001893748.1";  level 2; tag "basic"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047290.1";\n+chr10\tHAVANA\texon\t27065555\t27066170\t.\t-\t.\tgene_id "ENSG00000136754.12"; transcript_id "ENST00000473481.1"; gene_type "protein_coding"; gene_status "KNOWN"; gene_name "ABI1"; transcript_type "processed_transcript"; transcript_status "KNOWN"; transcript_name "ABI1-008"; exon_number 2;  exon_id "ENSE00001845544.1";  level 2; tag "basic"; havana_gene "OTTHUMG00000017848.1"; havana_transcript "OTTHUMT00000047290.1";\n'
b
diff -r 000000000000 -r 9304dd9a16a2 test-data/default.pdf
b
Binary file test-data/default.pdf has changed
b
diff -r 000000000000 -r 9304dd9a16a2 test-data/overlay_with_aggregation.pdf
b
Binary file test-data/overlay_with_aggregation.pdf has changed
b
diff -r 000000000000 -r 9304dd9a16a2 test-data/overlay_without_aggregation.pdf
b
Binary file test-data/overlay_without_aggregation.pdf has changed