Files
huangkuanlin 7f94783fab Add scVelo RNA velocity analysis workflow and IQ-TREE reference documentation
- Introduced a comprehensive RNA velocity analysis pipeline using scVelo, including data loading, preprocessing, velocity estimation, and visualization.
- Added a script for running RNA velocity analysis with customizable parameters and output options.
- Created detailed documentation for IQ-TREE 2 phylogenetic inference, covering command syntax, model selection, bootstrapping methods, and output interpretation.
- Included references for velocity models and their mathematical framework, along with a comparison of different models.
- Enhanced the scVelo skill documentation with installation instructions, use cases, and best practices for RNA velocity analysis.
2026-03-03 07:15:36 -05:00

4.3 KiB

JASPAR API v1 Reference

Base URL

https://jaspar.elixir.no/api/v1/

No authentication required. Responses are JSON.

Core Endpoints

GET /matrix/

Search and list TF binding profiles.

Parameters:

Parameter Type Description Example
name string TF name (partial match) CTCF
matrix_id string Exact matrix ID MA0139.1
collection string Collection name CORE
tax_group string Taxonomic group vertebrates
species string Species name or tax ID 9606, Homo sapiens
tf_class string TF structural class C2H2 zinc finger factors
tf_family string TF family BEN domain factors
type string Experimental method ChIP-seq, SELEX
version string latest or specific version latest
page int Page number 1
page_size int Results per page (max 500) 25

Response:

{
  "count": 1210,
  "next": "https://jaspar.elixir.no/api/v1/matrix/?page=2",
  "previous": null,
  "results": [
    {
      "matrix_id": "MA0139.1",
      "name": "CTCF",
      "collection": "CORE",
      "tax_group": "vertebrates"
    }
  ]
}

GET /matrix/{id}/

Fetch a specific matrix with full details.

Response:

{
  "matrix_id": "MA0139.1",
  "name": "CTCF",
  "collection": "CORE",
  "tax_group": "vertebrates",
  "pfm": {
    "A": [87, 167, 281, ...],
    "C": [291, 145, 49, ...],
    "G": [76, 414, 504, ...],
    "T": [205, 114, 27, ...]
  },
  "consensus": "CCGCGNGGNGGCAG",
  "length": 19,
  "species": [{"tax_id": 9606, "name": "Homo sapiens"}],
  "class": ["C2H2 zinc finger factors"],
  "family": ["BEN domain factors"],
  "type": "ChIP-seq",
  "uniprot_ids": ["P49711"],
  "pubmed_ids": ["19172222"],
  "version": 1,
  "latest": true
}

Returns SVG/PNG logo for the matrix.

Parameters: format = svg (default) or png

GET /taxon/

List available species/taxa.

GET /tf_class/

List available TF structural classes.

GET /tf_family/

List available TF families.

GET /collection/

List available collections.

Matrix ID Format

MA{number}.{version}
  • MA prefix = Manual curation
  • PB prefix = Published (automatic)
  • UN prefix = Unvalidated
  • Version increments when profile is updated

Common Matrix IDs

Matrix ID TF Species Method
MA0139.1 CTCF Human ChIP-seq
MA0098.3 ETS1 Human SELEX
MA0107.1 RELA (NF-kB p65) Human SELEX
MA0048.2 NHLH1 Human SELEX
MA0079.4 SP1 Human SELEX
MA0080.4 SPI1 (PU.1) Human ChIP-seq
MA0025.2 NFIL3 Human SELEX
MA0002.2 RUNX1 Human SELEX
MA0004.1 Arnt Mouse SELEX
MA0009.2 TAL1::GATA1 Human SELEX

TF Classes (partial list)

  • C2H2 zinc finger factors
  • Basic leucine zipper factors (bZIP)
  • Basic helix-loop-helix factors (bHLH)
  • Homeodomain factors
  • Forkhead box (FOX) factors
  • ETS-domain factors
  • Nuclear hormone receptors
  • Tryptophan cluster factors
  • p53-like transcription factors
  • STAT factors
  • MADS box factors
  • T-box factors

Python Example: Batch Download

import requests, json, time

def download_all_human_profiles(output_file="jaspar_human_profiles.json"):
    """Download all human TF profiles from JASPAR CORE collection."""
    url = "https://jaspar.elixir.no/api/v1/matrix/"
    params = {
        "collection": "CORE",
        "species": "9606",
        "version": "latest",
        "page_size": 500,
        "page": 1
    }

    profiles = []
    while True:
        response = requests.get(url, params=params)
        data = response.json()
        profiles.extend(data["results"])

        if not data["next"]:
            break
        params["page"] += 1
        time.sleep(0.5)

    # Fetch full details for each profile
    full_profiles = []
    for p in profiles:
        detail_url = f"https://jaspar.elixir.no/api/v1/matrix/{p['matrix_id']}/"
        detail = requests.get(detail_url).json()
        full_profiles.append(detail)
        time.sleep(0.1)  # Be respectful

    with open(output_file, "w") as f:
        json.dump(full_profiles, f)

    return full_profiles