This source did not publish a separate summary. Review SKILL.md before using the skill.
SKILL.md
Protein Interaction Network Analysis
Comprehensive protein interaction network analysis using ToolUniverse tools. Analyzes protein networks through a 4-phase workflow: identifier mapping, network retrieval, enrichment analysis, and optional structural data.
Features
✅ Identifier Mapping - Convert protein names to database IDs (STRING, UniProt, Ensembl)
✅ Network Retrieval - Get interaction networks with confidence scores (0-1.0)
✅ Functional Enrichment - GO terms, KEGG pathways, Reactome pathways
✅ PPI Enrichment - Test if proteins form functional modules
✅ Structural Data - Optional SAXS/SANS solution structures (SASBDB)
✅ Fallback Strategy - STRING primary (no API key) → BioGRID secondary (if key available)
Databases Used
Database
Coverage
API Key
Purpose
STRING
14M+ proteins, 5,000+ organisms
❌ Not required
Primary interaction source
BioGRID
2.3M+ interactions, 80+ organisms
✅ Required
Fallback, curated data
SASBDB
2,000+ SAXS/SANS entries
❌ Not required
Solution structures
Quick Start
Basic Usage
from tooluniverse import ToolUniverse
from python_implementation import analyze_protein_network
# Initialize ToolUniverse
tu = ToolUniverse()
# Analyze protein network
result = analyze_protein_network(
tu=tu,
proteins=["TP53", "MDM2", "ATM", "CHEK2"],
species=9606, # Human
confidence_score=0.7 # High confidence
)
# Access results
print(f"Mapped: {len(result.mapped_proteins)} proteins")
print(f"Network: {result.total_interactions} interactions")
print(f"Enrichment: {len(result.enriched_terms)} GO terms")
print(f"PPI p-value: {result.ppi_enrichment.get('p_value', 1.0):.2e}")
Discover interaction partners for a protein of interest:
result = analyze_protein_network(
tu=tu,
proteins=["TP53"], # Single protein
species=9606,
confidence_score=0.7
)
# Top 5 partners will be in the network
for edge in result.network_edges[:5]:
print(f"{edge['preferredName_A']} ↔ {edge['preferredName_B']} "
f"(score: {edge['score']})")
2. Protein Complex Validation
Test if proteins form a functional complex:
# DNA damage response proteins
proteins = ["TP53", "ATM", "CHEK2", "BRCA1", "BRCA2"]
result = analyze_protein_network(tu=tu, proteins=proteins)
# Check PPI enrichment
if result.ppi_enrichment.get("p_value", 1.0) < 0.05:
print("✅ Proteins form functional module!")
print(f" Expected edges: {result.ppi_enrichment['expected_number_of_edges']:.1f}")
print(f" Observed edges: {result.ppi_enrichment['number_of_edges']}")
else:
print("⚠️ Proteins may be unrelated")
3. Pathway Discovery
Find enriched pathways for a protein set:
result = analyze_protein_network(
tu=tu,
proteins=["MAPK1", "MAPK3", "RAF1", "MAP2K1"], # MAPK pathway
confidence_score=0.7
)
# Show top enriched processes
print("\nTop Enriched Pathways:")
for term in result.enriched_terms[:10]:
print(f" {term['term']}: p={term['p_value']:.2e}, FDR={term['fdr']:.2e}")
4. Multi-Protein Network Analysis
Build complete interaction network for multiple proteins: