mdhewei/bioinfor-claw/curate-gene-list-by-function
Claude Code and agent skill by mdhewei/bioinfor-claw
- community
Checking that the SKILL.md file is still in the repository.
Curate literature-backed gene or protein lists for a requested function, pathway, molecular class, or regulator type, then normalize them into a structured table or workbook. Use when the user asks for lists such as transcription factors, pathway genes, receptor families, chromatin regulators, methylation readers, or other function-specific gene sets with identifiers and references.
Install
npx vskill@latest install mdhewei/bioinfor-claw/curate-gene-list-by-functionSKILL.md
Gene List Curator
Use this skill to build a curated, reproducible gene or protein list for a requested biological category.
When to use
Use this skill when the user asks for:
- a list of genes or proteins with a shared function
- pathway members
- transcription factors
- receptor or enzyme families
- chromatin regulators
- reader, writer, or eraser proteins
- a workbook, CSV, or table with identifiers and references
Default output schema
Use these columns unless the user asks for a different schema:
Gene nameProtein IDOrganismFunctional classEvidence or roleUniProt accessionPMIDReferences
Optional columns:
PathwayMolecular functionComplex membershipMarker or substrateConfidenceInclusion tier
Operating rule
The skill produces a populated candidate list directly — it does NOT require a human-in-the-loop fill-in step. The pipeline:
- Queries UniProt (reviewed entries) for the requested category in the
chosen organism — this is the primary source of candidate rows.
- Queries NCBI Gene as a secondary, broader source.
- Merges the two on gene symbol (case-insensitive), preferring UniProt
metadata and back-filling from NCBI Gene.
- Collects PubMed bibliographic evidence (review papers etc.) into a
side JSONL for curator reference.
- Writes a fully populated
curated_candidates.csv. Every row is tagged
Inclusion tier = Candidate. Downstream curation (manual or LLM) can re-classify rows into Core / Extended / Disputed.
Processing steps
- Define scope.
- Organism: human by default unless requested otherwise.
- Inclusion rule:
canonical,high-confidence curated, orbroad. - Boundaries: decide whether to include indirect regulators, cofactors, paralogs, or inferred members.
- Run the discovery pipeline.
scripts/run_gene_list_pipeline.pyqueries UniProt + NCBI Gene + PubMed in one pass.- The output
curated_candidates.csvis already populated with all
candidates from both databases.
- If you want to widen the search, pass
--include-unreviewedto add
UniProt TrEMBL entries (noisier, more hits).
- Review and re-classify.
- Open
curated_candidates.csvand re-tag theInclusion tiercolumn
for each row: Core / Extended / Disputed.
- Use the side files for evidence:
uniprot_hits.jsonl,
ncbi_gene_hits.jsonl, pubmed_summaries.jsonl.
- (Optional) Resolve ambiguous members.
- Open
pubmed_summaries.jsonlto see which review papers covered the field. - For borderline rows, run targeted PubMed lookups by gene symbol.
- Move unresolved entries to
ExtendedorDisputed.
- (Already done by step 2, but if you imported a CSV from elsewhere)
- Use
scripts/normalize_with_uniprot.pyto add UniProt accessions
to a CSV that doesn't have them.
- Annotate roles.
- Use short, comparable labels:
sequence-specific transcription factorpathway core transducercoactivatorDNA-binding repressorreceptor tyrosine kinase
- Quality control.
- Collapse aliases.
- Remove duplicates.
- Verify that every included row matches the stated inclusion rule.
- Ensure references support the role claimed.
- Export.
- Use
script/build_gene_list_workbook.pyto create an Excel workbook from the curated CSV. - Use separate sheets for
Core,Extended, or other logical groups when useful.
Search templates
Start with general discovery:
Then confirm specific members:
See:
Minimum quality bar
Before delivering the list, verify:
- every row has a normalized gene symbol
- every row matches the requested category under the stated inclusion rule
- duplicate aliases are collapsed
- ambiguous members are labeled or excluded
- at least one stable source is attached for each row or class
Parameter decision guide
| Signal in user request | Decision | |
|---|---|---|
| "quick list" / "just give me the genes" | use Fast mode: one anchor source, core members only, minimal columns | |
| "comprehensive" / "publication-ready" / "with references" | use Full mode: multiple sources, per-row references, normalized identifiers | |
| "human genes" (default) | --organism "Homo sapiens" | |
| "mouse genes" | --organism "Mus musculus" | |
| "transcription factors" | include sequence-specific transcription factor as functional class | |
| "chromatin regulators / readers / writers / erasers" | include reader/writer/eraser domain annotation in output | |
| "receptor family" | include receptor tyrosine kinase or GPCR class labels | |
| "disputed members" | label as Disputed or Extended tier, keep separate from Core | |
| "Excel workbook output" | run build_gene_list_workbook.py as final step | |
| "normalize identifiers" | run normalize_with_uniprot.py after curation |
Fast mode versus full mode
Fast mode
Use when the user wants a quick answer.
- one anchor source
- core members only
- minimal columns
- references can be shared per class
Full mode
Use when the user wants a comprehensive or publication-ready list.
- multiple anchor sources
- targeted primary-paper checks for ambiguous members
- normalized identifiers
- per-row references where possible
- explicit notes on inclusion boundaries
Scripts
Use the scripts in ./script:
run_gene_list_pipeline.py- generate standardized PubMed searches and save JSONL/CSV evidence files
normalize_with_uniprot.py- add UniProt accessions and canonical protein names to a curated CSV
build_gene_list_workbook.py- convert curated CSV into an
.xlsxworkbook
Typical flow:
Tips for getting good results
| Symptom | Try | |
|---|---|---|
| Zero candidates returned | Broaden the category — e.g. "methyl-CpG binding" instead of "DNA methylation readers" | |
| Too few candidates (< 10) | Add --include-unreviewed to widen UniProt to TrEMBL | |
| Too many candidates (> 500) | Use a more specific category, or filter the CSV downstream | |
| Non-human organism | Pass canonical scientific name, e.g. --organism "Mus musculus" | |
| NCBI rate-limited | Increase --delay-seconds (default 0.4 → try 1.0) | |
| Want only databases, no PubMed | Pass --skip-pubmed for ~10× speedup |
Exit code 2 means zero candidates were found — check the diagnostic message printed to stderr for the most likely cause.
References
Load these only when needed:
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckinggene-list-analysis/curate-gene-list-by-function/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mdhewei/bioinfor-claw/curate-gene-list-by-function)