diffpy.morph: Python tools for model independent comparisons between sets of 1D functions

Authors:
  • AYAndrew Yang
    Andrew Yang
  • CFChristopher L. Farrow
    Christopher L. Farrow
  • PJPavol Juhás
    Pavol Juhás
  • LILuis Kitsu Iglesias
    Luis Kitsu Iglesias
  • CLChia-Hao Liu
    Chia-Hao Liu
  • SMSamuel D. Marks
    Samuel D. Marks
  • VWVivian R. K. Wall
    Vivian R. K. Wall
  • JSJoshua Safin
    Joshua Safin
  • SDSean M. Drewry
    Sean M. Drewry
  • CMCaden Myers
    Caden Myers
  • DHDillon F. Hanlon
    Dillon F. Hanlon
  • NLNicholas Leonard
    Nicholas Leonard

Abstract
diffpy$.$morph addresses a need to gain scientific insights from 1D scientific spectra in model independent ways. A powerful approach for this is to take differences between pairs of spectra and look for meaningful changes that might indicate underlying chemical, structural, or other modifications. The challenge is that the difference curve may contain uninteresting differences such as experimental inconsistencies and benign physical changes such as the effects of thermal expansion. diffpy$.$morph allows researchers to apply simple transformations, or "morphs", to one of the datasets to remove the unwanted differences revealing, when they are present, non-trivial differences. diffpy$.$morph is an open-source Python package available on the Python Package Index and conda-forge. Here, we describe its functionality and apply it to solve a range of experimental challenges on diffraction and PDF data from x-rays and neutrons, though we note that it may be applied to any 1D function in principle.