A High-Performance Modular Dashboard for Spectroscopic Data Analysis
Spectra-Link is a robust, Python-based graphical environment tailored for physics and materials science researchers. It provides a seamless interface to organize, process, and dynamically visualize complex spectroscopic datasets, bridging the gap between local data processing and remote laboratory network servers.
You can download the latest stable release of Spectra-Link from our GitHub Releases page.
Looking for older versions or release notes? Visit the Releases page.
- High-Speed Interactive Visualization: Leverages
PyQtGraphfor real-time, hardware-accelerated plotting, ensuring fluid interactions even with massive spectroscopic datasets. - Distributed Metadata Management: Employs a decentralized approach using local
metadata.jsonfiles embedded directly within experiment folders. This guarantees that analysis parameters and raw data remain perfectly synchronized and highly portable. - Plugin-Based Processor Architecture: Designed for modularity. Features dynamic processors tailored to specific experimental math and plotting logic (e.g., Absorption, Electro-Absorption, Circular Dichroism), allowing for unique treatment of different data types.
- Seamless Remote Integration: Native support for connecting to network shares (SMB/CIFS), enabling instantaneous transitions between local drive storage and secure lab servers without breaking workflow.
- The Comparison Basket: A dedicated, centralized staging area that allows researchers to select, store, and overlay datasets from entirely different experiments and sessions for rigorous comparative analysis.
Spectra-Link is built on a modern, responsive stack prioritizing both computational efficiency and user experience.
| Component | Technology | Description |
|---|---|---|
| GUI Framework | PyQt6 |
Drives the main application window, custom widgets, sidebar navigation, and the interactive Analysis tab. |
| Plotting Engine | PyQtGraph |
Handles all scientific graphing, axis manipulation, and high-performance rendering. |
| Data Processing | NumPy, SciPy |
Provides the computational backbone for array manipulation and scientific math operations. |
| Data Model | JSON + Raw Formats |
Non-destructive data handling; original files remain untouched while metadata handles state. |
Ensure you have Python 3.9 or higher installed on your system. Access to institutional network servers may be required to utilize remote data-fetching features.
- Clone the repository
git clone https://github.com/coltonlab/Spectra-Link.git
cd Spectra-Link
- Create a virtual environment (Recommended)
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install dependencies
pip install -r requirements.txt
- Launch the Application
python main.py
- Establish Data Connection Use the built-in Connection Manager to map your workspace. You can point the application to a local directory or authenticate with a remote network server.
- Navigate the Experiment Tree
Browse through your hierarchical data structure using the sidebar. Spectra-Link will automatically parse the
metadata.jsonfiles to present clean, readable experiment details. - Analyze and Compare Push individual runs to the Analysis Tab to apply experiment-specific math. Send notable results to the Comparison Basket to cross-examine data across multiple trials.
Spectra-Link is built to grow alongside your research. To add support for a novel experiment type, utilize the modular processor architecture:
- Navigate to the
/processorsdirectory. - Create a new subclass inheriting from the base processor template.
- Override the data parsing and mathematical operation methods to suit your specific spectroscopic technique.
- Register the new processor in the
/config/settings.pyglobal configuration. The GUI will automatically detect and integrate the new module.