protein-sequence-msa — Claude Code skill: what it does, how to install
Runs multiple sequence alignment for protein sequences via EBI Clustal Omega. Helps evaluate sequence similarity, domain conservation, and key residue preservation.
npx skills add google-deepmind/science-skills --skill protein-sequence-msa -a claude-code
npx skills add google-deepmind/science-skills --skill protein_sequence_msa -a claude-codeWhat protein-sequence-msa does
The skill takes a FASTA file containing two or more protein sequences and sends them to the EBI Clustal Omega service. It generates a global alignment file saved locally for further analysis. You can use it to inspect conserved domains or functional catalytic sites across protein variants. Limits are strict. It handles up to 4000 sequences and a 4 MB file size. It cannot align DNA or RNA, and it is not meant for database homology searches like BLAST or MMseqs2.
All runs go through scripts/msa_align.py via uv run. The script automatically handles EBI rate limits to avoid blocked requests. It also computes specific metrics: sequence coverage, global identity, overlap identity, or full conservation indices.
You must install uv on your PATH before running the skill. The wrapper also requires a .env file in your home directory with your USER_EMAIL for EBI job tracking. Without that email configured, the alignment script refuses to dispatch tasks.
What it helps with
- align multiple protein sequences from FASTA files
- measure pairwise sequence identity and conservation indices
- track functional residue preservation across homologous proteins
- execute EBI Clustal Omega jobs while respecting API rate limits
Example prompts for the agent
- Align the protein sequences in proteins.fasta and save the output to alignment.aln.
- Check the conservation of catalytic residues across the sequences in input.fasta using Clustal Omega.
- Calculate pairwise overlap identity for the sequences in kinase_set.fasta.
How to install protein-sequence-msa
1Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill protein-sequence-msa -a claude-codenpx skills add google-deepmind/science-skills --skill protein_sequence_msa -a claude-code2Manually: put the files in place
~/.claude/skills/protein_sequence_msa/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/protein_sequence_msa/
1Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill protein_sequence_msa -a codex2Manually: put the files in place
.agents/skills/protein_sequence_msa/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill protein_sequence_msa -a cursor2Manually: put the files in place
.cursor/skills/protein_sequence_msa/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install google-deepmind/science-skills protein_sequence_msa2Manually: put the files in place
.github/skills/protein_sequence_msa/SKILL.md1Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill protein_sequence_msa -a gemini-cli2Platform CLI
gemini skills install https://github.com/google-deepmind/science-skills --path skills/protein_sequence_msaManually: put the files in place
.devin/skills/protein_sequence_msa/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add google-deepmind/science-skills --skill protein_sequence_msa -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about protein-sequence-msa
How to install protein-sequence-msa in Claude Code?
Run npx skills add google-deepmind/science-skills --skill protein-sequence-msa -a claude-code in your terminal.
What does protein-sequence-msa do?
It runs multiple sequence alignment on protein FASTA inputs through EBI Clustal Omega. The skill saves the local alignment file and extracts metrics like sequence coverage and conservation index.
What prerequisites are required for protein-sequence-msa?
You need uv installed on your PATH and a .env file in your home directory containing USER_EMAIL for EBI job tracking. Workspace terms are recorded in .licenses/protein_sequence_msa_LICENSE.txt on first run.
Source text
SKILL.md · Apache-2.0
---
name: protein-sequence-msa
description: >
Performs multiple sequence alignment of proteins with EBI Clustal Omega.
Use when you need to align multiple sequences to assess similarity, domain
conservation, or key residue conservation. Supports up to 4000 sequences and
a maximum file size of 4 MB. Do not use to search for homologous proteins in
a database (use MMseqs2, BLAST), align non-protein sequences (DNA, RNA),
perform structural alignment (use Foldseek, PyMOL), or if you only have a
single sequence.
---
## Prerequisites
1. **`uv`**: Read the `uv` skill and follow its Setup instructions to ensure
`uv` is installed and on PATH.
2. **User Notification**: If .licenses/protein_sequence_msa_LICENSE.txt does
not already exist in the workspace root directory then (1) prominently
notify the user to check the terms at
https://www.ebi.ac.uk/jdispatcher/msa/clustalo and
https://www.ebi.ac.uk/about/terms-of-use/, then (2) create the file
recording the notification text and timestamp.
3. **`.env` file**: Make sure the `.env` file exists in your home directory.
Create one if it does not exist.
4. **`USER_EMAIL`**: Required by the wrapper script for Clustal Omega job
tracking (recommended by the EBI). You **MUST** use the safe credentials
protocol in the `credentials` skill to check for and request this credential
if this skill looks relevant to the user's request.
## Core Rules
- **Use the Wrapper**: ALWAYS execute the alignment using
`scripts/msa_align.py` rather than writing your own curl or custom Python
requests. The script automatically enforces the required rate limit to
respect EBI's Terms of Use.
- **Notification**: If this skill is used, ensure this is mentioned in the
output.
* **Always state the method:** Every report must clearly state that the
alignment was performed using **EBI Clustal Omega**.
- **No Hallucinations**: Do NOT invent alignments or conservation metrics.
Report only what is present in the alignment file.
## Goal
Take a file containing multiple protein sequences in FASTA format, perform
multiple sequence alignment using the EBI Clustal Omega API, save the resulting
alignment locally for future programmatic analysis, and interpret the results
towards addressing the user's specific research objective (e.g., assessing
similarity, identifying conserved domains, or analyzing key residues).
## Instructions
1. **Prepare Input File:** The input must be a plain text file containing two
or more protein sequences in FASTA format. Each sequence header must start
with a `>` symbol. Example:
```
>Sequence_1_Name
MQIFVKTLTGKTITLEVEPSDTIENVKAKIQDKEGIPPDQ
QRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRGG
>Sequence_2_Name
MQIFVKTLTGKTITLEVEPSDTIENVKAKIQDKEGIPPDQ
QRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRGG
```
2. **Execute Alignment:** Run the alignment script:
```bash
uv run scripts/msa_align.py <INPUT_FASTA> -o <OUTPUT_FILE>
```
Always specify the output file with `-o` or `--output`.
3. **Interpret and Report Results:** Analyze the Clustal Omega alignment by
selecting metrics and mapping strategies aligned with the research
objective. Note that while Clustal Omega produces a Global Alignment,
pairwise metrics can be extracted to evaluate specific relationships within
the set:
* **Identity Metric Options:** The choice of denominator determines how
insertions/deletions (gaps) affect the final percentage. Select the most
appropriate calculation based on the biological context:
* **Pairwise - Sequence Coverage:** `(Identical Residue Matches) /
(Length of Shorter Sequence)`. Use when determining if a specific
domain or fragment is fully preserved within a larger protein. This
ignores gaps in the longer sequence, focusing purely on the
"content" of the shorter one.
* **Pairwise - Global Identity:** `(Identical Residue Matches) /
(Total Alignment Columns)`. Use when comparing full-length sequences
of similar expected length. This is the most conservative metric; it
penalizes for all gaps (indels) introduced by any sequence in the
MSA.
* **Pairwise - Overlap Identity:** `(Identical Residue Matches) /
(Total Alignment Columns - Terminal Gaps)`. Use when comparing a
fragment to a full-length protein or when sequences have long
unaligned "tails." This focuses on similarity only where the
sequences physically overlap.
* **Multisequence - Conservation Index:** `(Fully Conserved Columns) /
(Total Alignment Columns)`. Use for quantifying the percentage of
residues that are 100% identical across the entire alignment set.
This identifies the core evolutionary signature of the protein
family.
* **Feature Mapping:** Leverage known biological data from specific
sequences to ground the analysis:
* **Knowledge Gathering:** Identify relevant known sites or regions
(e.g., catalytic residues, binding motifs) from your input or via
external tools.
* **Coordinate Projection:** Map these features onto the corresponding
Column Indices of the alignment.
* **Targeted Discussion:** Use these columns to drive the assessment:
* **Local Conservation:** Analyze if the known functional residues
are invariant across the set.
* **Region-Specific Metrics:** Calculate identity/similarity
specifically within the mapped functional regions rather than
the whole sequence.
* **Goal Contribution:** Discuss how this data contributes to your
goal, e.g. using conservation to corroborate a prediction or
divergence to reject a functional hypothesis.
## References
- Multiple Sequence Alignment: https://www.ebi.ac.uk/jdispatcher/msa/clustalo
© google-deepmind · Apache-2.0 · google-deepmind/science-skills