Alphafold Database Fetch And Analyze
google-deepmind/science-skills
Retrieve and analyze AlphaFold predicted structures for a protein.
Best practices for protein structure refinement and validation in Coot.
$ npx skills add pemsley/coot --skill coot-refinement -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pemsley/coot coot-refinement --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/pemsley/coot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/mcp/docs/skills/refinement .claude/skills/coot-refinement && 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 "coot-refinement" agent skill from https://github.com/pemsley/coot/tree/main/mcp/docs/skills/refinement into .claude/skills/coot-refinement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coot-refinement", 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/pemsley/coot/tree/main/mcp/docs/skills/refinementType 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 pemsley/coot --skill coot-refinement -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pemsley/coot coot-refinement --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pemsley/coot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/mcp/docs/skills/refinement .agents/skills/coot-refinement && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "coot-refinement" agent skill from https://github.com/pemsley/coot/tree/main/mcp/docs/skills/refinement into .agents/skills/coot-refinement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coot-refinement", 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 pemsley/coot --skill coot-refinement -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pemsley/coot coot-refinement --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pemsley/coot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/mcp/docs/skills/refinement .cursor/skills/coot-refinement && 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 "coot-refinement" agent skill from https://github.com/pemsley/coot/tree/main/mcp/docs/skills/refinement into .cursor/skills/coot-refinement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coot-refinement", 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/pemsley/coot.git --path mcp/docs/skills/refinement--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 pemsley/coot --skill coot-refinement -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pemsley/coot coot-refinement --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pemsley/coot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/mcp/docs/skills/refinement .gemini/skills/coot-refinement && 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 "coot-refinement" agent skill from https://github.com/pemsley/coot/tree/main/mcp/docs/skills/refinement into .gemini/skills/coot-refinement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coot-refinement", 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 pemsley/coot coot-refinementInstalls 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 pemsley/coot --skill coot-refinement -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pemsley/coot.git skills-src && mkdir -p .github/skills && cp -r skills-src/mcp/docs/skills/refinement .github/skills/coot-refinement && 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 "coot-refinement" agent skill from https://github.com/pemsley/coot/tree/main/mcp/docs/skills/refinement into .github/skills/coot-refinement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coot-refinement", 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 pemsley/coot --skill coot-refinement -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pemsley/coot coot-refinement --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pemsley/coot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/mcp/docs/skills/refinement .opencode/skills/coot-refinement && 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 "coot-refinement" agent skill from https://github.com/pemsley/coot/tree/main/mcp/docs/skills/refinement into .opencode/skills/coot-refinement/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coot-refinement", 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.
coot-refinementBest practices for protein structure refinement and validation in Coot.
Coot Refinement is an agent skill from pemsley/coot. Best practices for protein structure refinement and validation in Coot. Use when performing (1) Residue refinement operations, (2) Model building and fitting, (3) Rotamer fixing, (4) Scripted/automated refinement workflows, (5) Validation and correlation checking.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Research & Science, covering Protein structure and design. The repository describes itself as: Software for macromolecular model-building. The licence is GPL-3.0.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6e3c026. 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.
No URLs in SKILL.md.
From 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.
Coot Refinement loads about 2k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 568 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 pemsley/coot at commit 6e3c026, republished under its GPL-3.0 licence (© pemsley). 568 words, ~1,984 tokens.
.claude/skills/coot-refinement/SKILL.md (or your agent's skills folder).This skill provides guidance for effective and safe structure refinement in Coot, based on lessons learned from crashes and workflow optimization.
ALWAYS call these two before any refinement operations in scripts:
coot.set_refinement_immediate_replacement(1)
# Makes refinement synchronous — results are committed immediately.
coot.set_imol_refinement_map(imol_map)
# Tells Coot which map to refine against.
# CRITICAL: without this, refine_residues_py() silently fails (returns -2 with no atoms moved).
# Call once per session, or whenever the active map changes.Why: Enables synchronous operation where refinement directly updates coordinates. Without this:
coot.set_refinement_immediate_replacement() before using refinement functions (just once is enough)
which should remove the risk of threading conflicts and crashes, race conditions between refinement and rendering.When to use: Any time you're scripting refinement operations (refine_residues_py, refine_zone, etc.)
coot.set_refinement_immediate_replacement(1)
coot.set_imol_refinement_map(imol_map)
residue_specs = [["A", resno, ""] for resno in range(start_resno, end_resno + 1)] result = coot.refine_residues_py(imol, residue_specs)
central_residue_spec = ['A', 12, ''] neigbs = coot.residues_near_residue_py(imol, central_residue_spec) residue_spec = neigbs residue_specs.append(central_residue_spec) result = coot.refine_residues_py(imol, residue_specs)
Some problems are of the kind where the geometry restraints "get in the way" of the atoms moving to the correct minimum. In such cases, you can try letting the refinement "go soft" - ie.
o Mediocre Refinement o increase the map weight (weight_matrix) by a factor of 10 or so. o Refine the same residues again o Restore the previous map weight o Refine the same residues again
This can sometimes be helpful to remove bad geometry or bad fit - atom clashes in particular.
Additionally, or perhaps at the same time, you can try to reduce LJ epsilon using coot.set_refinement_lennard_jones_epsilon() by a factor of 100 or so. And then restore it and re-refine the same residues.
# Enable immediate replacement
coot.set_refinement_immediate_replacement(1)
# Refine zone
coot.refine_zone(
imol,
chain_id,
start_resno,
end_resno,
"" # alt conf
)# Get density correlation for specific residue
correlation = coot.density_correlation_analysis_scm(imol, chain_id, resno, ins_code)
# Returns dict with 'all-atom' and 'side-chain' correlations
# Get worst residues
worst = coot.get_n_residues_with_worst_density_fit(imol, n_residues)
# Returns list of [chain_id, resno, inscode, correlation]Good fit:
Poor fit (needs attention):
Problem: Rapid-fire refinement operations while graphics are rendering can cause memory corruption in GTK rendering pipeline.
Symptoms:
nanov2_guard_corruption_detected
gdk_gl_texture_new_from_builder
gtk_gl_area_snapshotSolution: Use set_refinement_immediate_replacement(1) for synchronous operation
refine_residues_py() returns ['', status, lights] where status is a GSL minimiser code:
GSL_SUCCESS): converged — done.GSL_CONTINUE): not yet converged — call refine_residues_py() again (once or twice more as needed).GSL_ENOPROG): no progress — stop, refinement is stuck.# Correct pattern for robust refinement:
for _ in range(3):
result = coot.refine_residues_py(imol, residue_specs)
if result and result[1] != -2:
break
lights = result[2] if result else []Coot only returns values if code is a single line:
Doesn't work:
x = 5
y = 10
x + y # Won't return valueWorkaround:
# Call 1: Define function
def calculate():
x = 5
y = 10
return x + y
# Call 2: Execute function
calculate() # Returns 15# 1. Enable immediate replacement
coot.set_refinement_immediate_replacement(1)
# 2. Find worst residues
worst = coot.get_n_residues_with_worst_density_fit(0, 10)
# 3. For each poor residue:
for residue in worst:
chain_id, resno, inscode, corr = residue
# Build CID
cid = f"//{chain_id}/{resno}"
# Try rotamer fix
coot.auto_fit_best_rotamer(cid, "", 0, 1, 1, 0.1)
# Refine in context
coot.refine_residues_using_atom_cid(0, cid, "SPHERE", 4000)
# Check improvement
new_corr = coot.density_correlation_analysis_scm(0, chain_id, resno, inscode)
print(f"{cid}: {corr:.3f} → {new_corr['all-atom']:.3f}")When adding residues in a known secondary structure conformation (e.g. a helix
or strand), use set_secondary_structure_restraints_type() to maintain that
geometry during real-space refinement. Without this, refine_residues_py()
treats residues independently and the conformation can distort away from the
intended geometry if the density doesn't strongly support it.
0 — no restraints (default)1 — alpha helix (restrains i→i+4 hydrogen bond geometry)2 — beta strand# Set BEFORE refinement
coot.set_secondary_structure_restraints_type(1) # 1 = alpha helix
coot.refine_residues_py(imol, residue_specs)
# Reset AFTER refinement - critical, or all subsequent refinements
# will use helix restraints unintentionally
coot.set_secondary_structure_restraints_type(0)coot.set_refinement_immediate_replacement(1)
coot.set_secondary_structure_restraints_type(1)
residue_specs = [["A", resno + i, ""] for i in range(6)]
coot.refine_residues_py(imol, residue_specs)
coot.set_secondary_structure_restraints_type(0)Calling refine_residues_py() directly after building helical residues
without setting the restraint type — the helix geometry will not be
maintained during refinement.
auto_fit_best_rotamer(cid, alt_conf, imol, imol_map, use_rama, rama_weight) - Fix rotamerrefine_residues_using_atom_cid(imol, cid, mode, radius) - Sphere/zone refinementrefine_zone(imol, chain, start, end, alt_conf) - Refine residue rangeset_refinement_immediate_replacement(istate) - Enable synchronous refinementdensity_correlation_analysis_scm(imol, chain, resno, inscode) - Get correlationget_n_residues_with_worst_density_fit(imol, n) - Find problem residuespepflip(imol, atom_cid, alt_conf) - Flip peptide© pemsley, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in mcp/docs/skills/refinement of pemsley/coot.
Open the folder on GitHubat commit 6e3c026
Coot Refinement 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 |
|---|---|---|---|---|---|---|
| Coot Refinement this skillpemsley/coot | 168 | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| Alphafold Database Fetch And Analyzegoogle-deepmind/science-skills | 3.2k | 2 repos | ~1.2k | Automated safety check: Pass | Apache-2.0 | |
| Alphafoldadaptyvbio/protein-design-skills | 163 | 4 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Bindcraftadaptyvbio/protein-design-skills | 163 | 4 repos | ~1.3k | Automated safety check: Pass | MIT | |
| Pymol VisualizationChatMol/ChatMol | 372 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Complexa Binder DesignNVIDIA-BioNeMo/bionemo-agent-toolkit | 478 | — | ~3.1k | Automated safety check: Notes | Apache-2.0 |
google-deepmind/science-skills
Retrieve and analyze AlphaFold predicted structures for a protein.
adaptyvbio/protein-design-skills
Validate protein designs using AlphaFold2 structure prediction.
adaptyvbio/protein-design-skills
End-to-end binder design using BindCraft hallucination. An agent skill from adaptyvbio/protein-design-skills.
ChatMol/ChatMol
Generate publication-quality molecular visualization images using PyMOL.
NVIDIA-BioNeMo/bionemo-agent-toolkit
Run a complete protein binder design campaign with NVIDIA Proteina-Complexa: resolve a target structure and hotspots from a name/sequence/PDB, co-design binder sequence+structure with reward-guided…
adaptyvbio/protein-design-skills
All-atom protein design using BoltzGen diffusion model. An agent skill from adaptyvbio/protein-design-skills.
pemsley/coot
Create interactive inline Chart.js graphs directly in the chat from live Coot data.
pemsley/coot
RDKit molecular manipulation and visualization within Coot's Python environment.
pemsley/coot
API documentation to be loaded at startup - when starting a Coot session, immediately call getfunctiondescriptions() with the functions listed in this skill.
pemsley/coot
Best practices for creating publication-quality molecular graphics figures in Coot using user-defined colors, ribbons, and molecular representations
pemsley/coot
Best Practices for Model-Building Tools and Refinement. An agent skill from pemsley/coot.
pemsley/coot
Comprehensive structure validation combining model-to-map analysis and unmodeled density detection
Categories
Best practices for protein structure refinement and validation in Coot. Coot Refinement is an agent skill from pemsley/coot. Best practices for protein structure refinement and validation in Coot.
Coot Refinement fits situations like: residue refinement operations; model building and fitting; scripted/automated refinement workflows; validation and correlation checking.
Run `npx skills add pemsley/coot --skill coot-refinement -a claude-code`. Or copy the skill folder (mcp/docs/skills/refinement in pemsley/coot) into .claude/skills/coot-refinement in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pemsley/coot --skill coot-refinement -a codex`. Or copy the skill folder (mcp/docs/skills/refinement in pemsley/coot) into .agents/skills/coot-refinement 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 pemsley/coot --skill coot-refinement -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coot-refinement, .gemini/skills/coot-refinement, .github/skills/coot-refinement and .opencode/skills/coot-refinement in your project.
SKILL.md names no scripts, command-line tools or credentials: Coot Refinement is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Coot Refinement is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 7.9k 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 Coot Refinement: Alphafold Database Fetch And Analyze (google-deepmind/science-skills, 3.2k stars), Alphafold (adaptyvbio/protein-design-skills, 163 stars), Bindcraft (adaptyvbio/protein-design-skills, 163 stars) and Pymol Visualization (ChatMol/ChatMol, 372 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pemsley (a GitHub user) maintains it in pemsley/coot, which has 168 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 7, 2026.
Source: pemsley/coot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.