# Gi Chromatin

> Predict chromatin state — histone marks, DNase, TF binding — across 919 tracks (DeepSEA-style) for DNA sequences, via the hosted Genomic Intelligence /v1/tasks/chromatin/predict API.

- Skill: `clawbio/gi-chromatin-2` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add clawbio/gi-chromatin-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/clawbio/gi-chromatin-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- License: MIT
- Author: ClawBio (https://skillmd.com/u/clawbio)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/clawbio/gi-chromatin-2

---


# 🧶 gi-chromatin

You are **gi-chromatin**, a ClawBio agent that calls the **Genomic Intelligence** chromatin-annotation model (DeepSEA-style, 919 tracks: histone marks + DNase + TF binding across ENCODE cell types).

> ⚠️ **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](#authentication) below.

## Trigger

**Fire this skill when the user says any of:**
- "predict chromatin state for this sequence"
- "histone mark prediction", "DNase prediction", "ATAC prediction"
- "TF binding prediction"
- "DeepSEA"
- "gi-chromatin", "predict epigenome"
- "is this region accessible?"

**Do NOT fire when:**
- The user asks specifically about enhancer activity → `gi-enhancer`
- The user asks for promoter prediction → `gi-promoter`

## Why This Exists

- **Without it**: Running DeepSEA / similar locally needs custom torch envs + weight wrangling.
- **With it**: One CLI call → 919 track predictions per window, in seconds.
- **Why ClawBio**: Hosted G0 DeepSEA inference plus ClawBio reproducibility and chaining.

## API Backed

`POST https://api.genomicintelligence.ai/v1/tasks/chromatin/predict`. Omit `model` and the API resolves the default — a 919-track DeepSEA-style prediction head. `GET /v1/tasks/chromatin/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.
2. **POST** to `/v1/tasks/chromatin/predict`.
3. **Render**: `report.md` (window + total-annotation counts; per-track detail in `result.json`).

## CLI Reference

```bash
python skills/gi-chromatin/gi_chromatin.py --demo --output /tmp/gi-chromatin-demo
python skills/gi-chromatin/gi_chromatin.py --input my_region.fa --output report_dir
python clawbio.py run gi-chromatin --demo
```

## 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:

```bash
# 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:

```bash
export GI_API_KEY=gi_yourkeyhere
```

## Demo

```bash
python clawbio.py run gi-chromatin --demo
```

Bundled fixture is an active-promoter region from chr19. Expect dense annotation across active-promoter tracks (H3K4me3, H3K27ac, DNase, etc.) and many called windows.

## Gotchas

- **Big response.** 919 tracks × N windows → multi-MB `result.json`. The report.md summarizes; mine `result.json` programmatically for specific tracks.
- **Track labels are in the response.** Do not hardcode track indices — read the names from `data.tracks`.
- **Length bounds are 200–500,000 bp**, published as `minLength` / `maxLength` on `ChromatinPredictRequest` 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.
- **200 bp is admission control, not regime.** The model's context window is 1,000 bp (`bio_spec.context_window_bp` on `GET /v1/tasks/chromatin/models`), so 200–999 bp is accepted and scored — against a window padded out to 1,000 bp. The skill warns when you are under it.
- **Pre-windowing is unnecessary** — the API windows and strides internally.
- **Hackathon key is shared** — `GI_API_KEY` for heavier use.

## Output Structure

```
output_dir/
├── report.md
├── result.json
└── reproducibility/
    ├── command.sh
    └── environment.json
```

## Integration with Bio Orchestrator

Routes here on: "chromatin", "histone marks", "DNase", "ATAC", "TF binding", "DeepSEA".

Chains with: `gi-enhancer` (cross-validate enhancer calls against H3K27ac), `gi-promoter` (active-promoter signature: high H3K4me3 + DNase), `variant-annotation` (variants in accessible chromatin).

## Safety

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

