Package: diffpy.srmise
DiffPy projecttool for unbiased peak extraction from
atomic pair distribution functions.SrMise is an implementation of theParSCAPE algorithmfor peak extraction from
atomic pair distribution functions (PDFs).  It is designed to function even
whena prioriknowledge of the physical sample is limited, utilizing the
Akaike Information Criterion (AIC) to estimate whether peaks are
statistically justified relative to alternate models.  Three basic use cases
are anticipated for SrMise.  The first is peak fitting a user-supplied
collections of peaks.  The second is peak extraction from a PDF with no (or
only partial) user-supplied peaks.  The third is an AIC-driven multimodeling
analysis where the output of multiple SrMise trials are ranked.The framework for peak extraction defines peak-like clusters within the data,
extracts a single peak within each cluster, and iteratively combines nearby
clusters while performing a recursive search on the residual to identify
occluded peaks.  Eventually this results in a single global cluster
containing many peaks fit over all the data.  Over- and underfitting are
discouraged by use of the AIC when adding or, during a pruning step, removing
peaks.  Termination effects, which can lead to physically spurious peaks in
the PDF, are incorporated in the mathematical peak model and the pruning step
attempts to remove peaks which are fit better as termination ripples due to
another peak.Where possible, SrMise provides physically reasonable default values
for extraction parameters.  However, the PDF baseline should be estimated by
the user before extraction, or by performing provisional peak extraction with
varying baseline parameters.  The package defines a linear (crystalline)
baseline, arbitrary polynomial baseline, a spherical nanoparticle baseline,
and an arbitrary baseline interpolated from a list of user-supplied values.
In addition, PDFs with accurate experimentally-determined uncertainties are
necessary to provide the most reliable results, but historically such PDFs
are rare.  In the absence of accurate uncertainties anad hocuncertainty
must be specified.For more information about SrMise, see the users manual athttp://diffpy.github.io/diffpy.srmise.Getting StartedThe diffpy.srmise package requires Python 2.6 or 2.7 and the following software:setuptools- software distribution tools for PythonNumPy- numerical mathematics and fast array operations for PythonSciPy- scientific libraries for Pythonmatplotlib- python plotting librarySee theSrMise licensefor terms and conditions of use.
Detailed installation instructions for theWindows,Mac OS X, andLinuxplatforms follow.WindowsSeveral prebuilt Python distributions for Windows include all the
prerequisite software required to run SrMise, and installing one of these is the
simplest way to get started.  These distributions are usually free for
individual and/or academic use, but some also have commercial version.  Links to
executables, installation instructions, and licensing information
for some popular options are listed below.AnacondaEnthought CanopyPython(x,y)WinPythonAlternately, individual Windows executables for Python and the required
components can be downloaded and installed.  The official Windows releases of
Numpy and SciPy do not currently support 64-bit Python installations, so be
sure to download the 32-bit versions of these packages.Python 2.6/2.7NumPySciPymatplotlibAfter installing Python and the required packages, the simplest way to obtain
SrMise is usingpipto download and install the latest release from thePython Package Index(PyPI).  Open a command window
by runningcmdfrom the Start Menu’s application search box (Windows 7/8/10)
or Run command (Windows Vista and earlier).  Verify that thepipprogram is installed by runningpip --versionIf this command is not found, download and runget-pip.py, which will install both it
and setuptools.  For example, if the file were downloaded to the desktop, a
Windows user namedMyNameshould run the following from the command
line:cd C:\Users\MyName\Desktop
python get-pip.pyFinally, install the latest version of SrMise by runningpip install diffpy.srmiseMac OS XFor Mac OS X systems with the MacPorts package manager, the required
software can be installed withsudo port install \
   python27 py27-setuptools py27-numpy py27-scipy py27-matplotlibWhen installing for MacPorts, make sure the MacPorts bin directory is the first
in the system PATH and that python27 is selected as the default Python version
in MacPorts:sudo port select --set python python27The simplest way to obtain diffpy.srmise on Mac OS X systems
is usingpipto download and install the latest release fromPyPI.sudo pip install diffpy.srmiseThose who prefer to install from sources may download them from theGitHuborPyPIpages for SrMise.
Uncompress them to a directory, and from that directory runsudo python setup.py installThis installs diffpy.srmise for all users in the default system location. If
administrator (root) access is not available, see the usage info frompython setup.py install--helpfor options to install to user-writable
directories.LinuxOn Ubuntu and Debian Linux, the required software can easily be installed using
the system package manager:sudo apt-get install \
   python-setuptools python-numpy python-scipy python-matplotlibSimilarly, on Fedora:sudo yum install python-setuptools numpy scipy python-matplotlibFor other Linux distributions consult the appropriate package manager.The simplest way to obtain diffpy.srmise on Linux systems
is usingpipto download and install the latest release from thePyPI.sudo pip install diffpy.srmiseThose who prefer to install from sources may download them from theGitHuborPyPIpages for SrMise.
Uncompress them to a directory, and from that directory runsudo python setup.py installThis installs diffpy.srmise for all users in the default system location. If
administrator (root) access is not available, see the usage info frompython setup.py install--helpfor options to install to user-writable
directories.DEVELOPMENTdiffpy.srmise is open-source software developed with support of the Center of
Research Excellence in Complex Materials at Michigan State University, in
cooperation with the DiffPy-CMI complex modeling initiative at the Brookhaven
National Laboratory.  The diffpy.srmise sources are hosted athttps://github.com/diffpy/diffpy.srmise.Feel free to fork the project and contribute.  To install diffpy.srmise in a
development mode, with its sources being directly used by Python rather than
copied to a package directory, usepython setup.py develop --userACKNOWLEDGEMENTThe source code ofpdfdataset.pywas derived from diffpy.pdfgui.CONTACTSFor more information on SrMise please visit the DiffPy project web-pagehttp://www.diffpy.org/or email Prof. Simon Billinge atsb2896@columbia.edu.