Making custom ajustments to figure

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

[1]:
import RNApysoforms as RNApy
[2]:
## Path to your ENSEMBL GTF file, counts matrix file, and metadata file
ensembl_gtf_path = "../../tests/test_data/Homo_sapiens_chr21_and_Y.GRCh38.110.gtf"
counts_matrix_path = "../../tests/test_data/counts_matrix_chr21_and_Y.tsv"
metadata_path = "../../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()

Notes:

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 corners of the CDS/exon boxes.