major-ai-skills
Version:
Installable agentic skills / AI agent skills (SKILL.md) for Claude Code, Cursor, Codex CLI, Gemini CLI & Antigravity - 402+ professional app, token-efficiency, and common-sense skills. SEO/GEO ready.
152 lines (118 loc) • 8.49 kB
Markdown
name: originpro
description: "Automate OriginPro data analysis with Python or LabTalk, configure nonlinear fitting, and inspect peak-analysis workflows."
category: scientific
risk: safe
source: self
source_type: self
date_added: "2026-08-26"
tags: ["originpro", "originlab", "originpro-python", "nlfit-curve-fitting", "peak-analyzer", "labtalk", "scientific-graphing", "claude"]
tools: ["claude", "cursor", "gemini", "codex"]
# OriginLab OriginPro Scientific Graphing & Analysis AI Skill Guide (Claude)
## Overview & Engine Architecture
OriginLab OriginPro is a scientific data analysis and publication-grade technical graphing platform. The platform features an object-oriented hierarchical **Worksheet / Matrix / Graph architecture**, an advanced **Nonlinear Curve Fitting (NLFit) Levenberg-Marquardt engine**, a **Peak Analyzer (multi-peak Gaussian/Lorentzian/Voigt deconvolution)**, repeatable **Analysis Templates (`.ogwu`)**, and the **`originpro` Python API**. OriginPro supports scripting via **LabTalk (`.ogs`)**, **Origin C**, and external **COM Automation (`Origin.Application`)**. Claude operates as a Principal Scientific Informatics Architect and Data Visualization Engineer, specializing in **`originpro` Python automation**, **NLFit parameter optimization**, **batch spectral peak deconvolution**, and **publication-quality vector graph generation**.
### OriginPro Dataflow Architecture & Python API Stack
```
┌─────────────────────────────────────────────────────────────┐
│ OriginPro System Architecture │
│ │
│ Data Organization & Workbook Hierarchy │
│ ├── Workbooks (`.ogwu`) & Matrices (Columns: X, Y, yErr, Z)│
│ ├── Graph Windows (`.oggu`) & Custom Graph Templates │
│ └── Analysis Templates (Recalculate: Auto / Manual Mode) │
│ │
│ Analytical Engines & Algorithms │
│ ├── NLFit (Levenberg-Marquardt Nonlinear Optimization) │
│ ├── Peak Analyzer (Baseline Correction, Peak Deconvolution)│
│ └── 2D/3D Surface & Contour Interpolation (Thin Plate Splin│
│ │
│ Scripting & Extensibility Layer │
│ ├── Embedded `originpro` Python 3.11 Environment │
│ ├── LabTalk Scripting Engine (`.ogs` Macro Execution) │
│ └── COM Automation Server (`Origin.Application`) │
└─────────────────────────────────────────────────────────────┘
```
## Operational Capabilities & Agent Directives
1. **`originpro` Python Automated Workflows**: Author Python scripts using the official `originpro` library to launch Origin in headless mode, import raw CSV/Excel data into worksheets, execute analytical curve fits, and export vector graphs.
2. **NLFit Nonlinear Curve Fitting Triage**: Resolve fitting divergence and singular Hessian matrices by establishing bounded parameter constraints, custom initialization functions, and Levenberg-Marquardt damping factors.
3. **Automated Peak Analysis & Spectral Deconvolution**: Construct automated spectral analysis routines subtracting polynomial baselines, finding peaks, and deconvolving overlapping Gaussian/Lorentzian peaks.
4. **Analysis Template Automation**: Build reusable `.ogwu` workbook templates with linked calculation trees that update all graphs automatically upon new raw data injection.
## Production Python Automation: Headless Gaussian Peak Fitting & Vector Export (`originpro`)
Save this script as `fit_and_export_spectrum.py` (requires `pip install originpro pandas numpy` and OriginPro installed):
```python
"""
OriginPro Python Automation: Gaussian Peak Fitting & Graph Exporter
Loads spectral data, fits a Gaussian peak model via NLFit, generates graph, and exports PDF.
"""
import sys
import numpy as np
import originpro as op
def process_spectral_data():
print("--- [INITIALIZING ORIGINPRO AUTOMATION PIPELINE] ---")
# 1. Connect to Origin (Headless Mode)
op.set_show(False)
print("✅ Connected to OriginPro Backend Server!")
# 2. Create Workbook and Worksheet
wbook = op.new_book("w", "Spectroscopy_Analysis")
wks = wbook[0]
wks.from_list(0, np.linspace(400, 800, 100).tolist(), lname="Wavelength", units="nm", axis="X")
# Generate Synthetic Spectral Peak Data
x = np.linspace(400, 800, 100)
y_clean = 100.0 * np.exp(-((x - 550.0) / 30.0)**2) + 10.0
y_noise = y_clean + np.random.normal(0, 2.0, len(x))
wks.from_list(1, y_noise.tolist(), lname="Intensity", units="a.u.", axis="Y")
print(f"Populated Worksheet with {len(x)} spectral data points.")
# 3. Create Scatter Graph
graph = op.new_graph(template="scatter")
gl = graph[0]
plot = gl.add_plot(wks, coly=1, colx=0, type="scatter")
gl.rescale()
# 4. Perform Nonlinear Curve Fitting (Gaussian Model)
print("Executing NLFit Gaussian Optimization...")
fit = op.NLFit("Gauss")
fit.set_data(wks, 1, 0)
fit.fit()
# Query Fitted Parameters (y0, xc, w, A)
params = fit.params()
print("\n--- [NLFIT OPTIMIZATION RESULTS] ---")
print(f"• Baseline (y0): {params[0]:.4f}")
print(f"• Peak Center (xc):{params[1]:.4f} nm")
print(f"• Peak Width (w): {params[2]:.4f} nm")
print(f"• Peak Area (A): {params[3]:.4f}")
print(f"• Adjusted R^2: {fit.adjr2:.5f}")
# 5. Export Publication-Quality Vector PDF
output_pdf = "C:/SimulationModels/Fitted_Spectrum.pdf"
graph.save_fig(output_pdf, width=1200)
print(f"\n✅ Publication vector graph saved to: {output_pdf}")
# Close Origin
op.exit()
print("OriginPro session closed.")
if __name__ == "__main__":
process_spectral_data()
```
## Technical Troubleshooting Matrix
| Issue & Failure Signature | Root Cause Analysis | Diagnostic & Resolution Pathway |
| :--- | :--- | :--- |
| **NLFit Divergence: `Singular Hessian Matrix`** | Initial parameter guesses are orders of magnitude off, or fitting function is over-parameterized. | 1. In NLFit dialog, click **Parameter Initialization Code** to define realistic starting guesses.<br>2. Set hard parameter bounds (e.g. `w > 0`, `A > 0`).<br>3. Fix known baseline constants (`y0 = 0`). |
| **Batch Template Plot Columns Misaligned** | New dataset has a different column sequence than the Analysis Template. | In Worksheet, right-click column headers $\rightarrow$ **Set As** $\rightarrow$ ensure column designations (`X`, `Y`, `yErr`) match template specifications. |
| **`originpro.set_show(False)` Throws COM Exception** | OriginPro automation server not registered in Windows registry. | Launch OriginPro once as Administrator or run `Origin.exe /regserver` in an elevated command prompt. |
| **Exported EPS / PDF Fonts Render Distorted** | Non-TrueType font used in axis labels or font subset embedding disabled. | In Graph Export dialog, select **TrueType Fonts Only** (e.g. Arial or Helvetica) and enable **Embed Fonts**. |
## Command Line Syntax & LabTalk Batch Invocations
```bash
# 1. Execute LabTalk Script (.ogs) from Command Line
"C:\Program Files\OriginLab\OriginPro 2025\Origin64.exe" -r "C:\Scripts\BatchProcess.ogs"
# 2. Register OriginPro COM Automation Server
"C:\Program Files\OriginLab\OriginPro 2025\Origin64.exe" /regserver
```
### Essential File Locations
- **User Files Directory**: `%USERPROFILE%\Documents\OriginLab\User Files\`
- **Graph Templates**: `...\User Files\Templates\`
- **Application Configuration**: `C:\Program Files\OriginLab\OriginPro 2025\Origin.ini`
## Agent Operational Directive
> **MANDATORY**: When configuring automated NLFit curve fitting routines in OriginPro, always establish positive lower bounds on peak width ($w > 0$) and amplitude ($A > 0$) parameters to prevent the Levenberg-Marquardt optimizer from diverging into negative singularity space.