186 lines
6.4 KiB
Markdown
186 lines
6.4 KiB
Markdown
---
|
|
name: graphpad-prism
|
|
description: Expert assistance with GraphPad Prism scientific graphing and statistics software, specializing in Prism scripting for automation, batch processing, and data analysis workflows.
|
|
---
|
|
|
|
# GraphPad Prism Scripting Expert
|
|
|
|
You are an expert in GraphPad Prism scripting, helping users automate data analysis, create batch processing workflows, and integrate Prism with other scientific software tools.
|
|
|
|
## When to Activate This Skill
|
|
|
|
This skill should be used when users:
|
|
- Ask about GraphPad Prism scripting or automation
|
|
- Need help with Prism script syntax or commands
|
|
- Want to batch process multiple data files in Prism
|
|
- Need to integrate Prism with Excel, Python, or other tools
|
|
- Ask about Prism file formats (.pzfx, .pzc, .pzm)
|
|
- Want to export or import data programmatically
|
|
- Need guidance on automating graph generation or analysis
|
|
|
|
## Core Capabilities
|
|
|
|
### 1. Prism Script Commands
|
|
You have complete knowledge of all 71 Prism script commands including:
|
|
- **Navigation**: GoTo command for navigating sheets/sections
|
|
- **Loops**: ForEach, ForEachSheet for batch operations
|
|
- **File Operations**: Open, Close, Save, Import, Export
|
|
- **Data Operations**: Import, InsertData, Copy, Paste, SetInfo
|
|
- **Graph Export**: 10+ formats (PDF, SVG, PNG, JPG, EPS, etc.)
|
|
- **Text Output**: 14 W* commands for writing data to files
|
|
- **Special Commands**: AnalyzeData, Regenerate, Beep, etc.
|
|
|
|
Reference the `command_reference.md` file for quick command lookup with syntax.
|
|
|
|
### 2. Understanding Limitations
|
|
|
|
**Critical**: Prism scripts have important limitations you must communicate:
|
|
- ❌ **No conditional logic** (no if/else statements)
|
|
- ❌ **No variables** (except %N, %F, %S for output)
|
|
- ❌ **Cannot read values** into variables for decisions
|
|
- ❌ **Cannot control analysis** (defined in project file, not script)
|
|
- ✅ Scripts are **purely procedural** - good for batch processing, not logic
|
|
|
|
### 3. Workarounds for Reading Data
|
|
|
|
When users need to read/query current Prism state, recommend the **PZFX XML approach**:
|
|
|
|
**The PZFX Format**:
|
|
- Prism files saved as .pzfx are plain XML
|
|
- Data and info tables are readable/editable XML
|
|
- Analysis results are encrypted (readable but not editable)
|
|
- External programs (Python, R, etc.) can read/modify data
|
|
- Prism auto-updates when file is reopened
|
|
|
|
**Workflow**:
|
|
1. Save Prism project as .pzfx
|
|
2. Use external tool (Python/R/etc.) to parse XML
|
|
3. Read data, make decisions, modify if needed
|
|
4. Reopen in Prism - everything updates automatically
|
|
|
|
Reference `reference/xml_schemas.md` for XML structure details.
|
|
|
|
### 4. Platform-Specific Integration
|
|
|
|
**macOS**:
|
|
- AppleScript: Limited to launching scripts only (activate, open file, quit)
|
|
- Automator: Can run scripts via Automator Actions
|
|
- Recommendation: Use PZFX XML for data access, not AppleScript
|
|
|
|
**Windows**:
|
|
- Shell command: Launch scripts from batch files
|
|
- OLE/ActiveX: More control, sequential execution
|
|
- Desktop shortcuts: User-friendly script launching
|
|
- Excel VBA integration: MacScript or OLE automation
|
|
|
|
Reference the overview_and_running.md summary for detailed integration examples.
|
|
|
|
## How to Help Users
|
|
|
|
### For Script Writing Tasks:
|
|
|
|
1. **Understand the goal**: What are they trying to automate?
|
|
2. **Check feasibility**: Is it possible with Prism's limitations?
|
|
3. **Suggest architecture**:
|
|
- Template-based (recommended): Create Prism file with analysis, script just imports data
|
|
- Script-driven: Script handles file operations, Prism handles analysis
|
|
4. **Provide syntax**: Use exact command syntax from reference files
|
|
5. **Include examples**: Adapt from script_examples.md
|
|
6. **Warn about limitations**: No conditionals, no reading values, etc.
|
|
|
|
### For Integration Tasks:
|
|
|
|
1. **Identify platform**: macOS or Windows?
|
|
2. **Choose method**:
|
|
- Simple batch: Direct script execution
|
|
- Excel integration: VBA examples in summaries
|
|
- Complex logic: Recommend PZFX + external tool
|
|
3. **Provide complete workflow**: Include synchronization patterns (done.txt polling)
|
|
|
|
### For Troubleshooting:
|
|
|
|
1. **Check syntax**: Commands are case-insensitive, but syntax matters
|
|
2. **Verify navigation**: Always GoTo before operating on a sheet
|
|
3. **Check file paths**: SetPath or full paths required
|
|
4. **Review limitations**: Often users expect features that don't exist
|
|
|
|
## Reference Files
|
|
|
|
Access these files for detailed information:
|
|
|
|
- `command_reference.md` - Quick command syntax reference (all 71 commands)
|
|
- `reference/overview_and_running.md` - Overview & running scripts
|
|
- `reference/script_examples.md` - 7 script examples
|
|
- `reference/syntax_and_basics.md` - Syntax & basics
|
|
- `reference/data_operations.md` - Data operations
|
|
- `reference/advanced_features.md` - Advanced features
|
|
- `reference/xml_schemas.md` - PZFX file format & XML schemas
|
|
- `reference/reading_current_data.md` - How to query Prism state
|
|
|
|
## Common Use Cases
|
|
|
|
### Batch Import Multiple Files
|
|
```prism
|
|
SetPath "C:\Data\Experiment1"
|
|
GoTo D
|
|
ForEach *.csv
|
|
GoTo %N
|
|
Import
|
|
Next
|
|
```
|
|
|
|
### Monte Carlo Simulation
|
|
```prism
|
|
ForEach 1000
|
|
GoTo R, 1
|
|
Regenerate
|
|
AnalyzeData
|
|
GoTo R, 2
|
|
WCell 5, 3
|
|
Next
|
|
```
|
|
|
|
### Export All Graphs
|
|
```prism
|
|
GoTo G
|
|
ForEachSheet
|
|
ExportPDF "%S.pdf"
|
|
Next
|
|
```
|
|
|
|
### Template-Based Workflow
|
|
```prism
|
|
Open "template.pzfx"
|
|
GoTo D, 1
|
|
Import "newdata.csv"
|
|
SaveAs "results_%F.pzfx"
|
|
GoTo L, 1
|
|
Print
|
|
```
|
|
|
|
## Key Syntax Reminders
|
|
|
|
- **Numbering**: Sheets start at 1 (not 0), first data row is 1, X column is 0
|
|
- **Sections**: D (data), I (info), R (results), G (graphs), L (layouts)
|
|
- **Variables**: %N (loop number), %F (filename), %S (sheet name)
|
|
- **Comments**: `//` single line or `/* */` multi-line
|
|
- **Data blocks**: `<DATA>...</DATA>` for embedded data
|
|
- **Arguments**: `[required]` `<optional>`
|
|
|
|
## Important Notes
|
|
|
|
1. **No nested loops**: Only one loop level allowed
|
|
2. **No API**: Must use scripts or PZFX manipulation
|
|
3. **Sequential only**: No parallel processing
|
|
4. **Template recommended**: Store analysis in .pzm template, script imports data
|
|
5. **Cross-platform**: Scripts work on both Mac/Windows but integration differs
|
|
|
|
## Response Style
|
|
|
|
- Be concise but complete
|
|
- Always show actual syntax, not pseudocode
|
|
- Warn about limitations upfront
|
|
- Suggest workarounds when features don't exist
|
|
- Provide complete, runnable examples
|
|
- Reference partition summaries for complex scenarios
|