← LeaderboardThe Skill Leaderboard

gi-splice

Detect splice donor and acceptor sites in DNA sequences using the Genomic Intelligence G0 BigBird transformer, via the hosted /v1/tasks/splice/predict API. Returns per-position site probabilities and called sites.

Published by ClawBio ↗ClawBio/ClawBio

Try your first task

gi-splice

Start a fresh conversation. Replace the highlighted placeholders.

Use gi-splice to predict donor and acceptor splice sites from [gene-sense single-record FASTA], with my explicit consent to upload this non-identifiable research sequence to the hosted API and my GI_API_KEY; return the Markdown report, JSON result, and reproducibility bundle, noting strand and token-span limitations and that results are not for clinical or diagnostic decisions.

Required inputs

  • [gene-sense single-record FASTA]

User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗

SKILL.md

name: gi-splicedescription: Detect splice donor and acceptor sites in DNA sequences using the Genomic Intelligence G0 BigBird transformer, via the hosted /v1/tasks/splice/predict API. Returns per-position site probabilities  and called sites.license: MITmetadata:   openclaw:     requires:       bins:       - python3      env: null      config: null    always: false    emoji: ✂️    homepage: https://docs.genomicintelligence.ai    os:     - darwin    - linux    install:     - kind: pip      package: requests      bins: null    trigger_keywords:     - splice    - splice site    - splice donor    - splice acceptor    - splicing prediction    - intron exon boundary    - cryptic splice site    - GT-AG site    - gi splice    - G0 splice    - genomic intelligence splice  author: ClawBio + Genomic Intelligence  demo_data:   - path: example_data/splice_hbb.fa    description: HBB gene body (chr11, GRCh38; reverse-complemented to gene-sense) — bundled real reference sequence.  dependencies:     python: '>=3.10'    packages:     - requests>=2.31  domain: genomics  endpoints:     cli: python skills/gi-splice/gi_splice.py --input {input_file} --output {output_dir}  inputs:   - name: input_file    type: file    format:     - fa    - fasta    - fna    description: Single-record FASTA, 100–500,000 bp (whitespace stripped), typically a gene body (5'UTR → 3'UTR including introns).    required: false  outputs:   - name: report    type: file    format: md    description: Markdown report — sequence + model metadata, called splice sites (name, span, type, strand, score).  - name: result    type: file    format: json    description: Full `{data, meta}` response from the GI API plus a flattened summary.  - name: reproducibility    type: directory    description: command.sh + environment.json for exact-rerun reproducibility.  tags:   - genomics  - splice  - splice-site  - splicing  - intron-exon  - dna-lm  - transformer  - gi-api  version: 0.1.0

✂️ gi-splice

You are gi-splice, a ClawBio agent that calls the Genomic Intelligence splice-site model. Given a gene-body sequence, it returns called donor/acceptor sites and per-position probabilities via the hosted API.

⚠️ Remote inference — opt-in required. Unlike most ClawBio skills, this skill uploads your FASTA sequence to the hosted Genomic Intelligence API at https://api.genomicintelligence.ai. The same models also run interactively at https://genomicintelligence.ai. Do not submit identifiable patient data without an appropriate data-use agreement. Key setup: see Authentication below.

Trigger

Fire this skill when the user says any of:

  • "predict splice sites in this gene"
  • "find splice donors/acceptors"
  • "score this for cryptic splice sites"
  • "splice site prediction"
  • "gi-splice", "G0 splice"
  • "where does this transcript splice?"

Do NOT fire when:

  • The user asks for full transcript structure (multi-exon annotation) → gi-annotation
  • The user asks about variant effect on splicing → use variant-annotation (VEP) or chain gi-splice ref/alt comparisons

Why This Exists

  • Without it: SpliceAI / similar require local GPU + weights + careful preprocessing.
  • With it: One CLI call → ranked site list with positions and probabilities, in ~1 s.
  • Why ClawBio: Hosted G0 BigBird inference plus ClawBio's reproducibility bundle and chaining (gi-splice → gi-annotation → variant interpretation).

API Backed

POST https://api.genomicintelligence.ai/v1/tasks/splice/predict. Omit model and the API resolves the default — a BigBird transformer whose long context handles full gene bodies. GET /v1/tasks/splice/models is the current list.

Contract note. The Genomic Intelligence API publishes one operation per task, each with its own request schema: per-task minLength/maxLength on sequence, and a typed, closed options object (an unknown option key is a 422 validation_failed, not a silent ignore). The bounds quoted in this file are the published ones, but the authority is always the served schema: GET https://api.genomicintelligence.ai/v1/openapi.json.

Workflow

  1. Parse: single-record FASTA via clawbio.gi.gi_client.read_fasta.
  2. POST the full gene body to /v1/tasks/splice/predict.
  3. Render: report.md + result.json + reproducibility/.

CLI Reference

# Demo — bundled HBB gene body
python skills/gi-splice/gi_splice.py --demo --output /tmp/gi-splice-demo

# Your own FASTA
python skills/gi-splice/gi_splice.py --input my_gene.fa --output report_dir

# Via ClawBio runner
python clawbio.py run gi-splice --demo

Demo

python clawbio.py run gi-splice --demo

Bundled fixture is HBB (β-globin) gene body, reverse-complemented to gene-sense. HBB has 3 exons / 2 introns; on the coding strand the model calls donor and acceptor sites at the annotated intron boundaries, plus lower-confidence alternates. Read the counts and scores from your own run.

Authentication

The skill requires a Genomic Intelligence partner key in GI_API_KEY. Resolution order:

  1. --api-key <value> CLI flag (explicit override).
  2. GI_API_KEY environment variable.
  3. Otherwise: the skill raises a RuntimeError pointing here.

Quick start — ClawBio hackathon key

A shared hackathon-tier key ships in .env.example at the repo root (opt-in only). Caps are per-key and are not published as a fixed number — read RateLimit-Limit / RateLimit-Remaining on any /v1/tasks/ response for the live allowance. The runner keeps them for you: they are in result.json under rate_limit, and a 429 names them on the error line. From wherever the ClawBio files live on your machine:

# Repo root (git clone) — or ~/.claude/plugins/cache/clawbio/clawbio/<version>/ for plugin installs
cp .env.example .env
set -a && source .env && set +a

Production / heavier use

Request an individual key at contact@genomicintelligence.ai, then:

export GI_API_KEY=gi_yourkeyhere

Gotchas

  • Length bounds are 100–500,000 bp, published as minLength / maxLength on SplicePredictRequest and counted after whitespace is stripped. Both ends are a 422 validation_failed (over-max is not a 413 — 413 is the separate 16 MiB raw-body cap). The skill rejects either locally before spending a request.
  • 100 bp is admission control, not regime. The default splice model has a 15,000 bp context window (bio_spec.context_window_bp on GET /v1/tasks/splice/models), so a few-hundred-bp submission is accepted and scored — against a window padded out to 15,000 bp. That is exactly the "truncated input degrades accuracy" case below, and the skill warns when you are under the window.
  • Submit gene-sense, not genomic-sense. Minus-strand genes need RC'd input. The bundled HBB fixture demonstrates this — its FASTA header notes strand:-1 (gene-sense for the minus-strand HBB gene).
  • A wrong-strand result looks right — there is no way to detect it from the output. Do not assume a bad strand shows up as an empty or low-confidence result. On the bundled HBB fixture at the default 0.5 threshold, both orientations return a comparable number of sites at comparably high confidence. The positions and the donor/acceptor split differ, but nothing in the counts or the scores tells you which orientation you sent. Get the strand right on input — you will not catch it afterwards.
  • Full gene body, not just an exon. The model uses long context to disambiguate; truncated input degrades accuracy.
  • A called site's start/end is a token span, not a junction base. It bounds one variable-width tokenizer token — 4–10 bp across the sequences measured so far — reported with a token_index, and the exon/intron junction sits somewhere inside it. Do not derive a base position from the pair, and treat any downstream intersection (VEP splice consequences, reference exon boundaries) as span-against-position rather than position-against-position.
  • Donor/acceptor pairs. The model emits independent site calls. Pair them downstream by ordering + strand consistency if you need intron boundaries.
  • Hackathon key is shared — GI_API_KEY for serious work.

Output Structure

output_dir/
├── report.md              # Site table (name, span, type, strand, score)
├── result.json            # Full {data, meta} envelope
└── reproducibility/
    ├── command.sh
    └── environment.json

Integration with Bio Orchestrator

Routes here on: "splice site", "splice donor", "splice acceptor", "predict splicing".

Chains with: variant-annotation (intersect calls with VEP splice consequences), gi-annotation (cross-check against predicted exon boundaries).

Safety

Research and development use. Not for clinical or diagnostic decisions.