UNPKG

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
--- 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.