Skip to content

giusesorrentino/labtoolbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

PyPI - Version Python Versions PyPI - Downloads License GitHub Issues GitHub Pull Requests GitHub Repo stars GitHub Forks

LabToolbox logo

LabToolbox is a Python package that provides a collection of useful tools for laboratory data analysis. It offers intuitive and optimized functions for curve fitting, uncertainty propagation, data handling, and graphical visualization, enabling a faster and more rigorous approach to experimental data processing. Designed for students, researchers, and anyone working with experimental data, it combines ease of use with methodological accuracy.

Installation

You can install LabToolbox from PyPI using pip:

pip install LabToolbox

Alternatively, you can clone the repository and install it manually:

git clone https://github.com/giusesorrentino/LabToolbox.git
cd LabToolbox
pip install .

Dependencies

LabToolbox relies on a set of well-established scientific Python libraries. When installed via pip, these dependencies are automatically handled. However, for reference or manual setup, here is the list of core dependencies:

  • numpy – fundamental package for numerical computing.
  • scipy – scientific and technical computing tools.
  • matplotlib – for plotting and data visualization.
  • statsmodels – statistical modeling and inference.
  • emcee – affine-invariant ensemble sampler for MCMC.
  • corner – corner plots for visualizing multidimensional distributions.
  • lmfit – flexible curve-fitting with parameter constraints.
  • astropy – core astronomy library for Python.

Note: Up to version 2.0.3, the package was tested and validated on Python 3.9.6. Starting from version 3.0.0, it has been tested only on Python 3.13.3. While compatibility with earlier Python versions (≥ 3.9.6) is still expected, it is no longer officially guaranteed. The minimum required version remains Python 3.9.

Library Structure

The LabToolbox package is organized into multiple submodules, each dedicated to a specific aspect of experimental data analysis:

  • LabToolbox.fit: Routines for linear and non-linear curve fitting.

  • LabToolbox.signals: Signal analysis tools tailored for laboratory experiments, featuring frequency domain analysis and post-processing of acquired data.

  • LabToolbox.stats: Statistical tools for experimental data analysis, including generation of synthetic datasets, histogram construction, outlier removal, residual analysis (normality, skewness, kurtosis), and likelihood/posterior computation for parametric models.

  • LabToolbox.uncertainty: Methods for estimating and propagating uncertainties in experimental contexts, allowing quantification of how input errors affect model outputs.

  • LabToolbox.utils: A collection of helper functions for tasks like data formatting and general-purpose utilities used throughout the package.

Documentation

Detailed documentation for all modules and functions is available in the GitHub Wiki. The wiki includes function descriptions, usage examples, and practical guidance to help you get the most out of the library.

Citation

If you use this software, please cite it using the metadata in CITATION.cff. You can also use GitHub’s “Cite this repository” feature (available in the sidebar of the repository page).

Code of Conduct

This project includes a Code of Conduct, which all users and contributors are expected to read and follow.

Additionally, the Code of Conduct contains a section titled “Author’s Ethical Requests” outlining the author's personal expectations regarding responsible and respectful use, especially in commercial or large-scale contexts. While not legally binding, these principles reflect the spirit in which this software was developed, and users are kindly asked to consider them when using the project.

Disclaimer

LabToolbox makes use of the uncertainty_class package, available on GitHub, which provides functionality for uncertainty propagation in calculations. Manual installation is not required, as it is included as a module within LabToolbox.

Some utility functions — namely my_cov, my_var, my_mean, my_line, and y_estrapolato — are adapted from the my_lib_santanastasio package, originally developed by F. Santanastasio for the Laboratorio di Meccanica course at the University of Rome “La Sapienza”.

Additionally, the lin_fit and model_fit functions provide the option to visualize fit residuals. This feature draws inspiration from the VoigtFit library, with the relevant portions of code clearly annotated within the source.