A package for processing LC-ICPMS data
Project description
Overview
Purpose
The code is designed for handling and analyzing LC-ICP-MS (Liquid Chromatography-Inductively Coupled Plasma Mass Spectrometry) data. It includes functionality for loading raw data, performing calibration, applying internal standard corrections, and quantifying element concentrations.
Key Components
-
Data Handling and Loading
RawICPMSDataClass:- Manages raw LC-ICP-MS data.
- Loads data from
.csvfiles. - Extracts and organizes information such as intensities, times, elements, and time labels.
- Provides methods for visualizing raw data.
-
Integration
IntegrateClass:- Calculates the area under the curve for signal traces within a specified time range.
- Useful for quantifying the amount of analyte based on its signal intensity over time.
-
Calibration and Quantification
DatasetClass:- Manages the entire workflow from loading data to quantification.
- Loading Raw Data:
- Loads and organizes raw ICP-MS data files from a specified directory.
- Calibration:
- Performs calibration using standard concentration files.
- Creates a
Calibrationobject for further use in quantification.
- Internal Standard Correction:
- Applies correction based on an internal standard (e.g., "115In").
- Computes the baseline for the internal standard to correct measurements.
- Quantification:
- Quantifies concentrations of specific elements using calibration data and internal standard corrections.
- Integrates data over specified time ranges and produces a DataFrame of quantified concentrations.
Summary
The code provides a comprehensive toolkit for processing LC-ICP-MS data, including:
- Data Import: Load and process raw data files.
- Calibration: Set up and apply calibration curves based on known standards.
- Correction: Apply internal standard corrections to improve accuracy.
- Quantification: Calculate and report the concentrations of elements in samples.
It integrates various aspects of data handling and analysis into a coherent workflow, facilitating efficient and accurate analysis of LC-ICP-MS data.
Example Python Script
from lcicpms.dataset import Dataset
# Initialize Dataset object with the directory paths
raw_data_dir = 'path/to/raw_data'
cal_data_dir = 'path/to/calibration_data'
dataset = Dataset(raw_data_dir=raw_data_dir, cal_data_dir=cal_data_dir)
# Load raw data
dataset.load_raw_data(dir=raw_data_dir)
# Perform calibration
dataset.run_calibration(
cal_std_concs=[0, 10, 25, 50, 100, 200],
cal_keywords_by_conc=['std_0', 'std_1', 'std_2', 'std_3', 'std_4', 'std_5']
)
# Quantify elements (internal standard correction done automatically)
dataset.quantitate(
time_range=(0, 1200), # Specify your time range (seconds)
cal_std_concs=[0, 10, 25, 50, 100, 200],
cal_keywords_by_conc=['std_0', 'std_1', 'std_2', 'std_3', 'std_4', 'std_5']
)
# Print results
print(dataset.concentrations_df)
Documentation
Module: lcicpms
This module provides tools for handling LC-ICP-MS data, including integration, calibration, and quantification.
RawICPMSData Class
Overview
Handles raw LC-ICP-MS data, loading from files, and extracting relevant information for further processing.
Attributes
raw_data_file (str): Path to the raw ICP-MS data file.data_type (str): Describes the raw file data type (set when data is loaded).min_time (float): Minimum time in the separation.max_time (float): Maximum time in the separation.intensities (dict): Dictionary of arrays containing intensities collected over time, with elements as keys.times (dict): Dictionary of arrays containing time points of intensity measurements, with elements as keys.elements (list): List of elements in the raw file.time_labels (dict): List of time labels.raw_data_df (DataFrame): DataFrame containing the raw data.
Methods
-
__init__(self, raw_data_file: str = None)- Description: Initializes the
RawICPMSDataobject and loads data from the specified file. - Args:
raw_data_file (str): Path to the raw ICP-MS data file.
- Description: Initializes the
-
load_data(self)- Description: Determines the data type of the raw data file and loads the data. Currently supports only
.csvfiles.
- Description: Determines the data type of the raw data file and loads the data. Currently supports only
-
get_elements_and_time_labels(self)- Description: Extracts elements and time labels from the raw data file.
-
get_intensities(self)- Description: Extracts and stores the intensities of each element from the DataFrame.
-
get_times(self)- Description: Extracts and stores the time points for each element from the DataFrame.
-
plot_raw_data(self, elements: list = None)- Description: Plots raw data for specified elements or all elements if none are specified.
- Args:
elements (list): List of elements to plot.
Integrate Class
Overview
Provides functionality to integrate signal traces to calculate the area under the curve.
Methods
-
integrate(intensities, times, time_range: tuple = None)- Description: Computes the area under the signal trace curve within a specified time range.
- Args:
intensities: Array of intensity values.times: Array of time points corresponding to the intensities.time_range (tuple): Tuple specifying the start and end times for integration. IfNone, integrates over the entire range.
- Returns:
float: Calculated peak area under the curve.
-
other()- Description: Placeholder method for additional processing (currently commented out).
Dataset Class
Overview
Manages raw LC-ICP-MS data, performs calibration, applies internal standard corrections, and quantifies element concentrations.
Attributes
raw_data_dir (str): Directory containing raw ICP-MS data files.cal_data_dir (str): Directory containing calibration files.skip_keywords (list): List of keywords to exclude certain files.raw_data_dict (dict): Dictionary of loaded raw data files.cal_icpms_obj_dict (dict): Dictionary of calibration files for each concentration._cal_has_run (bool): Flag indicating whether calibration has been performed.cal (Calibration): Calibration object with standard concentrations and elements.concentrations_df (DataFrame): DataFrame of quantified concentrations.
Methods
-
__init__(self, raw_data_dir: str = None, cal_data_dir: str = None, skip_keywords: list = ['results'])- Description: Initializes the
Datasetobject with directories for raw and calibration data. - Args:
raw_data_dir (str): Directory for raw data files.cal_data_dir (str): Directory for calibration files.skip_keywords (list): Keywords to filter out certain files (default:['results']).
- Description: Initializes the
-
load_raw_data(self, dir: str)- Description: Loads raw ICP-MS data files from the specified directory.
- Args:
dir (str): Directory from which to load raw data.
- Returns:
dict: Dictionary of file paths andRawICPMSDataobjects.
-
run_calibration(self, cal_std_concs: list = [0, 10, 25, 50, 100, 200], cal_keywords_by_conc: list = ['std_0', 'std_1', 'std_2', 'std_3', 'std_4', 'std_5'])- Description: Performs calibration using standard concentrations and associated files.
- Args:
cal_std_concs (list): List of standard concentrations (default:[0, 10, 25, 50, 100, 200]).cal_keywords_by_conc (list): Keywords to identify files for each concentration (default:['std_0', 'std_1', 'std_2', 'std_3', 'std_4', 'std_5']).
-
internal_std_correction(self)- Description: Applies internal standard correction using the element "115In". Computes baseline for correction.
- Returns:
float: Baseline value for "115In".
- Raises:
Exception: If calibration hasn't been run or "115In" is not found.
-
quantitate(self, time_range: tuple = (-1, -1), elements: list = ['Fe', 'Co', 'Mn', 'Ni', 'Cu'], cal_std_concs: list = [0, 10, 25, 50, 100, 200], cal_keywords_by_conc: list = ['std_0', 'std_1', 'std_2', 'std_3', 'std_4', 'std_5'])- Description: Quantifies concentrations of specified elements using calibration data and internal standard correction.
- Args:
time_range (tuple): Tuple indicating time range for integration (default:(-1, -1)).elements (list): List of elements to quantify (default:['Fe', 'Co', 'Mn', 'Ni', 'Cu']).cal_std_concs (list): List of standard concentrations (default:[0, 10, 25, 50, 100, 200]).cal_keywords_by_conc (list): Keywords to identify calibration files (default:['std_0', 'std_1', 'std_2', 'std_3', 'std_4', 'std_5']).
- Returns:
DataFrame: DataFrame with quantified concentrations for each element.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lcicpms-0.0.1.tar.gz.
File metadata
- Download URL: lcicpms-0.0.1.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e5d2cefa4e5166da5ad837a07ee8a6eddaf8d10d55e3825f0a2a9c20f3c22d6
|
|
| MD5 |
62c0edfdb262ac858535a7dc93516574
|
|
| BLAKE2b-256 |
fc97f63e0ce2fc1817a2241bece154cfde11796d23f7ae87d1171992accac6ee
|
File details
Details for the file lcicpms-0.0.1-py3-none-any.whl.
File metadata
- Download URL: lcicpms-0.0.1-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
093201cd047495afb24adaafc81217dc68701db6ecbf7d46f97d567e7ef079a3
|
|
| MD5 |
89ad432953f51114b8d1b54daf566a4b
|
|
| BLAKE2b-256 |
d9b92c0054031503d2f061fbe27d2503323a82ab1eee232dfed14db71a5864c9
|