Skip to content
uniprot-protein-retrieval logo

UniProt Protein Sequence Retrieval

uniprot-protein-retrieval

Retrieve protein sequences and functional information from UniProt database by protein name, enabling protein analysis and bioinformatics workflows.

InternScience/scp0installs169stars

SKILL.md

Full skill instructions

UniProt Protein Sequence Retrieval

Usage

1. MCP Server Definition

Use the standard MCP client pattern for Origene-UniProt server.

2. Protein Sequence Retrieval Workflow

This workflow retrieves protein sequences and associated information from the UniProt database using protein names or identifiers.

Workflow Steps:

  1. Query by Protein Name - Search UniProt using common protein names
  2. Retrieve Sequence Data - Get amino acid sequence and metadata

Implementation:

from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession
import json

class OrigeneClient:
    def __init__(self, server_url: str):
        self.server_url = server_url
        self.session = None

    async def connect(self):
        try:
            self.transport = streamablehttp_client(
                url=self.server_url,
                headers={"SCP-HUB-API-KEY": "<your-api-key>"}
            )
            self.read, self.write, self.get_session_id = await self.transport.__aenter__()
            self.session_ctx = ClientSession(self.read, self.write)
            self.session = await self.session_ctx.__aenter__()
            await self.session.initialize()
            print("✓ Connected to Origene-UniProt")
            return True
        except Exception as e:
            print(f"✗ Connection failed: {e}")
            return False

    async def disconnect(self):
        try:
            if self.session:
                await self.session_ctx.__aexit__(None, None, None)
            if hasattr(self, 'transport'):
                await self.transport.__aexit__(None, None, None)
            print("✓ Disconnected")
        except Exception as e:
            print(f"✗ Disconnect error: {e}")

    def parse_result(self, result):
        try:
            if hasattr(result, 'content') and result.content:
                content = result.content[0]
                if hasattr(content, 'text'):
                    return json.loads(content.text)
            return str(result)
        except Exception as e:
            return {"error": f"Parse error: {e}", "raw": str(result)}

## Initialize client
client = OrigeneClient("https://scp.intern-ai.org.cn/​api/​v1/​mcp/​10/​Origene-UniProt")
if not await client.connect():
    print("Connection failed")
    return

## Step 1: Retrieve protein sequence by name
protein_name = "insulin"  # Can be common name, gene symbol, or UniProt ID

result = await client.session.call_tool(
    "get_protein_sequence_by_name",
    arguments={
        "protein_name": protein_name
    }
)

result_data = client.parse_result(result)

## Display results
print(f"\nProtein: {protein_name}")
print("=" * 80)

if "sequence" in result_data:
    sequence = result_data["sequence"]
    print(f"Amino Acid Sequence ({len(sequence)} residues):")
    print(sequence)

    # Format sequence in blocks of 60
    print("\nFormatted Sequence:")
    for i in range(0, len(sequence), 60):
        position = i + 1
        block = sequence[i:i+60]
        print(f"{position:6d} {block}")

if "uniprot_id" in result_data:
    print(f"\nUniProt ID: {result_data['uniprot_id']}")

if "protein_names" in result_data:
    print(f"Protein Names: {result_data['protein_names']}")

if "organism" in result_data:
    print(f"Organism: {result_data['organism']}")

if "function" in result_data:
    print(f"Function: {result_data['function'][:200]}...")

await client.disconnect()

Extended Example: Multiple Protein Retrieval

## Retrieve multiple proteins
protein_list = ["p53", "BRCA1", "insulin", "hemoglobin"]

sequences = {}
for protein in protein_list:
    result = await client.session.call_tool(
        "get_protein_sequence_by_name",
        arguments={"protein_name": protein}
    )
    data = client.parse_result(result)

    if "sequence" in data:
        sequences[protein] = {
            "sequence": data["sequence"],
            "length": len(data["sequence"]),
            "uniprot_id": data.get("uniprot_id", "N/​A")
        }

## Display summary
print("\nProtein Sequence Summary:")
print(f"{'Protein':<15} {'UniProt ID':<12} {'Length':<10}")
print("-" * 40)
for name, info in sequences.items():
    print(f"{name:<15} {info['uniprot_id']:<12} {info['length']:<10}")

Tool Description

Origene-UniProt Server:

  • get_protein_sequence_by_name: Retrieve protein sequence from UniProt database
    • Args:
      • protein_name (str): Protein common name, gene symbol, or UniProt ID
    • Returns:
      • sequence (str): Amino acid sequence (one-letter code)
      • uniprot_id (str): UniProt accession number
      • protein_names (str): Official and alternative protein names
      • organism (str): Source organism
      • function (str): Protein function description
      • length (int): Sequence length in residues
      • mass (float): Molecular mass (Da)

Input/​Output

Input:

  • protein_name: Protein identifier (flexible format)
    • Examples: "insulin", "P53", "BRCA1", "P01308"
    • Supports: common names, gene symbols, UniProt IDs

Output:

  • Protein sequence and comprehensive metadata
  • Ready for downstream analysis (alignment, structure prediction, etc.)

Supported Query Types

  1. Common Names: "insulin", "hemoglobin", "actin"
  2. Gene Symbols: "TP53", "BRCA1", "EGFR"
  3. UniProt IDs: "P01308", "P04637"
  4. Protein Families: "kinase", "protease" (returns multiple entries)

Applications

Use retrieved sequences for:

  • Protein alignment and homology analysis
  • Structure prediction (AlphaFold, ESM Fold)
  • Primer design for cloning
  • Antibody epitope mapping
  • Conservation analysis
  • Mutation impact assessment
  • Phylogenetic studies

Integration with Other Workflows

Combine with:

  1. Protein BLAST → Find homologs
  2. InterProScan → Identify domains
  3. AlphaFold → Predict 3D structure
  4. STRING → Find protein interactions
  5. OpenTargets → Link to diseases

Example: Complete Protein Analysis Pipeline

## 1. Retrieve sequence
result = await uniprot_client.session.call_tool(
    "get_protein_sequence_by_name",
    arguments={"protein_name": "BRCA1"}
)
sequence = uniprot_client.parse_result(result)["sequence"]

## 2. Find similar proteins (BLAST)
result = await biotools_client.session.call_tool(
    "blast_search",
    arguments={
        "sequence": sequence,
        "evalue": 1e-10,
        "max_hits": 20
    }
)
homologs = biotools_client.parse_result(result)

## 3. Identify domains (InterProScan)
result = await biotools_client.session.call_tool(
    "interproscan_analyze",
    arguments={
        "sequence": sequence,
        "databases": ["Pfam", "SMART"]
    }
)
domains = biotools_client.parse_result(result)

## 4. Get disease associations (OpenTargets)
result = await opentargets_client.session.call_tool(
    "get_target_associated_diseases",
    arguments={"gene_symbol": "BRCA1"}
)
diseases = opentargets_client.parse_result(result)

print(f"Complete analysis for BRCA1:")
print(f"- Sequence length: {len(sequence)} amino acids")
print(f"- Homologs found: {len(homologs)}")
print(f"- Functional domains: {len(domains)}")
print(f"- Associated diseases: {len(diseases)}")

Error Handling

Common issues:

  • Protein not found: Check spelling, try alternative names or UniProt ID
  • Multiple matches: Use more specific identifier (UniProt ID preferred)
  • No sequence available: Some entries may lack sequence data
  • Network timeout: Retry with exponential backoff

Data Quality Notes

  • UniProt is manually curated (Swiss-Prot) and computationally annotated (TrEMBL)
  • Sequence quality: Swiss-Prot entries are highly reliable
  • Updates: UniProt is updated regularly; sequences may change
  • Isoforms: Multiple isoforms may exist; canonical sequence is returned by default

More skills from InternScience

Clinical Pharmacology Report - Generate clinical pharmacology report: PK, PD, mechanism, drug interactions, and special populations. Use this skill for clinical pharmacology tasks involving get pharmacokinetics by drug name get pharmacodynamics by drug name get mechanism of action by drug name ge...

169 0
View
geometry_trigonometry logo
InternScience/scp

geometry_trigonometry

Geometry & Trigonometry Suite - Solve geometry problems: calculate area, height from sine, angle in degrees, and increase factor. Use this skill for mathematics tasks involving calculate area calculate height from length and sine calculate phi deg calculate increase factor. Combines 4 tools from ...

169 0
View
drug_metabolism_study logo
InternScience/scp

drug_metabolism_study

Drug Metabolism Study - Study drug metabolism: FDA metabolism data, ChEMBL metabolism records, PubChem compound data, and clinical pharmacology. Use this skill for drug metabolism tasks involving get metabolism by id get pharmacokinetics by drug name get compound by name get clinical pharmacology...

169 0
View
chembl-molecule-search logo
InternScience/scp

chembl-molecule-search

Search ChEMBL database for molecule information by name to retrieve bioactivity data and chemical structures.

169 0
View
affinity_maturation logo
InternScience/scp

affinity_maturation

Affinity 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 Predi...

169 0
View

Convert laboratory protocols to executable JSON format using Thoth-OP for automated lab equipment control.

169 0
View

Cross-Species Protein Comparison - Compare proteins across species: get orthologs from NCBI, compute properties for each, and compare similarity. Use this skill for comparative biology tasks involving get gene orthologs calculate protein sequence properties calculate smiles similarity get homolog...

169 0
View
admet_druglikeness_report logo
InternScience/scp

admet_druglikeness_report

ADMET & 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 hydrophobi...

169 0
View

Protein Classification Analysis - Classify protein: ChEMBL protein classification, UniProt entry, InterPro domains, and Ensembl biotypes. Use this skill for protein science tasks involving search protein classification get uniprotkb entry by accession query interpro get info biotypes. Combines 4 ...

169 0
View

Protein Structure Quality Assessment - Assess structure quality: basic info, geometry analysis, quality metrics, composition, and visualization. Use this skill for structural biology tasks involving calculate pdb basic info calculate pdb structural geometry calculate pdb quality metrics calculate...

169 0
View

Given an rsID, query multiple databases (dbSNP, FAVOR, GWAS Catalog, ClinVar, gnomAD, PharmGKB, ClinGen) for comprehensive annotation. Use when user asks a general question about a variant without specifying which aspect.

169 0
View

Statistical Error Analysis - Analyze measurement errors: absolute error, scientific notation, max value, mean square, and formatting. Use this skill for statistics tasks involving calculate absolute error convert to scientific notation calculate max value calculate mean square format scientific n...

169 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View