Difference between revisions of "Software"

From GISAXS
Jump to: navigation, search
(Data Viewing, Reduction, and Simple Analysis)
(Geared towards 1D data)
 
(3 intermediate revisions by the same user not shown)
Line 42: Line 42:
 
* '''DPDAK''': Open-source Python tool for analyzing large sets of SAXS data. Works on Linux and Windows.
 
* '''DPDAK''': Open-source Python tool for analyzing large sets of SAXS data. Works on Linux and Windows.
 
** [https://dpdak.desy.de/index.php/Hauptseite Official site.]
 
** [https://dpdak.desy.de/index.php/Hauptseite Official site.]
 +
* '''SAS-cam''': SAXS data reduction, using the [https://bio.tools/sastbx SASTBX package].
 +
** Citation: H. Wu, Y. Li, G. Liu, H. Liu and N. Li [http://scripts.iucr.org/cgi-bin/paper?ei5058 SAS-cam: a program for automatic processing and analysis of small-angle scattering data] ''J. Appl. Cryst.'' '''2020''', 53, 1147-1153. [https://doi.org/10.1107/S1600576720008985 doi: 10.1107/S1600576720008985]
  
 
==Data Modeling and Fitting==
 
==Data Modeling and Fitting==
Line 101: Line 103:
 
* '''[[BornAgain]]''': Python/C++ implementation of DWBA modeling (similar to IsGISAXS, but more modern and with lots of extensions). Allows for polarized [[GISANS]] and GISAXS simulation and fitting. Available on Linux, MacOS and Windows. Written by the [http://apps.jcns.fz-juelich.de/doku/sc/start Scientific Computing Group] at [http://www.mlz-garching.de/ MLZ Garching].
 
* '''[[BornAgain]]''': Python/C++ implementation of DWBA modeling (similar to IsGISAXS, but more modern and with lots of extensions). Allows for polarized [[GISANS]] and GISAXS simulation and fitting. Available on Linux, MacOS and Windows. Written by the [http://apps.jcns.fz-juelich.de/doku/sc/start Scientific Computing Group] at [http://www.mlz-garching.de/ MLZ Garching].
 
** Citation: C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke (2015), BornAgain - Software for simulating and fitting X-ray and neutron small-angle scattering at grazing incidence, http://www.bornagainproject.org
 
** Citation: C. Durniak, M. Ganeva, G. Pospelov, W. Van Herck, J. Wuttke (2015), BornAgain - Software for simulating and fitting X-ray and neutron small-angle scattering at grazing incidence, http://www.bornagainproject.org
 +
** Citation: G. Pospelov, W. Van Herck, J. Burle, J. M. Carmona Loaiza, C. Durniak, J. M. Fisher, M. Ganeva, D. Yurov and J. Wuttke [https://scripts.iucr.org/cgi-bin/paper?ge5067 BornAgain: software for simulating and fitting grazing-incidence small-angle scattering] ''J. Appl. Cryst.'' '''2020''',  53, 262-276. [https://doi.org/10.1107/S1600576719016789 doi: 10.1107/S1600576719016789]
 
** [http://www.bornagainproject.org/ Official site.]
 
** [http://www.bornagainproject.org/ Official site.]
 
* '''[[HipGISAXS]]''': A high-performance (massively parallel) C++ software for simulating GISAXS data.
 
* '''[[HipGISAXS]]''': A high-performance (massively parallel) C++ software for simulating GISAXS data.
Line 137: Line 140:
 
** [http://genx.sourceforge.net/ Official site.]
 
** [http://genx.sourceforge.net/ Official site.]
 
* '''Aurore''': Open source Matlab code for neutron reflectivity, including error estimates.
 
* '''Aurore''': Open source Matlab code for neutron reflectivity, including error estimates.
** Citation: Y. Gerelli [http://scripts.iucr.org/cgi-bin/paper?rg5094 Aurore: new software for neutron reflectivity data analysis] ''J. Appl. Cryst.'' '''2016''', 49, 330-339. [http://dx.doi.org/10.1107/S1600576716000108 10.1107/S1600576716000108]
+
** Citation: Y. Gerelli [http://scripts.iucr.org/cgi-bin/paper?rg5094 Aurore: new software for neutron reflectivity data analysis] ''J. Appl. Cryst.'' '''2016''', 49, 330-339. [http://dx.doi.org/10.1107/S1600576716000108 doi: 10.1107/S1600576716000108]
 
** [https://sourceforge.net/projects/aurorenr/ Official site.]
 
** [https://sourceforge.net/projects/aurorenr/ Official site.]
 
* '''Web Reflectivity Calculator''': Interactive, Web-Based Calculator of Neutron and X-ray Reflectivity.
 
* '''Web Reflectivity Calculator''': Interactive, Web-Based Calculator of Neutron and X-ray Reflectivity.
Line 145: Line 148:
 
** [https://github.com/refnx/refnx Available on github]
 
** [https://github.com/refnx/refnx Available on github]
 
** Citation:  A.R.J. Nelson and S.W. Prescott [http://scripts.iucr.org/cgi-bin/paper?rg5158 refnx: neutron and X-ray reflectometry analysis in Python] ''J. Appl. Cryst.'' '''2019'''. [https://doi.org/10.1107/S1600576718017296 doi: 10.1107/S1600576718017296]
 
** Citation:  A.R.J. Nelson and S.W. Prescott [http://scripts.iucr.org/cgi-bin/paper?rg5158 refnx: neutron and X-ray reflectometry analysis in Python] ''J. Appl. Cryst.'' '''2019'''. [https://doi.org/10.1107/S1600576718017296 doi: 10.1107/S1600576718017296]
 +
* '''Multifitting''': Reflectivity calculations for multilayer systems
 +
** Citation: M. Svechnikov [http://scripts.iucr.org/cgi-bin/paper?te5051 Multifitting: software for the reflectometric reconstruction of multilayer nanofilms] ''J. Appl. Cryst.'' '''2019''' [https://doi.org/10.1107/S160057671901584X doi: 10.1107/S160057671901584X]
  
 
===[[Crystallography]]===
 
===[[Crystallography]]===
Line 160: Line 165:
 
** Citations: Petricek, V., Dusek, M. & Palatinus, L. Crystallographic Computing System JANA2006: General features ''Z. Kristallogr.'' '''2014''', 229(5), 345-352. [10.1515/zkri-2014-1737 doi: 10.1515/zkri-2014-1737]
 
** Citations: Petricek, V., Dusek, M. & Palatinus, L. Crystallographic Computing System JANA2006: General features ''Z. Kristallogr.'' '''2014''', 229(5), 345-352. [10.1515/zkri-2014-1737 doi: 10.1515/zkri-2014-1737]
 
** [http://jana.fzu.cz/ Official site.]
 
** [http://jana.fzu.cz/ Official site.]
 +
* '''τompas''': TEM online multi-purpose analyzing system
 +
** Citation: R.-X. Xie and W.-Z. Zhang [http://scripts.iucr.org/cgi-bin/paper?ks5644 τompas: a free and integrated tool for online crystallographic analysis in transmission electron microscopy] ''J. Appl. Cryst.'' '''2020''', 53. [https://doi.org/10.1107/S1600576720000801 doi: 10.1107/S1600576720000801]
  
 
==Computing [[Materials]] Properties==
 
==Computing [[Materials]] Properties==

Latest revision as of 11:34, 31 July 2020

A common question for new GISAXS users is: "What software can I use to analyze my data?" Unfortunately, there is no single package that will allow you to perform any possible analysis. This is in part due to the diversity of possible kinds of data analysis one might want to do on GISAXS or GIWAXS images. The following lists a variety of packages that are available.

Data Viewing, Reduction, and Simple Analysis

These packages provide ways to view data, and perform simple operations (linecuts, etc.).

Geared towards 2D data

Geared towards 1D data

Data Modeling and Fitting

These packages can predict scattering curves for various possible nano- or molecular- structures. Some of the packages allow fitting of experimental data.

SAXS

BioSAXS

GISAXS

Reflectivity

Crystallography

Computing Materials Properties

General

  • SciStreams: Simple workflow/pipeline software (building on Dask and Streams), intended for asynchronous and distributed computations at a beamline.
  • ParaView: Generalized GUI for visualizing scientific data, such as 3D images (uses Python and QT).
  • Mantid: Framework for computing and visualizing materials science data.
    • Official site.
    • Citation: O. Arnold, et al., Mantid—Data analysis and visualization package for neutron scattering and μSR experiments, Nuclear Instruments and Methods in Physics Research Section A, Volume 764, 11 November 2014, Pages 156-166. doi: 10.1016/j.nima.2014.07.029
  • DAWN (Data Analysis WorkbeNch): An application (based on Eclipse) for general scientific data analysis. It is mainly developed by the Diamond Light Source and is well-optimized for analysis of x-ray data, including SAXS-specific features.

Custom

It is of course possible to code your own software for modeling or fitting scattering data. This is not as difficult as it may at first seem. The fundamental scattering equations are well-known (c.f. scattering, Fourier transform, Form Factor, Structure Factor, Lattice Factor), and can be brute-force solved numerically. Or, they can be solved (or simplified) analytically for a particular case. Many modern programming languages provide libraries for numerical integration, fitting, minimizing multi-dimensional parameter spaces, etc. (e.g. Python is particularly clean and powerful).

See Also