Alphagenome Single Variant Analysis
google-deepmind/science-skills
Analyzes genetic variant effects on gene expression (RNA-seq), chromatin accessibility (DNASE), histone marks (ChIP), and transcription factors using the AlphaGenome API.
Query JASPAR for transcription factor binding site (TFBS) profiles (PWMs/PFMs).
$ npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills jaspar-database --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'skills/12-科学数据库/jaspar-database' .claude/skills/jaspar-database && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "jaspar-database" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/12-%E7%A7%91%E5%AD%A6%E6%95%B0%E6%8D%AE%E5%BA%93/jaspar-database into .claude/skills/jaspar-database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jaspar-database", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/12-%E7%A7%91%E5%AD%A6%E6%95%B0%E6%8D%AE%E5%BA%93/jaspar-databaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills jaspar-database --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/'skills/12-科学数据库/jaspar-database' .agents/skills/jaspar-database && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "jaspar-database" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/12-%E7%A7%91%E5%AD%A6%E6%95%B0%E6%8D%AE%E5%BA%93/jaspar-database into .agents/skills/jaspar-database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jaspar-database", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills jaspar-database --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/'skills/12-科学数据库/jaspar-database' .cursor/skills/jaspar-database && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "jaspar-database" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/12-%E7%A7%91%E5%AD%A6%E6%95%B0%E6%8D%AE%E5%BA%93/jaspar-database into .cursor/skills/jaspar-database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jaspar-database", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeonChaoX/qinyan-academic-skills.git --path 'skills/12-科学数据库/jaspar-database'--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills jaspar-database --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/'skills/12-科学数据库/jaspar-database' .gemini/skills/jaspar-database && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "jaspar-database" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/12-%E7%A7%91%E5%AD%A6%E6%95%B0%E6%8D%AE%E5%BA%93/jaspar-database into .gemini/skills/jaspar-database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jaspar-database", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeonChaoX/qinyan-academic-skills jaspar-databaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/'skills/12-科学数据库/jaspar-database' .github/skills/jaspar-database && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "jaspar-database" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/12-%E7%A7%91%E5%AD%A6%E6%95%B0%E6%8D%AE%E5%BA%93/jaspar-database into .github/skills/jaspar-database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jaspar-database", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeonChaoX/qinyan-academic-skills jaspar-database --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeonChaoX/qinyan-academic-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/'skills/12-科学数据库/jaspar-database' .opencode/skills/jaspar-database && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "jaspar-database" agent skill from https://github.com/LeonChaoX/qinyan-academic-skills/tree/main/skills/12-%E7%A7%91%E5%AD%A6%E6%95%B0%E6%8D%AE%E5%BA%93/jaspar-database into .opencode/skills/jaspar-database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "jaspar-database", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
jaspar-databaseQuery JASPAR for transcription factor binding site (TFBS) profiles (PWMs/PFMs).
Jaspar Database is an agent skill from LeonChaoX/qinyan-academic-skills. Query JASPAR for transcription factor binding site (TFBS) profiles (PWMs/PFMs). Search by TF name, species, or class; scan DNA sequences for TF binding sites; compare matrices; essential for regulatory genomics, motif analysis, and GWAS regulatory variant interpretation.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/api_reference.md`).
It sits in Research & Science, covering Bioinformatics and Transcription. The repository describes itself as: A curated, multilingual library of 182 installable AI agent skills for end-to-end academic research—spanning literature discovery, scientific writing, grant development… The licence is CC0-1.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit df5a498. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
jaspar.elixir.noAlso links to:
biopython.orgmeme-suite.orghomer.ucsd.edugithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Jaspar Database loads about 3k tokens when it runs, and up to ~4.1k if it reads all its reference files. Until then it costs about 72 tokens; SKILL.md has 479 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeonChaoX/qinyan-academic-skills at commit df5a498, republished under its CC0-1.0 licence (© LeonChaoX). 479 words, ~2,995 tokens.
.claude/skills/jaspar-database/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.JASPAR (https://jaspar.elixir.no/) is the gold-standard open-access database of curated, non-redundant transcription factor (TF) binding profiles stored as position frequency matrices (PFMs). JASPAR 2024 contains 1,210 non-redundant TF binding profiles for 164 eukaryotic species. Each profile is experimentally derived (ChIP-seq, SELEX, HT-SELEX, protein binding microarray, etc.) and rigorously validated.
Key resources:
jaspar (via Biopython) or direct APIUse JASPAR when:
Base URL: https://jaspar.elixir.no/api/v1/
import requests
BASE_URL = "https://jaspar.elixir.no/api/v1"
def jaspar_get(endpoint, params=None):
url = f"{BASE_URL}/{endpoint}"
response = requests.get(url, params=params, headers={"Accept": "application/json"})
response.raise_for_status()
return response.json()def search_jaspar(
tf_name=None,
species=None,
collection="CORE",
tf_class=None,
tf_family=None,
page=1,
page_size=25
):
"""Search JASPAR for TF binding profiles."""
params = {
"collection": collection,
"page": page,
"page_size": page_size,
"format": "json"
}
if tf_name:
params["name"] = tf_name
if species:
params["species"] = species # Use taxonomy ID or name, e.g., "9606" for human
if tf_class:
params["tf_class"] = tf_class
if tf_family:
params["tf_family"] = tf_family
return jaspar_get("matrix", params)
# Examples:
# Search for human CTCF profile
ctcf = search_jaspar("CTCF", species="9606")
print(f"Found {ctcf['count']} CTCF profiles")
# Search for all homeobox TFs in human
hox_tfs = search_jaspar(tf_class="Homeodomain", species="9606")
# Search for a TF family
nfkb = search_jaspar(tf_family="NF-kappaB")def get_matrix(matrix_id):
"""Fetch a specific JASPAR matrix by ID (e.g., 'MA0139.1' for CTCF)."""
return jaspar_get(f"matrix/{matrix_id}/")
# Example: Get CTCF matrix
ctcf_matrix = get_matrix("MA0139.1")
# Matrix structure:
# {
# "matrix_id": "MA0139.1",
# "name": "CTCF",
# "collection": "CORE",
# "tax_group": "vertebrates",
# "pfm": { "A": [...], "C": [...], "G": [...], "T": [...] },
# "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"]
# }import numpy as np
def get_pwm(matrix_id, pseudocount=0.8):
"""
Fetch a PFM from JASPAR and convert to PWM (log-odds).
Returns numpy array of shape (4, L) in order A, C, G, T.
"""
matrix = get_matrix(matrix_id)
pfm = matrix["pfm"]
# Convert PFM to numpy
pfm_array = np.array([pfm["A"], pfm["C"], pfm["G"], pfm["T"]], dtype=float)
# Add pseudocount
pfm_array += pseudocount
# Normalize to get PPM
ppm = pfm_array / pfm_array.sum(axis=0, keepdims=True)
# Convert to PWM (log-odds relative to background 0.25)
background = 0.25
pwm = np.log2(ppm / background)
return pwm, matrix["name"]
# Example
pwm, name = get_pwm("MA0139.1") # CTCF
print(f"PWM for {name}: shape {pwm.shape}")
max_score = pwm.max(axis=0).sum()
print(f"Maximum possible score: {max_score:.2f} bits")import numpy as np
from typing import List, Tuple
NUCLEOTIDE_MAP = {'A': 0, 'C': 1, 'G': 2, 'T': 3,
'a': 0, 'c': 1, 'g': 2, 't': 3}
def scan_sequence(sequence: str, pwm: np.ndarray, threshold_pct: float = 0.8) -> List[dict]:
"""
Scan a DNA sequence for TF binding sites using a PWM.
Args:
sequence: DNA sequence string
pwm: PWM array (4 x L) in ACGT order
threshold_pct: Fraction of max score to use as threshold (0-1)
Returns:
List of hits with position, score, and matched sequence
"""
motif_len = pwm.shape[1]
max_score = pwm.max(axis=0).sum()
min_score = pwm.min(axis=0).sum()
threshold = min_score + threshold_pct * (max_score - min_score)
hits = []
seq = sequence.upper()
for i in range(len(seq) - motif_len + 1):
subseq = seq[i:i + motif_len]
# Skip if contains non-ACGT
if any(c not in NUCLEOTIDE_MAP for c in subseq):
continue
score = sum(pwm[NUCLEOTIDE_MAP[c], j] for j, c in enumerate(subseq))
if score >= threshold:
relative_score = (score - min_score) / (max_score - min_score)
hits.append({
"position": i + 1, # 1-based
"score": score,
"relative_score": relative_score,
"sequence": subseq,
"strand": "+"
})
return hits
# Example: Scan a promoter sequence for CTCF binding sites
promoter = "AGCCCGCGAGGNGGCAGTTGCCTGGAGCAGGATCAGCAGATC"
pwm, name = get_pwm("MA0139.1")
hits = scan_sequence(promoter, pwm, threshold_pct=0.75)
for hit in hits:
print(f" Position {hit['position']}: {hit['sequence']} (score: {hit['score']:.2f}, {hit['relative_score']:.0%})")def reverse_complement(seq: str) -> str:
complement = {'A': 'T', 'T': 'A', 'C': 'G', 'G': 'C', 'N': 'N'}
return ''.join(complement.get(b, 'N') for b in reversed(seq.upper()))
def scan_both_strands(sequence: str, pwm: np.ndarray, threshold_pct: float = 0.8):
"""Scan forward and reverse complement strands."""
fwd_hits = scan_sequence(sequence, pwm, threshold_pct)
for h in fwd_hits:
h["strand"] = "+"
rev_seq = reverse_complement(sequence)
rev_hits = scan_sequence(rev_seq, pwm, threshold_pct)
seq_len = len(sequence)
for h in rev_hits:
h["strand"] = "-"
h["position"] = seq_len - h["position"] - len(h["sequence"]) + 2 # Convert to fwd coords
all_hits = fwd_hits + rev_hits
return sorted(all_hits, key=lambda x: x["position"])def variant_tfbs_impact(ref_seq: str, alt_seq: str, pwm: np.ndarray,
tf_name: str, threshold_pct: float = 0.7):
"""
Assess impact of a SNP on TF binding by comparing ref vs alt sequences.
Both sequences should be centered on the variant with flanking context.
"""
ref_hits = scan_both_strands(ref_seq, pwm, threshold_pct)
alt_hits = scan_both_strands(alt_seq, pwm, threshold_pct)
max_ref = max((h["score"] for h in ref_hits), default=None)
max_alt = max((h["score"] for h in alt_hits), default=None)
result = {
"tf": tf_name,
"ref_max_score": max_ref,
"alt_max_score": max_alt,
"ref_has_site": len(ref_hits) > 0,
"alt_has_site": len(alt_hits) > 0,
}
if max_ref and max_alt:
result["score_change"] = max_alt - max_ref
result["effect"] = "gained" if max_alt > max_ref else "disrupted"
elif max_ref and not max_alt:
result["effect"] = "disrupted"
elif not max_ref and max_alt:
result["effect"] = "gained"
else:
result["effect"] = "no_site"
return resultimport requests, numpy as np
# 1. Get relevant TF matrices (e.g., all human TFs in CORE collection)
response = requests.get(
"https://jaspar.elixir.no/api/v1/matrix/",
params={"species": "9606", "collection": "CORE", "page_size": 500, "page": 1}
)
matrices = response.json()["results"]
# 2. For each matrix, compute PWM and scan promoter
promoter = "CCCGCCCGCCCGCCGCCCGCAGTTAATGAGCCCAGCGTGCC" # Example
all_hits = []
for m in matrices[:10]: # Limit for demo
pwm_data = requests.get(f"https://jaspar.elixir.no/api/v1/matrix/{m['matrix_id']}/").json()
pfm = pfm_data["pfm"]
pfm_arr = np.array([pfm["A"], pfm["C"], pfm["G"], pfm["T"]], dtype=float) + 0.8
ppm = pfm_arr / pfm_arr.sum(axis=0)
pwm = np.log2(ppm / 0.25)
hits = scan_sequence(promoter, pwm, threshold_pct=0.8)
for h in hits:
h["tf_name"] = m["name"]
h["matrix_id"] = m["matrix_id"]
all_hits.extend(hits)
print(f"Found {len(all_hits)} TF binding sites")
for h in sorted(all_hits, key=lambda x: -x["score"])[:5]:
print(f" {h['tf_name']} ({h['matrix_id']}): pos {h['position']}, score {h['score']:.2f}")| Collection | Description | Profiles |
|---|---|---|
CORE | Non-redundant, high-quality profiles | ~1,210 |
UNVALIDATED | Experimentally derived but not validated | ~500 |
PHYLOFACTS | Phylogenetically conserved sites | ~50 |
CNE | Conserved non-coding elements | ~30 |
POLII | RNA Pol II binding profiles | ~20 |
FAM | TF family representative profiles | ~170 |
SPLICE | Splice factor profiles | ~20 |
from Bio import motifs© LeonChaoX, CC0-1.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/12-科学数据库/jaspar-database of LeonChaoX/qinyan-academic-skills.
Open the folder on GitHubat commit df5a498
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in LeonChaoX/qinyan-academic-skills, which our catalogue first saw on October 9, 2026.
Jaspar Database next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Jaspar Database this skillLeonChaoX/qinyan-academic-skills | 943 | 1 repos | ~3k | Automated safety check: Pass | CC0-1.0 | |
| Alphagenome Single Variant Analysisgoogle-deepmind/science-skills | 3.2k | 2 repos | ~3k | Automated safety check: Notes | Apache-2.0 | |
| Ucsc Conservation And Tfbsgoogle-deepmind/science-skills | 3.2k | 1 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| ArboretoK-Dense-AI/scientific-agent-skills | 48k | 1 repos | ~2.7k | Automated safety check: Pass | BSD-3-Clause | |
| Bio Chipseq Allele Specific BindingGPTomics/bioSkills | 1.2k | 2 repos | ~3.9k | Automated safety check: Pass | MIT | |
| Bio Gene Regulatory Networks Grn InferenceGPTomics/bioSkills | 1.2k | 1 repos | ~3.5k | Automated safety check: Pass | MIT |
google-deepmind/science-skills
Analyzes genetic variant effects on gene expression (RNA-seq), chromatin accessibility (DNASE), histone marks (ChIP), and transcription factors using the AlphaGenome API.
google-deepmind/science-skills
Fetch Evolutionary Conservation scores (phyloP, phastCons) and Transcription Factor Binding Sites (TFBS) from the UCSC Genome Browser.
K-Dense-AI/scientific-agent-skills
Infers candidate gene regulatory networks from bulk or single-cell expression data using AertsLab Arboreto GRNBoost2 and GENIE3.
GPTomics/bioSkills
Detects allele-specific transcription factor or histone modification binding from heterozygous-variant ChIP-seq using WASP (reference-bias filter; mandatory upstream), RASQUAL (joint QTL +…
GPTomics/bioSkills
Infer gene regulatory networks from bulk or general expression data with mutual-information (ARACNe) and tree-ensemble (GENIE3, GRNBoost2) methods, and infer transcription-factor protein activity…
GPTomics/bioSkills
Simulate transcription factor perturbation effects on cell state in silico with CellOracle and Dynamo, and predict transcriptional responses to genetic perturbations with GEARS, scGen, and CPA.
LeonChaoX/qinyan-academic-skills
Generate professional slide deck images from academic papers and content.
LeonChaoX/qinyan-academic-skills
Search the web, extract URL content, and run deep research using the Parallel Chat API and Extract API.
LeonChaoX/qinyan-academic-skills
Generate academic research proposals for PhD applications. An agent skill from LeonChaoX/qinyan-academic-skills.
LeonChaoX/qinyan-academic-skills
Write comprehensive literature reviews for medical imaging AI research.
LeonChaoX/qinyan-academic-skills
Query the Cancer Dependency Map (DepMap) for cancer cell line gene dependency scores (CRISPR Chronos), drug sensitivity data, and gene effect profiles.
LeonChaoX/qinyan-academic-skills
Build and analyze phylogenetic trees using MAFFT (multiple alignment), IQ-TREE 2 (maximum likelihood), and FastTree (fast NJ/ML).
Categories
Query JASPAR for transcription factor binding site (TFBS) profiles (PWMs/PFMs). Jaspar Database is an agent skill from LeonChaoX/qinyan-academic-skills. Query JASPAR for transcription factor binding site (TFBS) profiles (PWMs/PFMs).
Jaspar Database fits situations like: tasks that involve Bioinformatics; tasks that involve Transcription.
Run `npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a claude-code`. Or copy the skill folder (skills/12-科学数据库/jaspar-database in LeonChaoX/qinyan-academic-skills) into .claude/skills/jaspar-database in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a codex`. Or copy the skill folder (skills/12-科学数据库/jaspar-database in LeonChaoX/qinyan-academic-skills) into .agents/skills/jaspar-database in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeonChaoX/qinyan-academic-skills --skill jaspar-database -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/jaspar-database, .gemini/skills/jaspar-database, .github/skills/jaspar-database and .opencode/skills/jaspar-database in your project.
SKILL.md names no scripts, command-line tools or credentials: Jaspar Database is instructions for the agent only. Our summary lists: Python 3.
SKILL.md names 5 domains. In commands or code: jaspar.elixir.no; the agent is likely to contact it when it follows the instructions. As links in the text: biopython.org, meme-suite.org, homer.ucsd.edu and github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Jaspar Database is published under the CC0-1.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.1k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Jaspar Database: Alphagenome Single Variant Analysis (google-deepmind/science-skills, 3.2k stars), Ucsc Conservation And Tfbs (google-deepmind/science-skills, 3.2k stars), Arboreto (K-Dense-AI/scientific-agent-skills, 48k stars) and Bio Chipseq Allele Specific Binding (GPTomics/bioSkills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeonChaoX (a GitHub user) maintains it in LeonChaoX/qinyan-academic-skills, which has 943 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeonChaoX/qinyan-academic-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.