protein-properties-calculation
$
npx mdskill add InternScience/scp/protein-properties-calculation```python import asyncio import json from fastmcp import Client from fastmcp.client.transports import StreamableHttpTransport
SKILL.md
.github/skills/protein-properties-calculationView on GitHub ↗
---
name: protein-properties-calculation
description: Calculate comprehensive protein sequence properties including isoelectric point, molecular weight, hydrophobicity, and physicochemical parameters.
license: MIT license
metadata:
skill-author: PJLab
---
# Protein Properties Calculation
## Usage
### 1. MCP Server Definition
```python
import asyncio
import json
from fastmcp import Client
from fastmcp.client.transports import StreamableHttpTransport
class BiologyToolsClient:
"""Biology Tools MCP Client using FastMCP"""
def __init__(self, server_url: str, headers: dict = None):
self.server_url = server_url
self.headers = headers or {}
self.client = None
async def connect(self):
"""Establish connection and initialize session"""
print(f"Connecting to: {self.server_url}")
try:
transport = StreamableHttpTransport(
url=self.server_url,
headers=self.headers
)
self.client = Client(transport)
await self.client.__aenter__()
print(f"✓ connect success")
return True
except Exception as e:
print(f"✗ connect failure: {e}")
import traceback
traceback.print_exc()
return False
async def disconnect(self):
"""Disconnect from server"""
try:
if self.client:
await self.client.__aexit__(None, None, None)
print("✓ already disconnect")
except Exception as e:
print(f"✗ disconnect error: {e}")
def parse_result(self, result):
"""Parse MCP tool call result"""
try:
if hasattr(result, 'content') and result.content:
content = result.content[0]
if hasattr(content, 'text'):
try:
return json.loads(content.text)
except:
return content.text
return str(result)
except Exception as e:
return {"error": f"parse error: {e}", "raw": str(result)}
```
### 2. Protein Properties Calculation Workflow
This workflow calculates comprehensive physicochemical properties of protein sequences including molecular weight, isoelectric point, hydrophobicity, and other parameters useful for protein characterization.
**Workflow Steps:**
1. **Calculate Isoelectric Point and Molecular Weight** - Compute pI and MW
2. **Calculate Protein Parameters** - Compute amino acid composition, instability index, etc.
3. **Calculate Hydrophobicity** - Predict hydrophobic/hydrophilic regions
**Implementation:**
```python
## Initialize client
HEADERS = {"SCP-HUB-API-KEY": "<your-api-key>"}
client = BiologyToolsClient(
"https://scp.intern-ai.org.cn/api/v1/mcp/29/SciToolAgent-Bio",
HEADERS
)
if not await client.connect():
print("connection failed")
exit()
## Input: Protein sequence to analyze
protein_sequence = "MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGDGTQDNLSGAEKAVQVKVKALPDAQFEVVHSLAKWKRQTLGQHDFSAGEGLYTHMKALRPDEDRLSPLHSVYVDQWDWERVMGDGERQFSTLKSTVEAIWAGIKATEAAVSEEFGLAPFLPDQIHFVHSQELLSRYPDLDAKGRERAIAKDLGAVFLVGIGGKLSDGHRHDVRAPDYDDWSTPSELGHAGLNGDILVWNPVLEDAFELSSMGIRVDADTLKHQLALTGDEDRLELEWHQALLRGEMPQTIGGGIGQSRLTMLLLQLPHIGQVQAGVWPAAVRESVPSLL"
print("=== Protein Properties Calculation ===\n")
## Step 1: Calculate isoelectric point and molecular weight
print("Step 1: Isoelectric Point and Molecular Weight")
result = await client.client.call_tool(
"ComputePiMw",
arguments={"protein": protein_sequence}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
## Step 2: Calculate comprehensive protein parameters
print("Step 2: Protein Sequence Parameters")
result = await client.client.call_tool(
"ComputeProtPara",
arguments={"protein": protein_sequence}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
## Step 3: Calculate hydrophobicity scale
print("Step 3: Hydrophobicity Profile")
result = await client.client.call_tool(
"ComputeProtScale",
arguments={"protein": protein_sequence}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
## Step 4: Calculate extinction coefficient
print("Step 4: Extinction Coefficient")
result = await client.client.call_tool(
"ComputeExtinctionCoefficient",
arguments={"protein": protein_sequence}
)
result_data = client.parse_result(result)
print(f"{result_data}\n")
await client.disconnect()
```
### Tool Descriptions
**SciToolAgent-Bio Server:**
- `ComputePiMw`: Calculate protein isoelectric point and molecular weight
- Args: `protein` (str) - Protein sequence
- Returns: pI value and molecular weight in Daltons
- `ComputeProtPara`: Calculate comprehensive protein parameters
- Args: `protein` (str) - Protein sequence
- Returns: Amino acid composition, instability index, aliphatic index, GRAVY, etc.
- `ComputeProtScale`: Calculate hydrophobicity scale
- Args: `protein` (str) - Protein sequence
- Returns: Hydrophobicity values along the sequence
- `ComputeExtinctionCoefficient`: Calculate extinction coefficient at 280nm
- Args: `protein` (str) - Protein sequence
- Returns: Extinction coefficient for protein quantification
### Input/Output
**Input:**
- `protein`: Protein sequence in single-letter amino acid code
**Output:**
- **pI (Isoelectric Point)**: pH at which protein has no net charge
- **Molecular Weight**: Mass in Daltons (Da)
- **Amino Acid Composition**: Percentage of each amino acid
- **Instability Index**: Protein stability estimate (>40 = unstable)
- **Aliphatic Index**: Thermal stability indicator
- **GRAVY (Grand Average of Hydropathy)**: Overall hydrophobicity (-2 to +2)
- **Extinction Coefficient**: For protein concentration determination (M⁻¹cm⁻¹)
### Use Cases
- Predict protein behavior in different pH conditions
- Estimate protein molecular weight from sequence
- Assess protein stability and solubility
- Determine protein concentration spectrophotometrically
- Plan protein purification strategies
- Predict protein localization based on hydrophobicity
- Design expression and purification protocols
### Parameter Interpretation
- **pI < 7**: Acidic protein (negatively charged at physiological pH)
- **pI > 7**: Basic protein (positively charged at physiological pH)
- **Instability Index < 40**: Stable protein
- **Instability Index > 40**: Unstable protein (may degrade quickly)
- **GRAVY < 0**: Hydrophilic (soluble in water)
- **GRAVY > 0**: Hydrophobic (may be membrane protein or have stability issues)
### Additional Tools Available
The SciToolAgent-Bio server provides 50+ additional tools including:
- Codon optimization (`ProteinCodonOptimization`)
- Peptide weight calculation (`PeptideWeightCalculator`)
- Protein solubility prediction (`ProteinSolubilityPredictor`)
- Disordered region prediction (`InherentDisorderedRegionsPredictor`)
- Nuclear localization signal prediction (`ProteinNuclearLocalizationSequencePrediction`)
More from InternScience/scp
- admet_druglikeness_reportADMET & Drug-Likeness Report - Generate comprehensive ADMET and drug-likeness report: molecular properties, H-bond analysis, hydrophobicity, topology, and ADMET prediction. Use this skill for medicinal chemistry tasks involving calculate mol basic info calculate mol hbond calculate mol hydrophobicity calculate mol topology pred molecule admet. Combines 5 tools from 2 SCP server(s).
- affinity_maturationAffinity Maturation Pipeline - Affinity maturation: compute binding affinity, predict mutations, compute hydrophilicity, and predict drug-target interaction. Use this skill for antibody engineering tasks involving ComputeAffinityCalculator zero shot sequence prediction ComputeHydrophilicity PredictDrugTargetInteraction. Combines 4 tools from 3 SCP server(s).
- alanine_scanning_pipelineAlanine Scanning Mutagenesis Pipeline - Alanine scanning: design scan, compute properties for each mutant, predict interactions, and compare. Use this skill for protein biochemistry tasks involving AlanineScanningDesigner ComputeProtPara PredictDrugTargetInteraction calculate protein sequence properties. Combines 4 tools from 3 SCP server(s).
- aliphatic_ring_analysisRing System Analysis - Analyze ring systems: count aliphatic carbocycles, analyze aromaticity, compute topology, and structure complexity. Use this skill for organic chemistry tasks involving GetAliphaticCarbocyclesNum AromaticityAnalyzer calculate mol topology calculate mol structure complexity. Combines 4 tools from 3 SCP server(s).
- alphafold_structure_pipelineAlphaFold Structure Analysis Pipeline - AlphaFold pipeline: download predicted structure, predict pockets, extract sequence, and compute properties. Use this skill for computational biology tasks involving download alphafold structure run fpocket extract pdb sequence calculate pdb basic info. Combines 4 tools from 3 SCP server(s).
- antibody_drug_developmentAntibody Drug Development - Develop antibody drug: target protein analysis, biotherapeutic lookup, protein properties, and interaction prediction. Use this skill for biologics tasks involving get uniprotkb entry by accession get biotherapeutic by name ComputeProtPara ComputeHydrophilicity. Combines 4 tools from 3 SCP server(s).
- antibody_target_analysisAntibody-Target Analysis - Analyze an antibody target: UniProt protein info, InterPro domains, protein properties, and biotherapeutic data from ChEMBL. Use this skill for immunology tasks involving get uniprotkb entry by accession query interpro ComputeProtPara get biotherapeutic by name. Combines 4 tools from 4 SCP server(s).
- atc_drug_classificationATC Drug Classification Lookup - Look up drug in ATC classification: ChEMBL ATC class, FDA drug info, PubChem compound, and mechanism of action. Use this skill for pharmacology tasks involving get atc class by level5 get mechanism of action by drug name get compound by name get drug by name. Combines 4 tools from 3 SCP server(s).
- atmospheric-science-calculationsCalculate atmospheric parameters including Coriolis parameter, geostrophic wind, heat index, potential temperature, and dewpoint for meteorology and climate science.
- binding_site_characterizationBinding Site Characterization - Characterize binding sites: predict pockets with fpocket and P2Rank, get binding site info from ChEMBL, and visualize. Use this skill for structural biology tasks involving run fpocket pred pocket prank get binding site by id visualize protein. Combines 4 tools from 3 SCP server(s).