varri-js 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CITATION.bib +13 -0
- package/CITATION.cff +33 -0
- package/README.html +4 -4
- package/README.md +113 -41
- package/citation.html +316 -0
- package/doc/vaRRI-UI-example.png +0 -0
- package/docu.free-trailing-ends.md +247 -0
- package/example-data.js +226 -0
- package/index.html +616 -0
- package/index.js +2844 -0
- package/logo/vaRRI.logo.200x200.png +0 -0
- package/logo/vaRRI.logo.40x40.png +0 -0
- package/logo/vaRRI.logo.svg +152 -0
- package/logo/vaRRI.media.png +0 -0
- package/package.json +23 -5
- package/src/README.md +1 -1
- package/style.css +1183 -0
package/CITATION.bib
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@misc{raden_varrii_js_2026,
|
|
2
|
+
title = {vaRRI - Visual annotation of RNA-RNA interactions},
|
|
3
|
+
author = {Raden, Martin and Ganter, Fabian},
|
|
4
|
+
year = {2026},
|
|
5
|
+
url = {https://backofenlab.github.io/vaRRI/},
|
|
6
|
+
note = {Web application and JavaScript library},
|
|
7
|
+
abstract = {vaRRI is a browser-based JavaScript library for visualizing RNA-RNA interactions (RRIs) as 2D diagrams with annotations such as base-pair highlights, probability profiles, subsequence highlights, and point mutation annotations.},
|
|
8
|
+
keywords = {RNA, RNA-RNA interaction, visualization, JavaScript, bioinformatics},
|
|
9
|
+
version = {1.0.0},
|
|
10
|
+
license = {MIT},
|
|
11
|
+
organization = {University of Freiburg, Department of Computer Science, Bioinformatics Lab},
|
|
12
|
+
organization_url = {https://www.bioinformatics.uni-freiburg.de/}
|
|
13
|
+
}
|
package/CITATION.cff
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
title: vaRRI - Visual annotation of RNA-RNA interactions
|
|
3
|
+
message: >-
|
|
4
|
+
If you use this software in a publication, please cite it using the metadata
|
|
5
|
+
in this file.
|
|
6
|
+
type: software
|
|
7
|
+
authors:
|
|
8
|
+
- given-names: Martin
|
|
9
|
+
family-names: Raden
|
|
10
|
+
affiliation: University of Freiburg, Germany
|
|
11
|
+
orcid: 'https://orcid.org/0000-0002-7926-5911'
|
|
12
|
+
- given-names: Fabian
|
|
13
|
+
family-names: Ganter
|
|
14
|
+
affiliation: University of Freiburg, Germany
|
|
15
|
+
- name: Bioinformatics Lab, University of Freiburg
|
|
16
|
+
affiliation: Department of Computer Science, University of Freiburg
|
|
17
|
+
website: 'https://www.bioinformatics.uni-freiburg.de/'
|
|
18
|
+
version: 1.0.0
|
|
19
|
+
date-released: '2026-07-31'
|
|
20
|
+
repository-code: 'https://github.com/BackofenLab/vaRRI'
|
|
21
|
+
url: 'https://backofenlab.github.io/vaRRI/'
|
|
22
|
+
abstract: >-
|
|
23
|
+
vaRRI is a browser-based JavaScript library for visualizing RNA-RNA
|
|
24
|
+
interactions (RRIs) as 2D diagrams with annotations such as base-pair
|
|
25
|
+
highlights, probability profiles, subsequence highlights, and point mutation
|
|
26
|
+
annotations.
|
|
27
|
+
keywords:
|
|
28
|
+
- RNA
|
|
29
|
+
- RNA-RNA interaction
|
|
30
|
+
- visualization
|
|
31
|
+
- JavaScript
|
|
32
|
+
- bioinformatics
|
|
33
|
+
license: MIT
|
package/README.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>vaRRI
|
|
6
|
+
<title>vaRRI README</title>
|
|
7
7
|
<link rel="icon" type="image/png" href="logo/vaRRI.logo.40x40.png">
|
|
8
8
|
|
|
9
9
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.1/github-markdown.min.css">
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
if (isLocalFile && token.type === 'html' && typeof token.text === 'string' && token.text.includes('<iframe')) {
|
|
108
108
|
// Optionally extract the URL from the iframe if present
|
|
109
109
|
const srcMatch = token.text.match(/src=["']([^"']+)["']/);
|
|
110
|
-
const iframeUrl = srcMatch ? srcMatch[1] : 'https://backofenlab.github.io/vaRRI
|
|
110
|
+
const iframeUrl = srcMatch ? srcMatch[1] : 'https://backofenlab.github.io/vaRRI/index.html';
|
|
111
111
|
|
|
112
112
|
token.text = `
|
|
113
113
|
<div class="status-banner" style="margin: 16px 0;">
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
|
|
123
123
|
// 3. Define URLs
|
|
124
124
|
const localUrl = './README.md';
|
|
125
|
-
const remoteUrl = 'https://raw.githubusercontent.com/BackofenLab/vaRRI
|
|
125
|
+
const remoteUrl = 'https://raw.githubusercontent.com/BackofenLab/vaRRI/main/README.md';
|
|
126
126
|
|
|
127
127
|
// 4. Choose target URL
|
|
128
128
|
const targetUrl = isLocalFile ? remoteUrl : localUrl;
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
⚠️ <strong>Note:</strong>
|
|
134
134
|
<blockquote style="margin: 8px;">
|
|
135
135
|
README.html was opened locally and cannot access the local README.md.<br>
|
|
136
|
-
Therefore, the README was loaded from the <a href="${remoteUrl}">vaRRI
|
|
136
|
+
Therefore, the README was loaded from the <a href="${remoteUrl}">vaRRI online repository</a>.
|
|
137
137
|
</blockquote>
|
|
138
138
|
</div>
|
|
139
139
|
`;
|
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# vaRRI - Visual Annotation of RNA–RNA Interactions
|
|
2
2
|
|
|
3
|
-
Visualise and annotate RNA–RNA interactions directly in the browser — no server or no command-line tools required.
|
|
3
|
+
 Visualise and annotate RNA–RNA interactions directly in the browser — no server or no command-line tools required.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
8
|
|
|
9
9
|
1. [Overview](#overview-and-objective)
|
|
10
|
-
2. [Examples from Literature](#examples-from-literature-reproduced-with-varri
|
|
10
|
+
2. [Examples from Literature](#examples-from-literature-reproduced-with-varri)
|
|
11
11
|
3. [Project Structure](#project-structure)
|
|
12
12
|
4. [Quick Start](#quick-start)
|
|
13
13
|
5. [npm Package](#npm-package)
|
|
@@ -23,7 +23,7 @@ Visualise and annotate RNA–RNA interactions directly in the browser — no ser
|
|
|
23
23
|
|
|
24
24
|
## Overview and Objective
|
|
25
25
|
|
|
26
|
-
vaRRI
|
|
26
|
+
vaRRI is a pure JavaScript library to visualize the base pairing of
|
|
27
27
|
RNA-RNA interactions (RRIs) as 2D diagrams with additional annotation like
|
|
28
28
|
|
|
29
29
|
- coloring by sequence or loop type,
|
|
@@ -48,18 +48,18 @@ Use cases include
|
|
|
48
48
|
> If you like it, [please cite it!](citation.html)
|
|
49
49
|
|
|
50
50
|
|
|
51
|
-
Given two sequences and the RRI secondary-structure encoding in dot-bracket notation, vaRRI
|
|
51
|
+
Given two sequences and the RRI secondary-structure encoding in dot-bracket notation, vaRRI renders
|
|
52
52
|
them with the [Fornac](https://github.com/ViennaRNA/fornac) library, and then
|
|
53
53
|
applies all of vaRRI's annotations and tweaks.
|
|
54
54
|
|
|
55
|
-
[](https://backofenlab.github.io/vaRRI/)
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
---
|
|
59
59
|
|
|
60
|
-
## Examples from Literature reproduced with vaRRI
|
|
60
|
+
## Examples from Literature reproduced with vaRRI
|
|
61
61
|
|
|
62
|
-
To showcase the capabilities of vaRRI
|
|
62
|
+
To showcase the capabilities of vaRRI, we provide a collection of examples from the literature that have been reproduced using vaRRI.
|
|
63
63
|
The examples can be loaded directly in the input website via the **Example** dropdown.
|
|
64
64
|
|
|
65
65
|
|
|
@@ -68,7 +68,7 @@ The examples can be loaded directly in the input website via the **Example** dro
|
|
|
68
68
|
## Project Structure
|
|
69
69
|
|
|
70
70
|
```
|
|
71
|
-
vaRRI
|
|
71
|
+
vaRRI/
|
|
72
72
|
│
|
|
73
73
|
├── fornac/
|
|
74
74
|
│ ├── fornac.js # Fornac library (vaRRI dependency)
|
|
@@ -99,16 +99,16 @@ vaRRI-js/
|
|
|
99
99
|
> before using it in a production environment.
|
|
100
100
|
|
|
101
101
|
|
|
102
|
-
The easiest way to [**use vaRRI
|
|
102
|
+
The easiest way to [**use vaRRI is via the GitHub pages website**](https://BackofenLab.github.io/vaRRI):
|
|
103
103
|
|
|
104
|
-
- [https://BackofenLab.github.io/vaRRI
|
|
104
|
+
- [https://BackofenLab.github.io/vaRRI](https://BackofenLab.github.io/vaRRI)
|
|
105
105
|
|
|
106
|
-
If you want to run the website locally or use the library in your own HTML page, clone the repository or download a ZIP of the project via the [Releases](https://github.com/BackofenLab/vaRRI
|
|
106
|
+
If you want to run the website locally or use the library in your own HTML page, clone the repository or download a ZIP of the project via the [Releases](https://github.com/BackofenLab/vaRRI/releases) section.
|
|
107
107
|
Afterwards, open `index.html` directly in a browser — no build step or server needed:
|
|
108
108
|
|
|
109
109
|
```bash
|
|
110
|
-
git clone https://github.com/BackofenLab/vaRRI
|
|
111
|
-
cd vaRRI
|
|
110
|
+
git clone https://github.com/BackofenLab/vaRRI.git
|
|
111
|
+
cd vaRRI
|
|
112
112
|
# simply open index.html in your browser, e.g.:
|
|
113
113
|
open index.html # macOS
|
|
114
114
|
xdg-open index.html # Linux
|
|
@@ -126,12 +126,57 @@ To use the library in your own HTML page, include the dependencies in the follow
|
|
|
126
126
|
|
|
127
127
|
## npm Package
|
|
128
128
|
|
|
129
|
-
Install vaRRI
|
|
129
|
+
Install vaRRI in an application with:
|
|
130
130
|
|
|
131
131
|
```bash
|
|
132
132
|
npm install varri-js
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
+
The npm package remains `varri-js`; the GitHub repository and project branding are `vaRRI`.
|
|
136
|
+
Version 1.0.2 includes the updated complete viewer as well as the library.
|
|
137
|
+
|
|
138
|
+
### Open `index.html` in Browser
|
|
139
|
+
|
|
140
|
+
After installation via npm, you find the vaRRI user interface `index.html` in the following subfolder
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
node_modules/varri-js/index.html
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
You can open it with any recent browser and start working
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
### Local Webserver (optional)
|
|
150
|
+
|
|
151
|
+
Alternatively, serving the installed viewer locally using a local webserver requires e.g. Python 3:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
python3 -m http.server 8080 --bind 127.0.0.1 --directory node_modules/varri-js
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Open `http://localhost:8080/index.html`. Applications can serve or copy the whole package
|
|
158
|
+
directory using their own static-file server, retaining the relative directory layout.
|
|
159
|
+
The viewer includes example inputs, SVG/PNG export controls, help, citation data and local logos.
|
|
160
|
+
Use HTTP rather than `file://` so the help and citation pages can load their packaged data.
|
|
161
|
+
|
|
162
|
+
The JavaScript `main` and root export intentionally remain `src/vaRRI.js`: `require('varri-js')`
|
|
163
|
+
and ESM default imports return the library API. The viewer has a separate public entry:
|
|
164
|
+
|
|
165
|
+
```javascript
|
|
166
|
+
const viewerPath = require.resolve('varri-js/index.html');
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Resolving this path does not start a server; serve its containing directory to make the viewer
|
|
170
|
+
and its assets available. HTML is a browser document, not a JavaScript module.
|
|
171
|
+
|
|
172
|
+
**Network requirements:** the existing viewer uses jsDelivr for `marked` and external
|
|
173
|
+
university logos from `www.bioinf.uni-freiburg.de`. The help page also uses cdnjs for its
|
|
174
|
+
Markdown stylesheet, and the citation page loads Citation.js from jsDelivr. These URLs
|
|
175
|
+
are retained, so this is not a fully offline distribution. Deployments with restricted
|
|
176
|
+
network access must provide those assets locally and update the HTML references/CSP.
|
|
177
|
+
Opening the help or citation page through `file://` can additionally fetch fallback content
|
|
178
|
+
from `raw.githubusercontent.com`; serving the package over HTTP uses the local files.
|
|
179
|
+
|
|
135
180
|
The package exports the CommonJS-compatible API as `varri-js` and ships the browser assets under
|
|
136
181
|
`varri-js/fornac/` and `varri-js/dist/`. For a static page served from an npm-based application,
|
|
137
182
|
load the browser files in this order:
|
|
@@ -267,8 +312,8 @@ These generated entries are shown in the same list but are **not removable or ed
|
|
|
267
312
|
Behaviour of generated list entries:
|
|
268
313
|
|
|
269
314
|
- When **RRI Background** is set to `nothing`, no generated region entry is shown.
|
|
270
|
-
- When set to `region`, vaRRI
|
|
271
|
-
- When set to `basepairs`, vaRRI
|
|
315
|
+
- When set to `region`, vaRRI computes the overall intermolecular interaction region and displays it as a generated, non-removable region entry.
|
|
316
|
+
- When set to `basepairs`, vaRRI computes one or more generated region entries that correspond to intermolecular basepair stacks and displays them as non-removable entries.
|
|
272
317
|
- Generated entries are refreshed automatically from the current structure and settings; they are not exported as user-defined region highlights in share links.
|
|
273
318
|
|
|
274
319
|
|
|
@@ -317,7 +362,7 @@ As separator, either space and tab is supported, and lines starting with `#` are
|
|
|
317
362
|
|
|
318
363
|
> [!TIP]
|
|
319
364
|
> - For convenience, respective text *files can be dragged and dropped* into the input fields to load the probability profiles.
|
|
320
|
-
> - vaRRI
|
|
365
|
+
> - vaRRI also supports CSV files with a header line, where the first column contains the nucleotide indices and the second column contains the probability values. Such data is automatically converted to the space-separated format above, and the header line is ignored.
|
|
321
366
|
|
|
322
367
|
Finally, the following fields are available to define the visualization of the probability profiles:
|
|
323
368
|
|
|
@@ -333,7 +378,7 @@ Finally, the following fields are available to define the visualization of the p
|
|
|
333
378
|
### Point Mutations
|
|
334
379
|
|
|
335
380
|
RNA-RNA interaction visualizations are often used to discuss the effect of point mutations on the interaction.
|
|
336
|
-
To support this, vaRRI
|
|
381
|
+
To support this, vaRRI allows to define point mutations in the input sequences and visualizes them in the rendered structure.
|
|
337
382
|
A point mutation is defined by the sequence (1 or 2), the index of the nucleotide to mutate, and the new nucleotide (or letter) to use for the mutation.
|
|
338
383
|
This information is provided in the following fields, and the "Add" button registers the mutation.
|
|
339
384
|
|
|
@@ -345,7 +390,7 @@ This information is provided in the following fields, and the "Add" button regis
|
|
|
345
390
|
| **Color** | The color to use for highlighting the mutated nucleotide. |
|
|
346
391
|
|
|
347
392
|
> [!TIP]
|
|
348
|
-
> vaRRI
|
|
393
|
+
> vaRRI allows to define arbitrary letters as mutations, i.e. the mutated nucleotide does not need to be a valid IUPAC character.
|
|
349
394
|
> That way, any kind of annotation can be added to the sequence, e.g. a letter representing a chemical modification, symbols for a certain type of mutation, or even a short word.
|
|
350
395
|
|
|
351
396
|
All registered mutations are shown in a list above the input fields, and can be removed by clicking the "🗑️" icon.
|
|
@@ -395,7 +440,7 @@ Details about URL encoding are given in the following section [URL Parameters &
|
|
|
395
440
|
|
|
396
441
|
## URL Parameters & Sharing
|
|
397
442
|
|
|
398
|
-
**vaRRI
|
|
443
|
+
**vaRRI** supports state persistence directly via URL parameters, allowing you to pre-fill inputs or share specific visualization configurations using the **🔗 Share Link** button in the export panel. Most parameter names map directly to their corresponding HTML element IDs.
|
|
399
444
|
|
|
400
445
|
### Key Parameters
|
|
401
446
|
|
|
@@ -429,12 +474,25 @@ To simplify sequence and structure input validation, sequence and structure inpu
|
|
|
429
474
|
|
|
430
475
|
You can embed the visualization directly into external web pages (e.g., in documentation, blogs, or web tools) using an `<iframe>`.
|
|
431
476
|
|
|
477
|
+
### Embeddings in Existing Web Applications
|
|
478
|
+
|
|
479
|
+
Currently, vaRRI is already available as an RRI visualizer in the the following web applications:
|
|
480
|
+
|
|
481
|
+
- Freiburg RNA Tools: [https://rna.informatik.uni-freiburg.de/](https://rna.informatik.uni-freiburg.de/)
|
|
482
|
+
- IntaRNA - RNA-RNA interaction prediction server
|
|
483
|
+
- [Example visualization](https://rna.informatik.uni-freiburg.de/IntaRNA/Result.jsp?toolName=IntaRNA&jobID=4267751)
|
|
484
|
+
- CopomuS - Compensatory Mutation Designer for RNA-RNA interactions
|
|
485
|
+
- [Example visualization](https://rna.informatik.uni-freiburg.de/CopomuS/Result.jsp?toolName=CopomuS&jobID=1595284)
|
|
486
|
+
- Galaxy Visualizer: [https://usegalaxy.eu/](https://usegalaxy.eu/)
|
|
487
|
+
- vaRRI is available as a visualization tool for RNA-RNA interactions in the Galaxy workflow system
|
|
488
|
+
|
|
489
|
+
|
|
432
490
|
### Query Parameter
|
|
433
491
|
|
|
434
492
|
Use the `showRenderingOnly=true` URL parameter to hide all surrounding UI elements (header, controls panel, footer) and display only the visualization result panel.
|
|
435
493
|
|
|
436
494
|
```text
|
|
437
|
-
https://backofenlab.github.io/vaRRI
|
|
495
|
+
https://backofenlab.github.io/vaRRI/index.html?showRenderingOnly=true&<remaining_parameters...>
|
|
438
496
|
```
|
|
439
497
|
|
|
440
498
|
For embedding without header and footer, you can also use the `hideFooterAndHeader=true` parameter, which will hide the header and footer but keep the controls panel visible, i.e. this checks the "Full screen UI" checkbox in the controls panel.
|
|
@@ -443,34 +501,35 @@ For embedding without header and footer, you can also use the `hideFooterAndHead
|
|
|
443
501
|
|
|
444
502
|
```html
|
|
445
503
|
<iframe
|
|
446
|
-
src="https://backofenlab.github.io/vaRRI
|
|
504
|
+
src="https://backofenlab.github.io/vaRRI/?sequence=ACGAUCAUGGAUUAGAGCAUUCGACAGCAG%26ACGAAAAAAAGAGCAUACGACAGUAG&colorSeq1=%23add8e6&startIndex1=-6&colorSeq2=%23f4bb44&startIndex2=100&structure=..%3C%3C%3C%3C...%3E%3E%3E%3E...%28%28..%28%28%28...%28%28..%26............%29%29...%29%29%29..%29%29..&coloring=strand&highlighting=region&colorRriNodes=%23ff0000&backgroundhighlighting=basepairs&colorRriRegion=%23ff0000&colorBasepair=%23ff0000&distinctBpTypes=on&forceLayout=on&profileColor1=%23800080&profileColorRepresentsOne1=on&profileColor2=%23ff0000&profileData1=%23+unpaired+probabilities%0A1+0.9%0A2+0.7%0A3+0.3%0A4+0.1%0A7+0.3%0A8+0.7%0A9+0.6&profileIdxRef1=1&profileIdxRef2=1&cropping=2&mutations=1%3A16G%3A338a29%2C2%3A118C%3A338a29&highlights=1%3A18-20%3A338a29%2C2%3A114-116%3A338a29&showRenderingOnly=true"
|
|
447
505
|
width="100%"
|
|
448
506
|
height="600"
|
|
449
507
|
style="border: none;"
|
|
450
|
-
title="vaRRI
|
|
508
|
+
title="vaRRI Visualization">
|
|
451
509
|
</iframe>
|
|
452
510
|
```
|
|
453
511
|
|
|
454
512
|
> [!IMPORTANT]
|
|
455
513
|
> Ensure special characters in URL parameters (such as `&` separating two RNA strands) are properly URL-encoded as `%26` when constructing embedding links manually. Also `()` have to be encoded using `%28` and `%29` respectively, as they are not encoded by default by URL encoders following RFC 3986.
|
|
456
514
|
|
|
457
|
-
Valid embedding links can be generated using the "🔗 Share Link" button in the vaRRI
|
|
515
|
+
Valid embedding links can be generated using the "🔗 Share Link" button in the vaRRI interface but have to extended with `&showRenderingOnly=true`.
|
|
458
516
|
|
|
459
517
|
----
|
|
460
518
|
|
|
461
519
|
<iframe
|
|
462
|
-
src="https://backofenlab.github.io/vaRRI
|
|
520
|
+
src="https://backofenlab.github.io/vaRRI/?showRenderingOnly=true&sequence=ACGAUCAUGGAUUAGAGCAUUCGACAGCAG%26ACGAAAAAAAGAGCAUACGACAGUAG&colorSeq1=%23add8e6&startIndex1=-6&colorSeq2=%23f4bb44&startIndex2=100&structure=..%3C%3C%3C%3C...%3E%3E%3E%3E...%28%28..%28%28%28...%28%28..%26............%29%29...%29%29%29..%29%29..&coloring=strand&highlighting=region&colorRriNodes=%23ff0000&backgroundhighlighting=basepairs&colorRriRegion=%23ff0000&colorBasepair=%23ff0000&distinctBpTypes=on&forceLayout=on&profileColor1=%23800080&profileColorRepresentsOne1=on&profileColor2=%23ff0000&profileData1=%23+unpaired+probabilities%0A1+0.9%0A2+0.7%0A3+0.3%0A4+0.1%0A7+0.3%0A8+0.7%0A9+0.6&profileIdxRef1=1&profileIdxRef2=1&cropping=2&mutations=1%3A16G%3A338a29%2C2%3A118C%3A338a29&highlights=1%3A18-20%3A338a29%2C2%3A114-116%3A338a29"
|
|
463
521
|
width="100%"
|
|
464
522
|
height="600"
|
|
465
523
|
style="border: 2px solid #333333; border-radius: 6px;"
|
|
466
|
-
title="vaRRI
|
|
524
|
+
title="vaRRI Visualization">
|
|
467
525
|
</iframe>
|
|
468
526
|
|
|
469
527
|
----
|
|
470
528
|
|
|
471
529
|
> [!NOTE]
|
|
472
530
|
> GitHub repository preview strips embedded `<iframe>` elements as above for security reasons.
|
|
473
|
-
> * If you are viewing [this page on **GitHub Pages**](https://backofenlab.github.io/vaRRI
|
|
531
|
+
> * If you are viewing [this page on **GitHub Pages**](https://backofenlab.github.io/vaRRI/README.html), the live widget will render directly below.
|
|
532
|
+
|
|
474
533
|
|
|
475
534
|
## Input Format Reference
|
|
476
535
|
|
|
@@ -484,7 +543,7 @@ Valid embedding links can be generated using the "🔗 Share Link" button in the
|
|
|
484
543
|
|
|
485
544
|
### Dot-Bracket Notation
|
|
486
545
|
|
|
487
|
-
vaRRI
|
|
546
|
+
vaRRI accepts standard dot-bracket secondary structure notation with the following characters:
|
|
488
547
|
|
|
489
548
|
| Character | Meaning |
|
|
490
549
|
|---|---|
|
|
@@ -499,7 +558,7 @@ You can use any of the four bracket types to represent basepairs, and they can b
|
|
|
499
558
|
The only restriction is that the brackets must be balanced, i.e. every opening bracket must have a corresponding closing bracket of the same type.
|
|
500
559
|
|
|
501
560
|
> [!IMPORTANT]
|
|
502
|
-
> Since vaRRI
|
|
561
|
+
> Since vaRRI is based on the fornac library, its underlying layout algorithm does not support pseudoknots, i.e. basepairs that cross each other.
|
|
503
562
|
> In that case, the primary layout will be based on a reduced set of basepairs that do not cross each other, and the remaining basepairs are added subsequently.
|
|
504
563
|
> Therefore, the layout of pseudoknotted structures may not be optimal, and the visualisation may be less clear than for non-pseudoknotted structures.
|
|
505
564
|
|
|
@@ -566,23 +625,36 @@ position-based annotations, including highlightings, point mutations, and probab
|
|
|
566
625
|
Include `src/vaRRI.js` after the Fornac dependencies.
|
|
567
626
|
The library exposes a single global object `vaRRI` with the a set of respective functions.
|
|
568
627
|
|
|
569
|
-
The `src` directory provides a [detailed vaRRI
|
|
628
|
+
The `src` directory provides a [detailed vaRRI Library API documentation](src/README.md)
|
|
570
629
|
|
|
571
630
|
|
|
572
631
|
---
|
|
573
632
|
|
|
574
633
|
## Release Process
|
|
575
634
|
|
|
576
|
-
Publishing is automated by [`.github/workflows/publish-npm.yml`](.github/workflows/publish-npm.yml).
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
635
|
+
Publishing is automated by [`.github/workflows/publish-npm.yml`](https://github.com/BackofenLab/vaRRI/blob/main/.github/workflows/publish-npm.yml).
|
|
636
|
+
Releases continue to update the existing `varri-js` npm package. The npm package name is
|
|
637
|
+
independent of the GitHub repository name; no source files need to be renamed.
|
|
638
|
+
An owner must configure a **GitHub Actions trusted publisher** in the `varri-js` package's npm settings:
|
|
639
|
+
organization `BackofenLab`, repository `vaRRI`, workflow filename `publish-npm.yml`, no
|
|
640
|
+
environment name, with direct `npm publish` allowed. This one-time account action may request
|
|
641
|
+
2FA. The workflow uses OIDC and does not require an `NPM_TOKEN` secret or interactive 2FA for
|
|
642
|
+
each release. See [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/).
|
|
643
|
+
After the GitHub repository rename, update any existing trusted publisher that still names
|
|
644
|
+
the old repository to `vaRRI`. The repository name is case-sensitive.
|
|
645
|
+
|
|
646
|
+
Merge the workflow changes before creating a release tag on a commit containing them.
|
|
647
|
+
Every published GitHub release runs the tests, derives the npm version from the release tag,
|
|
648
|
+
builds and installs a temporary package to verify its contents, and publishes with provenance.
|
|
649
|
+
Stable releases use the `latest` npm tag; semantic prerelease versions or GitHub releases
|
|
650
|
+
marked as prereleases use `next`. Use `npm install varri-js@next` to try a prerelease.
|
|
651
|
+
Use a new, increasing stable version for each stable release: npm versions are immutable,
|
|
652
|
+
and re-running an already successful publish cannot overwrite that version. Publishing a
|
|
653
|
+
GitHub release is the trigger; pushing a Git tag alone does not publish the npm package.
|
|
654
|
+
|
|
655
|
+
Run `npm run test:ci` and `npm run test:package` locally before proposing a release. The
|
|
656
|
+
package check installs the actual tarball in a temporary consumer and checks module exports,
|
|
657
|
+
viewer asset references, documentation images, and citation data. It also runs in PR CI.
|
|
586
658
|
|
|
587
659
|
Release tags must be valid semantic versions with an optional leading `v`, for example `v1.2.3`
|
|
588
660
|
or `1.2.3`. The workflow changes `package.json` and `package-lock.json` only inside the temporary
|