{
"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)| seqnames | source | type | start | end | score | strand | phase | attributes |
|---|
| str | str | str | i64 | i64 | str | str | str | str |
| "21" | "Bambu" | "transcript" | 5011799 | 5017145 | "." | "+" | "." | "gene_id "ENSG00000279493"; transcript_id "ENST00000624081";" |
| "21" | "Bambu" | "exon" | 5011799 | 5011874 | "." | "+" | "." | "gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "1";" |
| "21" | "Bambu" | "exon" | 5012548 | 5012687 | "." | "+" | "." | "gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "2";" |
| "21" | "Bambu" | "exon" | 5014386 | 5014471 | "." | "+" | "." | "gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "3";" |
| "21" | "Bambu" | "exon" | 5016935 | 5017145 | "." | "+" | "." | "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)| seqnames | source | type | start | end | score | strand | phase | attributes | gene_id | transcript_id | exon_number |
|---|
| str | str | str | i64 | i64 | str | str | str | str | str | str | str |
| "21" | "Bambu" | "exon" | 5011799 | 5011874 | "." | "+" | "." | "gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "1";" | "ENSG00000279493" | "ENST00000624081" | "1" |
| "21" | "Bambu" | "exon" | 5012548 | 5012687 | "." | "+" | "." | "gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "2";" | "ENSG00000279493" | "ENST00000624081" | "2" |
| "21" | "Bambu" | "exon" | 5014386 | 5014471 | "." | "+" | "." | "gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "3";" | "ENSG00000279493" | "ENST00000624081" | "3" |
| "21" | "Bambu" | "exon" | 5016935 | 5017145 | "." | "+" | "." | "gene_id "ENSG00000279493"; transcript_id "ENST00000624081"; exon_number "4";" | "ENSG00000279493" | "ENST00000624081" | "4" |
| "21" | "Bambu" | "exon" | 5022531 | 5022693 | "." | "+" | "." | "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_id | transcript_id | seqnames | strand | type | start | end | exon_number |
|---|
| str | str | str | str | str | i64 | i64 | i64 |
| "ENSG00000279493" | "ENST00000624081" | "21" | "+" | "exon" | 5011799 | 5011874 | 1 |
| "ENSG00000279493" | "ENST00000624081" | "21" | "+" | "exon" | 5012548 | 5012687 | 2 |
| "ENSG00000279493" | "ENST00000624081" | "21" | "+" | "exon" | 5014386 | 5014471 | 3 |
| "ENSG00000279493" | "ENST00000624081" | "21" | "+" | "exon" | 5016935 | 5017145 | 4 |
| "ENSG00000277117" | "ENST00000623960" | "21" | "+" | "exon" | 5022531 | 5022693 | 1 |
"
],
"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 you could calculate it by running:\n",
" \n",
"`alt_gtf_df = RNApy.calculate_exon_number(alt_gtf_df)`\n",
"\n",
"See RNApysoforms function documentation for more details about the `calculate_exon_number()` function\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
}