Metadata-Version: 2.1
Name: emgfit
Version: 0.5.0
Summary: Fitting of time-of-flight mass spectra with Hyper-EMG models
Home-page: https://github.com/RobbenRoll/emgfit
Author: Stefan Paul
Author-email: stefan.paul@triumf.ca
License: BSD (3-clause)
Classifier: Development Status :: 4 - Beta
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
License-File: LICENSE.txt
License-File: AUTHORS.rst
Requires-Dist: lmfit>=1.2.2
Requires-Dist: numpy>=1.18.1
Requires-Dist: scipy>=1.3.2
Requires-Dist: pandas>=1.2.2
Requires-Dist: matplotlib
Requires-Dist: docutils>=0.3
Requires-Dist: ipython>=7.19.0
Requires-Dist: ipykernel>=5.3.4
Requires-Dist: pywin32>=301; sys_platform == "win32"
Requires-Dist: numdifftools>=0.9.39
Requires-Dist: jupyter
Requires-Dist: numba
Requires-Dist: mpmath
Requires-Dist: emcee>=3.0
Requires-Dist: corner
Requires-Dist: tqdm
Requires-Dist: h5py
Requires-Dist: xlsxwriter>=1.2.8
Requires-Dist: xlrd>=1.0.0
Requires-Dist: openpyxl
Requires-Dist: termcolor
Requires-Dist: joblib
Requires-Dist: dill
Requires-Dist: multiprocess

======
emgfit
======

.. image:: https://github.com/RobbenRoll/emgfit/workflows/CI%20tests/badge.svg?branch=master
        :target: https://github.com/RobbenRoll/emgfit/actions?query=workflow%3A%22CI+tests%22

.. image:: https://img.shields.io/pypi/v/emgfit.svg
        :target: https://pypi.python.org/pypi/emgfit


Fitting of time-of-flight mass spectra with Hyper-EMG models

* Free software: 3-clause BSD license
* Online documentation: https://RobbenRoll.github.io/emgfit.
* Source code: https://github.com/RobbenRoll/emgfit

`emgfit` is a Python package for peak fitting of time-of-flight (TOF) mass
spectra with hyper-exponentially modified Gaussian (Hyper-EMG_ [1]_) model
functions. `emgfit` is a wrapper around the `lmfit`_ [2]_ curve fitting package
and uses many of lmfit's user-friendly high-level features. Experience with
`lmfit` can be helpful but is not an essential prerequisite for using `emgfit`
since the `lmfit` features stay largely 'hidden under the hood'. `emgfit` is
designed to be user-friendly and offers automation features whenever reasonable
while also supporting a large amount of flexibility and control for the user.
Depending on the user's preferences an entire spectrum can be rapidly analyzed
with only a few lines of code. Alternatively, various optional features are
available to aid the user in a more rigorous analysis. The model functions and
statistical methods provided by emgfit could be useful for analyses of
spectroscopic data from a variety of other fields.

Amongst other features, the `emgfit` toolbox includes:

* Automatic and sensitive peak detection
* Automatic import of literature values from the AME2020_ [3]_ (or
  AME2016_ [4]_) mass database
* Automatic selection of the best suited peak-shape model
* Fitting of low-statistics peaks with a binned maximum likelihood method
* Simultaneous fitting of an entire spectrum with various peaks
* Export of all relevant fit results including fit statistics and plots to an
  EXCEL output file for convenient post-processing

`emgfit` is designed to be used within Jupyter Notebooks which have become a
standard tool in the data science community. The usage and capabilities of
`emgfit` are best explored by looking at the tutorial. The tutorial and more
details can be found in the `online documentation`_.

.. _Hyper-EMG: https://www.sciencedirect.com/science/article/abs/pii/S1387380616302913
.. _`lmfit`: https://lmfit.github.io/lmfit-py/
.. _AME2020: https://www-nds.iaea.org/amdc/
.. _AME2016: http://amdc.in2p3.fr/web/masseval.html
.. _online documentation: https://RobbenRoll.github.io/emgfit

References
----------
.. [1] Purushothaman, S., et al. "Hyper-EMG: A new probability distribution
   function composed of Exponentially Modified Gaussian distributions to analyze
   asymmetric peak shapes in high-resolution time-of-flight mass spectrometry."
   International Journal of Mass Spectrometry 421 (2017): 245-254.
.. [2] Newville, M., et al. "LMFIT: Non-linear least-square minimization and
   curve-fitting for Python." Astrophysics Source Code Library (2016):
   ascl-1606.
.. [3] Wang, M., et al. "The AME2020 atomic mass evaluation (II). Tables, graphs
   and references." Chinese Physics C 45 (2021): 030003.
.. [4] Wang, M., et al. "The AME2016 atomic mass evaluation (II). Tables, graphs
   and references." Chinese Physics C 41.3 (2017): 030003.
