{ "cells": [ { "cell_type": "markdown", "id": "1f6547e6-1e6e-4292-a302-ab3e2f09b9c0", "metadata": {}, "source": [ "## Annotate RNA modification sites of interest or other single nucleotide sites of interest\n", "\n", "Annotate RNA modifications of interest in RNA isoforms or other single nucleotide sites of interest.\n", "\n", "This is a \"hacky\" way to do this, but it is possible." ] }, { "cell_type": "code", "execution_count": 1, "id": "014b6750-ee36-4306-900f-f7fccfb380ef", "metadata": {}, "outputs": [], "source": [ "import RNApysoforms as RNApy\n", "import polars as pl" ] }, { "cell_type": "code", "execution_count": 2, "id": "74966849-6d04-46d3-b3e5-ab88f867d3dc", "metadata": {}, "outputs": [], "source": [ "## Path to your ENSEMBL GTF file, counts matrix file, and metadata file\n", "ensembl_gtf_path = \"../../tests/test_data/Homo_sapiens_chr21_and_Y.GRCh38.110.gtf\"\n", "counts_matrix_path = \"../../tests/test_data/counts_matrix_chr21_and_Y.tsv\"\n", "metadata_path = \"../../tests/test_data/sample_metadata.tsv\"\n", "\n", "\n", "## Read ENSEMBL GTF and counts matrix with metadata and normalizations\n", "annotation = RNApy.read_ensembl_gtf(ensembl_gtf_path)\n", "counts_matrix = RNApy.read_expression_matrix(expression_matrix_path=counts_matrix_path,\n", " metadata_path=metadata_path,\n", " cpm_normalization=True, relative_abundance=True)\n", "\n", "\n", "## Filter APP gene and keep only top 1 expressed transcripts\n", "app_annotation, app_counts_matrix = RNApy.gene_filtering(annotation=annotation, expression_matrix=counts_matrix, target_gene=\"APP\",\n", " order_by_expression=True, keep_top_expressed_transcripts=1, \n", " order_by_expression_column=\"counts\")\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "30cc93a3-ce02-4bd5-93ed-cae14e7fc243", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 11)
gene_idgene_nametranscript_idtranscript_nametranscript_biotypeseqnamesstrandtypestartendexon_number
strstrstrstrstrstrstrstri64i64i64
"ENSG00000142192""APP""ENST00000348990""APP-202""protein_coding""21""-""exon"26170564261707671
"ENSG00000142192""APP""ENST00000348990""APP-202""protein_coding""21""-""CDS"26170564261706201
"ENSG00000142192""APP""ENST00000348990""APP-202""protein_coding""21""-""exon"26111979261121462
"ENSG00000142192""APP""ENST00000348990""APP-202""protein_coding""21""-""CDS"26111979261121462
"ENSG00000142192""APP""ENST00000348990""APP-202""protein_coding""21""-""exon"26089943260900723
" ], "text/plain": [ "shape: (5, 11)\n", "┌─────────────────┬───────────┬─────────────────┬─────────────────┬───┬──────┬──────────┬──────────┬─────────────┐\n", "│ gene_id ┆ gene_name ┆ transcript_id ┆ transcript_name ┆ … ┆ type ┆ start ┆ end ┆ exon_number │\n", "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n", "│ str ┆ str ┆ str ┆ str ┆ ┆ str ┆ i64 ┆ i64 ┆ i64 │\n", "╞═════════════════╪═══════════╪═════════════════╪═════════════════╪═══╪══════╪══════════╪══════════╪═════════════╡\n", "│ ENSG00000142192 ┆ APP ┆ ENST00000348990 ┆ APP-202 ┆ … ┆ exon ┆ 26170564 ┆ 26170767 ┆ 1 │\n", "│ ENSG00000142192 ┆ APP ┆ ENST00000348990 ┆ APP-202 ┆ … ┆ CDS ┆ 26170564 ┆ 26170620 ┆ 1 │\n", "│ ENSG00000142192 ┆ APP ┆ ENST00000348990 ┆ APP-202 ┆ … ┆ exon ┆ 26111979 ┆ 26112146 ┆ 2 │\n", "│ ENSG00000142192 ┆ APP ┆ ENST00000348990 ┆ APP-202 ┆ … ┆ CDS ┆ 26111979 ┆ 26112146 ┆ 2 │\n", "│ ENSG00000142192 ┆ APP ┆ ENST00000348990 ┆ APP-202 ┆ … ┆ exon ┆ 26089943 ┆ 26090072 ┆ 3 │\n", "└─────────────────┴───────────┴─────────────────┴─────────────────┴───┴──────┴──────────┴──────────┴─────────────┘" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## Display app annotation for the transcript of interest\n", "app_annotation.head()" ] }, { "cell_type": "code", "execution_count": 4, "id": "7ea191b3-a884-429f-add5-893d0d17bcda", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (2, 11)
gene_idgene_nametranscript_idtranscript_nametranscript_biotypeseqnamesstrandtypestartendexon_number
strstrstrstrstrstrstrstri64i64i64
"ENSG00000142192""APP""ENST00000348990""APP-202""protein_coding""21""-""CDS"26170600261706011
"ENSG00000142192""APP""ENST00000348990""APP-202""protein_coding""21""-""CDS"26112010261120112
" ], "text/plain": [ "shape: (2, 11)\n", "┌─────────────────┬───────────┬─────────────────┬─────────────────┬───┬──────┬──────────┬──────────┬─────────────┐\n", "│ gene_id ┆ gene_name ┆ transcript_id ┆ transcript_name ┆ … ┆ type ┆ start ┆ end ┆ exon_number │\n", "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n", "│ str ┆ str ┆ str ┆ str ┆ ┆ str ┆ i64 ┆ i64 ┆ i64 │\n", "╞═════════════════╪═══════════╪═════════════════╪═════════════════╪═══╪══════╪══════════╪══════════╪═════════════╡\n", "│ ENSG00000142192 ┆ APP ┆ ENST00000348990 ┆ APP-202 ┆ … ┆ CDS ┆ 26170600 ┆ 26170601 ┆ 1 │\n", "│ ENSG00000142192 ┆ APP ┆ ENST00000348990 ┆ APP-202 ┆ … ┆ CDS ┆ 26112010 ┆ 26112011 ┆ 2 │\n", "└─────────────────┴───────────┴─────────────────┴─────────────────┴───┴──────┴──────────┴──────────┴─────────────┘" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\"\"\"\n", "Create RNA modification dataframe with 1 nucleotide entries for the RNA modifications of interest.\n", "Notice that the entried must be encoded as type=\"CDS\" and have all other information matching the exon you will be annotating.\n", "Here we made the entries 1 nucleotide long, as one would expect an RNA modification annotation to be.\n", "This could be done in a more systematic way if a list of modification sites is provided, but we leave \n", "that more complex implementation up to future users to develop if interested, we are happy to collaborate in such an \n", "implementation\n", "\"\"\"\n", "\n", "RNA_modification_data = {\n", " \"gene_id\": [\"ENSG00000142192\"] * 2,\n", " \"gene_name\": [\"APP\"] * 2,\n", " \"transcript_id\": [\"ENST00000348990\"] * 2,\n", " \"transcript_name\": [\"APP-202\"] * 2,\n", " \"transcript_biotype\": [\"protein_coding\"] * 2,\n", " \"seqnames\": [\"21\"] * 2,\n", " \"strand\": [\"-\"] * 2,\n", " \"type\": [\"CDS\"] * 2,\n", " \"start\": [26170600, 26112010],\n", " \"end\": [26170601, 26112011],\n", " \"exon_number\": [1, 2]\n", "}\n", "\n", "# Create the Polars DataFrame\n", "RNA_modification_df = pl.DataFrame(RNA_modification_data)\n", "\n", "# Display the RNA modification data\n", "RNA_modification_df.head()" ] }, { "cell_type": "code", "execution_count": 5, "id": "46f220f0-76f2-440d-a674-9b1b5b0ad1f3", "metadata": {}, "outputs": [], "source": [ "# Filter out rows where type is \"CDS\" in the original APP annotations\n", "app_annotation = app_annotation.filter(pl.col(\"type\") != \"CDS\")\n", "\n", "# Concatenate the DataFrames vertically to add RNA modification to the APP transcript annotations\n", "app_annotation = pl.concat([app_annotation, RNA_modification_df])" ] }, { "cell_type": "code", "execution_count": 6, "id": "fcc74192-0446-4cbc-a391-3e276d2ef7a1", "metadata": {}, "outputs": [], "source": [ "# Rescale introns\n", "app_annotation = RNApy.shorten_gaps(app_annotation)" ] }, { "cell_type": "code", "execution_count": 7, "id": "2034d452-6851-4e53-abf3-b1b445824a06", "metadata": {}, "outputs": [], "source": [ "## Make CDS type into Inosine so that it is correctly displayed as an RNA modification in the figure\n", "app_annotation = app_annotation.with_columns(\n", " pl.when(pl.col(\"type\") == \"CDS\")\n", " .then(pl.lit(\"Inosine\"))\n", " .otherwise(pl.col(\"transcript_biotype\"))\n", " .alias(\"transcript_biotype\")\n", ")" ] }, { "cell_type": "code", "execution_count": 8, "id": "6131ae64-3405-4d63-828b-70542aee25f1", "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 16
Chromosome: 21
Start: 25880550
End: 25881771
Size: 1222
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "Transcript Structure Hue" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": true, "type": "scatter", "x": [ 2, 1223, 1223, 2, 2 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 15
Chromosome: 21
Start: 25891722
End: 25891868
Size: 147
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1324, 1470, 1470, 1324, 1324 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 14
Chromosome: 21
Start: 25897573
End: 25897673
Size: 101
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1571, 1671, 1671, 1571, 1571 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 13
Chromosome: 21
Start: 25905024
End: 25905077
Size: 54
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1772, 1825, 1825, 1772, 1772 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 12
Chromosome: 21
Start: 25911741
End: 25911962
Size: 222
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1926, 2147, 2147, 1926, 1926 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 11
Chromosome: 21
Start: 25954590
End: 25954689
Size: 100
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2248, 2347, 2347, 2248, 2248 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 10
Chromosome: 21
Start: 25955627
End: 25955755
Size: 129
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2448, 2576, 2576, 2448, 2448 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 9
Chromosome: 21
Start: 25975070
End: 25975228
Size: 159
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2677, 2835, 2835, 2677, 2677 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 8
Chromosome: 21
Start: 25975954
End: 25976028
Size: 75
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2936, 3010, 3010, 2936, 2936 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 7
Chromosome: 21
Start: 25982344
End: 25982477
Size: 134
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 3111, 3244, 3244, 3111, 3111 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 6
Chromosome: 21
Start: 26021840
End: 26022042
Size: 203
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 3345, 3547, 3547, 3345, 3345 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 5
Chromosome: 21
Start: 26051000
End: 26051193
Size: 194
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 3648, 3841, 3841, 3648, 3648 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 4
Chromosome: 21
Start: 26053236
End: 26053348
Size: 113
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 3942, 4054, 4054, 3942, 3942 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 3
Chromosome: 21
Start: 26089943
End: 26090072
Size: 130
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 4155, 4284, 4284, 4155, 4155 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 2
Chromosome: 21
Start: 26111979
End: 26112146
Size: 168
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 4385, 4552, 4552, 4385, 4385 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#636EFA", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: exon
Feature Number: 1
Chromosome: 21
Start: 26170564
End: 26170767
Size: 204
", "legendgroup": "protein_coding", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "protein_coding", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 4653, 4856, 4856, 4653, 4653 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#EF553B", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: CDS
Feature Number: 2
Chromosome: 21
Start: 26112010
End: 26112011
Size: 2
", "legendgroup": "Inosine", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Inosine", "opacity": 1, "showlegend": true, "type": "scatter", "x": [ 4416, 4417, 4417, 4416, 4416 ], "xaxis": "x", "y": [ -0.25, -0.25, 0.25, 0.25, -0.25 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "#EF553B", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000348990
Feature Type: CDS
Feature Number: 1
Chromosome: 21
Start: 26170600
End: 26170601
Size: 2
", "legendgroup": "Inosine", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Inosine", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 4689, 4690, 4690, 4689, 4689 ], "xaxis": "x", "y": [ -0.25, -0.25, 0.25, 0.25, -0.25 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 15
Chromosome: 21
Start: 25881772
End: 25891721
Size: 9950
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1223, 1324 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 14
Chromosome: 21
Start: 25891869
End: 25897572
Size: 5704
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1470, 1571 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 13
Chromosome: 21
Start: 25897674
End: 25905023
Size: 7350
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1671, 1772 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 12
Chromosome: 21
Start: 25905078
End: 25911740
Size: 6663
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1825, 1926 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 11
Chromosome: 21
Start: 25911963
End: 25954589
Size: 42627
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2147, 2248 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 10
Chromosome: 21
Start: 25954690
End: 25955626
Size: 937
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2347, 2448 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 9
Chromosome: 21
Start: 25955756
End: 25975069
Size: 19314
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2576, 2677 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 8
Chromosome: 21
Start: 25975229
End: 25975953
Size: 725
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2835, 2936 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 7
Chromosome: 21
Start: 25976029
End: 25982343
Size: 6315
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 3010, 3111 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 6
Chromosome: 21
Start: 25982478
End: 26021839
Size: 39362
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 3244, 3345 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 5
Chromosome: 21
Start: 26022043
End: 26050999
Size: 28957
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 3547, 3648 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 4
Chromosome: 21
Start: 26051194
End: 26053235
Size: 2042
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 3841, 3942 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 3
Chromosome: 21
Start: 26053349
End: 26089942
Size: 36594
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 4054, 4155 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 2
Chromosome: 21
Start: 26090073
End: 26111978
Size: 21906
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 4284, 4385 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000348990
Feature Type: intron
Feature Number: 1
Chromosome: 21
Start: 26112147
End: 26170563
Size: 58417
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 4552, 4653 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" } ], "layout": { "annotations": [ { "font": { "size": 16 }, "showarrow": false, "text": "Transcript Structure", "x": 0.5, "xanchor": "center", "xref": "paper", "y": 1, "yanchor": "bottom", "yref": "paper" } ], "boxgap": 0.2, "boxgroupgap": 0.8, "boxmode": "group", "height": 500, "hoverlabel": { "font": { "size": 12 } }, "hovermode": "closest", "legend": { "font": { "size": 12 }, "grouptitlefont": { "size": 14 }, "tracegroupgap": 7 }, "margin": { "b": 50, "l": 100, "r": 50, "t": 100 }, "showlegend": true, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "white", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "#C8D4E3", "linecolor": "#C8D4E3", "minorgridcolor": "#C8D4E3", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "white", "showlakes": true, "showland": true, "subunitcolor": "#C8D4E3" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "white", "polar": { "angularaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" }, "bgcolor": "white", "radialaxis": { "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "gridwidth": 2, "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8" }, "yaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "gridwidth": 2, "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8" }, "zaxis": { "backgroundcolor": "white", "gridcolor": "#DFE8F3", "gridwidth": 2, "linecolor": "#EBF0F8", "showbackground": true, "ticks": "", "zerolinecolor": "#EBF0F8" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "baxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" }, "bgcolor": "white", "caxis": { "gridcolor": "#DFE8F3", "linecolor": "#A2B1C6", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "#EBF0F8", "linecolor": "#EBF0F8", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "#EBF0F8", "zerolinewidth": 2 } } }, "title": { "text": "" }, "violingap": 0.2, "violingroupgap": 0.8, "violinmode": "group", "width": 1200, "xaxis": { "anchor": "y", "domain": [ 0, 1 ], "showgrid": true, "showticklabels": false, "tickfont": { "size": 12 }, "title": { "text": "" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "range": [ -0.8, 0.8 ], "showgrid": true, "showticklabels": true, "tickfont": { "color": "black", "family": "DejaVu Sans", "size": 12 }, "ticktext": [ "ENST00000348990" ], "tickvals": [ 0 ], "title": { "text": "" } } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABDwAAAH0CAYAAADR6T2dAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3Xu4ZFV94P1FdwNNd3NXQKIIxkhUckGd4CsKghpjXi/RTPLKm5jJjBozGscMZkB71JjENOq83o1PHCWa0TyQmEwu5slMMiqIIF6iqBC8MoIYoLvpbmj6Bg30++yTqbaornNO7aq1ztnrtz/njxlD11611ue3+8j5WlXnoH379u1LvggQIECAAAECBAgQIECAAAECgQQOEjwCTdNRCBAgQIAAAQIECBAgQIAAgTkBwcONQIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQTEDzCjdSBCBAgQIAAAQIECBAgQIAAAcHDPUCAAAECBAgQIECAAAECBAiEExA8wo3UgQgQIECAAAECBAgQIECAAAHBwz1AgAABAgQIECBAgAABAgQIhBMQPMKN1IEIECBAgAABAgQIECBAgAABwcM9QIAAAQIECBAgQIAAAQIECIQT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49ORRx7Z6sl37dqV3vqOz6a7dua75+/ec1d64c8fm5585qNb7aV58KV/dnW6+h9XpVWrDml17Z7dt6c3vOa0dPzxx7e67r777kv/5R2Xpe/fMv78O3fenn7/tx+dTjzxB79CcJInaH5t4bve+4l0863HLfrwfffvS/tSSisy3ju7d9+Rfv3fPSz9+I89YtHnH33AxR++Il33jXVpxYqVra5dc+jt6cJXn5Ha/tC9ffv29Ja3fTHt2fugVs837sEnHr8p/cdXPi2tWLGi1Vq33npreuOb/ymtW5vv78FgAw86+vb06lc9JR1ySLt7evPmzekNb/pqWrly/j019839+/al5jnW/6cz02GHHdbq3Nu2bUsb/ss16f50bKvrxj14Of7ez7LpEx60OZ3/qnPSypXt7vONGzem333zdWn1YbPfr5Ps/6jDN6ULzj8rHXrooZM8fP9jtm7dmt701mvSQSvm3+e9992fVq0c/3dlz+7t6Vf+3+PTGf/qUa2et3nwn1x6dfriNQenlSsPbn3t8AW7d21L//4lJ6UfO63997H3f/Dy9M0bjkwHHfQv57vl+19N999/b3roSY+faU/Nxc3390eevDW9/GXntl7rm9+6Mb3zfd9Na9Ycs//azRu/lZr/rjn5EU9qvd4kF+zYsTm9/91Pn+ShHkOAQAcEBI8ODCH6Fpp/SfBFoK3Ajj33pkNWHJQOOaTdvzy3fZ75Ht/8S3vb2DFY66677kp79+7NtZW5dZq9tP1BornunnvuSTt27JhqL8cc84N/gWyzQBN99uzZM+8lpdYdPOHd99yX7r1/X1q7elWbbS/62KOOOqr1D/7Noo1FY9L2a9WqVemII45oe9nc45voce+990517fBFq1evTmvWrJlqnVLf+5sfVNeuXTvVnpog0fxwNd/X3vv2pd179qZjj1qbDj/88Kme44477kj333//VNeOXrQcf++n3XgX75VxZ2lCWduIOFhnodk2d9W27fekY46YP8RN+z3k7rvvTjt37px2NA+47uijj04HHdT+f0gY/T72xS9+ce6/5570pDxRofk+09xDbb+av8/N3+vhr+uuuy5t2rQpnXtu+4Ay6fNP+99jk67vcQQI5BMQPPJZWokAgYwCd+2+Nx2y8qB06DIFj4xHsdQSC+xpgsd9+9K6w/IGjyU+hqdbBoEmeOzavTcdua7d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ECBAIJyA4BFupA5EgAABAgQIECBAgAABAgQICB7uAQIECBAgQIAAAQIECBAgQCCcgOARbqQORIAAAQIECBAgQIAAAQIECAge7gECBAgQIECAAAECBAgQIEAgnIDgEW6kDkSAAAECBAgQIECAAAECBAgIHu4BAgQIECBAgAABAgQIECBAIJyA4BFupA5EgAABAgQIECBAgAABAgQICB7uAQIECBAgQIAAAQIECBAgQCCcgOARbqQORIAAAQIECBAgQIAAAQIECAge7gECBAgQIECAAAECBAgQIEAgnIDgEW6kDkSAAAECBAgQIECAAAECBAgIHu4BAgQIECBAgAABAgQIECBAIJyA4BFupA5EgAABAgQIECBAgAABAgQICB7uAQIECBAgQIAAAQIECBAgQCCcgOARbqQORIAAAQIECBAgQIAAAQIECAge7gECBAgQIECAAAECBAgQIEAgnIDgEW6kDkSAAAECBAgQIECAAAECBAgIHu4BAgQIECBAgAABAgQIECBAIJyA4BFupA5EgAABAgQIECBAgAABAgQICB7uAQIECBAgQIAAAQIECBAgQCCcgOARbqQORIAAAQIECBAgQIAAAQIECAge7gECBAgQIECAAAECBAgQIEAgnIDgEW6kDkSAAAECBAgQIECAAAECBAgIHu4BAgQIECBAgAABAgQIECBAIJyA4BFupA5EgAABAgQIECBAgAABAgQICB7uAQIECBAgQIAAAQIECBAgQCCcwP8PW9/Zia0NPlIAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "traces = RNApy.make_traces(annotation=app_annotation,\n", " x_start=\"rescaled_start\", x_end=\"rescaled_end\",\n", " y='transcript_id', annotation_hue=\"transcript_biotype\",\n", " hover_start=\"start\", hover_end=\"end\",\n", " expression_hue=\"AD status\", marker_size=3, arrow_size=7)\n", "\n", "## Put traces into a figure\n", "fig = RNApy.make_plot(traces=traces, subplot_titles=[\"Transcript Structure\", \"Counts\", \"CPM\", \"Relative Abundance\"], \n", " width=1200, height=500)\n", "\n", "## Show figure\n", "fig.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.12" } }, "nbformat": 4, "nbformat_minor": 5 }