SrMise¶
SrMise is the DiffPy tool for peak extraction and peak fitting from atomic pair distribution functions (PDFs). It implements a powerful information-theoretic multimodeling approach based on the Akaike information criterion (AIC) to generate and rank physically plausible sets of peaks even in the absence of a constraining structural model. This approach to peak extraction is premised upon PDFs reporting accurate experimentally-determined uncertainties, and when these are unavailable results are contingent on a user-specified ad hoc uncertainty. PDFs mixing positive and negative peaks, such as some neutron PDFs, are compatible with the SrMise peak fitting, but not peak extraction, capability.
The software aids rapid analysis of crystalline and nanostructured materials. Reasonable values for nearly all program parameters can be estimated directly from the data, although the PDF baseline of non-crystalline materials requires user judgment. Crystalline (linear) and spherical nanoparticle baselines are included, and SrMise also supports arbitrary polynomial and interpolated baselines. Other key features include peak functions incorporating termination effects, standard uncertainty reporting, and a framework enabling a flexible AIC-driven multimodeling analysis. A command-line tool exposes basic peak extraction functionality, with full functionality available through Python scripting.
This is an alpha release of SrMise, and the capabilities and documentation of the project will evolve. In particular, the multimodeling API is expected to change significantly in a future version. The DiffPy team encourages investigators to use the software even at this early stage, and invites feedback and suggestions.
Getting Started¶
The 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 library
See the SrMise license for terms and conditions of use. Detailed installation instructions for the Windows, Mac OS X, and Linux platforms follow.
Windows¶
Several 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.
Alternately, 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.
After installing Python and the required packages, we can install SrMise.
The simplest way to obtain diffpy.srmise on Windows systems
is using pip
to download and install the latest release from the
Python Package Index (PyPI). To do so, open a
command window by running cmd
from the Start Menu’s application search box
(Windows 7/8/10) or Run command (Windows Vista and earlier). Verify that the
pip
program is installed by running
pip --version
If this command is not found, download and run
get-pip.py, which will install both it
and setuptools. For example, if your Windows user name is MyName
and you
download the file to the desktop, you would run the following from the command
line:
cd C:\Users\MyName\Desktop
python get-pip.py
Finally, install the latest version of SrMise by running
pip install diffpy.srmise
Mac OS X¶
For Mac OS X systems with the MacPorts package manager, the required software can be installed with
sudo port install \
python27 py27-setuptools py27-numpy py27-scipy py27-matplotlib
When 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 python27
The simplest way to obtain diffpy.srmise on Mac OS X systems
is using pip
to download and install the latest release from
PyPI.
sudo pip install diffpy.srmise
If you prefer to install from sources, download them from the GitHub or PyPI pages for SrMise. Uncompress them to a directory, and from that directory run
sudo python setup.py install
This installs diffpy.srmise for all users in the default system location. If
administrator (root) access is not available, see the usage info from
python setup.py install --help
for options to install to user-writable
directories.
Linux¶
On 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-matplotlib
Similarly, on Fedora:
sudo yum install python-setuptools numpy scipy python-matplotlib
For other Linux distributions consult the appropriate package manager.
The simplest way to obtain diffpy.srmise on Linux systems
is using pip
to download and install the latest release from
PyPI.
sudo pip install diffpy.srmise
If you prefer to install from sources, download them from the GitHub or PyPI pages for SrMise. Uncompress them to a directory, and from that directory run
sudo python setup.py install
This installs diffpy.srmise for all users in the default system location. If
administrator (root) access is not available, see the usage info from
python setup.py install --help
for options to install to user-writable
directories.
What next?¶
Explore the SrMise tutorial!