How MFannotWeb works end to end — from picking a pipeline to retrieving your annotated genome. Looking for the HTTP contract instead? See the API reference.
MFannotWeb is a browser front end for two organelle-genome tools developed in the Lang lab: MFannot (mitochondrial and plastid genome annotation) and RNAweasel (RNA model search). Both pipelines run server-side in containers; you submit a FASTA file and get back the same outputs you would on the command line.
There are three ways to interact with the service:
/api/v1 — see the API reference.mfw CLI — a stdlib-only Python wrapper for the API, in cli/ in the source tree.Pick a tab on the home page to switch between the two pipelines.
Annotates a mitochondrial or plastid genome: predicts protein-coding genes, tRNAs, rRNAs, and group I/II introns. Required parameter:
4) covers the most
common case (mold/protozoan/coelenterate mitochondria, mycoplasma).
The full set is listed in the pipeline discovery endpoint.Searches a sequence for known RNA models. Required parameters:
tRNA, intronI, intronII, rnpB, rrn5, rns, ssrA. Order matters internally — ssrA uses CMsearch covariance models; the rest use HMM-based RNAfinder.The job is queued immediately and starts as soon as a worker is free. A worker processes one job at a time per slot.
> header line.A C G T U N (case-insensitive). Whitespace is stripped.The job card subscribes to a server-sent event stream and shows the pipeline log as it’s produced. Up to 500 lines are replayed when you open or revisit the card; new lines stream in live.
queued → running → done (or failed/cancelled).?job=<id> to reopen a live view, or open the job from the recent jobs table.When a job reaches done, the card shows a Download link and the recent jobs table grows a download action. The download is a .zip archive
containing the full pipeline output (the same files you’d get from
a local run): annotated GFF/EMBL output, summary HTML where applicable,
and the run log.
Programmatic clients can also fetch a JSON manifest of the archive contents (file names, sizes, SHA-256 digests) or stream a single file out of the zip without downloading the whole thing — see the API reference’s Results section.
You don’t need an account to submit a job. Anonymous submissions are tied to a signed browser cookie, and your recent jobs table will follow that cookie around — until you clear it or switch device, at which point you’ll lose access to those jobs.
Creating an account gets you:
mfw CLI.When you sign up or log in, any jobs you submitted from the same browser while anonymous are claimed into your account. A toast on the home page confirms the count.
Your account page shows every job tied to your user, with status filters (queued, running, done, failed) and direct links to download or watch each one.
| Limit | Anonymous | Registered |
|---|---|---|
| Concurrent in-flight jobs | 2 | 3 |
| Job retention before automatic purge | 7 days | 7 days |
| Submit rate (per principal) | — | 30 / hour, 5 / minute |
Defaults shown above; an operator can raise or lower them. Use GET /api/v1/me/usage to read the
live values for your account.
A nightly cleanup marks expired jobs as expired and removes
their work directories. Once that happens the result archive can’t
be retrieved — re-submit if you still need it.
The HTTP API and the mfw CLI both authenticate with bearer
tokens. To create one:
POST /api/v1/tokens with cookie auth — see the Tokens section of the API reference for the
exact payload, scope vocabulary, and expiry options.plaintext field from the response. It’s the only time you’ll see it.MFW_TOKEN (or pass it directly via Authorization: Bearer mfw_…) in your client.Each user can hold up to 10 active tokens. Lost a token? Revoke it via DELETE /api/v1/tokens/{id} and create a new one.
The job card shows the pipeline’s standard error stream. Common
causes: wrong genetic code for the organism, FASTA contains characters
other than A/C/G/T/U/N, or the sequence is too short for
the requested RNA models.
concurrency_limit_exceededYou’ve hit the per-account in-flight cap. Wait for one of your queued/running jobs to finish, or cancel one from the recent jobs view.
Job results are kept for the retention window (7 days by default). After
that, the status flips to expired and the archive is
deleted. Re-submit to regenerate it.
Anonymous jobs live in a browser cookie. If you cleared cookies, opened the site in a different browser, or switched devices, those jobs are no longer visible to you. Sign up before submitting if you need a job to outlive your browser session.