{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Dealing with non-ENSEMBL GTF files\n", "\n", "Here is a quick overview on how to deal with non-ENSEMBL GTF files. By no means a comprehensive guide, just some suggestions. \n", "\n", "You don't have to do your data wrangling in Polars. You could always do it using Pandas and then convert it to a Polars dataframe at the end by running: `polars_df = pandas_df.from_pandas()`" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import RNApysoforms as RNApy\n", "import polars as pl" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "## Path to your non-ENSEMBL GTF file\n", "alternative_gtf_path = \"../../tests/test_data/alternative_gtf_format_chr_21_and_Y.gtf\"\n", "\n", "\n", "\n", "# Define the column names for the GTF file\n", "column_names = [\n", " \"seqnames\", # Chromosome or sequence name\n", " \"source\", # Annotation source\n", " \"type\", # Feature type (e.g., exon, CDS)\n", " \"start\", # Start position of the feature\n", " \"end\", # End position of the feature\n", " \"score\", # Score value (usually '.')\n", " \"strand\", # Strand information ('+' or '-')\n", " \"phase\", # Reading frame phase\n", " \"attributes\" # Additional attributes in key-value pairs\n", "]\n", "\n", "# Definte types for GTF columns\n", "dtypes = {\n", " \"seqnames\": pl.Utf8,\n", " \"source\": pl.Utf8,\n", " \"type\": pl.Utf8,\n", " \"start\": pl.Int64,\n", " \"end\": pl.Int64,\n", " \"score\": pl.Utf8,\n", " \"strand\": pl.Utf8,\n", " \"phase\": pl.Utf8,\n", " \"attributes\": pl.Utf8\n", "}\n", "\n", "# Read the GTF file using Polars\n", "alt_gtf_df = pl.read_csv(\n", " alternative_gtf_path,\n", " separator=\"\\t\",\n", " has_header=False,\n", " comment_prefix=\"#\", # Skip comment lines starting with '#'\n", " new_columns=column_names, # Assign column names since GTF files have no header\n", " schema_overrides=dtypes # Specify data types for each column\n", ")\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 9)
seqnamessourcetypestartendscorestrandphaseattributes
strstrstri64i64strstrstrstr
"21""Bambu""transcript"50117995017145".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081";"
"21""Bambu""exon"50117995011874".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "1";"
"21""Bambu""exon"50125485012687".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "2";"
"21""Bambu""exon"50143865014471".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "3";"
"21""Bambu""exon"50169355017145".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "4";"
" ], "text/plain": [ "shape: (5, 9)\n", "┌──────────┬────────┬────────────┬─────────┬───┬───────┬────────┬───────┬──────────────────────────────────────────────────────────────────────────────┐\n", "│ seqnames ┆ source ┆ type ┆ start ┆ … ┆ score ┆ strand ┆ phase ┆ attributes │\n", "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n", "│ str ┆ str ┆ str ┆ i64 ┆ ┆ str ┆ str ┆ str ┆ str │\n", "╞══════════╪════════╪════════════╪═════════╪═══╪═══════╪════════╪═══════╪══════════════════════════════════════════════════════════════════════════════╡\n", "│ 21 ┆ Bambu ┆ transcript ┆ 5011799 ┆ … ┆ . ┆ + ┆ . ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; │\n", "│ 21 ┆ Bambu ┆ exon ┆ 5011799 ┆ … ┆ . ┆ + ┆ . ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; exon_number \"1\"; │\n", "│ 21 ┆ Bambu ┆ exon ┆ 5012548 ┆ … ┆ . ┆ + ┆ . ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; exon_number \"2\"; │\n", "│ 21 ┆ Bambu ┆ exon ┆ 5014386 ┆ … ┆ . ┆ + ┆ . ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; exon_number \"3\"; │\n", "│ 21 ┆ Bambu ┆ exon ┆ 5016935 ┆ … ┆ . ┆ + ┆ . ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; exon_number \"4\"; │\n", "└──────────┴────────┴────────────┴─────────┴───┴───────┴────────┴───────┴──────────────────────────────────────────────────────────────────────────────┘" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## Make sure polars print the full column contents\n", "pl.Config(fmt_str_lengths=1000, tbl_width_chars=1000)\n", "\n", "\n", "## Visualize GTF file format\n", "alt_gtf_df.head()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (2,)
type
str
"transcript"
"exon"
" ], "text/plain": [ "shape: (2,)\n", "Series: 'type' [str]\n", "[\n", "\t\"transcript\"\n", "\t\"exon\"\n", "]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## See all possible values for \"type column\"\n", "alt_gtf_df[\"type\"].unique()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 12)
seqnamessourcetypestartendscorestrandphaseattributesgene_idtranscript_idexon_number
strstrstri64i64strstrstrstrstrstrstr
"21""Bambu""exon"50117995011874".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "1";""ENSG00000279493""ENST00000624081""1"
"21""Bambu""exon"50125485012687".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "2";""ENSG00000279493""ENST00000624081""2"
"21""Bambu""exon"50143865014471".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "3";""ENSG00000279493""ENST00000624081""3"
"21""Bambu""exon"50169355017145".""+"".""gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "4";""ENSG00000279493""ENST00000624081""4"
"21""Bambu""exon"50225315022693".""+"".""gene_id "ENSG00000277117"; transcript_id "ENST00000623960"; exon_number "1";""ENSG00000277117""ENST00000623960""1"
" ], "text/plain": [ "shape: (5, 12)\n", "┌──────────┬────────┬──────┬─────────┬───┬──────────────────────────────────────────────────────────────────────────────┬─────────────────┬─────────────────┬─────────────┐\n", "│ seqnames ┆ source ┆ type ┆ start ┆ … ┆ attributes ┆ gene_id ┆ transcript_id ┆ exon_number │\n", "│ --- ┆ --- ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n", "│ str ┆ str ┆ str ┆ i64 ┆ ┆ str ┆ str ┆ str ┆ str │\n", "╞══════════╪════════╪══════╪═════════╪═══╪══════════════════════════════════════════════════════════════════════════════╪═════════════════╪═════════════════╪═════════════╡\n", "│ 21 ┆ Bambu ┆ exon ┆ 5011799 ┆ … ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; exon_number \"1\"; ┆ ENSG00000279493 ┆ ENST00000624081 ┆ 1 │\n", "│ 21 ┆ Bambu ┆ exon ┆ 5012548 ┆ … ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; exon_number \"2\"; ┆ ENSG00000279493 ┆ ENST00000624081 ┆ 2 │\n", "│ 21 ┆ Bambu ┆ exon ┆ 5014386 ┆ … ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; exon_number \"3\"; ┆ ENSG00000279493 ┆ ENST00000624081 ┆ 3 │\n", "│ 21 ┆ Bambu ┆ exon ┆ 5016935 ┆ … ┆ gene_id \"ENSG00000279493\"; transcript_id \"ENST00000624081\"; exon_number \"4\"; ┆ ENSG00000279493 ┆ ENST00000624081 ┆ 4 │\n", "│ 21 ┆ Bambu ┆ exon ┆ 5022531 ┆ … ┆ gene_id \"ENSG00000277117\"; transcript_id \"ENST00000623960\"; exon_number \"1\"; ┆ ENSG00000277117 ┆ ENST00000623960 ┆ 1 │\n", "└──────────┴────────┴──────┴─────────┴───┴──────────────────────────────────────────────────────────────────────────────┴─────────────────┴─────────────────┴─────────────┘" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## Filter out to only keep exons\n", "alt_gtf_df = alt_gtf_df.filter(pl.col(\"type\") == \"exon\")\n", "\n", "## Extract the \"gene_id\", \"transcript_id\", and \"exon_number\" from the attributes column and assign them to columns\n", "alt_gtf_df = alt_gtf_df.with_columns([pl.col(\"attributes\").str.extract(r'gene_id \"([^\"]+)\"', 1).alias(\"gene_id\"),\n", " pl.col(\"attributes\").str.extract(r'transcript_id \"([^\"]+)\"', 1).alias(\"transcript_id\"),\n", " pl.col(\"attributes\").str.extract(r'exon_number \"([^\"]+)\"', 1).alias(\"exon_number\")])\n", "\n", "## Visualize data\n", "alt_gtf_df.head()\n", "\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "shape: (5, 8)
gene_idtranscript_idseqnamesstrandtypestartendexon_number
strstrstrstrstri64i64i64
"ENSG00000279493""ENST00000624081""21""+""exon"501179950118741
"ENSG00000279493""ENST00000624081""21""+""exon"501254850126872
"ENSG00000279493""ENST00000624081""21""+""exon"501438650144713
"ENSG00000279493""ENST00000624081""21""+""exon"501693550171454
"ENSG00000277117""ENST00000623960""21""+""exon"502253150226931
" ], "text/plain": [ "shape: (5, 8)\n", "┌─────────────────┬─────────────────┬──────────┬────────┬──────┬─────────┬─────────┬─────────────┐\n", "│ gene_id ┆ transcript_id ┆ seqnames ┆ strand ┆ type ┆ start ┆ end ┆ exon_number │\n", "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", "│ str ┆ str ┆ str ┆ str ┆ str ┆ i64 ┆ i64 ┆ i64 │\n", "╞═════════════════╪═════════════════╪══════════╪════════╪══════╪═════════╪═════════╪═════════════╡\n", "│ ENSG00000279493 ┆ ENST00000624081 ┆ 21 ┆ + ┆ exon ┆ 5011799 ┆ 5011874 ┆ 1 │\n", "│ ENSG00000279493 ┆ ENST00000624081 ┆ 21 ┆ + ┆ exon ┆ 5012548 ┆ 5012687 ┆ 2 │\n", "│ ENSG00000279493 ┆ ENST00000624081 ┆ 21 ┆ + ┆ exon ┆ 5014386 ┆ 5014471 ┆ 3 │\n", "│ ENSG00000279493 ┆ ENST00000624081 ┆ 21 ┆ + ┆ exon ┆ 5016935 ┆ 5017145 ┆ 4 │\n", "│ ENSG00000277117 ┆ ENST00000623960 ┆ 21 ┆ + ┆ exon ┆ 5022531 ┆ 5022693 ┆ 1 │\n", "└─────────────────┴─────────────────┴──────────┴────────┴──────┴─────────┴─────────┴─────────────┘" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Select the relevant columns and reorder them to make it prettier to look at (this step is optional)\n", "alt_gtf_df = alt_gtf_df.select([\n", " \"gene_id\",\n", " \"transcript_id\",\n", " \"seqnames\",\n", " \"strand\",\n", " \"type\",\n", " \"start\",\n", " \"end\",\n", " \"exon_number\"])\n", "\n", "# Cast 'exon_number' to Int64, handling possible nulls without strict type enforcement (this is mandatory!)\n", "alt_gtf_df = alt_gtf_df.with_columns([pl.col(\"exon_number\").cast(pl.Int64, strict=False)])\n", "\n", "\"\"\"\n", "Alternatively if your GTF annotation did not provide exon number, the shorten_gaps() or the to_intron() functions will automatically calculate it for you.\n", "\"\"\"\n", "\n", "## Visualize dataframe\n", "alt_gtf_df.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "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": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000476106
Feature Type: exon
Feature Number: 1
Chromosome: 21
Start: 31659693
End: 31659841
Size: 149
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "Transcript Structure Hue" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": true, "type": "scatter", "x": [ 29, 177, 177, 29, 29 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000476106
Feature Type: exon
Feature Number: 2
Chromosome: 21
Start: 31661549
End: 31661734
Size: 186
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1145, 1330, 1330, 1145, 1145 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000476106
Feature Type: exon
Feature Number: 3
Chromosome: 21
Start: 31663790
End: 31663886
Size: 97
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1431, 1527, 1527, 1431, 1431 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000476106
Feature Type: exon
Feature Number: 4
Chromosome: 21
Start: 31666449
End: 31666518
Size: 70
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1628, 1697, 1697, 1628, 1628 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000476106
Feature Type: exon
Feature Number: 5
Chromosome: 21
Start: 31667258
End: 31667341
Size: 84
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1798, 1881, 1881, 1798, 1798 ], "xaxis": "x", "y": [ -0.15, -0.15, 0.15, 0.15, -0.15 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000470944
Feature Type: exon
Feature Number: 1
Chromosome: 21
Start: 31659709
End: 31660708
Size: 1000
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 45, 1044, 1044, 45, 45 ], "xaxis": "x", "y": [ 0.85, 0.85, 1.15, 1.15, 0.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000470944
Feature Type: exon
Feature Number: 2
Chromosome: 21
Start: 31663790
End: 31663886
Size: 97
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1431, 1527, 1527, 1431, 1431 ], "xaxis": "x", "y": [ 0.85, 0.85, 1.15, 1.15, 0.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000470944
Feature Type: exon
Feature Number: 3
Chromosome: 21
Start: 31666449
End: 31666518
Size: 70
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1628, 1697, 1697, 1628, 1628 ], "xaxis": "x", "y": [ 0.85, 0.85, 1.15, 1.15, 0.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000470944
Feature Type: exon
Feature Number: 4
Chromosome: 21
Start: 31667258
End: 31667375
Size: 118
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1798, 1915, 1915, 1798, 1798 ], "xaxis": "x", "y": [ 0.85, 0.85, 1.15, 1.15, 0.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000470944
Feature Type: exon
Feature Number: 5
Chromosome: 21
Start: 31668471
End: 31668931
Size: 461
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2016, 2476, 2476, 2016, 2016 ], "xaxis": "x", "y": [ 0.85, 0.85, 1.15, 1.15, 0.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000389995
Feature Type: exon
Feature Number: 1
Chromosome: 21
Start: 31659666
End: 31659784
Size: 119
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2, 120, 120, 2, 2 ], "xaxis": "x", "y": [ 1.85, 1.85, 2.15, 2.15, 1.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000389995
Feature Type: exon
Feature Number: 2
Chromosome: 21
Start: 31663790
End: 31663886
Size: 97
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1431, 1527, 1527, 1431, 1431 ], "xaxis": "x", "y": [ 1.85, 1.85, 2.15, 2.15, 1.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000389995
Feature Type: exon
Feature Number: 3
Chromosome: 21
Start: 31666449
End: 31666518
Size: 70
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1628, 1697, 1697, 1628, 1628 ], "xaxis": "x", "y": [ 1.85, 1.85, 2.15, 2.15, 1.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000389995
Feature Type: exon
Feature Number: 4
Chromosome: 21
Start: 31667258
End: 31667375
Size: 118
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1798, 1915, 1915, 1798, 1798 ], "xaxis": "x", "y": [ 1.85, 1.85, 2.15, 2.15, 1.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000389995
Feature Type: exon
Feature Number: 5
Chromosome: 21
Start: 31668471
End: 31668931
Size: 461
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2016, 2476, 2476, 2016, 2016 ], "xaxis": "x", "y": [ 1.85, 1.85, 2.15, 2.15, 1.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000270142
Feature Type: exon
Feature Number: 1
Chromosome: 21
Start: 31659693
End: 31659841
Size: 149
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 29, 177, 177, 29, 29 ], "xaxis": "x", "y": [ 2.85, 2.85, 3.15, 3.15, 2.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000270142
Feature Type: exon
Feature Number: 2
Chromosome: 21
Start: 31663790
End: 31663886
Size: 97
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1431, 1527, 1527, 1431, 1431 ], "xaxis": "x", "y": [ 2.85, 2.85, 3.15, 3.15, 2.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000270142
Feature Type: exon
Feature Number: 3
Chromosome: 21
Start: 31666449
End: 31666518
Size: 70
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1628, 1697, 1697, 1628, 1628 ], "xaxis": "x", "y": [ 2.85, 2.85, 3.15, 3.15, 2.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000270142
Feature Type: exon
Feature Number: 4
Chromosome: 21
Start: 31667258
End: 31667375
Size: 118
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1798, 1915, 1915, 1798, 1798 ], "xaxis": "x", "y": [ 2.85, 2.85, 3.15, 3.15, 2.85 ], "yaxis": "y" }, { "fill": "toself", "fillcolor": "red", "hoverinfo": "text", "hoverlabel": { "namelength": -1 }, "hoveron": "fills+points", "hovertemplate": "transcript_id: ENST00000270142
Feature Type: exon
Feature Number: 5
Chromosome: 21
Start: 31668471
End: 31668931
Size: 461
", "legendgroup": "Exon and/or CDS", "legendgrouptitle": { "text": "" }, "line": { "color": "black", "width": 0.25 }, "mode": "lines", "name": "Exon and/or CDS", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 2016, 2476, 2476, 2016, 2016 ], "xaxis": "x", "y": [ 2.85, 2.85, 3.15, 3.15, 2.85 ], "yaxis": "y" }, { "hoverinfo": "skip", "marker": { "color": "black", "size": 10, "symbol": "arrow-right" }, "mode": "markers", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 799 ], "xaxis": "x", "y": [ 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000476106
Feature Type: intron
Feature Number: 1
Chromosome: 21
Start: 31659842
End: 31661548
Size: 1707
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 177, 1145 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000476106
Feature Type: intron
Feature Number: 2
Chromosome: 21
Start: 31661735
End: 31663789
Size: 2055
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1330, 1431 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000476106
Feature Type: intron
Feature Number: 3
Chromosome: 21
Start: 31663887
End: 31666448
Size: 2562
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1527, 1628 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000476106
Feature Type: intron
Feature Number: 4
Chromosome: 21
Start: 31666519
End: 31667257
Size: 739
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1697, 1798 ], "xaxis": "x", "y": [ 0, 0 ], "yaxis": "y" }, { "hoverinfo": "skip", "marker": { "color": "black", "size": 10, "symbol": "arrow-right" }, "mode": "markers", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1292.5 ], "xaxis": "x", "y": [ 1 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000470944
Feature Type: intron
Feature Number: 1
Chromosome: 21
Start: 31660709
End: 31663789
Size: 3081
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1044, 1431 ], "xaxis": "x", "y": [ 1, 1 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000470944
Feature Type: intron
Feature Number: 2
Chromosome: 21
Start: 31663887
End: 31666448
Size: 2562
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1527, 1628 ], "xaxis": "x", "y": [ 1, 1 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000470944
Feature Type: intron
Feature Number: 3
Chromosome: 21
Start: 31666519
End: 31667257
Size: 739
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1697, 1798 ], "xaxis": "x", "y": [ 1, 1 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000470944
Feature Type: intron
Feature Number: 4
Chromosome: 21
Start: 31667376
End: 31668470
Size: 1095
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1915, 2016 ], "xaxis": "x", "y": [ 1, 1 ], "yaxis": "y" }, { "hoverinfo": "skip", "marker": { "color": "black", "size": 10, "symbol": "arrow-right" }, "mode": "markers", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 962.5 ], "xaxis": "x", "y": [ 2 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000389995
Feature Type: intron
Feature Number: 1
Chromosome: 21
Start: 31659785
End: 31663789
Size: 4005
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 120, 1431 ], "xaxis": "x", "y": [ 2, 2 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000389995
Feature Type: intron
Feature Number: 2
Chromosome: 21
Start: 31663887
End: 31666448
Size: 2562
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1527, 1628 ], "xaxis": "x", "y": [ 2, 2 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000389995
Feature Type: intron
Feature Number: 3
Chromosome: 21
Start: 31666519
End: 31667257
Size: 739
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1697, 1798 ], "xaxis": "x", "y": [ 2, 2 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000389995
Feature Type: intron
Feature Number: 4
Chromosome: 21
Start: 31667376
End: 31668470
Size: 1095
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1915, 2016 ], "xaxis": "x", "y": [ 2, 2 ], "yaxis": "y" }, { "hoverinfo": "skip", "marker": { "color": "black", "size": 10, "symbol": "arrow-right" }, "mode": "markers", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 982.8571428571429 ], "xaxis": "x", "y": [ 3 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000270142
Feature Type: intron
Feature Number: 1
Chromosome: 21
Start: 31659842
End: 31663789
Size: 3948
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 177, 1431 ], "xaxis": "x", "y": [ 3, 3 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000270142
Feature Type: intron
Feature Number: 2
Chromosome: 21
Start: 31663887
End: 31666448
Size: 2562
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1527, 1628 ], "xaxis": "x", "y": [ 3, 3 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000270142
Feature Type: intron
Feature Number: 3
Chromosome: 21
Start: 31666519
End: 31667257
Size: 739
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1697, 1798 ], "xaxis": "x", "y": [ 3, 3 ], "yaxis": "y" }, { "hovertemplate": "transcript_id: ENST00000270142
Feature Type: intron
Feature Number: 4
Chromosome: 21
Start: 31667376
End: 31668470
Size: 1095
", "line": { "color": "black", "width": 0.5 }, "mode": "lines", "opacity": 1, "showlegend": false, "type": "scatter", "x": [ 1915, 2016 ], "xaxis": "x", "y": [ 3, 3 ], "yaxis": "y" }, { "boxmean": true, "boxpoints": "all", "fillcolor": "#FECB52", "jitter": 0.3, "legendgroup": "AD", "legendgrouptitle": { "text": "Expression Plot Hue" }, "line": { "width": 0.5 }, "marker": { "color": "black", "opacity": 1, "size": 5 }, "name": "AD", "offsetgroup": "0", "opacity": 1, "orientation": "h", "pointpos": 0, "showlegend": true, "text": [ "sample_1", "sample_7", "sample_3", "sample_5", "sample_1", "sample_7", "sample_3", "sample_5", "sample_1", "sample_7", "sample_3", "sample_5", "sample_1", "sample_7", "sample_3", "sample_5" ], "type": "box", "x": [ 0, 0, 0, 0, 13.01121, 66.96726, 27.91332, 29.3307, 103.45822, 204.75457, 178.30945, 37.95737, 55869.53057, 149305.27817, 101614.77723, 12803.71193 ], "xaxis": "x2", "y": [ "0", "0", "0", "0", "1", "1", "1", "1", "2", "2", "2", "2", "3", "3", "3", "3" ], "yaxis": "y2" }, { "boxmean": true, "boxpoints": "all", "fillcolor": "#FF97FF", "jitter": 0.3, "legendgroup": "Control", "legendgrouptitle": { "text": "" }, "line": { "width": 0.5 }, "marker": { "color": "black", "opacity": 1, "size": 5 }, "name": "Control", "offsetgroup": "1", "opacity": 1, "orientation": "h", "pointpos": 0, "showlegend": true, "text": [ "sample_4", "sample_2", "sample_6", "sample_8", "sample_4", "sample_2", "sample_6", "sample_8", "sample_4", "sample_2", "sample_6", "sample_8", "sample_4", "sample_2", "sample_6", "sample_8" ], "type": "box", "x": [ 0, 0, 0, 0, 33.24766, 51.97457, 44.89448, 50.35971, 278.6152, 262.00388, 227.70089, 227.15655, 215866.13713, 191291.02155, 191269.40463, 183275.48374 ], "xaxis": "x2", "y": [ "0", "0", "0", "0", "1", "1", "1", "1", "2", "2", "2", "2", "3", "3", "3", "3" ], "yaxis": "y2" } ], "layout": { "annotations": [ { "font": { "size": 16 }, "showarrow": false, "text": "Transcript Structure", "x": 0.245, "xanchor": "center", "xref": "paper", "y": 1, "yanchor": "bottom", "yref": "paper" }, { "font": { "size": 16 }, "showarrow": false, "text": "Counts", "x": 0.755, "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, 0.49 ], "showgrid": true, "showticklabels": false, "tickfont": { "size": 12 }, "title": { "text": "" } }, "xaxis2": { "anchor": "y2", "domain": [ 0.51, 1 ], "showgrid": true, "showticklabels": true, "tickfont": { "size": 12 }, "title": { "text": "" } }, "yaxis": { "anchor": "x", "domain": [ 0, 1 ], "range": [ -0.8, 3.8 ], "showgrid": true, "showticklabels": true, "tickfont": { "color": "black", "family": "DejaVu Sans", "size": 12 }, "ticktext": [ "ENST00000476106", "ENST00000470944", "ENST00000389995", "ENST00000270142" ], "tickvals": [ 0, 1, 2, 3 ], "title": { "text": "" } }, "yaxis2": { "anchor": "x2", "domain": [ 0, 1 ], "matches": "y", "range": [ -0.8, 3.8 ], "showgrid": true, "showticklabels": false, "ticks": "", "ticktext": [ "ENST00000476106", "ENST00000470944", "ENST00000389995", "ENST00000270142" ], "tickvals": [ 0, 1, 2, 3 ] } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABE0AAAH0CAYAAADIYtM7AAAAAXNSR0IArs4c6QAAIABJREFUeF7snXmcVNWZsN/uZmm62RRwQWRXIgq4MNGgosSMRNwz6oSMqDNqdBQnKBlRPp2QmLTLDEYjalRMFBccdaKio1kcUQSXuJC4g0YMBkEMitB0N00v3+8UucWt27fqPaf69q2qvk/lj0jVe7bnvLe679PnnFvW2traKrwgAAEIQAACEIAABCAAAQhAAAIQgAAEMgiUIU3ICAhAAAIQgAAEIAABCEAAAhCAAAQg0JYA0oSsgAAEIAABCEAAAhCAAAQgAAEIQAACIQSQJqQFBCAAAQhAAAIQgAAEIAABCEAAAhBAmpADEIAABCAAAQhAAAIQgAAEIAABCEDAjgArTew4EQUBCEAAAhCAAAQgAAEIQAACEIBAwgggTRI24QwXAhCAAAQgAAEIQAACEIAABCAAATsCSBM7TkRBAAIQgAAEIAABCEAAAhCAAAQgkDACSJOETTjDhQAEIAABCEAAAhCAAAQgAAEIQMCOANLEjhNREIAABCAAAQhAAAIQgAAEIAABCCSMANIkYRPOcCEAAQhAAAIQgAAEIAABCEAAAhCwI4A0seNEFAQgAAEIQAACEIAABCAAAQhAAAIJI4A0SdiEM1wIQAACEIAABCAAAQhAAAIQgAAE7AggTew4EQUBCEAAAhCAAAQgAAEIQAACEIBAwgggTRI24QwXAhCAAAQgAAEIQAACEIAABCAAATsCSBM7TkRBAAIQgAAEIAABCEAAAhCAAAQgkDACSJOETTjDhQAEIAABCEAAAhCAAAQgAAEIQMCOANLEjhNREIAABCAAAQhAAAIQgAAEIAABCCSMANIkYRPOcCEAAQhAAAIQgAAEIAABCEAAAhCwI4A0seNEFAQgAAEIQAACEIAABCAAAQhAAAIJI4A0SdiEM1wIQAACEIAABCAAAQhAAAIQgAAE7AggTew4EQUBCEAAAhCAAAQgAAEIQAACEIBAwgggTRI24QwXAhCAAAQgAAEIQAACEIAABCAAATsCSBM7TkRBAAIQgAAEIAABCEAAAhCAAAQgkDACSJOETTjDhQAEIAABCEAAAhCAAAQgAAEIQMCOANLEjhNREIAABCAAAQhAAAIQgAAEIAABCCSMANIkYRPOcCEAAQhAAAIQgAAEIAABCEAAAhCwI4A0seNEFAQgAAEIQAACEIAABCAAAQhAAAIJI4A0SdiEM1wIQAACEIAABCAAAQhAAAIQgAAE7AggTew4EQUBCEAAAhCAAAQgAAEIQAACEIBAwgggTRI24QwXAhCAAAQgAAEIQAACEIAABCAAATsCSBM7TkRBAAIQgAAEIAABCEAAAhCAAAQgkDACSJOETTjDhQAEIAABCEAAAhCAAAQgAAEIQMCOANLEjhNREIAABCAAAQhAAAIQgAAEIAABCCSMANIkYRPOcCEAAQhAAAIQgAAEIAABCEAAAhCwI4A0seNEFAQgAAEIQAACEIAABCAAAQhAAAIJI4A0SdiEM1wIQAACEIAABCAAAQhAAAIQgAAE7AggTew4EQUBCEAAAhCAAAQgAAEIQAACEIBAwgggTRI24QwXAhCAAAQgAAEIQAACEIAABCAAATsCSBM7TkRBAAIQgAAEIAABCEAAAhCAAAQgkDACSJOETTjDhQAEIAABCEAAAhCAAAQgAAEIQMCOANLEjhNREIAABCAAAQhAAAIQgAAEIAABCCSMANIkYRPOcCEAAQhAAAIQgAAEIAABCEAAAhCwI4A0seNEFAQgAAEIQAACEIAABCAAAQhAAAIJI4A0SdiEM1wIQAACEIAABCAAAQhAAAIQgAAE7AggTew4EQUBCEAAAhCAAAQgAAEIQAACEIBAwgggTRI24QwXAhCAAAQgAAEIQAACEIAABCAAATsCSBM7TkRBAAIQgAAEIAABCEAAAhCAAAQgkDACSJOETTjDhQAEIAABCEAAAhCAAAQgAAEIQMCOANLEjhNREIAABCAAAQhAAAIQgAAEIAABCCSMANIkYRPOcCEAAQhAAAIQgAAEIAABCEAAAhCwI4A0seNEFAQgAAEIQAACEIAABCAAAQhAAAIJI4A0SdiEM1wIQAACEIAABCAAAQhAAAIQgAAE7AggTew4EQUBCEAAAhCAAAQgAAEIQAACEIBAwgggTRI24QwXAhCAAAQgAAEIQAACEIAABCAAATsCSBM7TkRBAAIQgAAEIAABCEAAAhCAAAQgkDACSJOETTjDhQAEIAABCEAAAhCAAAQgAAEIQMCOANLEjhNREIAABCAAAQhAAAIQgAAEIAABCCSMANIkYRPOcCEAAQhAAAIQgAAEIAABCEAAAhCwI4A0seNEFAQgAAEIQAACEIAA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0jfe8pa094MPbs/Ns2+zYfPmtPc556RnvuY12bfpDd72t3+bFt5665S3az5ic/PmrWnO71zWbNyYjvjYx9IBT3ta0fGagPS1d74z7XnPPVPebvXGjenZ112XnvzkJxfd//r169PX3v72tNfPf551u9Vbt6aj/vEf03777Zc1P2zIE4jtpmv1hus3bE6PjG1KC+bNTovmt/c7vtWTnOE7E03iCyCaxEZ+58VGoklsZIIAgXwB0STfymQLAv9v+fJ04Otel/Zt4b56d3HXccelP7jxxrRo0aIW73V670o0qRdN7rvvvvSbY45JR6xYMa0XdW1K6Z5/+If0nDPPLD7ObWeckV569dWpJBP9IqX06N13p0OPPLLoeA8//HBaccIJ6blf/eqUt1uVUtqycmVqvjq25Gft2rXpnuOPT8+5446sm62cOzfN+fGP05IlS7LmRZPtZpr2G4omMbFoEhuJJrGRaBIbiSaxkQkCBPIFRJN8K5MtCIgmjyGKJqJJv4BoIpq08Ot1xu9CNIkvgWgSG4kmsZFoEhuJJrGRCQIE8gVEk3wrky0IiCaiSbRGbb89xytNthX3SpNoA/397RUQTWI50SQ2Ek1iI9EkNhJNYiMTBAjkC4gm+VYmWxAQTUSTaI1Ek0josb/v7TmPO3kCkbcz0z0lmsTCoklsJJrERn7nxUaiSWxkggCBfAHRJN/KZAsCooloEq2RaBIJiSaDQp5A5O3MdE+JJrGwaBIbiSaxkd95sZFoEhuZIEAgX0A0ybcy2YKAaDI60WT16tVpn332aeGqtnsXokmep1eaPO7kCUTezkz3lGgSC4smsZFoEhv5nRcbiSaxkQkCBPIFRjKaXHrppend7373No/iqU99arrjd9/G8MIXvnD87zV/fcABB4z/7+Z9+ieeeGI6//zz06tf/er0q1/9KjVzq1Y13wGR0sKFC9Ntt902/r+PPfbYtG7duico9WYOPPDAidv2jts7TnOjb37zmxP38bKXvSzddNNNaY899pi4v9NPPz1dc80143/9hS98Yfx8ej/95zXsvvsf+/vf//50wQUXDL2azTGWL18+/pie97znbXNO/TfoP37P6NZbb53waG7b/PSf87DjRo85ely9cxJNHpMYhQ+CfdOb3pSacHLxxRenIwu/gSX/V0z5pGiSZyaaPO7kCUTezkz3lGgSC4smsZFo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YUaDT4Yn+y/rXVuW/q8c7p17/25Ee9P/tqX+t5gM+8rhwa+i7YrV4AcID37Ya+8tNs3jGXwrUi88NW9DGdy5wQjQm33K/vt26huGBn0G92gqg2Z2qh0bDEnNvl54yUd2mm+t6sqfAedJoAsCokkXrpJzJECAAAECBAgQIECAAAECBKoLiCbVyR2QAAECBAgQIECAAAECBAgQ6IKAaNKFq+QcCRAgQIAAAQIECBAgQIAAgeoCokl1cgckQIAAAQIECBAgQIAAAQIEuiAgmnThKjlHAgQIECBAgAABAgQIECBAoLqAaFKd3AEJECBAgAABAgQIECBAgACBLgiIJl24Ss6RAAECBAgQIECAAAECBAgQqC4gmlQnd0ACBAgQIECAAAECBAgQIECgCwKiSReuknMkQIAAAQIECBAgQIAAAQIEqguIJtXJHZAAAQIECBAgQIAAAQIECBDogoBo0oWr5BwJECBAgAABAgQIECBAgACB6gKiSXVyByRAgAABAgQIECBAgAABAgS6ICCadOEqOUcCBAgQIECAAAECBAgQIECguoBoUp3cAQkQIECAAAECBAgQIECAAIEuCIgmXbhKzpEAAQIECBAgQIAAAQIECBCoLiCaVCd3QAIECBAgQIAAAQIECBAgQKALAqJJF66ScyRAgAABAgQIECBAgAABAgSqC4gm1ckdkAABAgQIECBAgAABAgQIEOiCgGjShavkHAkQIECAAAECBAgQIECAAIHqAqJJdXIHJECAAAECBAgQIECAAAECBLogIJp04So5RwIECBAgQIAAAQIECBAgQKC6gGhSndwBCRAgQIAAAQIECBAgQIAAgS4IiCZduErOkQABAgQIECBAgAABAgQIEKguIJpUJ3dAAgQIECBAgAABAgQIECBAoAsCokkXrpJzJECAAAECBAgQIECAAAECBKoLiCbVyR2QAAECBAgQIECAAAECBAgQ6IKAaNKFq+QcCRAgQIAAAQIECBAgQIAAgeoCokl1cgckQIAAAQIECBAgQIAAAQIEuiAgmnThKjlHAgQIECBAgAABAgQIECBAoLqAaFKd3AEJECBAgAABAgQIECBAgACBLgiIJl24Ss6RAAECBAgQIECAAAECBAgQqC4gmlQnd0ACBAgQIECAAAECBAgQIECgCwKiSReuknMkQIAAAQIECBAgQIAAAQIEqguIJtXJHZAAAQIECBAgQIAAAQIECBDogoBo0oWr5BwJECBAgAABAgQIECBAgACB6gKiSXVyByRAgAABAgQIECBAgAABAgS6ICCadOEqOUcCBAgQIECAAAECBAgQIECguoBoUp3cAQkQIECAAAECBAgQIECAAIEuCIgmXbhKzpEAAQIECBAgQIAAAQIECBCoLiCaVCd3QAIECBAgQIAAAQIECBAgQKALAv8fvALqpfRb+0YAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\"\"\"\n", "Proceed to generate figures as usual. Notice that we did not have \"transcript_biotype\" in the attributes columns,\n", "therefore we have to either pick another column to \"hue\" our RNA isoforms structure plot with or just \n", "pick a fillcolor for all the RNA isoforms (default is grey)\n", "\"\"\"\n", "\n", "## Get counts matrix data path and metadata path\n", "counts_matrix_path = \"../../tests/test_data/counts_matrix_chr21_and_Y.tsv\"\n", "metadata_path = \"../../tests/test_data/sample_metadata.tsv\"\n", "\n", "## Read counts matrix with metadata and normalizations\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", "\"\"\"\n", "Filter annotation by gene_id instead of gene_name by using the `gene_id_column` parameter\n", "since we don't have \"gene_name\" in the GTF file used. \n", "You can always get creative with \"joins\" with other GTF annotations\n", "to fill in more information about specific genes and transcripts, just make sure you\n", "do NOT have any null/NA values in your columns. One way to get around that is to \n", "fill NAs in the gene_name column using the gene_id column.\n", "\"\"\"\n", "sod1_annotation, sod1_expression_matrix = RNApy.gene_filtering(annotation=alt_gtf_df,\n", " expression_matrix=counts_matrix, order_by_expression_column=\"counts\",\n", " order_by_expression=True, gene_id_column=\"gene_id\", ## This is \"gene_name\" by default\n", " target_gene=\"ENSG00000142168\" ## SOD1 ensembl gene_id\n", " )\n", "\n", "## Rescale introns\n", "sod1_annotation = RNApy.shorten_gaps(sod1_annotation)\n", "\n", "\"\"\"\n", "Make traces using a constant value for annotation fill color since we don't have\n", "the \"transcript_biotype\" color for hue. You could alternatively hue the RNA\n", "isoform structure plot by a different annotation column such as \n", "\"transcript_id\", thus making every transcript a unique color\n", "\"\"\"\n", "traces = RNApy.make_traces(annotation=sod1_annotation, expression_matrix=sod1_expression_matrix,\n", " x_start=\"rescaled_start\", x_end=\"rescaled_end\",\n", " y='transcript_id', \n", " annotation_fill_color=\"red\", ## Set annotation fill color to a constant value\n", " expression_hue=\"AD status\",\n", " hover_start=\"start\", hover_end=\"end\")\n", "\n", "## Put traces into figure\n", "fig = RNApy.make_plot(traces = traces, subplot_titles = [\"Transcript Structure\", \"Counts\"], width=1200, height=500)\n", "\n", "## Show figure\n", "fig.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notes:\n", "\n", "You can click on the legend items to make figure elements appear and disappear.\n", "\n", "The legend title will get grayed out when clicking on the first legend item. I could not find a workaround for that with the current plotly release (version 5).\n", "\n", "The hovering for exons and CDS works best if you hover your mouse over the corners of the CDS/exon boxes." ] } ], "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": 4 }