Agent skill

Bio Motif Search

by GPTomics in GPTomics/bioSkills

Find sequence motifs, degenerate IUPAC patterns, and transcription-factor binding sites in DNA/RNA using Biopython and regex, including position weight matrix (PWM/PSSM) scoring.

MITAuto-check passedMedia & Creative

Install Bio Motif Search

skills CLI
$ npx skills add GPTomics/bioSkills --skill bio-motif-search -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install GPTomics/bioSkills bio-motif-search --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/GPTomics/bioSkills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/sequence-manipulation/motif-search .claude/skills/bio-motif-search && rm -rf skills-src

Use ~/.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/

Facts

Skill name
bio-motif-search
GitHub stars
1.2k
Used in
1 other repo
Token cost
~2.9k tokens
SKILL.md length
1,130 words
Files
6
Skills in repo
559
Repo updated
First seen
Licence
MIT

At a glance

Find sequence motifs, degenerate IUPAC patterns, and transcription-factor binding sites in DNA/RNA using Biopython and regex, including position weight matrix (PWM/PSSM) scoring.

  • Works in 2 steps: Overlapping matches are dropped.… → A PSSM score is a likelihood in bits,…
  • Locating regulatory elements
  • SKILL.md covers Version Compatibility, The Governing Principle, Which Approach for Which… and IUPAC Degenerate Motifs, plus 6 more sections
  • Runs Python scripts from its folder; calls pip

What it does

Bio Motif Search is an agent skill from GPTomics/bioSkills. Find sequence motifs, degenerate IUPAC patterns, and transcription-factor binding sites in DNA/RNA using Biopython and regex, including position weight matrix (PWM/PSSM) scoring. Use when locating regulatory elements, counting overlapping motif occurrences, scanning for binding-site matches above a significance threshold, or reading motif matrices from JASPAR/MEME/TRANSFAC files. For restriction enzyme sites, use restriction-analysis/restriction-sites.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files (for example `examples/basic_search.py`, `examples/motif_files.py` and `examples/pwm_search.py`).

It sits in Media & Creative, covering Bioinformatics and Transcription. It works with Biopython. The repository describes itself as: a set of SKILLS.md for doing bioinformatics with agents like claude code. The licence is MIT.

When your agent uses it

  • Locating regulatory elements
  • Counting overlapping motif occurrences
  • Scanning for binding-site matches above a significance threshold
  • Reading motif matrices from JASPAR/MEME/TRANSFAC files

Example prompts

  • “/bio-motif-search”

Requirements

  • Python 3

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Overlapping matches are dropped. str.count, str.find, and re.findall consume the string left to right, so a motif that overlaps its own…
  2. A PSSM score is a likelihood in bits, not a probability. pssm.calculate returns log2-odds versus background. A "high-looking" threshold…

What it can do on your machine

Read from SKILL.md and the folder at commit d91ed3d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships script files (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • pip

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Bio Motif Search loads about 2.9k tokens when it runs. Until then it costs about 118 tokens; SKILL.md has 1,130 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~118
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from GPTomics/bioSkills at commit d91ed3d, republished under its MIT licence (© GPTomics). 1,130 words, ~2,921 tokens.

Download SKILL.mdSave it as .claude/skills/bio-motif-search/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
bio-motif-search
description
Find sequence motifs, degenerate IUPAC patterns, and transcription-factor binding sites in DNA/RNA using Biopython and regex, including position weight matrix (PWM/PSSM) scoring. Use when locating regulatory elements, counting overlapping motif occurrences, scanning for binding-site matches above a significance threshold, or reading motif matrices from JASPAR/MEME/TRANSFAC files. For restriction enzyme sites, use restriction-analysis/restriction-sites.
tool_type
python
primary_tool
Bio.motifs

Version Compatibility

Reference examples tested with: BioPython 1.83+

Before using code patterns, verify installed versions match. If versions differ:

  • Python: pip show <package> then help(module.function) to check signatures

If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.

"Search for a sequence motif or binding-site pattern" -> Scan sequences for a fixed motif, a degenerate IUPAC consensus, or a probabilistic PWM, on one or both strands, and locate transcription-factor binding sites, regulatory elements, or custom patterns.

  • Python: Bio.SeqUtils.nt_search (IUPAC + overlaps), re (regex/lookahead), Bio.motifs (PWM/PSSM scoring + matrix file parsing)

The Governing Principle

Two silent failures dominate motif searching; both return a plausible-but-wrong answer with no error:

  1. Overlapping matches are dropped. str.count, str.find, and re.findall consume the string left to right, so a motif that overlaps its own next occurrence is undercounted. Target AAGCGCGCGAA, motif GCGC: str.count returns 1, the true answer is 2 (starts at positions 2 and 4). Use a zero-width lookahead re.finditer(r'(?=(GCGC))', target) or Bio.SeqUtils.nt_search, both of which report overlaps.
  2. A PSSM score is a likelihood in bits, not a probability. pssm.calculate returns log2-odds versus background. A "high-looking" threshold chosen by eye is arbitrary and non-reproducible; derive the threshold from the score distribution at a chosen false-positive rate. And a PSSM scans only the strand it is given, so scoring just the forward strand silently misses roughly half of real sites on double-stranded DNA.

Which Approach for Which Question

QuestionTool
Position of first exact hitstr.find / Seq.find (returns -1 if absent)
All exact hits, possibly overlappingre.finditer(r'(?=(motif))', seq)
Degenerate IUPAC consensus (e.g. GATNNTC), with overlapsBio.SeqUtils.nt_search(seq, motif)
Flexible / repeat / variable-spacer patternre with explicit character classes and quantifiers
Graded match to many aligned sites (binding sites)Bio.motifs PWM -> PSSM, score and threshold
Match significance / false-positive controlpssm.distribution(...).threshold_fpr(fpr)
Restriction enzyme recognition sitesrestriction-analysis/restriction-sites

IUPAC Degenerate Motifs

A degenerate motif expands each ambiguity code to a regex character class:

CodeClassCodeClassCodeClass
N[ACGT]R[AG]Y[CT]
W[AT]S[GC]K[GT]
M[AC]B[CGT]D[AGT]
H[ACT]V[ACG]

B, D, H, V each exclude A, C, G, T respectively (the code preceding the one they drop is a mnemonic).

python
IUPAC_DNA = {'N': '[ACGT]', 'R': '[AG]', 'Y': '[CT]', 'W': '[AT]', 'S': '[GC]',
             'K': '[GT]', 'M': '[AC]', 'B': '[CGT]', 'D': '[AGT]', 'H': '[ACT]', 'V': '[ACG]'}

def iupac_to_regex(pattern):
    return ''.join(IUPAC_DNA.get(base, base) for base in pattern)

# 'GATNNTC' -> 'GAT[ACGT][ACGT]TC'

Bio.SeqUtils.nt_search expands IUPAC ambiguity in the query motif automatically and reports overlapping hits, so it is the shortest correct path for a degenerate consensus.

Overlapping Matches (the count trap)

Goal: Report every start position of a motif, including self-overlapping occurrences.

Approach: Use a zero-width lookahead so the regex engine never consumes the matched text; recover the match string from the inner capture group. For IUPAC motifs, prefer nt_search, which both expands ambiguity and reports overlaps.

Reference (BioPython 1.83+):

python
import re
from Bio.SeqUtils import nt_search

target = 'AAGCGCGCGAA'

starts = [match.start(1) for match in re.finditer(r'(?=(GCGC))', target)]  # [2, 4]
hits = [(match.start(1), match.group(1)) for match in re.finditer(r'(?=([AG]CG[CT]))', target)]

result = nt_search(target, 'GCGC')  # ['GCGC', 2, 4]
pattern, positions = result[0], result[1:]

nt_search returns a heterogeneous list: result[0] is the (expanded) pattern string and result[1:] are the 0-based start positions. When there are no hits it returns just [pattern] (length 1), so test len(result) > 1 before indexing rather than truthiness.

Bio.motifs PWM / PSSM Pipeline

Goal: Build a probabilistic model from a set of aligned binding sites and score a target sequence for graded matches.

Approach: Create a motif from instances or a matrix file, set pseudocounts and background, read the recomputed PSSM, then scan. The count matrix m.counts['A', 0] is indexed [base, position].

Reference (BioPython 1.83+):

python
from Bio import motifs
from Bio.Seq import Seq

m = motifs.create([Seq('TACAA'), Seq('TACGA'), Seq('TACTA'), Seq('TGCAA')])  # alphabet defaults to ACGT

m.pseudocounts = 0.5        # set BEFORE reading m.pssm (see trap below)
m.background = None         # None gives uniform 0.25; or pass a dict of base frequencies

pwm = m.pwm                 # normalized frequencies (property)
pssm = m.pssm               # log2-odds vs background (property; RECOMPUTED on each access)

m.consensus                 # most frequent base per column
m.degenerate_consensus      # IUPAC-degenerate consensus

m.counts.normalize(pseudocounts=0.5) returns a position weight matrix and pwm.log_odds() returns a PSSM; these are equivalent to reading m.pwm / m.pssm after setting m.pseudocounts.

The Pseudocount / -inf Trap (silent)

A column where some base has count 0 gives that base frequency 0 and a log-odds of negative infinity; any target carrying that base at that position then scores -inf and is unmatchable. This is common with short motifs or few instances. Setting m.pseudocounts (a flat 0.5, or sqrt(N) with N the number of instances; scalar or per-base dict) makes every cell finite by shrinking toward background.

Critically, m.pssm is recomputed from m.pseudocounts and m.background on every access. Set both BEFORE reading m.pssm (or pwm.log_odds()), or the matrix is silently wrong.

Show full SKILL.md (467 more words)Show less
Score, Threshold, and P-value

pssm.calculate(seq) returns the log2-odds score in bits for each window (a relative likelihood, not a probability). pssm.search(seq, threshold=...) yields (position, score) pairs at or above the threshold.

To convert a bit score into a false-positive rate, build the null distribution and ask it for a threshold:

python
dist = pssm.distribution(background=m.background, precision=10**4)
threshold = dist.threshold_fpr(0.01)        # 1% false-positive rate
threshold = dist.threshold_fnr(0.1)         # 10% false-negative rate
threshold = dist.threshold_balanced(1000)   # rate_proportion = FNR:FPR ratio (FNR = FPR x rate_proportion), NOT a sequence length; default 1.0 gives FPR=FNR

Choosing a threshold "because it looks high" is the classic non-reproducible error. Higher precision gives finer threshold resolution at the cost of memory.

Both Strands

pssm.calculate scans only the strand it is handed. pssm.search defaults to both=True, scanning both strands in one call; with both=True a hit at negative position p lies on the reverse strand and its forward-coordinate start is len(seq) + p. To handle strands separately, set both=False and scan the reverse-complemented PSSM explicitly:

python
combined = list(pssm.search(seq, threshold=3.0))  # both strands; reverse hits have NEGATIVE positions

rc_pssm = pssm.reverse_complement()
forward = list(pssm.search(seq, threshold=3.0, both=False))
reverse = list(rc_pssm.search(seq, threshold=3.0, both=False))

Reading Motif Matrix Files

motifs.read(handle, fmt) reads exactly one motif; motifs.parse(handle, fmt) returns an iterator over many. The format string must match the file layout exactly.

fmt stringFile type / source
jasparmulti-motif JASPAR PFM collection (use parse)
pfmsingle JASPAR-style PFM (use read)
pfm-four-columnsCIS-BP, HOMER, HOCOMOCO (A C G T as columns)
pfm-four-rowsScerTF, YeTFaSCo (A C G T as rows)
sitesJASPAR sites file (use read)
memeMEME program output (use parse)
minimalMEME minimal text format
transfacTRANSFAC matrices
mast, alignace, clusterbuster, xmsrespective tool outputs

'cisbp', 'homer', and 'hocomoco' are NOT valid strings; those databases use pfm-four-columns. The four-columns versus four-rows distinction is the most common mix-up: a 4-column matrix read as pfm-four-rows parses without error but produces a meaningless transposed motif.

python
from Bio import motifs

with open('collection.jaspar') as handle:
    for m in motifs.parse(handle, 'jaspar'):
        print(m.matrix_id, m.name, m.consensus)

m.format('jaspar')      # serialize back out
m.format('transfac')

Common Motif Patterns

MotifPatternDescription
Start codonATGTranslation initiation
Kozak[AG]CCATGGEukaryotic translation initiation
TATA boxTATA[AT]A[AT]Core promoter element
GC box (Sp1)GGGCGGPromoter element
CAAT boxCCAATPromoter element
Poly-A signalAATAAAmRNA polyadenylation
E-box (bHLH)CA[ACGT]{2}TGbHLH TF binding

Common Errors

SymptomCauseFix
Count is too lowstr.count/re.findall skip overlapsre.finditer(r'(?=(motif))', seq) or nt_search
IndexError on nt_search resultNo hits returns [pattern] (length 1)Test len(result) > 1 before reading result[1:]
Every target scores -infCount-0 cell gives -inf log-oddsSet m.pseudocounts (0.5 or sqrt(N)) before reading m.pssm
PSSM scores look wrongPseudocounts/background set after reading m.pssmSet them first; m.pssm is recomputed on each access
Roughly half of sites missedOnly forward strand scannedScore pssm.reverse_complement() or pass both=True
Threshold not reproducibleCutoff chosen by eyepssm.distribution(...).threshold_fpr(fpr)
ValueError parsing matrixWrong fmt (4-column vs 4-row, jaspar vs pfm)Match fmt to the actual layout
No matchesCase or strand mismatch.upper() both; check reverse complement
  • seq-objects - Create Seq objects for searching
  • reverse-complement - Reverse-complement the target to search the opposite strand
  • transcription-translation - ORF and codon-context motifs in coding sequences
  • sequence-properties - GC content and per-sequence properties around hits
  • restriction-analysis/restriction-sites - Restriction enzyme recognition sites
  • chip-seq/motif-analysis - De novo motif discovery and enrichment in peak sets
  • database-access/entrez-fetch - Download motif matrices from JASPAR/NCBI

© GPTomics, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files in sequence-manipulation/motif-search of GPTomics/bioSkills.

  • SKILL.md
  • examples/basic_search.py
  • examples/motif_files.py
  • examples/pwm_search.py
  • examples/regex_search.py
  • usage-guide.md

Open the folder on GitHubat commit d91ed3d

Used in 1 other repository

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 GPTomics/bioSkills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Bio Motif Search 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.

Bio Motif Search compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Bio Motif Search this skillGPTomics/bioSkills1.2k1 repos~2.9kAutomated safety check: PassMIT
Bioconductor CageminerbioMate-AI/biomate-bioconductor-kb804—~1.3kAutomated safety check: PassCustom licence
Bio Chipseq Super EnhancersFreedomIntelligence/OpenClaw-Medical-Skills3.1k—~2.1kAutomated safety check: PassNone
Bio Chipseq Peak CallingFreedomIntelligence/OpenClaw-Medical-Skills3.1k—~2kAutomated safety check: PassNone
Alphagenome Single Variant Analysisgoogle-deepmind/science-skills3.2k2 repos~3kAutomated safety check: NotesApache-2.0
Edu Math Videowy51ai/edulab1.4k—~2.5kAutomated safety check: NotesApache-2.0

Similar skills

  • Bioconductor Cageminer

    bioMate-AI/biomate-bioconductor-kb

    This package aims to integrate GWAS-derived SNPs and coexpression networks to mine candidate genes associated with a particular phenotype.

    804 GitHub stars~1.3k tokensUpdated 3 mo ago
    Media & CreativeAuto-check passed
  • Bio Chipseq Super Enhancers

    FreedomIntelligence/OpenClaw-Medical-Skills

    Identifies super-enhancers from H3K27ac ChIP-seq data using ROSE and related tools.

    3.1k GitHub stars~2.1k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed
  • Bio Chipseq Peak Calling

    FreedomIntelligence/OpenClaw-Medical-Skills

    ChIP-seq peak calling using MACS3 (or MACS2). An agent skill from FreedomIntelligence/OpenClaw-Medical-Skills.

    3.1k GitHub stars~2k tokensUpdated 2 mo ago
    Media & CreativeAuto-check passed
  • 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.

    3.2k GitHub starsUsed in 2 repos~3k tokens
    Research & ScienceAuto-check: notes
  • Edu Math Video

    wy51ai/edulab

    A skill your agent uses when asked to make an explainer / walkthrough video (讲解视频、解题视频、例题精讲、微课) for a math problem (数学题, geometry, algebra, functions, motion/行程 problems), from a problem screenshot…

    1.4k GitHub stars~2.5k tokensUpdated yesterday
    Media & CreativeAuto-check: notes
  • Transcribe

    JetBrains/skills

    Official

    Transcribe audio files to text with optional diarization and known-speaker hints.

    366 GitHub starsUsed in 4 repos~776 tokens
    Media & CreativeAuto-check passed

More from GPTomics/bioSkills

All 559 skills in this repo
  • Bio Alignment Io

    GPTomics/bioSkills

    Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO.

    1.2k GitHub starsUsed in 3 repos~4.9k tokens
    Auto-check passed
  • bioSkills Installer

    GPTomics/bioSkills

    Installs the bioSkills collection of 425 bioinformatics skills in one step, or only chosen categories, so sequencing, RNA-seq, single-cell and variant tasks get specialized help.

    1.2k GitHub starsUsed in 1 repo~789 tokens
    Auto-check passed
  • Bio Write Sequences

    GPTomics/bioSkills

    Write biological sequences to files (FASTA, FASTQ, GenBank, EMBL) using Biopython Bio.SeqIO.

    1.2k GitHub starsUsed in 3 repos~2.1k tokens
    Auto-check passed
  • Amplicon Primer Clipping

    GPTomics/bioSkills

    Soft- or hard-clips PCR primer footprints from aligned amplicon BAMs so primer bases stop masquerading as confirmed reference sequence.

    1.2k GitHub starsUsed in 2 repos~2.2k tokens
    Auto-check passed
  • Filters BAM alignments by FLAG bits, mapping quality and regions with samtools view or pysam, with recipes for common keep and drop cases.

    1.2k GitHub starsUsed in 2 repos~3.6k tokens
    Auto-check passed
  • Bio Alignment Indexing

    GPTomics/bioSkills

    Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam.

    1.2k GitHub starsUsed in 2 repos~2.4k tokens
    Auto-check passed

Works with

Questions about Bio Motif Search

What does Bio Motif Search do?

Find sequence motifs, degenerate IUPAC patterns, and transcription-factor binding sites in DNA/RNA using Biopython and regex, including position weight matrix (PWM/PSSM) scoring. Bio Motif Search is an agent skill from GPTomics/bioSkills. Find sequence motifs, degenerate IUPAC patterns, and transcription-factor binding sites in DNA/RNA using Biopython and regex, including position weight matrix (PWM/PSSM) scoring.

When should I use Bio Motif Search?

Bio Motif Search fits situations like: locating regulatory elements; counting overlapping motif occurrences; scanning for binding-site matches above a significance threshold; reading motif matrices from JASPAR/MEME/TRANSFAC files.

How do I install Bio Motif Search in Claude Code?

Run `npx skills add GPTomics/bioSkills --skill bio-motif-search -a claude-code`. Or copy the skill folder (sequence-manipulation/motif-search in GPTomics/bioSkills) into .claude/skills/bio-motif-search in your project. Claude Code loads it when a task matches its description.

How do I install Bio Motif Search in Codex?

Run `npx skills add GPTomics/bioSkills --skill bio-motif-search -a codex`. Or copy the skill folder (sequence-manipulation/motif-search in GPTomics/bioSkills) into .agents/skills/bio-motif-search in your project. Codex loads it when a task matches its description.

Can I use Bio Motif Search in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add GPTomics/bioSkills --skill bio-motif-search -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bio-motif-search, .gemini/skills/bio-motif-search, .github/skills/bio-motif-search and .opencode/skills/bio-motif-search in your project.

What does Bio Motif Search need to run?

Going by SKILL.md and its folder, Bio Motif Search needs Python for the scripts in its folder and the command-line tools its instructions call (pip). Our summary lists: Python 3.

Does Bio Motif Search access the network?

SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Bio Motif Search safe to install?

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.

What licence does Bio Motif Search use?

Bio Motif Search is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Bio Motif Search use?

About 2.9k 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.

What are the alternatives to Bio Motif Search?

Skills that share tags, products or a category with Bio Motif Search: Bioconductor Cageminer (bioMate-AI/biomate-bioconductor-kb, 804 stars), Bio Chipseq Super Enhancers (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars), Bio Chipseq Peak Calling (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars) and Alphagenome Single Variant Analysis (google-deepmind/science-skills, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Bio Motif Search?

GPTomics (a GitHub organization) maintains it in GPTomics/bioSkills, which has 1,218 GitHub stars. The repository holds 559 skills in this directory. The repository was last updated on August 15, 2026.

Source: GPTomics/bioSkills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.