protocol-generation-from-description

$npx mdskill add InternScience/scp/protocol-generation-from-description

Use 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
More from InternScience/scp