Line-Profile Analysis Software (LIPRAS)

Peak fitting GUI for Diffraction Data

2.2K Downloads

Updated 30 Oct 2021

From GitHub

View License on GitHub

Line-Profile Analysis Software (LIPRAS)

Authors

Giovanni Esteves, Klarissa Ramos, Chris M. Fancher, and Jacob L. Jones

Contact Info
Email: gesteve@ncsu.edu or gesteves21@gmail.com
Please include "LIPRAS" in subject

History: The backbone of the code was originally created by Jacob L. Jones when he was a post doc back in 2006-2007. In 2014, Chris M. Fancher continued development of the code created by Jacob and successfully turned it into a class file within MATLAB. Giovanni Esteves further built upon Chris's version by polishing the code and adding features to enhances its feasibility to new users. Finally, in 2016 Klarissa Ramos joined the Jones Research group and jointly with Giovanni they restructured the class file into a graphical user interface (GUI) which is now known as LIPRAS.

What is LIPRAS?

LIPRAS [LEEP-ruhs], short for Line-Profile Analysis Software, is a graphical user interface for least-squares fitting of Bragg peaks in powder diffraction data. For any region of the inputted data, user can choose which profile functions to apply to the fit, constrain profile functions, and view the resulting fit in terms of the profile functions chosen. A Bayesian inference analysis can be carried out on the resulting least-squares result to generate a full description of the errors for all profile parameters.

Features in LIPRAS

Why use LIPRAS? You can use LIPRAS to visualize and analyze diffraction data.

  • Quickly extract relevant peak information about the position, full width at half maximum (FWHM), and intensity
  • Conduct Bayesian inference on least-squares results using a Markov Chain Monte Carlo algorithm
  • Customize the background fit by either treating it separately (Polynomial or Spline) or including it in the least-squares routine (Polynomial only)
  • Can analyzes files with a different number of data points and/or X-values, however, check fitting range before attempting
  • Fit up to 20 peaks in the current profile region
  • Choose from 5 peak-shape functions: Gaussian, Lorentzian, Pseudo-Voigt, and Pearson VII, and Asymmetric Pearson VII
  • Peak-shape functions can be constrained in terms of intensity, peak position, FWHM, and mixing coefficient
  • Automatically calculate Cu-Kalpha2 peaks when working with laboratory X-ray data
  • Change any of the starting fit values and instantly view a sample plot of the fit, before conducting a fit
  • For multiple diffraction patterns, results from previous fit are subsequent starting parameters for next fit
  • Visualize results with a plot of the resulting peak fit and residual plot
  • Resulting coefficients values can be viewed with file number
  • Parameters files are written to recreate fits and detail what fit parameters and profile shape functions were used
  • Accepts the following file types: .xy, .xye, .xls, .xlsx, .fxye, .xrdml, .chi, .csv (Windows Only)
  • Installation

    MATLAB Users

    Requires MATLAB 2016b, Curve Fitting Toolbox, and GUI Layout Toolbox
    You can start using LIPRAS in MATLAB after downloading GUI Layout Toolbox with a MATLAB version 2016b or greater thats equipped with Curve Fitting Toolbox. The Statistics and Machine Learning Toolbox is required for Bayesian analysis, but not for peak fitting.

    GUI Layout Toolbox: https://www.mathworks.com/matlabcentral/fileexchange/47982-gui-layout-toolbox

    Stand-Alone Version (NO MATLAB NEEDED)

    This version is not updated as often as the GitHub repository since it needs to be compiled using a specific MATLAB license on a specific computer.

    LIPRAS, uploaded to SourceForge: *Stand-Alone Version Download

    If you use LIPRAS for your research, please cite it:

    1. Giovanni Esteves, Klarissa Ramos, Chris M. Fancher, and Jacob L. Jones. LIPRAS: Line-Profile Analysis Software. (2017). DOI: 10.13140/RG.2.2.29970.25282/3

    Acknowledgement

    This website is based in part upon work supported by the National Science Foundation under Grant No. 1409399. Any opinions, findings and conclusions or recommendations expressed in this website are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).

    License

    LIPRAS BSD License, Copyright (c) 2017, North Carolina State University All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    3. The names North Carolina State University, NCSU and any tradename, personal name, trademark, trade device, service mark, symbol, image, icon, or any abbreviation, contraction or simulation thereof owned by North Carolina State University must not be used to endorse or promote products derived from this software without prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

    Cite As

    Giovanni Esteves, Klarissa Ramos, Chris M. Fancher, and Jacob L. Jones. LIPRAS: Line-Profile Analysis Software. (2017). DOI: 10.13140/RG.2.2.29970.25282/3

    MATLAB Release Compatibility
    Created with R2016b
    Compatible with any release
    Platform Compatibility
    Windows macOS Linux

    Community Treasure Hunt

    Find the treasures in MATLAB Central and discover how the community can help you!

    Start Hunting!

    Versions that use the GitHub default branch cannot be downloaded

    Version Published Release Notes
    1.466.2.0

    Update to readme.md

    1.466.1.0

    Fixing description notes

    1.466.0.0

    1. Fixed issue with checking for update, need to compile stand-alone version again.

    1.465.0.0

    1. The 'Update' button, after conducting a fit, was not applying results of LS fit as starting parameters on next LS (i.e. hitting fit data) on the first click
    2. Zoom resets on new data
    3. Fixed an issue where selecting no file would cause an error

    1.460.0.0

    1. Read in Rigaku ASC and RAS files
    2. Fixed issue with table display on BayesGUI when switching b/w include Bkg or not
    3. Added ability to download ZIP file containing LIPRAS update

    1.455.0.0

    1. Analyze files with a different number of data points in least squares and Bayesian component. Check fitting range before attempting.
    2. Bkg refined in least squares can now be used in Bayesian routine
    3. Symmetric functions can be made asymmetric

    1.430.0.0

    1. Fixed an issue that caused the Bayesian of analysis of multiple files to use the SP from the first file and applied it to all files.
    2. Bayesian fit plot now sets Xlim to min 2θ and max 2θ used in Least squares

    1.429.0.0

    Added multipliers to SD and UB/LB bounds
    Added ability to plot resulting Bayesian fit
    Bayesian component now checks for Statistics Toolbox
    Added some logical statements to avoid error of hitting 'plot' when no Bayesian analysis has been conducted

    1.428.0.0

    Bug fixes to Bayesian GUI. Added ability to plot Sigma^2 trace plot.

    1.425.0.0

    Bug Fixes, Right-click now delete Bkg points during selection, Introduced alpha version of Bayesian analysis component, which requires Statistics and Machine Learning Toolbox

    1.419.0.0

    The ‘Check for Updates’ now displays current version and the available version if an update is recommended. Added a try/catch statement to .csv, .xlsx, .xls files for handling 2 or 3 column data (twotheta, intensity), (twotheta, intensity, error).

    1.418.0.0

    Added an if statement for cases when measured intensity was 0, which would cause the weight of that value to be 'Inf' in MATLAB.

    1.417.0.0

    Significant improvement to background refinement when 'Refine Bkg' is on

    1.414.0.0

    Small changes, 'Default' weight options for CHI files were incorrect. This was a typo, although could be forced by specifying 1/obs. Found out GOF or (reduced chi-square) is sse/dfe which are values found in the Fmodel files.

    1.410.0.0

    See Update Notes, Highlight:
    1. Fixed an issue that caused the weights of the first pattern to be applied to all the patterns loaded instead of being file dependent
    2. The errors from files (FXYE and XYE) are now properly read and applied as weights

    1.1.0.0

    Highlights, See update notes for details
    • Preference Menu has been expanded
    • Code clean up
    • Fmodel for individual files are no longer written
    • Kalpha2 peaks are now written in Fdata file when used

    1.0.0.0

    Updated description

    Added Stand-Alone version link for those that want to run LIPRAS without MATLAB
    Added GitHub webpage
    Needs Curve Fitting Toolbox to run
    Updated Description
    SourceForge now has stand-alone version

    To view or report issues in this GitHub add-on, visit the GitHub Repository.
    To view or report issues in this GitHub add-on, visit the GitHub Repository.