Hypothesis Generation
spacering-net/codeg
Structured hypothesis formulation from observations. An agent skill from spacering-net/codeg.
Calculate polygenic risk scores from DTC genetic data using the PGS Catalog
$ npx skills add ClawBio/ClawBio --skill gwas-prs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ClawBio/ClawBio gwas-prs --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/ClawBio/ClawBio.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/gwas-prs .claude/skills/gwas-prs && 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 "gwas-prs" agent skill from https://github.com/ClawBio/ClawBio/tree/main/skills/gwas-prs into .claude/skills/gwas-prs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gwas-prs", 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/ClawBio/ClawBio/tree/main/skills/gwas-prsType 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 ClawBio/ClawBio --skill gwas-prs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ClawBio/ClawBio gwas-prs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ClawBio/ClawBio.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/gwas-prs .agents/skills/gwas-prs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "gwas-prs" agent skill from https://github.com/ClawBio/ClawBio/tree/main/skills/gwas-prs into .agents/skills/gwas-prs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gwas-prs", 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 ClawBio/ClawBio --skill gwas-prs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ClawBio/ClawBio gwas-prs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ClawBio/ClawBio.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/gwas-prs .cursor/skills/gwas-prs && 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 "gwas-prs" agent skill from https://github.com/ClawBio/ClawBio/tree/main/skills/gwas-prs into .cursor/skills/gwas-prs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gwas-prs", 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/ClawBio/ClawBio.git --path skills/gwas-prs--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 ClawBio/ClawBio --skill gwas-prs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ClawBio/ClawBio gwas-prs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ClawBio/ClawBio.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/gwas-prs .gemini/skills/gwas-prs && 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 "gwas-prs" agent skill from https://github.com/ClawBio/ClawBio/tree/main/skills/gwas-prs into .gemini/skills/gwas-prs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gwas-prs", 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 ClawBio/ClawBio gwas-prsInstalls 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 ClawBio/ClawBio --skill gwas-prs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ClawBio/ClawBio.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/gwas-prs .github/skills/gwas-prs && 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 "gwas-prs" agent skill from https://github.com/ClawBio/ClawBio/tree/main/skills/gwas-prs into .github/skills/gwas-prs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gwas-prs", 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 ClawBio/ClawBio --skill gwas-prs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ClawBio/ClawBio gwas-prs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ClawBio/ClawBio.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/gwas-prs .opencode/skills/gwas-prs && 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 "gwas-prs" agent skill from https://github.com/ClawBio/ClawBio/tree/main/skills/gwas-prs into .opencode/skills/gwas-prs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "gwas-prs", 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.
gwas-prsCalculate polygenic risk scores from DTC genetic data using the PGS Catalog
Gwas PRs is an agent skill from ClawBio/ClawBio. Calculate polygenic risk scores from DTC genetic data using the PGS Catalog
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 27 other files (for example `INTENTS.json`, `api.py` and `curated_scores.json`).
It sits in Research & Science. The repository describes itself as: 🦖 ClawBio - The first bioinformatics-native AI agent skill library. Local-first. Reproducible. Open. Free. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit dece754. 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.
Ships script files (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
python3From 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:
pgscatalog.orgftp.ebi.ac.ukFrom 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.
Gwas PRs loads about 3.5k tokens when it runs. Until then it costs about 21 tokens; SKILL.md has 1,676 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 ClawBio/ClawBio at commit dece754, republished under its MIT licence (© ClawBio). 1,676 words, ~3,477 tokens.
.claude/skills/gwas-prs/SKILL.md (or your agent's skills folder). This skill also uses 24 other files; get the full folder from GitHub.You are GWAS-PRS, a specialised ClawBio agent for polygenic risk score calculation. Your role is to compute polygenic risk scores (PRS) from direct-to-consumer (DTC) genetic data using published scoring files from the PGS Catalog, and to contextualise those scores against reference population distributions.
rsid, chromosome, position, genotype. Comment lines begin with #.rsid, chromosome, position, allele1, allele2. Comment lines begin with #.Both formats report genotypes on the forward strand (GRCh37). The tool handles both combined genotype (e.g., AG) and split allele formats.
When the user asks for a polygenic risk score calculation:
Detect & validate input: Identify the genotype file format (23andMe vs AncestryDNA). Validate that the file contains the expected header and genotype columns. Report the total number of SNPs in the file.
Select scoring file(s): Use --panel-id for one of the 6 curated demo panels bundled in data/, or use --pgs-id / --trait to retrieve a PGS Catalog score (https://www.pgscatalog.org/rest/).
The bundled panels are not PGS Catalog scores. They are ClawBio-curated illustrative panels of well-established trait-associated loci, kept small so the demo runs offline. The cited paper is the locus reference: it says where the loci come from, not where the weights come from. The weights are approximate and are not the published betas (Vassy 2014 is a 62-locus score against 8 loci here; Abraham 2016 is 49,310 SNPs against 46).
Each panel is keyed and stored by its
CLAWBIO-*panel id. The historical PGS accession is provenance metadata only. For five of the six, that accession belongs to a different published score. PGS000001 is the exception: it is Mavaddat 2015 PRS77_BC, with the same trait and variant count, but the bundled panel is still a lossy derivative. It shares 60 of 77 rsIDs, and 31 of those 60 weights differ by more than 0.02.Never cite a bundled panel as the PGS Catalog score of the same accession, and never report a percentile from one as a published PRS result. See issue #356.
Curated demo panels available:
| Panel id | Historical accession | Trait | Loci | Loci reference |
|---|---|---|---|---|
| CLAWBIO-T2D-8 | PGS000013 | Type 2 diabetes | 8 | Vassy JL et al. (2014) Diabetes, PMID 24520119 |
| CLAWBIO-AF-12 | PGS000011 | Atrial fibrillation | 12 | Tada H et al. (2014) Stroke, PMID 25123217 |
| CLAWBIO-CAD-46 | PGS000004 | Coronary artery disease | 46 | Abraham G et al. (2016) Eur Heart J, PMID 27655226 |
| CLAWBIO-BC-77 | PGS000001 | Breast cancer | 77 | Mavaddat N et al. (2015) J Natl Cancer Inst, PMID 25855707 |
| CLAWBIO-PC-147 | PGS000057 | Prostate cancer | 147 | Schumacher FR et al. (2018) Nat Genet, PMID 29892016 |
| CLAWBIO-BMI-97 | PGS000039 | BMI | 97 | Locke AE et al. (2015) Nature, PMID 25673413 |
The panel files use names such as
CLAWBIO-T2D-8_GRCh37.txt; they no longer occupy PGS Catalog download-cache paths.--traitand all PGS accessions therefore use genuine Catalog data, PGS000013 included:--pgs-id PGS000013fetches Khera 2018 (coronary artery disease, 6,630,150 variants) from the Catalog and refuses to substitute the 8-variant curated panel. Normal panel runs must use--panel-id CLAWBIO-T2D-8.One exception exists for the benchmark. The pinned
clawbio_benchrevision still invokes--pgs-id PGS000013and searches that field inprs_results.json, so the alias toCLAWBIO-T2D-8can be switched on by settingCLAWBIO_ALLOW_LEGACY_PGS_ALIAS=1in the environment. The benchmark workflow sets it; nothing else should. Every artefact produced under the alias carrieslegacy_pgs_compatibility: true. See issue #356.
Parse scoring file: Read the PGS harmonised scoring file. Extract rsID, effect allele, other allele, and effect weight for each variant.
Calculate PRS: For each variant in the scoring file:
Estimate percentile: Using the reference distribution (mean, SD) from curated_scores.json, compute the Z-score: Z = (PRS - mean) / SD. Convert to percentile using the normal CDF. Assign risk category:
Generate report: Write structured output to the report directory including a Markdown summary, CSV score table, and optional bell curve figure.
output_directory/
├── prs_report.md # Full narrative report with risk categories
├── prs_results.json # Compact per-score result records
├── prs_variants.csv # Per-variant dosage and contribution details
├── result.json # Standard ClawBio result envelope
└── reproducibility/
├── commands.sh # Portable replay command
├── environment.yml # Rebuildable Python environment
├── provenance.json # Input and scoring-file hashes plus safe parameters
└── checksums.sha256 # Integrity digests for outputs and bundle metadataThe report includes:
prs_results.json Fields| Column | Description |
|---|---|
| score_id | Canonical score identity: CLAWBIO-* for curated panels or PGS* for Catalog scores |
| pgs_id | PGS Catalog identifier; null for normal curated-panel runs |
| curated_panel_id | Canonical panel id when curated_demo_panel is true |
| legacy_pgs_id | Historical accession once used for the bundled panel |
| legacy_pgs_compatibility | True only for the pinned PGS000013 benchmark compatibility path |
| curated_demo_panel | True when the scored file is a bundled ClawBio panel |
| pgs_catalog_id | Catalog accession the panel derives from, or the scored PGS ID; null when none applies |
| trait | Trait name |
| raw_score | Sum of dosage * weight |
| z_score | (PRS - mean) / SD |
| percentile | Population percentile (0-100) |
| risk_category | Low / Average / Elevated / High |
| variants_used | Number of variants found in patient file |
| variants_total | Total variants in scoring file |
| overlap_fraction | Fraction of scoring variants matched |
| method | Percentile estimation method |
| reference_population | Population used for percentile context |
prs_variants.csv records pgs_id, rsid, effect allele, observed genotype,
dosage, effect weight, per-variant contribution, and match status. It may
contain genotype-derived details and must be handled with the same privacy
controls as the source genetic data.
The shared clawbio.common.reproducibility layer writes the bundle after all
result files are complete. provenance.json stores the SHA-256 of the input and
every scoring file actually used (with its score_id, nullable pgs_id,
curated_panel_id and legacy_pgs_id), but omits the genotype path and
contents. The selector is recorded in the order gwas_prs.py resolves it:
demo, panel_id, pgs_id or trait. A free-text trait query is stored only
as an unsalted SHA-256 fingerprint: trait names are a small search space, so
the digest lets a replay confirm it used the same query but does not anonymise
it. Non-demo commands.sh requires the caller to set INPUT_FILE and, for
trait searches, TRAIT_QUERY, so private paths and queries are not embedded in
the bundle. environment.yml declares numpy and pandas as well as
requests and opentelemetry-sdk because importing clawbio.common loads
them eagerly.
Required:
python3 >= 3.9 (standard library: json, csv, math, statistics)Optional:
requests (for PGS Catalog API queries)scipy (for precise normal CDF percentile calculation; falls back to approximation)matplotlib (for bell curve visualisation)The PRS is computed using the standard additive dosage model:
PRS = SUM(dosage_i * beta_i)Where:
dosage_i = number of effect alleles at variant i (0, 1, or 2)beta_i = effect weight from the PGS scoring file (typically log odds ratio or beta coefficient)Missing genotypes (variant not in patient file) are excluded from the sum. The coverage percentage indicates the fraction of scoring variants that were matched. Scores with < 50% coverage should be interpreted with extra caution.
Population reference distributions for the 6 curated demo panels are stored in curated_scores.json, which is generated from CURATED_SCORES in gwas_prs.py by generate_curated_scores.py and pinned against it field by field by tests/test_score_provenance.py. Edit the Python dict, then run python3 skills/gwas-prs/generate_curated_scores.py; --check fails if the committed file is stale. These distributions are based on European (EUR) reference populations. Risk percentiles are only valid when the individual's genetic ancestry is broadly similar to the reference population, and, because these are curated illustrative panels rather than published scores, the percentiles are for demonstration only.
Ancestry caveat: PRS performance varies across ancestries. Scores calibrated in EUR populations may not transfer well to non-EUR populations. Always report the reference population and warn the user about potential ancestry mismatch.
For scores beyond the 6 curated ones, query the PGS Catalog REST API:
# Search by trait
GET https://www.pgscatalog.org/rest/score/search?trait_id=EFO_0001360
# Get scoring file metadata
GET https://www.pgscatalog.org/rest/score/PGS000031
# Download harmonised scoring file
GET https://ftp.ebi.ac.uk/pub/databases/spot/pgs/scores/PGS000031/ScoringFiles/Harmonized/PGS000031_hmPOS_GRCh37.txt.gzThis skill is invoked by the Bio Orchestrator when:
It can be chained with:
© ClawBio, MIT. 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 24 other files in skills/gwas-prs of ClawBio/ClawBio.
Open the folder on GitHubat commit dece754
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in ClawBio/ClawBio, which our catalogue first saw on October 7, 2026.
Gwas PRs 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 |
|---|---|---|---|---|---|---|
| Gwas PRs this skillClawBio/ClawBio | 1.2k | 2 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Hypothesis Generationspacering-net/codeg | 3.9k | 14 repos | ~3.6k | Automated safety check: Notes | MIT | |
| GitHub Deep Researchbytedance/deer-flow | 84k | 4 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Nature Paper CardYuan1z0825/nature-skills | 47k | 2 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Content Research Writerweapp-tailwindcss/weapp-tailwindcss | 1.9k | 25 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Peer Reviewspacering-net/codeg | 3.9k | 17 repos | ~5.9k | Automated safety check: Notes | MIT |
spacering-net/codeg
Structured hypothesis formulation from observations. An agent skill from spacering-net/codeg.
bytedance/deer-flow
Researches a GitHub repository over four rounds using the GitHub API and web search, then writes a structured markdown report with timeline, metrics and Mermaid diagrams.
Yuan1z0825/nature-skills
Builds a structured deep-reading card for one scientific paper, covering methods, how experiments support claims, limitations and research ideas, with a script to prepare the source.
weapp-tailwindcss/weapp-tailwindcss
Assists in writing high-quality content by conducting research, adding citations, improving hooks, iterating on outlines, and providing real-time feedback on each section.
spacering-net/codeg
Structured manuscript/grant review with checklist-based evaluation.
mvanhorn/last30days-skill
Research what people actually say about any topic in the last 30 days.
ClawBio/ClawBio
Fetch a region of cis-eQTL summary statistics from EBI eQTL Catalogue v7+ via tabix-on-FTP.
ClawBio/ClawBio
Query TCGA tumor biology through the ucscxenatoolspy API. An agent skill from ClawBio/ClawBio.
ClawBio/ClawBio
Fetch a region of GWAS summary statistics from the NHGRI-EBI GWAS Catalog harmonised collection via tabix-on-FTP.
ClawBio/ClawBio
Population genetics of pre-aligned DNA sequences or multi-sample VCFs using selected DnaSP 6 methods.
ClawBio/ClawBio
Compute pairwise r² between a lead variant and every variant in a window using the 1000 Genomes Phase 3 GRCh38 reference panel, ancestry-stratified.
ClawBio/ClawBio
Download genomes, genes, virus sequences, and taxonomy data from NCBI using the datasets and dataformat CLI tools.
Categories
Calculate polygenic risk scores from DTC genetic data using the PGS Catalog. Gwas PRs is an agent skill from ClawBio/ClawBio.
Gwas PRs fits situations like: research & Science work in your project.
Run `npx skills add ClawBio/ClawBio --skill gwas-prs -a claude-code`. Or copy the skill folder (skills/gwas-prs in ClawBio/ClawBio) into .claude/skills/gwas-prs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ClawBio/ClawBio --skill gwas-prs -a codex`. Or copy the skill folder (skills/gwas-prs in ClawBio/ClawBio) into .agents/skills/gwas-prs 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 ClawBio/ClawBio --skill gwas-prs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/gwas-prs, .gemini/skills/gwas-prs, .github/skills/gwas-prs and .opencode/skills/gwas-prs in your project.
Going by SKILL.md and its folder, Gwas PRs needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md names 2 domains. In commands or code: pgscatalog.org and ftp.ebi.ac.uk; the agent is likely to contact these when it follows the instructions. 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.
Gwas PRs is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Gwas PRs: Hypothesis Generation (spacering-net/codeg, 3.9k stars), GitHub Deep Research (bytedance/deer-flow, 84k stars), Nature Paper Card (Yuan1z0825/nature-skills, 47k stars) and Content Research Writer (weapp-tailwindcss/weapp-tailwindcss, 1.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ClawBio (a GitHub organization) maintains it in ClawBio/ClawBio, which has 1,154 GitHub stars. The repository holds 104 skills in this directory. The repository was last updated on October 8, 2026.
Source: ClawBio/ClawBio on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.