Secondary structure drawings

Secondary structure drawings are a standard and intuitive way to visualize secondary structures. It is also a useful way to visualize sequence annotations and per-nucleotide and inter-nucleotide data in the context of a secondary structure. RNAvigate will not make the layout for you, but it will accept file formats from StructureEditor, R2DT, VARNA, XRNA, and FORNA.

[1]:
import rnavigate as rnav
from rnavigate.examples import rnasep_1, rnasep_2, rnasep_3

plot = rnav.plot_ss(
    samples=[rnasep_1, rnasep_2, rnasep_3],
    structure="ss_pdb",
    profile="shapemap",
    interactions="ringmap",
    colors={"sequence": "profile"}
)

../_images/plot_options_ss_1_0.png
../_images/plot_options_ss_1_1.png
[2]:
help(rnav.plot_ss)

Help on function plot_ss in module rnavigate.plotting_functions:

plot_ss(samples, structure, profile=None, annotations=None, interactions=None, interactions2=None, labels=None, colors=None, nt_ticks=None, bp_style='dotted', colorbars=True, plot_kwargs=None)
    Generates a multipanel secondary structure drawing with optional
    coloring by per-nucleotide data and display of inter-nucleotide data and/or
    sequence annotations. Each plot may display a unique sample and/or
    inter-nucleotide data filtering scheme.

    Parameters
    ----------
    samples : list of rnavigate Samples
        samples used to retrieve data
    structure : data keyword string or data object
        secondary structure to plot as arcs
        All data are mapped to this sequence before plotting
    profile : data keyword string or data object, defaults to None
        Profile used for coloring if "profile" used in colors dictionary
    annotations : list of data keyword strings or data objects, defaults to []
        Annotations used to highlight regions or sites of interest
    interactions : one of the formats below, defaults to None
        format 1 (data or data keyword)
            Interactions to plot on secondary structure, no filtering
        format 2 (dictionary)
            e.g. {"interactions": format 1}
            additional filtering options can be added to the dictionary
        format 3 (list of format 2 dictionaries)
            This format allows multiple filtering schemes to be applied,
            each will be plotted on a seperate axis
    interactions2 : one of the formats below, defaults to None
        format 1 (data or data keyword)
            Interactions to plot on secondary structure, no filtering
        format 2 (dictionary)
            e.g. {"interactions": format 1}
            additional filtering options can be added to the dictionary
    labels : list of strings, defaults to sample.sample for each sample
        list containing Labels to be used in plot legends
        Defaults to sample.sample for each sample
    colors : dictionary, optional
        a dictionary of element: value pairs that determines how colors
        will be applied to each plot element and if that element is plotted
        only the elements you wish to change need to be included
        Keys can be "sequence" (letter labels), "nucleotides" (circles behind letters),
        "structure" (lines connecting nucleotides), and
        "basepairs" (lines connecting base-paired nucleotides).
        Values can be: None (don't plot), "sequence" (color by nucleotide identity),
        "position" (position in sequence), "annotations" (sequence annotations),
        "profile" (per-nucleotide data from profile argument),
        "structure" (base-pairing status), a single matplotlib color for all positions,
        or an array of one color per position which matches the structure length.
        "sequence" may also use "contrast" which automatically chooses white or black
        for each letter to contrast with that "nucleotide" color.
        Defaults to {"sequence": None, "nucleotides": "sequence", "structure": "grey",
        "basepairs": "grey"}
    nt_ticks : integer, defaults to None (no labels)
        gap between major tick marks
    bp_style : "dotted", "line", or "conventional", defaults to "dotted"
        "dotted" plots basepairs as a dotted line
        "line" plots basepairs as a solid line
        "conventional" plots basepairs using Leontis-Westhof conventions for canonical
        and wobble pairs ("G-A" plotted as solid dot)
    colorbars : bool, defaults to True
        Whether to plot color scales for all plot elements
    plot_kwargs : dict, defaults to {}
        Keyword-arguments passed to matplotlib.pyplot.subplots

    Returns
    -------
    rnavigate.plots.SS plot
        object containing matplotlib figure and axes with additional plotting and
        file saving methods