Professional protein sequence quality control and visualization workflow. Includes complete QC pipeline (length filter, CD-HIT, complexity check, motif verif...
---
name: protein-sequence-qc-pro
description: Professional protein sequence quality control and visualization workflow. Includes complete QC pipeline (length filter, CD-HIT, complexity check, motif verification, MSA, trimming), conservation/coevolution analysis, and Nature-style publication-ready figures. Based on multi-source IRED dataset analysis (3,365 β 1,531 sequences).
version: 5.0.0
metadata:
openclaw:
requires:
bins: ["cd-hit", "mafft", "trimal", "python3"]
install:
- id: cd-hit
kind: conda
package: cd-hit
channel: bioconda
bins: ["cd-hit"]
label: "Install CD-HIT (conda)"
- id: mafft
kind: conda
package: mafft
channel: bioconda
bins: ["mafft"]
label: "Install MAFFT (conda)"
- id: trimal
kind: conda
package: trimal
channel: bioconda
bins: ["trimal"]
label: "Install trimAl (conda)"
- id: biopython
kind: pip
package: biopython
label: "Install Biopython (pip)"
- id: matplotlib
kind: pip
package: matplotlib
label: "Install Matplotlib (pip)"
- id: numpy
kind: pip
package: numpy
label: "Install NumPy (pip)"
---
# Protein Sequence Quality Control Pro
**Version:** 5.0.0
**Created:** 2026-05-08
**Purpose:** Professional protein sequence QC with publication-ready figures
## π― Quick Start
This skill provides a complete, battle-tested quality control workflow for protein sequence analysis, with automatic generation of Nature-style publication-ready figures.
**Key Features:**
- β
Complete QC pipeline (3,365 β 1,531 sequences)
- β
Conservation & coevolution analysis
- β
12+ publication-ready figures (Nature style)
- β
Automatic quality assessment
- β
PDF + PNG output for papers
**Use this skill when:**
- Analyzing protein families for publication
- Need publication-ready figures
- Preparing data for phylogenetic analysis
- Require strict quality control standards
---
## π Complete QC Pipeline
### Pipeline Overview
```
Raw sequences (3,365)
β [Length filter: 200-500 aa]
2,963 sequences (88.1%)
β [CD-HIT 90% redundancy removal]
1,531 sequences (45.5%)
β [Complexity check: entropy β₯ 2.0]
1,531 sequences (100%)
β [Motif verification: Rossmann fold]
1,531 sequences (67.7% coverage)
β [MAFFT alignment: --localpair]
1,928 columns
β [trimAl: -automated1]
164 columns (8.5%)
β [Quality assessment]
β [Conservation analysis: 8 sites]
β [Coevolution analysis: Top 50 pairs]
β [Generate 12+ figures]
β
Publication-ready dataset
```
---
## π Usage
### Basic Usage
```bash
# Run complete QC pipeline
python3 scripts/run_complete_qc.py \
--input raw_sequences.fasta \
--output qc_results/ \
--threads 8
# Generate all figures
python3 scripts/generate_all_figures.py \
--analysis qc_results/analysis/ \
--output figures/
```
### Advanced Usage
```bash
# Custom QC parameters
python3 scripts/run_complete_qc.py \
--input raw_sequences.fasta \
--output qc_results/ \
--min-length 200 \
--max-length 500 \
--cdhit-threshold 0.90 \
--complexity-threshold 2.0 \
--threads 8
# Generate Nature-style figures only
python3 scripts/generate_nature_figures.py \
--analysis qc_results/analysis/ \
--output figures/nature/
```
---
## π Generated Figures
### Figure Set 1: QC Pipeline (4 figures)
1. **qc_pipeline.png** - Complete QC flow diagram
2. **length_distribution_comparison.png** - Before/after length distribution
3. **alignment_quality.png** - Coverage and gap ratio assessment
4. **dataset_comparison.png** - Small vs large dataset comparison
### Figure Set 2: Conservation Analysis (3 figures)
5. **conservation_quality.png** - Gap ratio and entropy for conserved sites
6. **conservation_landscape.png** - Conservation across alignment
7. **figure_nature_01_conservation_landscape.png** - Nature-style 3-panel figure β
### Figure Set 3: Coevolution Analysis (2 figures)
8. **coevolution_network.png** - Network graph of top coevolving pairs
9. **coevolution_heatmap.png** - Heatmap of MI values
### Figure Set 4: Application to Specific Enzyme (3 figures)
10. **ir08_conserved_sites.png** - Conserved sites on sequence
11. **ir08_functional_regions.png** - Functional regions annotation
12. **ir08_mapping.png** - Mapping of conserved/coevolving sites
13. **mutation_priority.png** - Experimental priority ranking
---
## π¨ Nature-Style Figures
All figures follow Nature journal standards:
- β
**Size:** 7.08 inch (single column) or 14.17 inch (double column)
- β
**Resolution:** 300 DPI
- β
**Font:** Arial 8pt
- β
**Format:** PNG + PDF
- β
**Color scheme:** Nature-recommended palette
- β
**Labels:** a, b, c for multi-panel figures
### Example: Conservation Landscape (Nature style)
```python
# Generate Nature-style conservation landscape
python3 scripts/generate_nature_conservation_landscape.py \
--analysis qc_results/analysis/ \
--output figures/
```
**Output:**
- `figure_nature_01_conservation_landscape.png` (300 DPI)
- `figure_nature_01_conservation_landscape.pdf` (vector)
**Figure panels:**
- **a)** Gap ratio distribution
- **b)** Normalized entropy
- **c)** Functional annotations (conserved + coevolving sites)
---
## π Quality Metrics
### Alignment Quality Standards
| Metric | Excellent | Good | Acceptable | Poor |
|--------|-----------|------|------------|------|
| **Gap ratio** | < 20% | 20-30% | 30-40% | > 40% |
| **Sequence identity** | 40-60% | 30-70% | 20-80% | < 20% or > 80% |
| **Coverage** | > 85% | 80-85% | 75-80% | < 75% |
| **Conserved sites** | > 10 | 5-10 | 3-5 | < 3 |
### Our Results (1,531 sequences)
- β
Gap ratio: **16.1%** (Excellent)
- β
Sequence identity: **20.3%** (Acceptable - high diversity)
- β
Coverage: **84.0%** (Good)
- β
Conserved sites: **8** (Good)
- β
Coevolving pairs: **50** (Excellent)
---
## π¬ Conservation Analysis
### Method: Shannon Entropy
**Formula:**
```
H = -Ξ£(p_i * log2(p_i))
H_norm = H / log2(20)
```
**Classification:**
- **Highly conserved:** H_norm < 0.3
- **Moderately conserved:** 0.3 β€ H_norm < 0.6
- **Variable:** H_norm β₯ 0.6
### Quality Check
**Important:** Always check Gap ratio for conserved sites!
```python
# Check conserved sites quality
for site in conserved_sites:
if site['gap_ratio'] > 0.5:
print(f"β οΈ Site {site['position']} has high gap ({site['gap_ratio']:.1%})")
```
**High-quality conserved sites:**
- Gap ratio < 10%
- Entropy < 0.3
- Present in > 90% of sequences
---
## π Coevolution Analysis
### Method: Mutual Information (MI)
**Formula:**
```
MI(X,Y) = H(X) + H(Y) - H(X,Y)
```
**Filtering criteria:**
1. β
Gap ratio < 50% for both positions
2. β
Minimum 50 paired sequences
3. β
Distance > 5 residues (avoid local correlations)
### Interpretation
**High MI (> 1.0):**
- Strong coevolution
- Likely functional coupling
- Candidates for double mutation experiments
**Example from IRED analysis:**
- **Position 63-84:** MI = 1.286 (Top 1)
- **Position 62-63:** MI = 1.279 (Top 2)
- **Position 63-67:** MI = 1.253 (Top 3)
**Conclusion:** Position 63 is a hub β likely catalytic center
---
## 𧬠Application to New Sequences
### Map conserved sites to your enzyme
```python
# Example: Map to IR08 enzyme
python3 scripts/map_conserved_sites.py \
--reference qc_results/analysis/ \
--query IR08.fasta \
--output IR08_mapping.json
# Generate figures
python3 scripts/generate_enzyme_figures.py \
--mapping IR08_mapping.json \
--output figures/IR08/
```
**Output figures:**
- Conserved sites distribution
- Functional regions annotation
- Mutation priority ranking
---
## π Output Structure
```
qc_results/
βββ sequences/
β βββ 01_length_filtered.fasta
β βββ 02_cdhit_90.fasta
β βββ 03_complexity_checked.fasta
β βββ 04_motif_checked.fasta
βββ alignment/
β βββ 05_aligned.fasta
β βββ 06_trimmed.fasta
βββ analysis/
β βββ alignment_analysis.json
β βββ gap_ratios.json
β βββ highly_conserved_positions.txt
β βββ coevolution_analysis.json
β βββ coevolution_top50.csv
βββ logs/
β βββ qc_analysis_YYYYMMDD_HHMMSS.log
β βββ mafft.log
βββ figures/
βββ qc_pipeline.png
βββ conservation_quality.png
βββ coevolution_network.png
βββ figure_nature_01_conservation_landscape.png
βββ figure_nature_01_conservation_landscape.pdf
βββ ... (12+ figures)
```
---
## β οΈ Important Notes
### 1. Gap Ratio is Critical
**Always check gap ratio for conserved sites!**
β **Bad example:**
```
Position 5: Gap 99.9%, Entropy 0.000
β This is NOT a real conserved site!
```
β
**Good example:**
```
Position 8: Gap 2.2%, Entropy 0.012
β This is a high-quality conserved site!
```
### 2. Use Original Tools
**Required:**
- β
CD-HIT (not Python implementation)
- β
MAFFT (not Clustal Omega)
- β
trimAl (not manual trimming)
**Why:** These tools are battle-tested and widely accepted in publications.
### 3. Separate stdout and stderr for MAFFT
```bash
# β
Correct
mafft --localpair input.fasta 1> output.fasta 2> mafft.log
# β Wrong (output contaminated)
mafft --localpair input.fasta > output.fasta
```
---
## π Best Practices
### 1. Quality Control Checklist
- [ ] Length filter (200-500 aa for most proteins)
- [ ] CD-HIT redundancy removal (90% threshold)
- [ ] Complexity check (entropy β₯ 2.0)
- [ ] Motif verification (coverage > 50%)
- [ ] MAFFT alignment (--localpair for accuracy)
- [ ] trimAl trimming (-automated1)
- [ ] Gap ratio < 30%
- [ ] Sequence identity 40-60% (ideal)
- [ ] Coverage > 80%
### 2. Conservation Analysis Checklist
- [ ] Shannon entropy calculated
- [ ] Gap ratio checked for each conserved site
- [ ] High-gap sites (>50%) flagged
- [ ] Conserved sites visualized
### 3. Coevolution Analysis Checklist
- [ ] Gap ratio < 50% for both positions
- [ ] Minimum 50 paired sequences
- [ ] Distance > 5 residues
- [ ] Top pairs validated (no high-gap positions)
- [ ] Hub positions identified
### 4. Figure Generation Checklist
- [ ] All figures generated (12+)
- [ ] Nature-style figures included
- [ ] PDF versions for publication
- [ ] Figure captions written
- [ ] Figures inserted into documents
---
## π References
### Methods
1. **CD-HIT:** Fu et al. (2012) Bioinformatics
2. **MAFFT:** Katoh & Standley (2013) Mol Biol Evol
3. **trimAl:** Capella-GutiΓ©rrez et al. (2009) Bioinformatics
4. **Mutual Information:** Cover & Thomas (2006) Elements of Information Theory
### Applications
1. **IRED enzyme family:** Multi-source dataset (3,365 β 1,531 sequences)
2. **Conservation analysis:** 8 highly conserved sites identified
3. **Coevolution analysis:** 50 significant pairs (MI > 0.5)
4. **Experimental validation:** Position 63 confirmed as catalytic center
---
## π οΈ Troubleshooting
### Issue 1: MAFFT output contaminated
**Symptom:** Alignment file contains log messages
**Solution:**
```bash
mafft --localpair input.fasta 1> output.fasta 2> mafft.log
```
### Issue 2: High gap ratio in conserved sites
**Symptom:** Conserved sites have gap > 50%
**Solution:** These are NOT real conserved sites. Filter them out:
```python
high_quality_sites = [s for s in conserved_sites if s['gap_ratio'] < 0.1]
```
### Issue 3: Low sequence identity
**Symptom:** Average identity < 20%
**Interpretation:** This is normal for highly diverse protein families. Not a problem if:
- Coverage > 80%
- Gap ratio < 30%
- Conserved sites identified
### Issue 4: Figures not Nature-style
**Solution:** Use the dedicated Nature-style script:
```bash
python3 scripts/generate_nature_conservation_landscape.py
```
---
## π Support
**Skill version:** 5.0.0
**Last updated:** 2026-05-08
**Status:** Production-ready
**Quality:** Publication-grade
**Based on real research:**
- Multi-source IRED dataset analysis
- 3,365 β 1,531 sequences
- 8 conserved sites + 50 coevolving pairs
- 12+ publication-ready figures
---
## π― Summary
This skill provides:
1. β
**Complete QC pipeline** - From raw sequences to publication-ready dataset
2. β
**Conservation analysis** - Identify functionally important sites
3. β
**Coevolution analysis** - Discover functional coupling
4. β
**Publication figures** - Nature-style, 300 DPI, PDF + PNG
5. β
**Quality assessment** - Automatic metrics and validation
6. β
**Application tools** - Map results to new enzymes
**Perfect for:**
- Protein family analysis
- Phylogenetic studies
- Enzyme engineering
- Publication preparation
- Functional site prediction
**Start using:**
```bash
python3 scripts/run_complete_qc.py --input your_sequences.fasta --output results/
```
don't have the plugin yet? install it then click "run inline in claude" again.