bioX Models Get API key
bioX

noctua-1

A foundation model for marker-gene DNA. It scores how expected each base of a sequence is and writes sequence from a lineage prompt. Placement among reference lineages is served alongside it, by comparing 4-mer profiles — no database search either way.

dna scoringtaxonomic placement sequence generation18S / 16S
Get API key
Input Output demo · no key needed
220
0.90
4
1.00
Output Shell Python Copy
Press Score or Generate.

Research use. Outputs can be wrong, and nothing here is a diagnostic result or medical advice. Sequences sent to this demo are used to compute the answer and are not stored. Terms.

This box runs the model through a public endpoint that is rate limited and needs no key, so you can see what comes back before asking for one. The Shell and Python tabs show the same call against /v1, which is what a key gets you, and they follow whatever you set on the left.

What it does

scorea likelihood for a whole sequence and a probability for every base
placeputs a read among 60 reference groups by comparing 4-mer profiles — no database search, so a sequence that matches nothing named still gets an answer
writecontinues a sequence, or writes one for a lineage you name
fragmentstrained on windows of 384, 768 and 1,536 tokens, so a 150-base read and a full-length reference both go in

Model

namenoctua-1trained to 206 million tokens, then measured against 4-mer counting and beaten by it; the endpoints answer with the first-generation engine, stamped eh18-m/1
parameters10,155,906small on purpose: it trains on a laptop
alphabet48 tokensfour bases, N, and a taxonomy prefix in Evo 2's format
objectives3next base, lineage contrast, strand invariance

Training data

total1,132,584 sequences1.04 billion bases of ribosomal RNA genes
SILVA NR99431,156curated references, with lineage
PR2194,06818S eukaryote references, with lineage
ENA507,360environmental reads, no name attached

Nearly half the data has no name on it. That is the part reference databases leave out, and the reason the model can say anything about a read that matches nothing.

Measured

On 40 taxa held out of training entirely — whole groups, not random records — with 400 known and 400 novel queries, read without a taxonomy prefix, the way a pasted sequence arrives. Accuracy depends on how much sequence you give it, so it is reported that way: references are full length, the question is as long as you make it.

your readplacementnovel AUC
150 bases0.347 ±0.0470.564 ±0.049
300 bases0.560 ±0.0490.609 ±0.048
600 bases0.718 ±0.0440.766 ±0.042
full length0.820 ±0.0380.774 ±0.041

Placement is top-1 among 60 groups, where guessing is 0.017. Novel AUC is the chance that a record of a known taxon outranks one from a taxon nobody trained on. Give it a longer read and both improve; that is the honest shape of the job, and it is why the length you send is worth thinking about.

Those are the 4-mer numbers. noctua-1 was measured on the same split and placed 0.423 ±0.048 against that 0.820, with a novel AUC of 0.544 ±0.049 against 0.774 — a ten-million-parameter network read 1.04 billion bases and lost to counting four-letter words. So counting is what serves placement here, and it says so in every answer.

Scoring and generation come from the first-generation engine, stamped eh18-m/1: a likelihood for the sequence, a probability for every base, and sequence written to a lineage prompt. Every answer carries the version that produced it, so a result can be traced back to what made it.

Found with it

Candidate detection sites: stretches present in nearly every sequence of one pathogen genus and in almost nothing else. Counted across the corpus, and worth checking against the full public databases before anyone orders one.

organismsitein targetelsewhere
CryptosporidiumGAGAAAATTAGAGTGCTTAAAG99%0.190%
TrypanosomaGCGAAGGCATTCTTCAAGGATA95%0.100%
TrichomonasCCCATATTGTTGCAGTTAAAAC96%0.035%

It also separates Plasmodium (malaria) from its free-living relatives at 96% and Candida from its own family at 91%, from the sequence alone.

Authentication

A key goes in an Authorization header. There is no console and nothing to log into. Take a key — one click, no account and no e-mail to wait for: 50 calls a day, 30 an hour, every endpoint, no expiry. If your work needs more than that, say what you are doing on the request form and a person reads it. Either way the key is shown once and only its hash is stored.

Authorization: Bearer bx_live_…
A self-service key allows 50 calls a day and 30 an hour; a granted key 600 an hour. Every answer carries calls_left, and a 429 says which limit you crossed.

Base URL

https://<host>/v1

Endpoints

GET/v1/health/ready

Whether the service is up, and which weights answer. No key needed.

POST/v1/noctua/score
fieldtypemeaning
sequencestring, requiredDNA: A, C, G, T, N
placebool, default truecompare with reference lineages
per_basebool, default trueinclude the per-position arrays
reading_framesbool, default falseannotate open reading frames

Returns

nllmean negative log likelihood, in nats
perplexityexp(nll)
probs[length][4] — probability of A, C, G, T at each position
conservation[length] — information content in bits
entropy[length] — the same the other way round
placementclosest reference groups, with a cosine each
model_versionthe weights that produced this answer
POST/v1/noctua/generate
fieldtypemeaning
sequencestring, optionala prompt to continue
organismstring, optionala lineage group; with no sequence it is the whole prompt
num_tokensint, default 200how many bases to write
temperaturenumber, default 0.9sampling randomness
top_kint, default 4candidates per step
POST/v1/noctua/forward

The tensors themselves, as a base64 NPZ — the same shape the Evo 2 forward endpoint returns, so code written against that needs little more than a new URL.

fieldtypemeaning
sequencestring, requiredDNA
output_layersarray, default ["probs"]any of probs, entropy, conservation

Errors

401no key, or a key that has been revoked
429over the hourly limit
400the sequence could not be read, with a reason
bioX Terms Every answer carries the model version that produced it