react-msaview-cli 6.5.0 → 8.0.0
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/README.md +161 -122
- package/dist/index.js +130746 -0
- package/package.json +12 -17
package/README.md
CHANGED
|
@@ -3,28 +3,29 @@
|
|
|
3
3
|
Annotate a multiple sequence alignment and render it to a publication figure,
|
|
4
4
|
from the command line, with no browser in the loop.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
The CLI has two groups of commands, and the second draws what the first writes:
|
|
7
7
|
|
|
8
|
-
- **Annotate
|
|
8
|
+
- **Annotate**: build a domain or exon GFF for an alignment, from InterPro's
|
|
9
9
|
precomputed matches (`interpro`), a live InterProScan run (`interproscan`), or
|
|
10
10
|
a RefSeq transcript's exon model (`genestructure`).
|
|
11
|
-
- **Render
|
|
12
|
-
standalone SVG (`export-svg`).
|
|
13
|
-
|
|
11
|
+
- **Render**: draw the alignment, its tree, and those annotations to a
|
|
12
|
+
standalone SVG (`export-svg`). The command runs the web viewer's renderer
|
|
13
|
+
headlessly, so the figure matches what the app shows.
|
|
14
14
|
|
|
15
15
|
## Prerequisites
|
|
16
16
|
|
|
17
17
|
- NodeJS v22+
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
scan with
|
|
21
|
-
|
|
19
|
+
`export-svg` and `interpro` need nothing else. `interproscan` needs a backend to
|
|
20
|
+
scan with: the EBI web API (the default, no install), Docker, Singularity, or a
|
|
21
|
+
local InterProScan (see [interproscan](#interproscan)).
|
|
22
22
|
|
|
23
23
|
`export-svg` draws the alignment background as one embedded image when
|
|
24
|
-
[@napi-rs/canvas](https://www.npmjs.com/package/@napi-rs/canvas) is present.
|
|
25
|
-
is an optional dependency with prebuilt binaries, so a normal install
|
|
26
|
-
in
|
|
27
|
-
rectangle per cell
|
|
24
|
+
[@napi-rs/canvas](https://www.npmjs.com/package/@napi-rs/canvas) is present. The
|
|
25
|
+
package is an optional dependency with prebuilt binaries, so a normal install
|
|
26
|
+
brings it in. On a platform with no prebuilt binary, the export draws a
|
|
27
|
+
rectangle per cell, which makes a much larger file and runs slower on big
|
|
28
|
+
alignments.
|
|
28
29
|
|
|
29
30
|
## Setup
|
|
30
31
|
|
|
@@ -55,13 +56,14 @@ react-msaview-cli export-svg --msa kinases.aln --tree kinases.nwk \
|
|
|
55
56
|
|
|
56
57
|

|
|
57
58
|
|
|
58
|
-
The domain architecture reads straight down the alignment
|
|
59
|
-
the catalytic domain
|
|
60
|
-
space
|
|
59
|
+
The domain architecture reads straight down the alignment: SH3, then SH2, then
|
|
60
|
+
the catalytic domain. The renderer draws every row in the alignment's column
|
|
61
|
+
space, so each domain lands in the same columns in every row. The key on the
|
|
62
|
+
right lists the domains present in the GFF.
|
|
61
63
|
|
|
62
64
|
Every figure on this page is `export-svg` output, drawn from the Src-kinase and
|
|
63
65
|
GPCR examples in
|
|
64
|
-
[packages/examples](https://github.com/GMOD/JBrowseMSA/tree/main/packages/examples/
|
|
66
|
+
[packages/examples](https://github.com/GMOD/JBrowseMSA/tree/main/packages/examples/data).
|
|
65
67
|
|
|
66
68
|
## Rendering figures
|
|
67
69
|
|
|
@@ -69,25 +71,42 @@ GPCR examples in
|
|
|
69
71
|
react-msaview-cli export-svg --msa <file> [options]
|
|
70
72
|
```
|
|
71
73
|
|
|
72
|
-
| Option | Description
|
|
73
|
-
| ------------------------ |
|
|
74
|
-
| `--msa <file>` | MSA file (FASTA, Stockholm, Clustal, A3M)
|
|
75
|
-
| `--tree <file>` | Newick tree file
|
|
76
|
-
| `--gff <file>` | Domain or exon GFF (from the commands below)
|
|
77
|
-
| `-o, --output <file>` | Output SVG file path
|
|
78
|
-
| `--color-scheme <name>` | Color scheme
|
|
79
|
-
| `--col-width <px>` | Width of one alignment column
|
|
80
|
-
| `--row-height <px>` | Height of one alignment row
|
|
81
|
-
| `--width <px>` | Viewport width, which sets the tree area
|
|
82
|
-
| `--height <px>` | Viewport height
|
|
83
|
-
| `--tree-area-width <px>` | Tree panel width in pixels
|
|
74
|
+
| Option | Description | Default |
|
|
75
|
+
| ------------------------ | ---------------------------------------------- | --------------- |
|
|
76
|
+
| `--msa <file>` | MSA file (FASTA, Stockholm, Clustal, A3M, EMF) | _required_ |
|
|
77
|
+
| `--tree <file>` | Newick tree file | |
|
|
78
|
+
| `--gff <file>` | Domain or exon GFF (from the commands below) | |
|
|
79
|
+
| `-o, --output <file>` | Output SVG file path | `alignment.svg` |
|
|
80
|
+
| `--color-scheme <name>` | Color scheme | `maeditor` |
|
|
81
|
+
| `--col-width <px>` | Width of one alignment column | `12` |
|
|
82
|
+
| `--row-height <px>` | Height of one alignment row | `16` |
|
|
83
|
+
| `--width <px>` | Viewport width, which sets the tree area | `1200` |
|
|
84
|
+
| `--height <px>` | Viewport height | `600` |
|
|
85
|
+
| `--tree-area-width <px>` | Tree panel width in pixels | |
|
|
86
|
+
| `--format <name>` | Force the MSA format instead of sniffing it | |
|
|
87
|
+
| `--tracks <list>` | Tracks to draw above the alignment, by id | none |
|
|
88
|
+
| `--viewport` | Draw the viewport instead of the whole thing | |
|
|
89
|
+
| `--minimap` | Include the minimap bar (`--viewport` only) | |
|
|
90
|
+
|
|
91
|
+
### Tracks
|
|
92
|
+
|
|
93
|
+
`--tracks` names the tracks to draw above the alignment, by id, or `all` for
|
|
94
|
+
every one this alignment has: `conservation`, `property-conservation` (protein
|
|
95
|
+
only), `sequence-logo`, `position-ruler`, `base-pairs` (a Stockholm `SS_cons`
|
|
96
|
+
line), and any track ids the file itself carries. The CLI reports a name that
|
|
97
|
+
matches no track.
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
react-msaview-cli export-svg --msa kinases.aln --tracks conservation,position-ruler \
|
|
101
|
+
-o kinases.svg
|
|
102
|
+
```
|
|
84
103
|
|
|
85
104
|
### Sizing the figure
|
|
86
105
|
|
|
87
|
-
`export-svg`
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
`--row-height
|
|
106
|
+
`export-svg` draws the **entire** alignment unless `--viewport` asks for the
|
|
107
|
+
`--width` x `--height` window at the top left, so the output is normally as wide
|
|
108
|
+
as the alignment is long. `--width` and `--height` size the viewport the model
|
|
109
|
+
lays out in, not the figure. `--col-width` and `--row-height` scale the figure:
|
|
91
110
|
|
|
92
111
|
```bash
|
|
93
112
|
## a 90-column alignment at the default 12px columns: letters are legible
|
|
@@ -104,12 +123,11 @@ react-msaview-cli export-svg --msa kinases.aln --tree kinases.nwk \
|
|
|
104
123
|
|
|
105
124
|

|
|
106
125
|
|
|
107
|
-
Residue letters draw only
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
would be unreadable ink.
|
|
126
|
+
Residue letters draw only in columns at least 5px wide and wider than half the
|
|
127
|
+
row height, and in rows at least 8px tall. The app applies the same rule as you
|
|
128
|
+
zoom out. Below that size the figure is the colored overview above, which
|
|
129
|
+
usually suits a whole-alignment figure: at that scale the conserved blocks and
|
|
130
|
+
gaps are visible, and letters would be too small to read.
|
|
113
131
|
|
|
114
132
|
### Color schemes
|
|
115
133
|
|
|
@@ -124,50 +142,56 @@ react-msaview-cli export-svg --msa gpcrs.fa \
|
|
|
124
142
|
`cinema`, and the `jalview_*` family (`jalview_zappo`, `jalview_taylor`,
|
|
125
143
|
`jalview_hydrophobicity`, `jalview_buried`, `jalview_prophelix`,
|
|
126
144
|
`jalview_propstrand`, `jalview_propturn`) color each residue by identity. The
|
|
127
|
-
two `_dynamic` schemes
|
|
128
|
-
`percent_identity_dynamic
|
|
129
|
-
|
|
130
|
-
`
|
|
131
|
-
`none` turns background color off.
|
|
145
|
+
two `_dynamic` schemes, `clustalx_protein_dynamic` and
|
|
146
|
+
`percent_identity_dynamic`, color each residue by the composition of its column,
|
|
147
|
+
so conserved columns stand out by color. `nucleotide`, `clustalx_dna`,
|
|
148
|
+
`jbrowse_dna` and `rainbow_dna` are for DNA; `none` turns background color off.
|
|
132
149
|
|
|
133
150
|
### Output
|
|
134
151
|
|
|
135
|
-
The SVG
|
|
136
|
-
|
|
137
|
-
|
|
152
|
+
The SVG grows with the alignment: a 10-row by 856-column figure is about 700KB.
|
|
153
|
+
The background is one embedded image where @napi-rs/canvas is installed, and a
|
|
154
|
+
rectangle per cell where it is not. The letters, the tree and the annotations
|
|
155
|
+
are vector either way. To convert to PNG or PDF for a journal:
|
|
138
156
|
|
|
139
157
|
```bash
|
|
140
158
|
rsvg-convert -w 2000 alignment.svg -o alignment.png
|
|
141
159
|
inkscape alignment.svg --export-filename=alignment.pdf
|
|
142
160
|
```
|
|
143
161
|
|
|
144
|
-
|
|
145
|
-
be regenerated in CI and diffed.
|
|
162
|
+
The same input gives the same bytes, so CI can regenerate a figure and diff it.
|
|
146
163
|
|
|
147
164
|
## Annotating
|
|
148
165
|
|
|
149
166
|
### interpro
|
|
150
167
|
|
|
151
168
|
Build a domain GFF from InterPro's **precomputed** matches for UniProtKB
|
|
152
|
-
accessions
|
|
153
|
-
|
|
154
|
-
InterPro
|
|
155
|
-
|
|
156
|
-
Prefer this over `interproscan` whenever your rows are UniProt accessions.
|
|
169
|
+
accessions. The EBI InterPro API already serves matches for every UniProtKB
|
|
170
|
+
sequence, so the lookup returns in seconds, gives the same result for a given
|
|
171
|
+
InterPro release, and needs no email or rate-limited job. Use this instead of
|
|
172
|
+
`interproscan` whenever your rows are UniProt accessions.
|
|
157
173
|
|
|
158
174
|
```bash
|
|
159
175
|
react-msaview-cli interpro <accessions.tsv> [options]
|
|
160
176
|
```
|
|
161
177
|
|
|
162
178
|
The input is one accession per line, optionally followed by a tab- or
|
|
163
|
-
space-separated row label
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
|
168
|
-
|
|
|
169
|
-
|
|
|
170
|
-
| `--
|
|
179
|
+
space-separated row label. The command skips lines starting with `#`. It writes
|
|
180
|
+
through the same GFF writer as `interproscan`, and adds a `#` header line naming
|
|
181
|
+
the InterPro release the coordinates came from.
|
|
182
|
+
|
|
183
|
+
| Option | Description | Default |
|
|
184
|
+
| --------------------- | ----------------------------------------------- | ------------- |
|
|
185
|
+
| `-o, --output <file>` | Output GFF file path | `domains.gff` |
|
|
186
|
+
| `--database <name>` | InterPro member db to read | `pfam` |
|
|
187
|
+
| `--msa <file>` | Alignment to check the rows of (see below) | |
|
|
188
|
+
| `--format <name>` | Force the `--msa` format instead of sniffing it | |
|
|
189
|
+
| `--no-cache` | Re-fetch, ignoring the disk cache | off |
|
|
190
|
+
|
|
191
|
+
InterPro computes matches on UniProt's canonical sequence, so on a row that is
|
|
192
|
+
an isoform or a fragment the matches land on the wrong residues. With `--msa`,
|
|
193
|
+
the CLI compares each row's ungapped length against the protein's and warns
|
|
194
|
+
about any that differ. It also warns about any accession with no matches.
|
|
171
195
|
|
|
172
196
|
```bash
|
|
173
197
|
react-msaview-cli interpro accessions.tsv -o domains.gff
|
|
@@ -176,53 +200,54 @@ react-msaview-cli interpro accessions.tsv -o domains.gff --database cdd
|
|
|
176
200
|
|
|
177
201
|
#### Caching
|
|
178
202
|
|
|
179
|
-
The InterPro API serves one protein per request
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
with no matches are cached too, so they are not re-fetched every run.
|
|
203
|
+
The InterPro API serves one protein per request and has no batch endpoint, so a
|
|
204
|
+
run makes one request per distinct accession. The CLI caches every response on
|
|
205
|
+
disk under `$XDG_CACHE_HOME/react-msaview-cli/interpro` (override with
|
|
206
|
+
`REACT_MSAVIEW_CACHE`), keyed by InterPro release, so a new release fetches
|
|
207
|
+
fresh coordinates. The cache also records proteins with no matches, so a re-run
|
|
208
|
+
does not fetch them again.
|
|
186
209
|
|
|
187
|
-
A re-run of the same dataset
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
asking EBI for all of them again.
|
|
210
|
+
A re-run of the same dataset makes one request, the release lookup, and reads
|
|
211
|
+
the rest from disk. A failed run can therefore resume. The CLI retries with
|
|
212
|
+
backoff, and if the API stays unreachable, the accessions it already fetched
|
|
213
|
+
stay cached, so the next run fetches only the rest.
|
|
192
214
|
|
|
193
215
|
### interproscan
|
|
194
216
|
|
|
195
217
|
Run InterProScan on all sequences in an MSA file and output results as GFF3. Use
|
|
196
|
-
this when the rows are not UniProt accessions
|
|
197
|
-
proteins, anything InterPro has not
|
|
218
|
+
this when the rows are not UniProt accessions: a de novo assembly, predicted
|
|
219
|
+
proteins, or anything else InterPro has not scanned.
|
|
198
220
|
|
|
199
221
|
```bash
|
|
200
222
|
react-msaview-cli interproscan <input-msa> [options]
|
|
201
223
|
```
|
|
202
224
|
|
|
203
|
-
| Option | Description | Default
|
|
204
|
-
| ---------------------------- | ------------------------------------------------------ |
|
|
205
|
-
| `-o, --output <file>` | Output GFF file path | `domains.gff`
|
|
206
|
-
| `--local` | Use a local InterProScan installation instead of EBI | `false`
|
|
207
|
-
| `--docker` | Run InterProScan via the `interpro/interproscan` image | `false`
|
|
208
|
-
| `--singularity` | Run InterProScan via a Singularity/Apptainer container | `false`
|
|
209
|
-
| `--
|
|
210
|
-
| `--
|
|
211
|
-
| `--
|
|
212
|
-
| `--
|
|
225
|
+
| Option | Description | Default |
|
|
226
|
+
| ---------------------------- | ------------------------------------------------------ | ------------------------------------------- |
|
|
227
|
+
| `-o, --output <file>` | Output GFF file path | `domains.gff` |
|
|
228
|
+
| `--local` | Use a local InterProScan installation instead of EBI | `false` |
|
|
229
|
+
| `--docker` | Run InterProScan via the `interpro/interproscan` image | `false` |
|
|
230
|
+
| `--singularity` | Run InterProScan via a Singularity/Apptainer container | `false` |
|
|
231
|
+
| `--docker-image <img>` | Docker image to run | `interpro/interproscan:5.78-109.0` |
|
|
232
|
+
| `--singularity-image <img>` | Singularity image to use | `docker://interpro/interproscan:5.78-109.0` |
|
|
233
|
+
| `--interproscan-path <path>` | Path to local interproscan.sh | `interproscan.sh` |
|
|
234
|
+
| `--interproscan-data <dir>` | Member database `data/` to mount into the container | |
|
|
235
|
+
| `--programs <list>` | Comma-separated list of programs, in EBI API naming | `PfamA,CDD` |
|
|
236
|
+
| `--format <name>` | Force the MSA format instead of sniffing it | |
|
|
237
|
+
| `--email <email>` | Email for EBI API (used only for EBI API runs) | `user@example.com` |
|
|
213
238
|
|
|
214
239
|
By default (no backend flag) the CLI submits sequences to the EBI InterProScan
|
|
215
|
-
REST API one at a time. `--local`, `--docker`, and `--singularity`
|
|
240
|
+
REST API one at a time. `--local`, `--docker`, and `--singularity` run
|
|
216
241
|
InterProScan on the whole alignment locally, which is much faster for large
|
|
217
242
|
datasets.
|
|
218
243
|
|
|
219
244
|
#### Choosing a backend
|
|
220
245
|
|
|
221
246
|
```bash
|
|
222
|
-
## EBI web API
|
|
247
|
+
## EBI web API: no install, one sequential submission per sequence
|
|
223
248
|
react-msaview-cli interproscan alignment.fasta -o domains.gff --email you@example.com
|
|
224
249
|
|
|
225
|
-
## Docker
|
|
250
|
+
## Docker: no InterProScan install, whole alignment in one run
|
|
226
251
|
react-msaview-cli interproscan alignment.fasta -o domains.gff --docker
|
|
227
252
|
|
|
228
253
|
## a local install
|
|
@@ -237,15 +262,24 @@ react-msaview-cli interproscan alignment.fasta -o domains.gff \
|
|
|
237
262
|
Docker mounts a temp directory into the `interpro/interproscan` container, runs
|
|
238
263
|
the scan on the whole alignment at once, and reads the JSON back out.
|
|
239
264
|
|
|
240
|
-
The
|
|
241
|
-
|
|
242
|
-
|
|
265
|
+
The published image carries InterProScan but **not** its member database data,
|
|
266
|
+
which is a separate multi-gigabyte download. Fetch and unpack the matching
|
|
267
|
+
release's `data/` directory (see the
|
|
268
|
+
[InterProScan docs](https://interproscan-docs.readthedocs.io/)) and point
|
|
269
|
+
`--interproscan-data` at it. Both container backends mount it at
|
|
270
|
+
`/opt/interproscan/data` and look for it there.
|
|
271
|
+
|
|
272
|
+
The EBI API has usage limits, so the CLI submits sequences one at a time. Past
|
|
273
|
+
about 100 sequences, use a local or container backend.
|
|
243
274
|
|
|
244
275
|
#### InterProScan programs
|
|
245
276
|
|
|
246
|
-
`--programs` takes
|
|
247
|
-
default), `SMART`, `
|
|
248
|
-
`
|
|
277
|
+
`--programs` takes the EBI API's names whichever backend runs: `PfamA` and `CDD`
|
|
278
|
+
(the default), `SMART`, `SuperFamily`, `Gene3d`, `PANTHER`, `TIGRFAM`, `HAMAP`,
|
|
279
|
+
`PrositeProfiles`, `PrositePatterns`, `PRINTS`, `PIRSF`, `MobiDBLite`, `Coils`,
|
|
280
|
+
`SFLD`. InterProScan 5 spells several of them differently (`Pfam`, not `PfamA`;
|
|
281
|
+
`NCBIfam`, which absorbed TIGRFAM; `Hamap`; `SUPERFAMILY`; `Gene3D`), and the
|
|
282
|
+
CLI passes the translated names to the local, Docker and Singularity backends.
|
|
249
283
|
|
|
250
284
|
```bash
|
|
251
285
|
react-msaview-cli interproscan alignment.fasta -o domains.gff \
|
|
@@ -255,20 +289,21 @@ react-msaview-cli interproscan alignment.fasta -o domains.gff \
|
|
|
255
289
|
### genestructure
|
|
256
290
|
|
|
257
291
|
Build a **gene-structure GFF** for a coding-sequence alignment from a RefSeq
|
|
258
|
-
transcript, overlaid the same way InterProScan domains are. The
|
|
259
|
-
|
|
260
|
-
so a given exon is the same color in every row and the exon
|
|
261
|
-
straight down the alignment.
|
|
292
|
+
transcript, overlaid the same way InterProScan domains are. The command fetches
|
|
293
|
+
the exon model from the NCBI Datasets v2 API and names each species' Nth exon
|
|
294
|
+
`exon-N`, so a given exon is the same color in every row and the exon
|
|
295
|
+
architecture reads straight down the alignment.
|
|
262
296
|
|
|
263
297
|
```bash
|
|
264
298
|
react-msaview-cli genestructure <input-msa> --gene <symbol> --ref <rowname> [options]
|
|
265
299
|
```
|
|
266
300
|
|
|
267
|
-
The
|
|
268
|
-
columns, then
|
|
269
|
-
exon that picks up a frameshifting indel in one lineage gets
|
|
270
|
-
that row
|
|
271
|
-
the transcript's coding sequence
|
|
301
|
+
The command maps the chosen transcript's exon boundaries onto the reference
|
|
302
|
+
row's columns, then projects them into every other row's ungapped coordinates.
|
|
303
|
+
An exon that picks up a frameshifting indel in one lineage therefore gets
|
|
304
|
+
shorter on that row and stays in the same columns as the rest. The reference row
|
|
305
|
+
must be the transcript's coding sequence; the CLI warns if its length doesn't
|
|
306
|
+
match.
|
|
272
307
|
|
|
273
308
|
| Option | Description | Default |
|
|
274
309
|
| --------------------- | --------------------------------------------- | ------------------- |
|
|
@@ -289,20 +324,23 @@ react-msaview-cli genestructure aln.fa --transcript NM_000505.4 --ref human
|
|
|
289
324
|
|
|
290
325
|
## Input formats
|
|
291
326
|
|
|
292
|
-
The CLI
|
|
327
|
+
The CLI sniffs the format from the file's content, not from its name. `--format`
|
|
328
|
+
(`fasta`, `a3m`, `stockholm`, `clustal`, `emf`) overrides a wrong guess. FASTA
|
|
329
|
+
and A3M share a leading `>`, so the CLI tells them apart heuristically.
|
|
293
330
|
|
|
294
331
|
- **FASTA** (`.fasta`, `.fa`, `.faa`)
|
|
295
332
|
- **Clustal** (`.clustal`, `.aln`)
|
|
296
333
|
- **Stockholm** (`.sto`, `.stockholm`)
|
|
297
|
-
- **A3M** (`.a3m`)
|
|
298
|
-
- **EMF** (`.emf`)
|
|
334
|
+
- **A3M** (`.a3m`), from AlphaFold/ColabFold
|
|
335
|
+
- **EMF** (`.emf`), Ensembl Multi Format
|
|
299
336
|
|
|
300
337
|
## Annotation output format
|
|
301
338
|
|
|
302
|
-
The annotation commands write standard GFF3, one
|
|
303
|
-
`
|
|
304
|
-
|
|
305
|
-
name, and
|
|
339
|
+
The annotation commands write standard GFF3, one line per feature:
|
|
340
|
+
`protein_match` for a domain from `interpro`/`interproscan`, `exon` for a
|
|
341
|
+
segment from `genestructure`. `start`/`end` are 1-based positions in the
|
|
342
|
+
**ungapped** sequence, and the attributes carry the accession, name, and
|
|
343
|
+
description:
|
|
306
344
|
|
|
307
345
|
```gff
|
|
308
346
|
##gff-version 3
|
|
@@ -318,9 +356,8 @@ $ react-msaview-cli interproscan gpcrs.fasta -o domains.gff --docker
|
|
|
318
356
|
Reading MSA from gpcrs.fasta...
|
|
319
357
|
Found 4 sequences
|
|
320
358
|
Processing 4 non-empty sequences...
|
|
321
|
-
Running InterProScan via Docker...
|
|
322
|
-
|
|
323
|
-
docker run --rm -v /tmp/interproscan-Xyz12:/data interpro/interproscan:latest -i /data/input.fasta -o /data/output.json -f JSON -appl PfamA,CDD
|
|
359
|
+
Running InterProScan via Docker on 4 sequences...
|
|
360
|
+
docker run --rm -v /tmp/interproscan-Xyz12:/data -v /opt/interproscan-5.78-109.0/data:/opt/interproscan/data interpro/interproscan:5.78-109.0 -i /data/input.fasta -o /data/output.json -f JSON -appl Pfam,CDD
|
|
324
361
|
Converting results to GFF...
|
|
325
362
|
Writing output to domains.gff...
|
|
326
363
|
Done!
|
|
@@ -328,12 +365,12 @@ Done!
|
|
|
328
365
|
|
|
329
366
|
## Using the GFF elsewhere
|
|
330
367
|
|
|
331
|
-
The
|
|
368
|
+
The web viewer, the React component and the R package all load the file the CLI
|
|
369
|
+
writes.
|
|
332
370
|
|
|
333
371
|
In the web viewer, select it in the import form's **Annotation GFF file or URL**
|
|
334
|
-
field
|
|
335
|
-
|
|
336
|
-
above.)
|
|
372
|
+
field, or open it over a loaded alignment with **Annotations > Open annotation
|
|
373
|
+
file...**, which also accepts the JSON an InterProScan run returns.
|
|
337
374
|
|
|
338
375
|
In the React component, pass it inline as the `gff` prop:
|
|
339
376
|
|
|
@@ -349,9 +386,10 @@ msaview(msa = "alignment.fasta", gff = "domains.gff")
|
|
|
349
386
|
|
|
350
387
|
## Troubleshooting
|
|
351
388
|
|
|
352
|
-
**EBI API timeout.**
|
|
353
|
-
|
|
354
|
-
|
|
389
|
+
**EBI API timeout.** We measured one sequence waiting fifteen minutes in the
|
|
390
|
+
queue. The CLI waits an hour per job and keeps the results of the sequences that
|
|
391
|
+
finished. Use `--local`, `--docker`, or `--singularity` to run InterProScan
|
|
392
|
+
yourself; on large datasets they are much faster than the API.
|
|
355
393
|
|
|
356
394
|
**Local InterProScan not found.**
|
|
357
395
|
|
|
@@ -367,8 +405,9 @@ nucleotide; try other `--programs`; verify the input parses as one of the
|
|
|
367
405
|
formats above.
|
|
368
406
|
|
|
369
407
|
**The exported figure is enormous.** `export-svg` draws the whole alignment at
|
|
370
|
-
`--col-width` per column.
|
|
371
|
-
residue letters stop drawing,
|
|
408
|
+
`--col-width` per column. Lower `--col-width` until it fits. Below 5px, or below
|
|
409
|
+
half the row height, the residue letters stop drawing, and they account for most
|
|
410
|
+
of the file size.
|
|
372
411
|
|
|
373
412
|
## Uses
|
|
374
413
|
|