12: Making custom ajustments to figure

An example of how to make adjustments to figures after running the make_plot() function

[5]:
import RNApysoforms as RNApy
[6]:
## Path to your ENSEMBL GTF file, counts matrix file, and metadata file
ensembl_gtf_path = "../dash_apps/RNApysoforms/tests/test_data/Homo_sapiens_chr21_and_Y.GRCh38.110.gtf"
counts_matrix_path = "../dash_apps/RNApysoforms/tests/test_data/counts_matrix_chr21_and_Y.tsv"
metadata_path = "../dash_apps/RNApysoforms/tests/test_data/sample_metadata.tsv"


## Read ENSEMBL GTF and counts matrix with metadata and normalization
annotation = RNApy.read_ensembl_gtf(ensembl_gtf_path)
counts_matrix = RNApy.read_expression_matrix(expression_matrix_path=counts_matrix_path,
                                          metadata_path=metadata_path,
                                           cpm_normalization=True, relative_abundance=True)


## Filter APP gene and keep only top 5 expressed transcripts
app_annotation, app_expresison_matrix = RNApy.gene_filtering(annotation=annotation, expression_matrix=counts_matrix, target_gene="APP",
                                                        order_by_expression=True, order_by_expression_column="counts",
                                                        keep_top_expressed_transcripts=5)

## Rescale introns
app_annotation = RNApy.shorten_gaps(app_annotation)


## Create traces
traces = RNApy.make_traces(annotation=app_annotation,  expression_matrix=app_expresison_matrix,
                        x_start="rescaled_start", x_end="rescaled_end",
                         y='transcript_id', annotation_hue="transcript_biotype",
                         hover_start="start", hover_end="end",
                         expression_columns=["counts", "CPM", "relative_abundance"],
                         expression_hue="AD status", marker_size=3, arrow_size=7,
                         order_transcripts_by_expression_matrix=False ## Order by annotation order instead of expression matrix
                         )

## Put traces into figure
fig = RNApy.make_plot(traces=traces, subplot_titles=["Transcript Structure", "Counts", "CPM", "Relative Abundance"],
                   width=1200, height=500, boxgap=0.1, boxgroupgap=0.5,
                   column_widths=[0.4, 0.2, 0.2, 0.2] ## Pass custom column widths to make the Transcript Structure plot bigger
                   )


## PLOT CUSTOMIZATION, see plotly docs for more ways of customizing it and saving the plot as different file formats

# Update figure size and give it a title
fig.update_layout(title=dict(text="APP RNA isoform expression", x = 0.5, xanchor="center"),
                  width=1250, height=800)

## Show figure
fig.show()

You can click on the legend items to make figure elements appear and disappear.

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).

The hovering for exons and CDS works best if you hover your mouse over the edges of the CDS/exon boxes.