Skip to main content

Dashboard for Time Resolved Analysis of LA-ICP-MS Data

Project description

LaserTRAM-DB

Welcome to LaserTRAM-DB, a PyQt6-based graphical user interface for processing LA-ICP-MS (Laser Ablation Inductively Coupled Plasma Mass Spectrometry) data using the lasertram library.

Migrating from previous versions

Previously, LaserTRAM-DB had been built using Plotly-Dash and hosted on GitHub. That repository has now been archived and all current development will be happening in this repository, as all new dev work by me will be done on USGS time, rather than when I was a grad student. It is HIGHLY recommended you abandon using the GitHub version of the dashboard as it is no longer supported and switch over to this one.

Motivation

LaserTRAM-DB is a dashboard for the complete processing pipeline of Laser Ablation Inductively Coupled Plasma Mass Spectrometry (LA-ICP-MS) data in complex materials such as geologic samples. As LA-ICP-MS data in geologic samples frequently have multiple phases, inclusions, and other compositional complexities within them that do not represent the material of interest, user interaction is required to filter unwanted signals out of the overall ablation signal. LaserTRAM-DB allows the user to filter which portion of the ablation peak is utilized in calculating concentrations, subsequently allowing for more accurate data to be obtained. It allows easy inspection of any sort of calculation done to the data and just about everything is exportable from tables and figures displayed within the dashboard.

Installation

It is recommended you do this in a fresh virtual environment. For example, using conda:

# create lasertramdb virtual environment
# using specifically python 3.13
conda create -n lasertramdb python=3.13

Then with your virtual environment activated clone the repository to your local machine wherever you like:

# Clone or download the repository
# and navigate to it on your machine
cd lasertramdb
conda activate lasertramdb

# install normally
pip install .

# Or install in development mode with dev dependencies
pip install -e ".[dev]" 

Launching the Application

# with the virtual environment activated
# and library installed
lasertramdb

Basic Structure

The dashboard is comprised of four parts:

Note to get more information all the annotated widgets below, with the installation complete, simply activate your virtual environment and:

lasertramdb --help

The first time you run this command, it will take a bit to start up as it is compiling the application. After that, it should start up much faster.

Preprocessing

Below is an annotated LaserTRAM preprocessing tab from LaserTRAM-DB. This tab is used for taking a folder of .csv files, each containing the raw counts per second data for a single spot analysis, and combining them into one coherent dataset that can then be processed using the LaserTRAM tab. Each .csv file is the untouched file off the mass spectrometer for a single spot analysis. Rather than dealing with a collection of hundreds of files, this tab allows the user to consolidate all that information into one place.

lasertram tab

LaserTRAM

Below is an annotated LaserTRAM tab from LaserTRAM-DB. This tab is used for determining which portion of a signal is utilized for further processing. As many geologic materials contain heterogeneities, this time resolved analysis is crucial in accurately calculating concentrations for materials of interest. Everything in this tab is designed to make that process efficient and quantifiable.

lasertram tab

LaserTRAM reprocessing

Below is an annotated LaserTRAM-reprocessing tab from LaserTRAM-DB. This tab is used for "redoing" the lasertram process with already chosen intervals (i.e., the results of a previous experiemnt). Its purpose is to allow the user to use intervals from a previous session to either re-normalize to a different internal standard, apply (or not) a despiking algorithm to the data, or both! The overall goal is to make it such that the most time consuming part of laser ablation data processing - the choosing of ablation intervals that reflect the material of interest - is only done once.

reprocessing tab

LaserCalc

Below is an annotated LaserCalc tab from LaserTRAM-DB. The purpose of this tab is to take data that have been filtered for the desired signal region and normalized to an internal standard and calculate concentrations based on the known concentrations of:

  1. a user specified calibration standard reference material
  2. the internal standard in the unknown analyses.

For more information on the math behind this, the user is referred to the lasertram documentation. There are also widgets within the LaserCalc tab for inspecting the behavior or analytes in the calibration standard over time. As these data are extremely important in calculating final concentrations, checking their quality and behavior over an analytical session helps maximize final concentration quality.

lasercalc tab

Usage

After installation, to fire up the application run from the command line (within whichever envrironment the dashboard is installed. The first time you run this command, it will take a bit to start up as it is compiling the application. After that, it should start up much faster.):

lasertramdb

Or from Python:

from lasertramdb.app import main
main()

On application startup a File Dialog will prompt the user to choose a directory. This will be the "home" directory for the data processing session and the default location that all other File Dialogs will open up to and save files to. It is also where each session log file will be saved. This can be updated at any point in the session.

Workflow

It is recommended that users first become familiar with basic laser ablation ICP-MS data processing workflows. This can be done by referencing the lasertram documentation. Specifically the following sections:

In many ways you can think of this dashboard as a graphical user interface for the lasertram library where the widgets help you efficiently inspect how choosing different ablation intervals, internal standards, and calibration standards affect your final calculated concentrations.

Demo Videos

Coming Soon

For now we refer users to the old videos here, as much of the logic and general workflow can be found there.

Referencing

The underlying math and data structures are outlined in the following manuscript:

Lubbers, J., Kent, A. J., & Russo, C. (2025). lasertram: A Python library for time resolved analysis of laser ablation inductively coupled plasma mass spectrometry data. Applied Computing and Geosciences, 25, 100225. https://doi.org/10.1016/j.acags.2025.100225

The dashboard itself is also citeable:

Lubbers, J., (2026). lasertramdb, version 2.0.0: U.S. Geological Survey software release https://doi.org/10.5066/P14VNQMY

Contributing

I am more than happy to have contributors. If you feel that you have ideas you would like implemented or want to help contribute please reach out:

Maintainer: Jordan Lubbers jlubbers at usgs dot gov

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lasertramdb-2.0.0.tar.gz (6.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lasertramdb-2.0.0-py3-none-any.whl (6.0 MB view details)

Uploaded Python 3

File details

Details for the file lasertramdb-2.0.0.tar.gz.

File metadata

  • Download URL: lasertramdb-2.0.0.tar.gz
  • Upload date:
  • Size: 6.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for lasertramdb-2.0.0.tar.gz
Algorithm Hash digest
SHA256 2ab68cf61b4c2e8618c027e6ca66292fb7d26d61f84bd849db9fa5ca76f267e1
MD5 0b0acb2bba40c4db7b24c7aedafc2deb
BLAKE2b-256 d12a898d0f2927bf23744f0d447449b6d0e42c46b7e8393b3ec906b20b607776

See more details on using hashes here.

File details

Details for the file lasertramdb-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: lasertramdb-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for lasertramdb-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a6936bceda2c0cbc5fe8e8106b0de82aebf4e214e39c4c12d382aaa438e81397
MD5 3a73f1421da4b3b953679f88eb508f79
BLAKE2b-256 1ce6fbd76c2d48a6f8927f9983040db06e512beb77bda4a525e4f5a10a8481f2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page