Tasks

Scan a sequence for promoter regions

Slide the selected promoter classifier across the sequence and return the windows and merged regions scoring above options.threshold.

Minimum input is 300 bp — the smallest context_window_bp among the promoter models, so it is the shortest sequence that fills some model's window with no padding at all.

That floor is admission control, not a quality guarantee. The default g0-promoter-2000bp has a 2000 bp window, so a 300 bp request to it is scored against a heavily padded window — accepted and meaningful, but not the same regime as a full-window call. Read bio_spec.context_window_bp from GET /v1/tasks/promoter/models and compare it against your sequence length; pick g0-promoter-large-300bp or g0-promoter-base-300bp if your input really is ~300 bp. Longer input is never a problem — the scanner steps one prediction window at a time and pads only the final partial window.

post/v1/tasks/promoter/predict

Request

  • Base URL: https://api.genomicintelligence.ai
  • URL: https://api.genomicintelligence.ai/v1/tasks/promoter/predict
  • Auth: HTTP bearer

Query parameters

formatstring nullable

Output format: json (default) or one of bed, bedgraph. Text formats are synchronous-only — combining one with Prefer: respond-async is a 400. An unsupported value is a 415 unsupported_format, never a silent fallback to JSON.

Headers

acceptstring nullable
Preferstring nullable

Set to respond-async to dispatch asynchronously: the server returns 202 with {data: {job_id, status, links}, meta} immediately and the result is polled from GET /v1/tasks/jobs/{job_id}. Anything else (or omitting the header) delivers the result synchronously with 200. Async is JSON-only — combining it with a text format is a 400. Some endpoints require it above a size threshold and reject sync delivery with 413 sync_too_large.

Request body

sequencestring required

DNA sequence (A/C/G/T/N, case-insensitive). Whitespace (newlines, spaces, tabs) is stripped first, so a line-wrapped FASTA sequence body may be pasted verbatim; length is measured against the whitespace-stripped string, not the raw character count — so a line-wrapped body can satisfy the published minLength as a raw string and still be rejected once stripped. Count bases, not characters. 300–500,000 bp. The 300 bp floor applies to every promoter model — it is the smallest context_window_bp among them, i.e. the shortest input that fills some promoter model's window exactly, with no padding. Requests outside the range are rejected with 422 validation_failed before any model is loaded. Note that minLength is admission control, not a statement about regime: a sequence at least this long but shorter than the selected model's context_window_bp (published by GET /v1/tasks/{task}/models) is accepted and scored, but against a window padded out to that size. Compare your length against that field to know whether the model saw real sequence or padding. Longer input is never a problem — the scanner steps one prediction window at a time and pads only the final partial window.

sequence_namestring nullable

Display name for the sequence (e.g., 'chr1:1000-5000').

modelstring nullable

Model ID. If omitted, the task's default model is used. The valid ids and the default for this operation are published structurally as x-models on the operation itself — deliberately not as an enum here, so that adding a model cannot make a previously-generated client reject a valid id. GET /v1/tasks/{task}/models carries the same roster with full per-model specs.

Example request

{
  "options": {
    "threshold": 0.5
  },
  "sequence": "ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT",
  "sequence_name": "chr1:1000-3000"
}

Response

Successful inference. data is a discriminated union keyed on task — narrow on data.task (or meta.task) to reach task-specific fields; here it is always "promoter". meta.task_specific_counts is the matching counts variant.

Changes

No recorded changes to this operation across all 1 revision of this API.