# GraphPad Prism Script Examples ## Overview Seven examples demonstrating scripting use cases: repeated imports, Monte Carlo analysis, multi-file consolidation, template workflows, embedded data, multi-table operations, and batch graph formatting. ## Example 1: Repeatedly Import Data **Use case**: Import multiple data files sequentially into separate tables. **Key commands**: - `GoTo D, N` - Navigate to data table N - `Import filename.txt` - Import external file - Manual repetition of commands for each file/table **Workflow**: 1. Navigate to target table 2. Import file 3. Repeat for each additional file **Limitation**: No loop construct in this basic example; requires explicit command repetition. ## Example 2: Monte Carlo Analysis **Use case**: Perform iterative simulations with randomization. **Key commands**: - `ForEach N` - Loop N times - `GoTo R, N` - Navigate to results table N - `AnalyzeData` - Execute analysis - `Next` - End loop iteration **Workflow**: 1. Set up analysis on initial data 2. Loop through iterations: - Generate random data variation - Execute analysis - Store results in indexed table 3. Aggregate results across iterations **Pattern**: ``` ForEach 100 GoTo R, %N AnalyzeData Next ``` **Variable**: `%N` holds current iteration number (1-based). ## Example 3: Import Several Files onto One Table **Use case**: Consolidate multiple data files into columns of single table. **Key commands**: - `GoTo D, 1` - Navigate to data table 1 - `Import filename.txt, column=N` - Import into specific column N - Column parameter specifies destination **Workflow**: 1. Navigate to target table 2. Import first file to column 1 3. Import subsequent files to columns 2, 3, etc. **Syntax**: `Import Data1.txt, column=1` **Note**: Files must have compatible row structure. ## Example 4: Open Template and Import Data **Use case**: Automate data import into pre-configured analysis template. **Key commands**: - `Open template.pzfx` - Load template file - `GoTo D, 1` - Navigate to data table - `Import datafile.txt` - Import data - `SaveAs output.pzfx` - Save populated file **Workflow**: 1. Open template with pre-configured graphs/analyses 2. Navigate to data table 3. Import new data 4. Save as new file (preserves template) **Advantage**: Template contains all formatting, analysis settings, and graph configurations. ## Example 5: Import Data and Info Constants from Script File **Use case**: Embed data and metadata directly in script (no external files). **Key commands**: - `...` - Data block delimiter - `InsertData N, M` - Insert data block N starting at column M - `SetInfo constant_name, value` - Set info constant **Data block syntax**: ``` value1\tvalue2\tvalue3 value4\tvalue5\tvalue6 ``` **Info constant syntax**: ``` SetInfo Experiment, "Drug Study A" SetInfo Date, "2024-01-15" SetInfo Concentration, 10.5 ``` **Workflow**: 1. Define data blocks in script using `` tags 2. Navigate to target table: `GoTo D, 1` 3. Insert data: `InsertData 1, 0` (block 1, starting column 0) 4. Navigate to info table: `GoTo I, 2` 5. Set info constants with name/value pairs **Data format**: Tab-delimited values within DATA tags, numbered sequentially (1-based). **Info types**: String (quoted), numeric (unquoted), date (quoted). ## Example 6: Import Data into Several Tables **Use case**: Batch import multiple files into multiple tables using loop. **Prerequisites**: Prism file with N data tables, each linked to graph, all graphs on one layout. **Key commands**: - `ForEach N` - Loop N times - `GoTo %N` - Navigate to table using iteration variable - `Import Data%N.txt` - Dynamic filename with variable substitution - `Next` - End loop - `GoTo L, 1` - Navigate to layout - `Print` - Print layout **Script pattern**: ``` GoTo D ForEach 9 GoTo %N Import Data%N.txt Next GoTo L, 1 Print ``` **Variable substitution**: `%N` replaced with current iteration number (1, 2, 3, ..., 9). **Dynamic filenames**: `Data1.txt`, `Data2.txt`, ..., `Data9.txt` matched to tables 1-9. **Result**: All tables populated, layout printed with all graphs updated. ## Example 7: Changing X-Axis Title of All Graphs **Use case**: Apply uniform formatting change across all graphs in file. **Key commands**: - `GoTo G` - Navigate to graphs family - `ForEachSheet` - Iterate over all sheets in current family - `SetAxisTitle axis, "title"` - Set axis title - `Next` - End loop **Script pattern**: ``` GoTo G ForEachSheet SetAxisTitle X, "Time (minutes)" Next ``` **Axis parameter**: `X` (X-axis), `Y` (Y-axis), `Y2` (secondary Y-axis). **Scope**: Operates on all graph sheets in current family. **Alternative axes**: `SetAxisTitle Y, "Response (units)"` for Y-axis. ## Common Scripting Patterns ### Loop Constructs - `ForEach N` / `Next` - Fixed iteration count - `ForEachSheet` / `Next` - Iterate over sheets in family - `%N` variable - Current iteration number (1-based) ### Navigation - `GoTo family, N` - Navigate to specific sheet - `D, N` - Data table N - `R, N` - Results table N - `G, N` - Graph N - `I, N` - Info table N - `L, N` - Layout N - `GoTo family` - Navigate to family without specific sheet - `GoTo %N` - Navigate using iteration variable ### Data Operations - `Import filename.txt` - Import external file - `Import filename.txt, column=N` - Import to specific column - `InsertData N, M` - Insert embedded data block N at column M - `...` - Embed data in script (tab-delimited) ### Info Constants - `SetInfo name, value` - Set named constant - String values: quoted - Numeric values: unquoted ### File Operations - `Open filename.pzfx` - Load Prism file - `SaveAs filename.pzfx` - Save with new name ### Analysis and Output - `AnalyzeData` - Execute analysis - `Print` - Print current sheet/layout ## Variable Substitution `%N` - Current iteration number in loops - Use in navigation: `GoTo %N` - Use in filenames: `Import Data%N.txt` - Use in any string context requiring iteration number - 1-based indexing (first iteration = 1) ## Data Formats **External files**: Tab-delimited or comma-delimited text files. **Embedded data**: Tab-delimited within `` tags, multiple blocks numbered sequentially. **Info constants**: Name/value pairs, supports strings (quoted), numbers (unquoted), dates (quoted). ## Script Structure Best Practices 1. Navigate before operating: Always `GoTo` target before import/analysis 2. Use loops for repetitive operations: `ForEach` with `%N` variable 3. Embed small datasets: Use `` blocks for portability 4. Template workflows: Separate data from analysis configuration 5. Batch operations: Combine loops with variable substitution for file series 6. Layout printing: Navigate to layout after updating all graphs ## Limitations and Notes - No automatic file discovery: Must specify exact filenames or use predictable naming pattern - Fixed iteration counts: `ForEach N` requires known count, no dynamic termination - Sequential execution: No parallel processing - Column compatibility: Multi-file imports require matching row structures - Variable scope: `%N` only valid within loop construct - 1-based indexing: All sheet numbers, iteration counts, and data blocks start at 1