Skip to content
Back to skills

Protein Interactions

ASecurity

Analyzes protein-ligand and protein-protein interactions from PLIP XML reports and AlphaFold model packages using a self-contained standard-library XML parser: extracts residue-level salt bridges, hydrogen bonds, hydrophobic, pi-stacking, water bridges, halogen bonds and metal complexes, ranks hotspot residues, and emits Mermaid network graphs plus PyMOL annotation scripts. This skill should be used when interaction detection, hotspot ranking, PLIP report parsing, interaction network visualis...

  • 75 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
datapythonbashnodedatabasedocumentation

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add ssinder/bioinformatics-agent-skills --skill protein-interactions --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Protein Interactions?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Protein Interactions
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ssinder-protein-interactions/badge)](https://www.skillsdirectory.com/skills/ssinder-protein-interactions)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: protein-interactions
description: >-
  Analyzes protein-ligand and protein-protein interactions from PLIP XML reports
  and AlphaFold model packages using a self-contained standard-library XML
  parser: extracts residue-level salt bridges, hydrogen bonds, hydrophobic,
  pi-stacking, water bridges, halogen bonds and metal complexes, ranks hotspot
  residues, and emits Mermaid network graphs plus PyMOL annotation scripts. This
  skill should be used when interaction detection, hotspot ranking, PLIP report
  parsing, interaction network visualisation or AlphaFold confidence analysis
  is requested.
license: MIT
compatibility: Python 3.9+; optional PLIP, MDAnalysis, requests
metadata:
  version: "1.0"
  last-reviewed: "2026-10-25"
  skill-author: sinder
---

# Protein Interaction Analysis

## Overview

This skill turns PLIP (Protein-Ligand Interaction Profiler) reports into structured,
residue-level interaction records and visualisations. The XML parsing is implemented
with the Python standard library (`xml.etree.ElementTree`) only — no `lxml`, no
Biopython, no network access — so a report produced on a workstation can be analysed
anywhere. On top of the parsed records the skill computes per-type and per-residue
statistics, renders an interaction network as a Mermaid flowchart with
per-interaction-type colouring, and generates a ready-to-run PyMOL script that
selects and labels the interacting residues in the 3D structure.

AlphaFold model packages (`*.zip` from the AlphaFold Protein Structure Database) can
be fed in directly: the best model is picked by predicted TM-score confidence
(`pTM + 0.5 × ipTM`) and the per-model confidence JSON is summarised.

## When to Use This Skill

- Parsing a PLIP `report.xml` into machine-readable residue-level interactions
- Ranking hotspot residues by interaction count on receptor and ligand sides
- Detecting salt bridges / hydrogen bonds / π-stacking / water bridges without PLIP
- Selecting the best AlphaFold model from a multi-model package and reporting pLDDT
- Generating a Mermaid interaction graph for reports, slides or documentation
- Generating PyMOL commands that visualise and label the interacting residues

## Quick Start

```bash
# 解析已有 PLIP 报告
python scripts/analyze_interactions.py --input report.xml --output results/

# 同时生成 Mermaid 网络图与 PyMOL 标注脚本
python scripts/analyze_interactions.py --input report.xml \
    --output results/ --make-mermaid --make-pymol

# 直接运行 PLIP 分析结构(需已安装 plip)
python scripts/analyze_interactions.py --input 1crn.pdb --run-plip \
    --plip-structure 1crn.pdb --output results/

# 分析 AlphaFold 模型包(自动挑选置信度最高的模型)
python scripts/analyze_interactions.py --input AF-P69905-F1-model_v4.zip \
    --output results/ --make-mermaid
```

## Workflow

1. **Collect** — `--input` accepts a PLIP `report.xml`, a directory containing
   `report.xml` files, or an AlphaFold `*.zip` package. Directories are scanned
   recursively for `report.xml`.
2. **Parse** — `plip_parser.py` walks the XML with `xml.etree.ElementTree`,
   handling both the modern attribute-style schema (`<site ... onf="A:ARG+102:NE">`
   with child `<salt_bridge>` elements) and the legacy element-style schema
   (`<resnr>`, `<restype>`, `<reschain>` with `_lig` suffixed variants).
   Residue labels are decoded into `chain / resname / resnr / atom` fields,
   distinguishing protein residues (`A:ARG+102:NE`) from ligand atoms
   (`LIG:1:CL1`).
3. **Summarise** — `summarize_interactions` counts interactions per type; the
   entry script additionally ranks receptor and ligand residues by participation
   count to identify hotspots.
4. **Visualise** — `interaction_network.py` renders the Mermaid flowchart
   (nodes = residues grouped into receptor / ligand subgraphs, edges = individual
   interactions coloured by type via `linkStyle`) and the PyMOL script
   (`select` / `show sticks` / `color` / `label` / `distance` commands).
5. **Report** — writes `interaction_analysis.json` and
   `interactions_residue_level.csv`, one row per interaction.

## Parameters

| Parameter | Default | Description |
|---|---|---|
| `--input` | required | `report.xml`、包含报告的目录,或 AlphaFold `*.zip` |
| `--output` | `results/` | 输出目录 |
| `--run-plip` | off | 对输入结构运行 PLIP |
| `--plip-structure` | — | 传给 PLIP 的结构文件(PDB) |
| `--plip-executable` | 自动查找 `plip` | PLIP 可执行文件路径 |
| `--plip-timeout` | `600` | PLIP 超时秒数 |
| `--make-mermaid` | off | 生成 Mermaid 相互作用网络图 |
| `--make-pymol` | off | 生成 PyMOL 标注脚本 |
| `--format` | `both` | `json` / `csv` / `both` |
| `--top-residues` | `10` | 统计中展示的热门残基数量 |

## Outputs

| File | Content |
|---|---|
| `interaction_analysis.json` | 每个报告的完整结果:相互作用记录、按类型统计、热门残基 |
| `interactions_residue_level.csv` | 残基级扁平表(受体残基、配体残基、类型、原子、距离) |
| `*_interaction_network.md` | Mermaid `flowchart` 网络图(启用 `--make-mermaid`) |
| `*_annotation.pml` | PyMOL 标注脚本(启用 `--make-pymol`) |

## Validation

- **Record count sanity**: a PLIP report on a ligand with a buried binding site
  normally yields tens to a few hundred interactions; `0` records for a
  non-empty `report.xml` means the schema was not recognised — inspect the file.
- **Residue label integrity**: decoded labels must keep `resnr` as an integer and
  `resname` as a three-letter code; protein labels contain a `+` separator
  (`A:ARG+102`), ligand labels do not.
- **Hotspot plausibility**: a binding hotspot usually shows ≥ 3 interactions
  (e.g. `ARG102` engaging the ligand in 3 distinct contacts). A flat histogram
  of one interaction per residue usually means the receptor/ligand roles were
  swapped or hydrogens were stripped from the input structure.
- **Type cross-check**: salt bridges require oppositely charged side chains
  (ARG/LYS versus ASP/GLU); a salt bridge between two ARG residues is a parsing
  error, not a result.
- **AlphaFold confidence**: `pLDDT > 90` is high confidence, `70-90` is
  acceptable, `< 70` marks a disordered or unreliable region; a mean pLDDT below
  70 means the model should not be used for interaction analysis at all.
- **Network graph integrity**: the Mermaid file must contain one `linkStyle`
  line per edge; a mismatch means edges were dropped during rendering.

## References

- `references/methodology.md` — PLIP XML schema, interaction definitions, statistics and rendering
- `references/troubleshooting.md` — common failures and how to diagnose them

Files in this skill

  • SKILL.md6.6 KB
  • references/methodology.md6.5 KB
  • references/troubleshooting.md5.5 KB
  • requirements.txt700 B
  • scripts/alphafold_models.py9.5 KB
  • scripts/analyze_interactions.py14.4 KB
  • scripts/interaction_network.py11.7 KB
  • scripts/plip_parser.py11 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.