Version history
1.1.2 (June 2026)
- improves documentation and examples
adds developer installation guide
tests notebooks in CI and on ReadTheDocs to ensure they stay functional
- improves pre-commit
adds nbstripout to remove large output cells from notebooks
adds automatic linting and formatting with Ruff
adds “uv lock” to pre-commit and CI
adds testing with pytest
- improves CI workflow
adds uv lock check
adds Sphinx documentation build testing
- improves CD workflow
adds Dockerfile and publish to Docker Hub on release
- improves packaging and distribution
adds Bioconda recipe
adds environment.yml for conda installation until Bioconda package is available
- Improves devcontainer setup and documentation
adds ipykernel installation to postCreateCommand for Jupyter notebook support
adds pre-commit install to postCreateCommand for pre-commit hooks
adds port forwarding for documentation building and preview with sphinx-autobuild
removes numpy-style docstring formatting issues
- improves pyproject.toml package structure
makes example data available
adds ipykernel to docs extras for building notebooks
removes unneeded dependencies from main and dev extra
1.1.0 and 1.1.1 (May 2026)
Updated packaging details and dependencies for PyPI release
Created pytest suite with unit and smoke tests data classes and plotting functions
- Set up CI with GitHub Actions on push/PR to main
run tests with pytest, lint with ruff, and test across Python 3.9, 3.10, 3.11
Set up CD with GitHub Actions to publish to PyPI on release
Migrated from Black/isort/pylint to Ruff for code formatting and linting
Fixed minor bugs and added small features to data and plots along the way
1.0.0-alpha (November 2023)
This version is a large departure from v0.2.0, while trying to maintain a familiar interface.
If you’re coming from version 0.2.0, there are many syntax changes. In order to preserve the functionality of your old notebooks, do not pull these changes to your existing RNAvigate folder. Instead, follow the Installing RNAvigate guide.
NOTES:
Argument names are fewer, clearer, and more standardized:
new names |
old names |
|---|---|
structure or structure2 |
ss, ct, comp |
sequence |
fit_to, dataframe, filepath, seq_source, fasta |
interactions or interactions2 |
ij, ij2 |
colors |
nt_color, color, colormap, etc. |
input_data |
dataframe, filepath |
metric_defaults |
column, err_column, color_column, cmap, norm, min_max |
SequenceChecker analysis adds tools to quickly compare sequences.
Multiple sequence alignment is partially implemented.
All arguments are explicitly named for high level functions (no more kwargs)
Removed these standard data keywords:
log: log files can now be passed during ShapeMaP profile creation
dmsmap: shapemap keyword accepts normalization=”DMS”, “eDMS”, “boxplot”
allcorrs: this was just a duplicate for ringmap
groups: now called “group” and annotates 1 group at a time
data keywords are more flexible:
can be arbitrary strings
optional arguments can be passed to data class constructor
Loading a genome fasta and transcriptome annotation (GTF) allows:
extracting Transcript sequences given a transcript ID
annotating exon junctions and coding sequences
extracting transcript profile or annotation from bed and NarrowPeak files
calculations on profiles:
Normalizations: (uses code from RNATools ReactivityProfile)
“DMS”, “eDMS”, “boxplot”, “percentile”
options for setting bounds and flexible grouping by nucleotide
Rolling windows:
mean, median, average, custom function
setting window size
SecondaryStructure class (new name) combines all file formats
Added parsing for FORNA and R2DT structure diagrams in json format
"extension":"forna"and"extension":"r2dt"differentiate these files
Profile plots can now have horizontal annotation tracks
Sequence alignment changes:
data objects have get_aligned_data which returns a copy with new positions
option to use secondary structure alignments (uses RNAlign2D algorithm)
more understandable sequence alignment figures.
flipping an alignment (seq1->seq2 becomes seq2->seq1)
Interactions and Profile have a unified and more flexible coloring interface
This also controls colorbar appearance
all plots changes:
Scaling text size on a plot using sns.context (doesn’t always look nice)
undercase nucleotides in sequences are preserved
figure size in inches is more reasonable for exporting images and svgs
figure size scaling is standardized and correctly calculated for all plots
nt_ticks parameter defines major and minor tick marks
always includes the first nucleotide
skips over indels in the sequence
secondary structure diagrams changes:
position labels look much nicer
axis margins are standardized to 2 data units for all size RNAs
linear regression plots changes:
removed KDE plots
simplified and improved readability
scale options (linear or log) and regression options (Pearson or Spearman)
Added plot_ntdist, which plots reactivity distributions by nucleotide.
The following analyses have been refactored:
DeltaSHAPE, fragmapper, lowSS
(not stable) AUROC, LogDiff
0.2.0 (September 2023)
NOTES:
Got rid of
sample.plot_function()because it is redundant: usernav.plot_function([sample])insteadPosition labelling on secondary structure is prettier
New features for linear regression plots:
pearson or spear correlations
any column of data
log or linear regression
Fragmapper analysis
0.1.0 (April 2023)
NOTES:
Beginning of version history
removed py3dmol version from environment file (uses most recent)
New plots:
ROC plots
DeltaSHAPE
Windowed AUROC
Alignment
Profiles
New data classes:
AllPossible: creates Interactions data given a sequence. One interaction for every possible nucleotide pairing.
Features:
Many small bug fixes and aesthetic changes
PDB data objects:
Added support for .cif files
improved parsing and cross-indexing, offset argument removed
Improved data fitting flexibility
- Added fit_to() method for secondary structures, profiles, and annotations
objects
Added seq_source for arc and circle plots
alignment maps for a data object can be predefined
Added features to retrieve/set orientation of 3D molecule plots
Secondary structure data and plotting:
Added xy-coordinate normalization:
median base-pair distance = 1, center of structure = (0, 0)
Changed SS interface to allow multiple different structures in 1 figure
data objects can be passed to Sample() arguments
this allows rnav.Sample objects to share a data object
cuts down on computation time and memory usage
using inherit argument, all data objects from a sample are inherited
Add set_figure_size to Plot class
sets figure size so that axis unit to inches ratio is consistent