RFviewJS is a self-contained JavaScript library for rendering RNA secondary structures and consensus structures from Stockholm alignments. It supports, all without any external dependencies:
- automatic layout selection (Radiate vs. NAView)
- manual helix rotation, reactivity color mapping (SHAPE/DMS)
- base-pair and helix-level covariation annotations from R-scape
- CSS styling
- SVG export
Furthermore, thanks to the power of Electron, RFview is also provided as a stand-alone app for Windows, Linux and Mac.
For support requests, please post your questions to: https://github.com/dincarnato/RFviewJS/issues
Danny Incarnato (dincarnato[at]rnaframework.com)
University of Groningen
The main plotting functions for the Radiate layout were ported from Yann Ponty's VARNA.
The NAView layout was ported from Ivo Hofacker's adaptation of Bruccoleri & Heinrich original algorithm, and adapted to enable helix rotation in a Radiate-like fashion.
Code auditing and bug fixing, as well as bundling of the JS into an Electron app was done with the crucial aid of ClaudeAI.
This program is free software, and can be redistribute and/or modified under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
Please see http://www.gnu.org/licenses/ for more information.
RFviewJS can be tested at: https://rfview.incarnatolab.com
A variety of examples can be found here:
Standalone RFview executables are available from the Releases section.
Note to macOS users: as the app is not code-signed, before running it, issue the following command in the Terminal:
xattr -cr /path/to/RFview.appTo install RFviewJS on your webpage, just obtain RFview.js (under scripts/RFview.js on this repository), upload it to your webserver and include it with a plain <script> tag:
<script src="path/to/RFview.js"></script>Alternatively, you can directly import it from the official RFviewJS website:
<script src="https://rfview.incarnatolab.com/scripts/RFview.js"></script>The module exports a single global class, RFviewJS.
For any information, please refer to the documentation: http://rfviewjs-docs.readthedocs.io/

