Skip to main content
skill CX Codex

unibind-database — Claude Code skill: what it does, install

This skill queries UniBind for experimentally validated transcription-factor binding sites and downloads BED or FASTA coordinates for local analysis.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add google-deepmind/science-skills --skill unibind-database -a claude-code
npx skills add google-deepmind/science-skills --skill unibind_database -a claude-code
Open on GitHub

What unibind-database does

unibind-database queries UniBind for direct TF-DNA interaction data. It can list species, collections, cell lines, transcription factors, and datasets, filter datasets by supplied fields, show details for a selected dataset, and download TFBS files as BED or FASTA.

The skill runs scripts/unibind_api.py through uv run; the wrapper handles the required request rate limit. Large responses can be narrowed with jq or uvx --from jmespath jp, while --output saves query results and --page with --page-size splits long lists.

uv must be installed and available on PATH. On first use, the workflow also creates .licenses/unibind_database_LICENSE.txt after notifying the user about the UniBind terms. This is the point to check your plan: the skill does not query specific genes, genomic intervals, motif models, or expression data, so it is the wrong tool for those requests.

What it helps with

  • find datasets by species, TF, or cell line
  • inspect details for a UniBind dataset
  • download TFBS coordinates as BED or FASTA
  • list available species and collections
  • filter datasets by data source or p-value

Example prompts for the agent

  • Use the unibind-database skill to find Homo sapiens datasets for TF CTCF from ENCODE.
  • Use unibind-database to list available cell lines and extract their names with uvx --from jmespath jp.
  • Find EXP047889.HMLE-Twist-ER_breast_cancer.SMAD3 with unibind-database and download its TFBS files to /tmp/tfbs in bed format.

How to install unibind-database

1Skills CLI (Vercel)

npx skills add google-deepmind/science-skills --skill unibind-database -a claude-code
npx skills add google-deepmind/science-skills --skill unibind_database -a claude-code

2Manually: put the files in place

~/.claude/skills/unibind_database/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/unibind_database/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about unibind-database

How do I install unibind-database in Claude Code?

Run npx skills add google-deepmind/science-skills --skill unibind-database -a claude-code, then use ~/.claude/skills/unibind_database/SKILL.md.

What does unibind-database do?

The skill queries UniBind for experimentally validated transcription-factor binding sites, filters datasets, and downloads coordinates in BED or FASTA format.

What does unibind-database require?

uv must be installed and available on PATH. On first use, the workflow also requires a UniBind terms notification and creates .licenses/unibind_database_LICENSE.txt in the workspace root.

Source text

SKILL.md · Apache-2.0
---
name: unibind-database
description: >-
  Queries the UniBind database for experimentally validated transcription factor
  (TF) binding sites. Use when retrieving direct TF-DNA interaction datasets,
  downloading binding site coordinates (BED/FASTA) for local analysis, or
  listing available datasets by species, cell line, or TF name. Don't use to
  query specific intervals, locations, genes, motif models or expression
  data.
---

# UniBind Database Skill

UniBind is a database of direct TF–DNA interactions across 9 species,
integrating ChIP-seq peaks with JASPAR TF binding profiles via the DAMO
framework.

## Prerequisites

1.  **`uv`**: Read the `uv` skill and follow its Setup instructions to ensure
    `uv` is installed and on PATH.
2.  **User Notification**: If .licenses/unibind_database_LICENSE.txt does not
    already exist in the workspace root directory then (1) prominently notify
    the user to check the terms at https://unibind.uio.no/ and
    https://unibind.uio.no/api/overview, then (2) create the file recording the
    notification text and timestamp.

## Quick Start

Query commands print JSON to stdout by default. Most outputs are small enough to
read directly. For large outputs (`list_cell_lines`, `list_tfs`), pipe through
`jq` to extract only the fields you need.

```bash
uv run <SKILL DIR>/scripts/unibind_api.py list_species
```

The `download_tfbs` command writes BED/FASTA files to `--output-dir` instead.
You may optionally use `--output <path>` on any query command to save results to
a file if needed.

## Core Rules

-   **Use the Wrapper**: ALWAYS execute the provided helper scripts to query the
    database rather than accessing the database directly. The scripts
    automatically enforce the required rate limit gracefully.
-   **Output**: Query commands print JSON to stdout. Most responses are compact
    and can be read directly.
-   **Large Results**: `list_cell_lines` and `list_tfs` produce large output.
    Pipe these through `jq` to extract specific fields rather than reading the
    full output into context.
-   **Saving to File**: Use `--output <path>` when you need to reference the
    data later or when processing very large results with `jq`.
-   **Pagination**: Use `--page` and `--page-size` (max 1000) to chunk large
    result sets.
-   **Ordering**: Use `--order field_name` (prefix with `-` for descending) on
    any list command.
-   **Notification**: If this skill is used, ensure this is mentioned in the
    output.

## Utility Scripts

*Replace `<SKILL DIR>` with the absolute path to this skill's directory.*

### 1. List Species

```bash
uv run <SKILL DIR>/scripts/unibind_api.py list_species
```

### 2. List Collections

```bash
uv run <SKILL DIR>/scripts/unibind_api.py list_collections
```

### 3. List Cell Lines & TFs (large output — use `jp`)

These commands return large datasets. Use `uvx --from jmespath jp` to extract
only the fields you need.

```bash
uv run <SKILL DIR>/scripts/unibind_api.py list_cell_lines | uvx --from jmespath jp "results[].name"
uv run <SKILL DIR>/scripts/unibind_api.py list_tfs | uvx --from jmespath jp "results[].tf_name"
```

### 4. List and Filter Datasets (and Profile-Specific Datasets)

Filter datasets using the following arguments:

-   `--species` (e.g., "Homo sapiens")
-   `--tf-name` (e.g., "CTCF")
-   `--cell-line` (e.g., "mESC")
-   `--collection` (e.g., Permissive, Robust)
-   `--search` (a search term)
-   `--biological-condition` (biological condition or source)
-   `--data-source` (source of data, e.g., "ENCODE")
-   `--has-pvalue` ("true" or "false")
-   `--identifier` (e.g., "GSE60130")
-   `--jaspar-id` (JASPAR database profile matrix ID)
-   `--model` (prediction model)
-   `--summary` (summary filter)
-   `--threshold-pvalue` (p-value threshold)

Use `list_datasets` for standard datasets, or `list_specific_datasets` for
profile-specific queries.

```bash
uv run <SKILL DIR>/scripts/unibind_api.py list_datasets --species "Homo sapiens" --tf-name "CTCF" --data-source "ENCODE"
uv run <SKILL DIR>/scripts/unibind_api.py list_specific_datasets --species "Mus musculus" --cell-line "mESC"
```

### 5. Get Dataset Details

```bash
uv run <SKILL DIR>/scripts/unibind_api.py get_dataset "EXP047889.HMLE-Twist-ER_breast_cancer.SMAD3"
```

### 6. Download TFBS Files (BED / FASTA)

Downloads all TFBS files for a dataset to a local directory. Use `--format bed`
(default) or `--format fasta`.

```bash
uv run <SKILL DIR>/scripts/unibind_api.py download_tfbs "EXP047889.HMLE-Twist-ER_breast_cancer.SMAD3" --output-dir /tmp/tfbs --format bed
```

## Anti-Patterns

-   **DON'T** attempt to use the UniBind API to query specific genomic
    intervals, locations, or genes.
-   **DON'T** guess or hallucinate genome coordinates. Always use
    `ensembl-database` as an external check if you're pulling local BED tracks
    for offline bedtools intersection.
-   **DON'T** use for motif models (PFMs). Use the **jaspar-database** skill
    instead.
-   **DON'T** use for gene expression data. UniBind only stores binding events.
-   **DON'T** assume tissue-specific expression from dataset lists alone.
-   **DON'T** use `cat` to read large JSON output files into context. The output
    is too large. Use `jq` or write your own code to parse the output files.

© google-deepmind · Apache-2.0 · google-deepmind/science-skills

Similar skills

Everything for Science and research →

From the same set39

ncbi-sequence-fetch Fetches protein and nucleotide sequences from NCBI databases via E-utilities. It queries records by accession, gene name, locus tag, PubMed ID, or patent. CX Codex +1 2,200installs pubchem-database A skill that wires your agent into PubChem: resolves compounds by name, CID or SMILES and pulls properties, hazard data and bioactivity. CX Codex +1 2,200installs alphafold-database-fetch-and-analyze Pulls AlphaFold predicted structures by UniProt ID and works out what they mean: pLDDT confidence, disordered regions, rigid domain boundaries. CX Codex +1 2,200installs pdb-database Searches and downloads experimental 3D structures of biomolecules from RCSB PDB using sequence similarity, structure comparisons, or chemical attributes. CX Codex +1 2,200installs ucsc-conservation-and-tfbs Pulls evolutionary conservation scores (phyloP, phastCons) and transcription factor binding sites out of the UCSC Genome Browser. Handy when you are reading non-coding variants. CX Codex +1 2,100installs encode-ccres-database Queries the ENCODE Registry of cis-regulatory elements using the SCREEN GraphQL API and REST API. It identifies promoters or enhancers across cell types. CX Codex +1 2,100installs gnomad-database This skill queries gnomAD for variant frequencies, gene constraint metrics, and regional variant searches. Use it for genetics research workflows. CX Codex +1 2,100installs quickgo-database Queries the QuickGO and ECO REST API to link genes to biological processes, molecular functions and cellular components. Useful when working through gene annotations. CX Codex +1 2,100installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor