Skip to main content Skills Marktplatz Entdecken und erkunden Sie KI-Skills, die von der Community erstellt wurden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Prompt kopierenPrompt-Details anzeigen Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
npx skills add https://github.com/InternScience/DrClaw --skill comprehensive-protein-analysisDer Befehl bleibt in einer Zeile. Scrollen Sie horizontal, um ihn vor dem Kopieren vollständig zu prüfen.
Sie bevorzugen eine lokale Kopie? Laden Sie die Dateien herunter, die SkillsMP derzeit vorliegen.
ZIP herunterladen Herunterladen... Mehr aus diesem Repository
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
Verwandte Berufe SOC
Basierend auf der SOC-Berufsklassifikation
name comprehensive-protein-analysis description Comprehensive protein analysis combining InterProScan domain identification with BLAST similarity search to provide complete functional and evolutionary annotation. license MIT license metadata {"skill-author":"PJLab"} i18n {"zh":{"description":"结合InterProScan与。"}}
Comprehensive Protein Analysis
Usage
1. MCP Server Definition
Use the same BioInfoToolsClient class as defined in the protein-blast-search skill.
2. Comprehensive Protein Analysis Workflow
This workflow combines InterProScan domain analysis with BLAST similarity search to provide a complete functional and evolutionary annotation of a protein sequence.
Workflow Steps:
Validate Input - Check protein sequence format
Run InterProScan - Identify functional domains and GO terms
Run BLAST Search - Find similar sequences and homologs
Integrate Results - Combine domain and homology information for comprehensive annotation
Implementation:
from datetime import timedelta
client = BioInfoToolsClient(
"https://scp.intern-ai.org.cn/api/v1/mcp/17/BioInfo-Tools" ,
"<your-api-key>"
)
if not await client.connect():
print ("connection failed" )
exit()
protein_sequence = """
MALWMRLLPLLALLALWGPDPAAAFVNQHLCGSHLVEALYLVCGERGFFYTPKTRREAEDLQVGQVELGGGPGAGSLQPLALEGSLQKRGIVEQCCTSICSLYQLENYCN
"""
sequence_id = "INS_HUMAN"
result = await client.session.call_tool(
"analyze_protein" ,
arguments={
"sequence" : protein_sequence.strip(),
"sequence_id" : sequence_id,
"databases" : ["Pfam" ],
"evalue" : 1e-5 ,
"max_hits" : 10
},
read_timeout_seconds=timedelta(seconds=1200 )
)
result_data = client.parse_result(result)
print (f"{'=' *80 } " )
print (f"Comprehensive Protein Analysis: {sequence_id} " )
print (f"{'=' *80 } \n" )
ips_result = result_data.get( , {})
ips_result.get( ):
ips_data = ips_result.get( , {})
domains = ips_data.get( , [])
go_terms = ips_data.get( , [])
( )
( )
( )
( )
domains:
( )
domain domains:
( )
domain.get( ):
( )
locations = domain.get( , [])
locations:
loc = locations[ ]
( )
()
go_terms:
( )
go go_terms[: ]:
( )
( )
(go_terms) > :
( )
()
:
( )
blast_result = result_data.get( , {})
blast_result.get( ):
hits = blast_result.get( , [])
( )
( )
( )
( )
hits:
( )
i, hit (hits[: ], ):
( )
( )
( )
(hits) > :
( )
()
:
( )
:
( )
( )
domains:
( )
hits:
most_similar = hits[ ]
( )
( )
( )
client.disconnect()
Tool Descriptions
BioInfo-Tools Server:
analyze_protein: Comprehensive protein analysis combining InterProScan and BLAST
Args:
sequence (str): Protein sequence in amino acid single-letter code
sequence_id (str, optional): Identifier for the query sequence
databases (list, optional): InterProScan databases (default: ["Pfam"])
evalue (float, optional): BLAST E-value threshold (default: 0.01)
max_hits (int, optional): Maximum BLAST hits (default: 10)
Returns:
interproscan (dict): InterProScan analysis results
success (bool): Whether InterProScan completed
results (dict): Domains and GO terms
time_seconds (float): Execution time
blast (dict): BLAST search results
success (bool): Whether BLAST completed
hits (list): Similar proteins
total_hits (int): Number of matches
time_seconds (float): Execution time
Input/Output
Input:
sequence: Protein sequence (amino acid single-letter code)
sequence_id: Optional identifier for the query
databases: List of InterProScan databases to query
evalue: BLAST E-value threshold (lower = more stringent)
max_hits: Maximum number of BLAST hits to return
Output:
InterProScan Results :
Functional domains with positions
Protein family classifications
Gene Ontology annotations
BLAST Results :
Homologous proteins across species
Sequence identity and alignment statistics
Evolutionary relationships
Analysis Strategy
This comprehensive approach provides:
Structural Information (InterProScan):
Domain architecture and organization
Functional motifs and active sites
Protein family membership
Evolutionary Context (BLAST):
Homologs in other species
Sequence conservation patterns
Potential orthologs and paralogs
Functional Prediction :
Combining domain and homology information
GO term annotations for molecular function
Biological process involvement
Performance Notes
Total execution time : 2-20 minutes depending on sequence length
InterProScan: 30 seconds to 15 minutes
BLAST: 10-90 seconds
Both run sequentially in this workflow
Timeout recommendation : Set to at least 1200 seconds (20 minutes)
E-value tuning : Use lower E-values (e.g., 1e-10) for highly conserved proteins, higher (e.g., 0.01) for divergent families
Use Cases
Complete functional annotation of unknown proteins
Validate predicted protein functions
Study protein evolution and conservation
Identify potential drug targets
Annotate proteomes and genome sequences
Compare protein function across species
Interpretation Tips
High domain coverage + high homology : Well-characterized protein with known function
Domains but no homologs : Novel protein with conserved domains, function can be inferred from domains
Homologs but no domains : May need more sensitive domain detection or represents a novel fold
Neither domains nor homologs : Potentially novel protein, may require experimental characterization
"interproscan"
if
"success"
"results"
'domains'
'go_terms'
print
"=== DOMAIN ANALYSIS (InterProScan) ==="
print
f"Execution time: {ips_result.get('time_seconds' , '?' )} seconds"
print
f"Domains found: {len (domains)} "
print
f"GO annotations: {len (go_terms)} \n"
if
print
"Functional Domains:"
for
in
print
f" • {domain.get('name' , 'N/A' )} ({domain.get('database' , 'N/A' )} )"
if
'description'
print
f" Description: {domain.get('description' )} "
'locations'
if
0
print
f" Position: {loc.get('start' )} -{loc.get('end' )} aa"
print
if
print
"Gene Ontology Annotations:"
for
in
5
print
f" • {go.get('id' , 'N/A' )} : {go.get('name' , 'N/A' )} "
print
f" Category: {go.get('category' , 'N/A' )} "
if
len
5
print
f" ... and {len (go_terms) - 5 } more"
print
else
print
f"❌ InterProScan failed: {ips_result.get('error' , 'Unknown' )} \n"
"blast"
if
"success"
'hits'
print
"=== HOMOLOGY SEARCH (BLAST) ==="
print
f"Execution time: {blast_result.get('time_seconds' , '?' )} seconds"
print
f"Similar sequences found: {blast_result.get('total_hits' , 0 )} "
print
f"E-value threshold: {1e-5 } \n"
if
print
"Top Homologous Proteins:"
for
in
enumerate
5
1
print
f" {i} . {hit['uniprot_id' ]} - {hit.get('organism' , 'N/A' )} "
print
f" Description: {hit['description' ]} "
print
f" Identity: {hit['identity_percent' ]:.1 f} %, E-value: {hit['evalue' ]:.2 e} "
if
len
5
print
f" ... and {len (hits) - 5 } more matches"
print
else
print
"No significant homologs found (E-value threshold may be too stringent)\n"
else
print
f"❌ BLAST failed: {blast_result.get('error' , 'Unknown' )} \n"
print
"=== FUNCTIONAL SUMMARY ==="
if
print
f"Protein Family: {domains[0 ].get('name' , 'Unknown' )} "
if
0
print
f"Most Similar Protein: {most_similar['uniprot_id' ]} ({most_similar['identity_percent' ]:.1 f} % identity)"
print
f"Organism: {most_similar.get('organism' , 'Unknown' )} "
print
f"{'=' *80 } "
await