一键导入
vdjdb-publish
For each new or changed chunk in chunks/ (by git), find or create a GitHub issue for its PMID, then commit the chunk with "Fixes
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
For each new or changed chunk in chunks/ (by git), find or create a GitHub issue for its PMID, then commit the chunk with "Fixes
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Run QC scripts on a VDJdb chunk, report every error with a suggested fix, verify the output of previous /extract and /format steps, estimate confidence scores, and flag gaps in current py_src QC coverage.
Identify and classify duplicate TCR records across all VDJdb chunks at three resolution levels (beta-only, paired, and same-epitope multi-MHC), categorise by publication source, author overlap, and flag spurious high-frequency records.
Harmonize antigen.gene and antigen.species fields in a VDJdb chunk to canonical VDJdb naming. Detects spurious gene/species names, resolves inconsistencies (same epitope → multiple names), and warns about epitopes that are exact substrings of longer epitopes. Invoked standalone or from /proofread when spurious values are detected.
Extract TCR:pMHC specificity data from raw source files (papers, supplementary tables, XLS, PDF, 10X output, AIRR-format) and produce a VDJdb-formatted TSV chunk ready for /format and /proofread.
Standardise a raw or partially-formatted VDJdb TSV chunk — normalising species names, IMGT V/D/J gene IDs, IMGT-HLA MHC alleles, and method vocabulary — and produce a properly-named chunk file ready for proofreading.
| name | vdjdb-publish |
| description | For each new or changed chunk in chunks/ (by git), find or create a GitHub issue for its PMID, then commit the chunk with "Fixes |
Walk through every new or modified file in chunks/ according to git, and for each one:
PMID:$pubmedid).Fixes #$issue_id.The skill processes chunks one at a time, always asking the user before creating an issue or committing.
/vdjdb-publish
No arguments. Run from the root of vdjdb-db.
git diff --name-only HEAD -- chunks/
git ls-files --others --exclude-standard chunks/
Combine both lists (modified tracked files + untracked new files). Deduplicate and sort.
If the list is empty, inform the user: "No new or changed chunks found in git." and stop.
Important: Before starting, unstage everything so you are working from a clean index:
git restore --staged .
Work through the list sequentially. Do not skip any file. Always ask the user before each commit.
PMID_(\d+)\.txt, extract the numeric ID as $pubmedid.PMID_ pattern (e.g. 10xgenomics-2019-07-09.txt, PDB_Database.txt), inform the user that this chunk has no PMID, show the filename, and ask how to proceed. Options: skip it, or commit it manually with a user-supplied message. Then move on.Search GitHub issues for the title PMID:$pubmedid:
gh issue list --repo antigenomics/vdjdb-db --search "PMID:$pubmedid in:title" --state all --json number,title,state,url,body --limit 5
Also check git log for any prior commits that reference this file (useful when a file was already tracked and modified):
git log --oneline --all -- "chunks/PMID_$pubmedid.txt" | head -5
Display to the user:
For modified (tracked) files, always show a brief diff summary before asking:
git diff HEAD -- <file> | diffstat)For modified files with metadata cleared in the new version, offer the user the option to merge: retain old rows (which have metadata) and append new-only rows (matched by cdr3.beta + antigen.epitope). If the user says yes, perform the merge programmatically (Python), then commit the merged result.
Ask: "Issue #$number already exists for PMID:$pubmedid. Do you want to commit chunks/PMID_$pubmedid.txt with Fixes #$number? [y/n/skip]"
Fetch the citation from PubMed via the NCBI API:
curl -s "https://api.ncbi.nlm.nih.gov/lit/ctxp/v1/pubmed/?format=apa&id=$pubmedid"
Store the result as $pubmedid_citation. If the API returns an error or empty body, fall back to:
curl -s "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=$pubmedid&retmode=json" | python3 -c "
import sys, json
d = json.load(sys.stdin)
r = d['result'][$pubmedid if isinstance(list(d['result'].keys())[0], str) else str($pubmedid)]
authors = ', '.join(a['name'] for a in r.get('authors', [])[:3])
title = r.get('title','')
source = r.get('source','')
year = r.get('pubdate','')[:4]
print(f'{authors} ({year}). {title} {source}.')
"
Construct the proposed issue:
PMID:$pubmedid[$pubmedid_citation](https://pubmed.ncbi.nlm.nih.gov/$pubmedid/)Show the user the proposed title and body, then ask: "OK to create this issue on antigenomics/vdjdb-db? [y/n/skip]"
gh issue create --repo antigenomics/vdjdb-db \
--title "PMID:$pubmedid" \
--body "[$pubmedid_citation](https://pubmed.ncbi.nlm.nih.gov/$pubmedid/)"
Capture $issue_id from the output URL (the number at the end).
Then proceed to step 3 (commit).Make sure only this one chunk is staged:
git restore --staged . # unstage everything first
git add "chunks/PMID_$pubmedid.txt"
Confirm to the user what will be committed (one line: filename + issue number + commit message), then:
git commit -m "Fixes #$issue_id"
After a successful commit, move on to the next chunk in the list.
After all chunks have been processed, report a summary:
gh is not authenticated, stop immediately and tell the user to run gh auth login.curl fetch fails, show the error and ask the user to supply the citation manually before proceeding.git commit fails (e.g. pre-commit hook), show the error and wait for user guidance — do not use --no-verify.