protocol-generation-from-description
$
npx mdskill add InternScience/scp/protocol-generation-from-descriptionUse the same `DrugSDAClient` class pattern with Thoth-Plan server.
SKILL.md
.github/skills/protocol-generation-from-descriptionView on GitHub ↗
---
name: protocol-generation-from-description
description: Generate detailed laboratory protocols from natural language descriptions using AI, producing step-by-step experimental procedures ready for lab execution.
license: MIT license
metadata:
skill-author: PJLab
---
# Laboratory Protocol Generation Workflow
## Usage
### 1. MCP Server Definition
Use the same `DrugSDAClient` class pattern with Thoth-Plan server.
### 2. Protocol Generation from User Description
This workflow generates detailed laboratory protocols from natural language descriptions, useful for experimental planning and automation.
**Workflow Steps:**
1. **Input User Description** - Provide natural language description of desired protocol
2. **Generate Detailed Protocol** - AI generates step-by-step experimental procedure
3. **Optional: Convert to Executable Format** - Transform protocol to machine-readable JSON for automation
**Implementation:**
```python
client = DrugSDAClient("https://scp.intern-ai.org.cn/api/v1/mcp/19/Thoth-Plan")
if not await client.connect():
print("connection failed")
return
## Step 1: Provide protocol description
user_prompt = """
I need a PCR protocol for amplifying a 500bp DNA fragment.
Use a standard Taq polymerase with the following conditions:
- Annealing temperature: 55°C
- Extension time: 30 seconds
- 30 cycles total
Include primer concentrations and buffer composition.
"""
## Step 2: Generate detailed protocol
result = await client.session.call_tool(
"protocol_generation",
arguments={
"user_prompt": user_prompt
}
)
protocol_text = client.parse_result(result)["protocol"]
print("Generated Protocol:")
print("=" * 80)
print(protocol_text)
print("=" * 80)
## Step 3 (Optional): Convert to executable JSON for lab automation
result = await client.session.call_tool(
"generate_executable_json",
arguments={
"protocol": protocol_text
}
)
executable_json = client.parse_result(result)["executable_json"]
print("\nExecutable JSON for lab automation:")
print(executable_json)
## Step 4 (Optional): Execute protocol via lab automation system
result = await client.session.call_tool(
"execute_json",
arguments={
"executable_json": executable_json
}
)
execution_info = client.parse_result(result)
print("\nExecution Info:")
print(execution_info)
await client.disconnect()
```
### Tool Descriptions
**Thoth-Plan Server:**
- `protocol_generation`: Generate detailed laboratory protocol from description
- Args: `user_prompt` (str) - Natural language description of desired protocol
- Returns: `protocol` (str) - Detailed step-by-step protocol text
- `generate_executable_json`: Convert protocol text to machine-readable format
- Args: `protocol` (str) - Protocol text
- Returns: `executable_json` (str) - JSON format for Opentrons/lab automation
- `execute_json`: Execute protocol via connected lab automation systems
- Args: `executable_json` (str) - Executable protocol JSON
- Returns: Execution status and log
### Input/Output
**Input:**
- `user_prompt`: Natural language description of desired experimental protocol
- Can include: reagents, conditions, equipment, expected outcomes
- Can reference standard protocols or specific parameters
**Output:**
- `protocol`: Detailed step-by-step protocol including:
- Materials and reagents list
- Equipment requirements
- Detailed procedure steps
- Safety considerations
- Expected results
- Troubleshooting tips
### Example Protocol Types
The system can generate protocols for various laboratory procedures:
- **Molecular Biology**: PCR, cloning, gel electrophoresis, DNA extraction, transformation
- **Protein Science**: Protein purification, Western blot, ELISA, protein crystallization
- **Cell Culture**: Cell passage, transfection, differentiation, cryopreservation
- **Biochemistry**: Enzyme assays, metabolite extraction, chromatography
- **Analytical**: Spectroscopy, mass spectrometry sample prep, HPLC
### Protocol Quality Guidelines
Generated protocols include:
- ✓ Precise volumes and concentrations
- ✓ Specific temperatures and times
- ✓ Safety warnings where applicable
- ✓ Quality control checkpoints
- ✓ Troubleshooting guidance
### Integration with Lab Automation
The generated protocols can be converted to executable JSON format compatible with:
- Opentrons liquid handling robots
- Hamilton automated workstations
- Custom lab automation systems
- Electronic lab notebooks (ELNs)
### Best Practices
**For optimal protocol generation:**
1. **Be Specific**: Include target specifications (e.g., "500bp fragment", "55°C annealing")
2. **Mention Equipment**: Specify if using particular instruments or kits
3. **State Goals**: Describe the experimental objective
4. **Include Constraints**: Note any limitations (time, budget, available reagents)
5. **Reference Standards**: Mention if following particular methods or publications
**Example Good Prompts:**
```
"Generate a Western blot protocol for detecting GAPDH (37 kDa) in HEK293 cell lysates using a standard semi-dry transfer system"
"I need a DNA extraction protocol from plant tissue (Arabidopsis leaves) optimized for downstream PCR. Yield target is 50 µg from 100mg tissue"
"Create a protein purification protocol for His-tagged recombinant protein from E. coli using IMAC chromatography. Starting culture volume is 500mL"
```
### Limitations
- Generated protocols should be reviewed by qualified personnel before execution
- May require adjustment based on specific lab equipment and reagents
- Safety protocols should be verified against institutional guidelines
- Novel or untested procedures may need optimization