Difference between revisions of "Software"
KevinYager (talk | contribs) (→Computing Materials Properties) |
KevinYager (talk | contribs) (→General EM field) |
||
(112 intermediate revisions by 3 users not shown) | |||
Line 5: | Line 5: | ||
===Geared towards 2D data=== | ===Geared towards 2D data=== | ||
* '''Fit2D''': A well-known package for treatment and conversion 2D scattering images. | * '''Fit2D''': A well-known package for treatment and conversion 2D scattering images. | ||
+ | ** Citation: A. P. Hammersley [http://scripts.iucr.org/cgi-bin/paper?fs5107 FIT2D: a multi-purpose data reduction, analysis and visualization program] ''J. Appl. Cryst.'' '''2016''', 49. [http://dx.doi.org/10.1107/S1600576716000455 doi: 10.1107/S1600576716000455] | ||
** [http://www.esrf.eu/computing/scientific/FIT2D/ Official site.] | ** [http://www.esrf.eu/computing/scientific/FIT2D/ Official site.] | ||
** [http://staff.chess.cornell.edu/~smilgies/D-lineNotes/GISAXS-at-D-line/fit2d-GIXS-primer.html Fit2D primer.] | ** [http://staff.chess.cornell.edu/~smilgies/D-lineNotes/GISAXS-at-D-line/fit2d-GIXS-primer.html Fit2D primer.] | ||
Line 12: | Line 13: | ||
* '''ImageJ''': A generic tool for image treatment and analysis. Can be used to open and process x-ray detector images. | * '''ImageJ''': A generic tool for image treatment and analysis. Can be used to open and process x-ray detector images. | ||
** [http://rsb.info.nih.gov/ij/ Official site.] | ** [http://rsb.info.nih.gov/ij/ Official site.] | ||
+ | * '''NeXpy''': [[Python]] GUI for working with the [[NeXus data format]]. | ||
+ | ** [https://nexpy.github.io/nexpy/ Official site.] | ||
+ | * '''pycxdgui''': Very simple viewer for area images. | ||
+ | ** [https://github.com/CFN-softbio/pycxdgui Code available on github.] | ||
* '''[[view.gtk]]''': A simple interface for viewing 2D data, calibrating your data into ''q''-space, and extracting linecuts. Written by Lin Yang for the [[X9]] beamline at [[NSLS]]. Installation requires (free) GTK libraries. | * '''[[view.gtk]]''': A simple interface for viewing 2D data, calibrating your data into ''q''-space, and extracting linecuts. Written by Lin Yang for the [[X9]] beamline at [[NSLS]]. Installation requires (free) GTK libraries. | ||
+ | ** Citation: L. Yang, [http://journals.iucr.org/s/issues/2013/02/00/issconts.html Using an in-vacuum CCD detector for simultaneous small- and wide-angle scattering at beamline X9] ''J. Synchrotron Rad.'' '''2013''', 20, 211. [http://dx.doi.org/10.1107/S0909049512048984 doi: 10.1107/S0909049512048984] | ||
+ | ** [http://www.bnl.gov/ps/x9/software/view.asp Official site.] | ||
* '''[[pyXS]]''': Python scripts (with C++ backend) for performing analysis of 2D data. | * '''[[pyXS]]''': Python scripts (with C++ backend) for performing analysis of 2D data. | ||
** [http://www.bnl.gov/ps/x9/software/pyXS.asp Official site.] | ** [http://www.bnl.gov/ps/x9/software/pyXS.asp Official site.] | ||
+ | * '''[[SciAnalysis]]''': Python scripts for analysis of 2D x-ray scattering data. Well-suited to batch analysis of many files. | ||
+ | ** [https://github.com/CFN-softbio/SciAnalysis Code available on github.] | ||
* '''[[GIXSGUI]]''': Visualization and reduction package for GISAXS. Requires the commerical Matlab software. Written by Zhang Jiang ([[APS]]). | * '''[[GIXSGUI]]''': Visualization and reduction package for GISAXS. Requires the commerical Matlab software. Written by Zhang Jiang ([[APS]]). | ||
− | ** [http://www.aps.anl.gov/ | + | ** Citation: Z. Jiang [http://scripts.iucr.org/cgi-bin/paper?S1600576715004434 GIXSGUI: a MATLAB toolbox for grazing-incidence X-ray scattering data visualization and reduction, and indexing of buried three-dimensional periodic nanostructured films] ''J. Appl. Cryst.'' '''2015''', 48, 3, 917-926. [http://dx.doi.org/10.1107/S1600576715004434 doi: 10.1107/S1600576715004434] |
+ | ** [https://www.aps.anl.gov/Sector-8/8-ID/Operations-and-Schedules/Useful-Links/Sector-8-GIXSGUI Official site.] | ||
* '''[[GISAXSshop]]''': 2D visualization and reduction for GISAXS. Requires the Igor (Wavemetrics). Written by Byeongdu Lee ([[APS]]). | * '''[[GISAXSshop]]''': 2D visualization and reduction for GISAXS. Requires the Igor (Wavemetrics). Written by Byeongdu Lee ([[APS]]). | ||
** [https://sites.google.com/site/byeongdu/software Official site.] | ** [https://sites.google.com/site/byeongdu/software Official site.] | ||
+ | * '''Xi-Cam''': Robust GUI (pyQT based) and libraries for analyzing 2D scattering images. Developed at LBNL in connection with the [http://www.camera.lbl.gov/ CAMERA] project. | ||
+ | ** Citation: Pandolfi, R.J.; Hexemer, A.; et al. [http://journals.iucr.org/s/issues/2018/04/00/xe5032/index.html#BB14 Xi-cam: a versatile interface for data visualization and analysis] ''J. Syncr. Rad.'' '''2018''', 25 (4), 1261-1270. [https://doi.org/10.1107/S1600577518005787 doi: 10.1107/S1600577518005787] | ||
+ | ** [http://www.camera.lbl.gov/#!xi-cam-interface/z8vcm Official site.] | ||
===Geared towards 1D data=== | ===Geared towards 1D data=== | ||
* '''NCNR SANS/USANS Package''': Set of tools for reducing SANS and USANS data. Requires the commercial IgorPro software. | * '''NCNR SANS/USANS Package''': Set of tools for reducing SANS and USANS data. Requires the commercial IgorPro software. | ||
− | ** Citation: S.R. Kline | + | ** Citation: S.R. Kline [http://www.ncnr.nist.gov/programs/sans/pdf/publications/0569.pdf Reduction and Analysis of SANS and USANS Data using Igor Pro], ''J. Appl. Cryst.'' '''2006''', 39, 6, 895. [http://dx.doi.org/10.1107/S0021889806035059 doi:10.1107/S0021889806035059] |
* '''Nika''': Conversion of 2D images into 1D for SAS. Requires commercial IgorPro software. | * '''Nika''': Conversion of 2D images into 1D for SAS. Requires commercial IgorPro software. | ||
** [http://usaxs.xray.aps.anl.gov/staff/ilavsky/nika.html Official site.] | ** [http://usaxs.xray.aps.anl.gov/staff/ilavsky/nika.html Official site.] | ||
Line 29: | 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== | ||
These packages can predict scattering curves for various possible nano- or molecular- structures. Some of the packages allow fitting of experimental data. | These packages can predict scattering curves for various possible nano- or molecular- structures. Some of the packages allow fitting of experimental data. | ||
− | ===SAXS=== | + | ===[[SAXS]]=== |
* '''NCNR SANS/USANS Package''': Can model form factors for many common object shapes in solution. Requires the commercial IgorPro software. | * '''NCNR SANS/USANS Package''': Can model form factors for many common object shapes in solution. Requires the commercial IgorPro software. | ||
− | ** Citation: S.R. Kline | + | ** Citation: S.R. Kline [http://www.ncnr.nist.gov/programs/sans/pdf/publications/0569.pdf Reduction and Analysis of SANS and USANS Data using Igor Pro] ''J. Appl. Cryst.'' '''2006''', 39, 6, 895. [http://dx.doi.org/10.1107/S0021889806035059 doi:10.1107/S0021889806035059] |
+ | * '''SASView''': [[Python]] code to model form factors. (Replacement for NIST Igor software.) | ||
+ | ** [http://www.sasview.org/ Official site.] | ||
* '''Irena''': Multiple tools for analyzing [[SAXS]], [[SANS]], [[USAXS]], and [[USANS]] data. Allows modeling of [[diffuse scattering]], form factors, reflectivity, etc. Requires the commercial IgorPro software. | * '''Irena''': Multiple tools for analyzing [[SAXS]], [[SANS]], [[USAXS]], and [[USANS]] data. Allows modeling of [[diffuse scattering]], form factors, reflectivity, etc. Requires the commercial IgorPro software. | ||
** [http://usaxs.xray.aps.anl.gov/staff/ilavsky/irena.html Official site.] | ** [http://usaxs.xray.aps.anl.gov/staff/ilavsky/irena.html Official site.] | ||
* '''Scatter''': Targeted towards analysis of transmission-mode [[SAXS]] and [[SANS]]. Allows modeling of nano- and meso-structure materials (surfactants, lipids, micelles, vesicles, block-copolymers, etc.). | * '''Scatter''': Targeted towards analysis of transmission-mode [[SAXS]] and [[SANS]]. Allows modeling of nano- and meso-structure materials (surfactants, lipids, micelles, vesicles, block-copolymers, etc.). | ||
− | ** Citation: S. Förster, L. Apostol and W. Bras | + | ** Citation: S. Förster, L. Apostol and W. Bras [http://scripts.iucr.org/cgi-bin/paper?S0021889810008289 Scatter: software for the analysis of nano- and mesoscale small-angle scattering] ''J. Appl. Cryst.'' '''2010''', 43, 639. [http://dx.doi.org/10.1107/S0021889810008289 doi: 10.1107/S0021889810008289] |
** [http://www.pci.uni-bayreuth.de/rg_foerster/en/Software/index.html Official site.] | ** [http://www.pci.uni-bayreuth.de/rg_foerster/en/Software/index.html Official site.] | ||
* '''SASFit''': Combined fitting of 1D scattering curves. | * '''SASFit''': Combined fitting of 1D scattering curves. | ||
** [https://kur.web.psi.ch/sans1/SANSSoft/sasfit.html Official site.] | ** [https://kur.web.psi.ch/sans1/SANSSoft/sasfit.html Official site.] | ||
− | |||
− | |||
− | |||
− | |||
* '''BayesApp.org''': Online tool for estimating distribution functions from SAS data. | * '''BayesApp.org''': Online tool for estimating distribution functions from SAS data. | ||
** [http://www.bayesapp.org/ Official site.] | ** [http://www.bayesapp.org/ Official site.] | ||
− | ** Citation: Hansen | + | ** Citation: Hansen [http://scripts.iucr.org/cgi-bin/paper?S1600576714013156 Update for BayesApp: a web site for analysis of small-angle scattering data] ''J. Appl. Cryst.'' '''2014''' [http://dx.doi.org/10.1107/S1600576714013156 doi: 10.1107/S1600576714013156] |
+ | * '''SCT''': Software to predict/fit [[SAS|small-angle scattering]] data from atomistic models of molecules and proteins. | ||
+ | ** Citation: D. W. Wright and S. J. Perkins [http://scripts.iucr.org/cgi-bin/paper?po5031 SCT: a suite of programs for comparing atomistic models with small-angle scattering data] ''J. Appl. Cryst.'' '''2015''', 48 [http://dx.doi.org/10.1107/S1600576715007062 doi: 10.1107/S1600576715007062] | ||
+ | ** [https://github.com/dww100/sct Official site.] | ||
+ | * '''McSAS''': Monte Carlo regression to fit [[SAS|small-angle scattering]] data using collections/distributions of particles. | ||
+ | ** [http://mcsas.net/ Official site.] | ||
+ | ** I. Bressler, B. R. Pauw and A. F. Thünemann [http://scripts.iucr.org/cgi-bin/paper?vg5017 Citation: McSAS: software for the retrieval of model parameter distributions from scattering patterns] ''J. Appl. Cryst.'' '''2015''', 48, 962-969. [http://dx.doi.org/10.1107/S1600576715007347 doi: 10.1107/S1600576715007347] | ||
+ | * '''pySAXS''': Package and GUI for SAXS analysis. | ||
+ | ** [http://iramis.cea.fr/en/Phocea/Vie_des_labos/Ast/ast_sstechnique.php?id_ast=1799 Official site.] | ||
+ | * '''[[ScatterSim]]''': [[Python]] code for simulating the one-dimensional curve (circular average) for [[Lattices of nano-objects|nanoparticle superlattices]]. | ||
+ | ** Citation: [[Yager, K.G.]]; Zhang, Y.; Lu, F.; Gang, O. "[http://scripts.iucr.org/cgi-bin/paper?S160057671302832X Periodic lattices of arbitrary nano-objects: modeling and applications for self-assembled systems]" ''Journal of Applied Crystallography'' '''2014''', 47, 118–129. [http://dx.doi.org/10.1107/S160057671302832X doi: 10.1107/S160057671302832X] | ||
+ | *** See also [[Paper:Periodic lattices of arbitrary nano-objects: modeling and applications for self-assembled systems|summary of paper]]. | ||
+ | ** [https://github.com/CFN-softbio/ScatterSim Code available on github.] | ||
− | ===GISAXS=== | + | ===[[BioSAXS]]=== |
+ | * '''ScÅtter''': Java-based application for SAXS analysis. Developed by Robert Rambo (Diamond Light Source); previously developed at the SIBYLS beamline (12.3.1) of the [[ALS]]. | ||
+ | ** [http://www.bioisis.net/tutorial/9 Official site.] | ||
+ | * '''BioXTAS RAW''': Simple program for performing 1D [[Guinier plot|Guinier analysis]] for [[BioSAXS]] data. (Provided by [[CHESS]].) | ||
+ | ** Citation: J. B. Hopkins, R. E. Gillilan and S. Skou [http://scripts.iucr.org/cgi-bin/paper?ge5036 BioXTAS RAW: improvements to a free open-source program for small-angle X-ray scattering data reduction and analysis] ''J. Appl. Cryst.'' '''2017''', 50 [https://doi.org/10.1107/S1600576717011438 doi: 10.1107/S1600576717011438] | ||
+ | ** [http://bioxtasraw.sourceforge.net/ Official site], [http://sourceforge.net/projects/bioxtasraw/ download]. | ||
+ | * '''[[ATSAS]]''': A suite of tools for small-angle scattering data of biological macromolecules. | ||
+ | ** Citation: P. V. Konarev, M. V. Petoukhov, V. V. Volkov and D. I. Svergun [http://scripts.iucr.org/cgi-bin/paper?S0021889806004699 ATSAS 2.1, a program package for small-angle scattering data analysis] ''J. Appl. Cryst.'' '''2006''', 39, 277. [http://dx.doi.org/10.1107/S0021889806004699 doi: 10.1107/S0021889806004699] | ||
+ | ** Citation: M. V. Petoukhov, D. Franke, A. V. Shkumatov, G. Tria, A. G. Kikhney, M. Gajda, C. Gorba, H. D. T. Mertens, P. V. Konarev and D. I. Svergun [http://scripts.iucr.org/cgi-bin/paper?S0021889812007662 New developments in the ATSAS program package for small-angle scattering data analysis] ''J. Appl. Cryst.'' '''2012''', 45, 342, [http://dx.doi.org/10.1107/S0021889812007662 doi: 10.1107/S0021889812007662] | ||
+ | ** Citation: D. Franke, M. V. Petoukhov, P. V. Konarev, A. Panjkovich, A. Tuukkanen, H. D. T. Mertens, A. G. Kikhney, N. R. Hajizadeh, J. M. Franklin, C. M. Jeffries and D. I. Svergun [http://scripts.iucr.org/cgi-bin/paper?ge5042 ATSAS 2.8: a comprehensive data analysis suite for small-angle scattering from macromolecular solutions] ''J. Appl. Cryst.'' '''2017''', 50 [https://doi.org/10.1107/S1600576717007786 doi: 10.1107/S1600576717007786] | ||
+ | ** [http://www.embl-hamburg.de/biosaxs/software.html Official site.] | ||
+ | * '''Biomachina''': Visualization of low-resolution bead-based models of proteins from SAXS data. | ||
+ | ** [http://situs.biomachina.org/tutorial_saxs.html#visual Official site.] | ||
+ | * '''ScatterBrain''': Cross-platform (Windows, OSX, Linux) IDL software, provided by Australian Synchrotron. | ||
+ | ** [http://www.synchrotron.org.au/index.php/aussyncbeamlines/saxswaxs/software-saxswaxs Official site.] | ||
+ | |||
+ | ===[[CD-SAXS]]=== | ||
+ | * [https://bitbucket.org/dkumar75/cd-gisaxs/src/master/ cd-gisaxs] | ||
+ | * [https://github.com/CEA-MetroCarac/cdsaxs CEA-MetroCarac/cdsaxs] (includes GPU parallelization) | ||
+ | |||
+ | ===[[GISAXS]]=== | ||
* '''IsGISAXS''': GISAXS analysis and simulation software. Enables prediction of 2D scattering patterns, including the effects of [[DWBA]] and its variants. Written by Rémi Lazzari. | * '''IsGISAXS''': GISAXS analysis and simulation software. Enables prediction of 2D scattering patterns, including the effects of [[DWBA]] and its variants. Written by Rémi Lazzari. | ||
− | ** Citation: R. Lazzari | + | ** Citation: R. Lazzari [http://scripts.iucr.org/cgi-bin/paper?S0021889802006088 IsGISAXS: a program for grazing-incidence small-angle X-ray scattering analysis from supported islands] ''J. Appl. Cryst.'' '''2002''', 35, 406-421. [http://dx.doi.org/10.1107/S0021889802006088 doi: 10.1107/S0021889802006088] |
− | ** [http:// | + | ** [http://www.insp.jussieu.fr/oxydes/IsGISAXS/isgisaxs.htm Official site.] |
* '''FitGISAXS''': DWBA modeling. Requires commercial IgorPro software. | * '''FitGISAXS''': DWBA modeling. Requires commercial IgorPro software. | ||
+ | ** Citation: Babonneau, D. [http://scripts.iucr.org/cgi-bin/paper?hx5104 FitGISAXS: software package for modelling and analysis of GISAXS data using IGOR Pro] ''J. Appl. Cryst.'' '''2010''', 43(4), 929–936. [https://doi.org/10.1107/S0021889810020352 doi: 10.1107/S0021889810020352] | ||
** [http://www.pprime.fr/?q=fr/nanoparticules-nanostructures Official site.] | ** [http://www.pprime.fr/?q=fr/nanoparticules-nanostructures Official site.] | ||
− | * '''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]. | + | * '''NANOCELL''': Simulates 2D diffraction patterns from single-crystals for GISAXS/GISANS geometry |
− | ** [ | + | ** [http://faculty.washington.edu/h2/simulation.html Official site.] |
+ | ** Citation: Tate MP, Urade VN, Kowalski JD, Wei TC, Hamilton BD, Eggiman BW, Hillhouse HW [http://pubs.acs.org/doi/abs/10.1021/jp0566008 Simulation and interpretation of 2D diffraction patterns from self-assembled nanostructured films at arbitrary angles of incidence: from grazing incidence (above the critical angle) to transmission perpendicular to the substrate] ''J. Phys. Chem. B'' '''2006''', 110 (20), 9882–9892. [http://dx.doi.org/10.1021/jp0566008 doi: 10.1021/jp0566008] | ||
+ | * '''[[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: 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.] | ||
* '''[[HipGISAXS]]''': A high-performance (massively parallel) C++ software for simulating GISAXS data. | * '''[[HipGISAXS]]''': A high-performance (massively parallel) C++ software for simulating GISAXS data. | ||
− | ** Citation: S. Chourou, A. Sarje, X.S. Li, E. Chan, A. Hexemer, | + | ** Citation: S. Chourou, A. Sarje, X.S. Li, E. Chan, A. Hexemer, [http://scripts.iucr.org/cgi-bin/paper?nb5076 HipGISAXS: A High Performance Computing Code for Simulating Grazing Incidence X-Ray Scattering Data] ''Journal of Applied Crystallography'' '''2013''', 46, 6, 1781-1795. [http://dx.doi.org/10.1107/S0021889813025843 doi: 10.1107/S0021889813025843] |
− | ** Citation: A. Sarje, X.S. Li, S. Chourou, E. Chan, A. Hexemer, | + | ** Citation: A. Sarje, X.S. Li, S. Chourou, E. Chan, A. Hexemer, [http://dl.acm.org/citation.cfm?id=2389059 Massively Parallel X-ray Scattering Simulations] in Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis (Supercomputing, SC'12), no. 46, pp. 46:1-46:11, November '''2012'''. |
** [http://portal.nersc.gov/project/als/hipgisaxs/ Official site.] | ** [http://portal.nersc.gov/project/als/hipgisaxs/ Official site.] | ||
+ | * '''SimDiffraction''': Simulation of diffraction patterns. | ||
+ | ** May be obtained by contacting [http://www.ntnu.edu/employees/dag.breiby Dag Werner Breiby], Dept. Physics, NTNU. | ||
+ | ** Citation: D. W. Breiby, O. Bunk, J. W. Andreasen, H. T. Lemke and M. M. Nielsen [http://scripts.iucr.org/cgi-bin/paper?S0021889808001064 Simulating X-ray diffraction of textured films] ''J. Appl. Cryst.'' '''2008''', 41, 262-271. [http://dx.doi.org/10.1107/S0021889808001064 doi: 10.1107/S0021889808001064] | ||
+ | * '''Diffraction Pattern Calculator (DPC) toolkit''': User-friendly GUI for determining [[unit-cell]] [[lattice]] parameters in [[GIWAXS]] data. | ||
+ | ** Citation: A.K. Hailey, A.M. Hiszpanski, D.-M. Smilgies and Y.-L. Loo [http://scripts.iucr.org/cgi-bin/paper?fs5084 The Diffraction Pattern Calculator (DPC) toolkit: a user-friendly approach to unit-cell lattice parameter identification of two-dimensional grazing-incidence wide-angle X-ray scattering data] ''Journal of Applied Crystallography'' '''2014''', 47. [http://dx.doi.org/10.1107/S1600576714022006 doi: 10.1107/S1600576714022006] | ||
+ | ** [http://www.princeton.edu/cbe/people/faculty/loo/group/software Official site.] | ||
+ | * '''Indexing''': Python code for overlaying peak positions for a particular unit cell on a detector image. | ||
+ | ** Code available on [https://github.com/esther279/Indexing github]. | ||
− | ===Reflectivity=== | + | ===[[Reflectivity]]=== |
* '''Reflfit''': NIST software for fitting neutron (or x-ray) reflectivity curves. | * '''Reflfit''': NIST software for fitting neutron (or x-ray) reflectivity curves. | ||
** [http://www.ncnr.nist.gov/programs/reflect/data_reduction/software/ Official site.] | ** [http://www.ncnr.nist.gov/programs/reflect/data_reduction/software/ Official site.] | ||
* '''Motofit''': Co-refinement of multiple contrast reflectometry data (x-ray or neutron). Written by Andrew Nelson, ANSTO, Australia. | * '''Motofit''': Co-refinement of multiple contrast reflectometry data (x-ray or neutron). Written by Andrew Nelson, ANSTO, Australia. | ||
− | ** Citation: Nelson, A. [http://www.iucr.org/cgi-bin/paper?ce5001 | + | ** Citation: Nelson, A. [http://www.iucr.org/cgi-bin/paper?ce5001 Co-refinement of multiple contrast neutron / X-ray reflectivity data using MOTOFIT] ''Journal of Applied Crystallography'' '''2006''', 39, 273-276. [http://dx.doi.org/10.1107/S0021889806005073 doi: 10.1107/S0021889806005073] |
** [http://motofit.sourceforge.net/ Official site.] | ** [http://motofit.sourceforge.net/ Official site.] | ||
* '''Yanera''': "Yet Another NEutron Reflectivity Analyzer", provides an open-source C++ implementation of the [[Parratt formalism]]. Written by Thad Harroun (Brock University), with contributions from [[Kevin Yager]]. | * '''Yanera''': "Yet Another NEutron Reflectivity Analyzer", provides an open-source C++ implementation of the [[Parratt formalism]]. Written by Thad Harroun (Brock University), with contributions from [[Kevin Yager]]. | ||
Line 81: | Line 140: | ||
* '''Polly''': Polarized neutron reflectometry. ([http://www.isis.rl.ac.uk/largescale/CRISP/downloads/POLLY/reg_form.htm link]) | * '''Polly''': Polarized neutron reflectometry. ([http://www.isis.rl.ac.uk/largescale/CRISP/downloads/POLLY/reg_form.htm link]) | ||
* '''Superfit''': Specular and diffuse neutron reflectivity. ([http://www.mf.mpg.de/en/abteilungen/dosch/software/software_en.shtml link]) | * '''Superfit''': Specular and diffuse neutron reflectivity. ([http://www.mf.mpg.de/en/abteilungen/dosch/software/software_en.shtml link]) | ||
+ | * '''GenX''': Parratt formalism combined with genetic algorithm. | ||
+ | ** Citation: Matts Björck and Gabriella Andersson [http://journals.iucr.org/j/issues/2007/06/00/aj5091/aj5091bdy.html GenX: an extensible X-ray reflectivity refinement program utilizing differential evolution] ''J. Appl. Cryst.'' '''2007''', 40, 1174-1178. [http://dx.doi.org/10.1107/S0021889807045086 doi: 10.1107/S0021889807045086 ] | ||
+ | ** [http://genx.sourceforge.net/ Official site.] | ||
+ | * '''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 doi: 10.1107/S1600576716000108] | ||
+ | ** [https://sourceforge.net/projects/aurorenr/ Official site.] | ||
+ | * '''Web Reflectivity Calculator''': Interactive, Web-Based Calculator of Neutron and X-ray Reflectivity. | ||
+ | ** [https://www.ncnr.nist.gov/instruments/magik/calculators/reflectivity-calculator.html Available online.] | ||
+ | ** Citation: Brian B. Maranville [http://nvlpubs.nist.gov/nistpubs/jres/122/jres.122.034.pdf Interactive, Web-Based Calculator of Neutron and X-ray Reflectivity] ''Journal of Research of National Institute of Standards and Technology'' '''2017''', 122, 1-6. [https://doi.org/10.6028/jres.122.034 doi: 10.6028/jres.122.034] | ||
+ | * '''refnx''': Python reflectivity code. | ||
+ | ** [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] | ||
+ | * '''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] | ||
+ | * '''MLReflect''': Machine-learning method for reflectivity curves | ||
+ | ** [https://mlreflect.readthedocs.io/en/latest/ Docs] and [https://github.com/schreiber-lab/mlreflect/tree/master code] | ||
+ | ** Citation: [https://arxiv.org/abs/2202.11609 arxiv] | ||
+ | |||
+ | ===[[Crystallography]]=== | ||
+ | * [http://www.iucr.org/resources/other-directories/software IUCr Crystallographic software list] | ||
+ | * [http://biophysics.med.jhmi.edu/cgi-bin/software/software_list?category=crystallography X-ray Lab Crystallography Software list] | ||
+ | * '''Sir2014''': Crystal structure solving for small/medium structures, from [[x-ray]] or [[electron]] diffraction data. | ||
+ | ** [http://wwwba.ic.cnr.it/content/sir2011-v10 Official site.] | ||
+ | ** Citation: M. C. Burla, R. Caliandro, B. Carrozzini, G. L. Cascarano, C. Cuocci, C. Giacovazzo, M. Mallamo, A. Mazzone and G. Polidori [http://scripts.iucr.org/cgi-bin/paper?kk5193 Crystal structure determination and refinement via SIR2014] ''J. Appl. Cryst.'' '''2015''', 48, 306-309. [http://dx.doi.org/10.1107/S1600576715001132 doi: 10.1107/S1600576715001132] | ||
+ | * '''SynchWeb & ISPyB''': Web interface for tracking samples and data (focused on [[MX]]). | ||
+ | ** Citation: S. J. Fisher, K. E. Levik, M. A. Williams, A. W. Ashton and K. E. McAuley [http://scripts.iucr.org/cgi-bin/paper?fs5101 SynchWeb: a modern interface for ISPyB] ''J. Appl. Cryst.'' '''2015''', 28. [http://dx.doi.org/10.1107/S1600576715004847 doi: 10.1107/S1600576715004847] | ||
+ | * '''GSAS''': Open-source [[Python]] software for all types of crystallography studies. | ||
+ | ** Toby, B. H., & Von Dreele, R. B. [http://scripts.iucr.org/cgi-bin/paper?S0021889813003531 GSAS-II: the genesis of a modern open-source all purpose crystallography software package] ''Journal of Applied Crystallography'' '''2013''', 46(2), 544-549. [http://dx.doi.org/10.1107/S0021889813003531 doi: 10.1107/S0021889813003531] | ||
+ | ** [https://subversion.xor.aps.anl.gov/trac/pyGSAS Official site.] | ||
+ | * '''Jana2006''': Reconstruct electron density modulation from powder or single-crystal data. | ||
+ | ** 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.] | ||
+ | * '''τ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] | ||
+ | * '''UnitCell Tools''': Determine unit-cell parameters from a single electron diffraction pattern. | ||
+ | ** Citation: Hong-Long Shi and Zi-An Li [https://journals.iucr.org/m/issues/2021/05/00/gq5014/index.html UnitCell Tools, a package to determine unit-cell parameters from a single electron diffraction pattern] ''IUCrJ'' '''2020''' [https://doi.org/10.1107/S2052252521007867 doi: 10.1107/S2052252521007867] | ||
+ | |||
+ | ==Explicit Simulation== | ||
+ | Methods that predict scattering by directly calculating/simulating the EM field propagation, wave/matter interactions, etc. | ||
+ | ===X-rays=== | ||
+ | These software packages directly simulation the propagation of an EM field, and/or the interaction between EM waves and material: | ||
+ | * '''SRW''' (Synchrotron Radiation Workshop): Fast numerical simulation of near-field and far-field of radiation generated by electron beams traveling through magnetic fields. I.e. can be used to simulate x-ray emission from [[synchrotron]] sources (e.g. [[undulator]]). | ||
+ | ** [https://www.esrf.fr/Accelerators/Groups/InsertionDevices/Software/SRW Official site.] | ||
+ | * '''Shadow''': X-ray optics simulation package for coherent x-ray wavefront propagation simulations. | ||
+ | ** Citation: Niccolo Canestrari, Oleg Chubar and Manuel Sanchez del Rio [https://iopscience.iop.org/article/10.1088/1742-6596/425/16/162007 Improved models for synchrotron radiation sources in SHADOW] ''J. Phys.: Conf. Ser.'' '''2013''', 425 162007. [http://dx.doi.org/10.1088/1742-6596/425/16/162007 doi: 10.1088/1742-6596/425/16/162007] | ||
+ | * '''WPG''' (WavePropaGator): Software package for simulating coherent and partially coherent X-ray wavefront propagation, especially intended for simulating [[XFEL]] | ||
+ | ** [https://wpg.readthedocs.io/en/stable/wpg.html Docs.] | ||
+ | ** [https://github.com/samoylv/WPG Code.] | ||
+ | * '''McXtrace''': Monte-Carlo ray tracing (based on [https://www.mcstas.org/ McStas] neutron ray-tracing package). | ||
+ | ** [https://www.mcxtrace.org/ Official site.] | ||
+ | ** [https://github.com/McStasMcXtrace Code.] | ||
+ | * '''xrt (XRayTracer)''': Python library for ray-tracing and wave propagation. | ||
+ | ** [https://xrt.readthedocs.io/ Docs.] | ||
+ | ===General EM field=== | ||
+ | * [https://github.com/flaport/fdtd Python 3D FDTD Simulator] | ||
+ | * [https://github.com/kc-ml2/meent Meent] | ||
+ | * [https://github.com/stefanmeili/FastFD FastFD] | ||
+ | * [https://www.comsol.com/ COMSOL multiphysics] | ||
+ | * [https://pypi.org/project/macromax/ Macromax] Maxwell solver | ||
+ | * [https://jcmwave.com/ JCMWave] JCMSuite | ||
==Computing [[Materials]] Properties== | ==Computing [[Materials]] Properties== | ||
+ | * '''X-Ray Interactions With Matter''': CXRO/LBL web-portal with various calculators for x-ray interaction parameters. | ||
+ | ** [http://henke.lbl.gov/optical_constants/ Official site]. | ||
* '''NCNR''': NIST Center for Neutron Research web-based calculator for Neutron [[SLD|Scattering Length Density]] and [[Absorption]]. | * '''NCNR''': NIST Center for Neutron Research web-based calculator for Neutron [[SLD|Scattering Length Density]] and [[Absorption]]. | ||
** [http://www.ncnr.nist.gov/resources/activation/ Official site]. | ** [http://www.ncnr.nist.gov/resources/activation/ Official site]. | ||
* '''pyFPRIME and ABSORB''': [[APS]] software for computing approximate x-ray scattering cross sections. | * '''pyFPRIME and ABSORB''': [[APS]] software for computing approximate x-ray scattering cross sections. | ||
− | ** | + | ** [https://subversion.xor.aps.anl.gov/trac/pyFprime/ Official site]. |
+ | * '''xraylib''': x-ray elemental information (spectroscopic) | ||
+ | ** [https://github.com/tschoonj/xraylib/wiki Official site]. | ||
+ | ** Citation: [http://www.sciencedirect.com/science/article/pii/S0584854711001984 The xraylib library for X-ray–matter interactions. Recent developments] ''Spectrochimica Acta Part B: Atomic Spectroscopy'' '''2011''', 66 (11-12), 776-784. [http://dx.doi.org/10.1016/j.sab.2011.09.011 doi: 10.1016/j.sab.2011.09.011] | ||
+ | * '''DANSE Periodic Table''': Python library for x-ray and neutron elemental scattering properties. | ||
+ | ** [http://www.reflectometry.org/danse/elements.html Official site]. | ||
+ | |||
+ | ==Synchrotron== | ||
+ | * '''[https://github.com/silx-kit/silx SILX]''': Data reading/writing for synchrotron data formats. | ||
+ | * '''[https://nsls-ii.github.io/bluesky/ BlueSky]''': Instrument control, including data saving into a database and access via databroker. | ||
+ | |||
+ | ==General== | ||
+ | * '''MultiSciView''': Web-based tool for looking at arbitrary arrays of 2D image data. Convenient for looking at scattering images arranged based on metadata (coordinates, annealing history, etc.). | ||
+ | ** Citation: [https://www.sciencedirect.com/science/article/pii/S2468502X18300093 MultiSciView: Multivariate Scientific X-ray Image Visual Exploration with Cross-Data Space Views] ''Visual Informatics'' '''2018''', 1(2), 14-25 [http://dx.doi.org/10.1016/j.visinf.2018.04.003 doi: 10.1016/j.visinf.2018.04.003] | ||
+ | * '''SciStreams''': Simple workflow/pipeline software (building on [http://dask.pydata.org/en/latest/ Dask] and [https://github.com/mrocklin/streams Streams]), intended for asynchronous and distributed computations at a beamline. | ||
+ | ** [https://github.com/CFN-softbio/SciStreams Code available on github.] | ||
+ | * '''ParaView''': Generalized GUI for visualizing scientific data, such as 3D images (uses [[Python]] and QT). | ||
+ | ** [http://www.paraview.org/ Official site.] | ||
+ | * '''Mantid''': Framework for computing and visualizing materials science data. | ||
+ | ** [http://www.mantidproject.org/Main_Page 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. [http://dx.doi.org/10.1016/j.nima.2014.07.029 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 [http://www.diamond.ac.uk/Home.html Diamond Light Source] and is well-optimized for analysis of x-ray data, including [[SAXS]]-specific features. | ||
+ | ** [http://dawnsci.org/ Official site.] | ||
+ | |||
+ | ==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== | ==See Also== | ||
* [http://smallangle.org/content/software#Reduction-Visualisation SAS Portal Software List] | * [http://smallangle.org/content/software#Reduction-Visualisation SAS Portal Software List] | ||
+ | * [http://www.ccp14.ac.uk/recomm/ Resources for Crystallographic Software Developers] | ||
+ | * [[Data formats]] | ||
+ | ** [[NeXus data format]] | ||
+ | * [[NSLS-II Control Software]] | ||
+ | * [[NSLS-II Analysis Software]] |
Latest revision as of 11:01, 1 October 2024
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.
Contents
Data Viewing, Reduction, and Simple Analysis
These packages provide ways to view data, and perform simple operations (linecuts, etc.).
Geared towards 2D data
- Fit2D: A well-known package for treatment and conversion 2D scattering images.
- Citation: A. P. Hammersley FIT2D: a multi-purpose data reduction, analysis and visualization program J. Appl. Cryst. 2016, 49. doi: 10.1107/S1600576716000455
- Official site.
- Fit2D primer.
- Fit2D hints page.
- Datasqueeze: Graphical tool for analyzing 2D detector images.
- ImageJ: A generic tool for image treatment and analysis. Can be used to open and process x-ray detector images.
- NeXpy: Python GUI for working with the NeXus data format.
- pycxdgui: Very simple viewer for area images.
- view.gtk: A simple interface for viewing 2D data, calibrating your data into q-space, and extracting linecuts. Written by Lin Yang for the X9 beamline at NSLS. Installation requires (free) GTK libraries.
- Citation: L. Yang, Using an in-vacuum CCD detector for simultaneous small- and wide-angle scattering at beamline X9 J. Synchrotron Rad. 2013, 20, 211. doi: 10.1107/S0909049512048984
- Official site.
- pyXS: Python scripts (with C++ backend) for performing analysis of 2D data.
- SciAnalysis: Python scripts for analysis of 2D x-ray scattering data. Well-suited to batch analysis of many files.
- GIXSGUI: Visualization and reduction package for GISAXS. Requires the commerical Matlab software. Written by Zhang Jiang (APS).
- Citation: Z. Jiang GIXSGUI: a MATLAB toolbox for grazing-incidence X-ray scattering data visualization and reduction, and indexing of buried three-dimensional periodic nanostructured films J. Appl. Cryst. 2015, 48, 3, 917-926. doi: 10.1107/S1600576715004434
- Official site.
- GISAXSshop: 2D visualization and reduction for GISAXS. Requires the Igor (Wavemetrics). Written by Byeongdu Lee (APS).
- Xi-Cam: Robust GUI (pyQT based) and libraries for analyzing 2D scattering images. Developed at LBNL in connection with the CAMERA project.
- Citation: Pandolfi, R.J.; Hexemer, A.; et al. Xi-cam: a versatile interface for data visualization and analysis J. Syncr. Rad. 2018, 25 (4), 1261-1270. doi: 10.1107/S1600577518005787
- Official site.
Geared towards 1D data
- NCNR SANS/USANS Package: Set of tools for reducing SANS and USANS data. Requires the commercial IgorPro software.
- Citation: S.R. Kline Reduction and Analysis of SANS and USANS Data using Igor Pro, J. Appl. Cryst. 2006, 39, 6, 895. doi:10.1107/S0021889806035059
- Nika: Conversion of 2D images into 1D for SAS. Requires commercial IgorPro software.
- Indra 2: Reduction of USAXS data. Requires the commercial IgorPro software. Written for the 15ID instrument at APS.
- DPDAK: Open-source Python tool for analyzing large sets of SAXS data. Works on Linux and Windows.
- SAS-cam: SAXS data reduction, using the SASTBX package.
- Citation: H. Wu, Y. Li, G. Liu, H. Liu and N. Li SAS-cam: a program for automatic processing and analysis of small-angle scattering data J. Appl. Cryst. 2020, 53, 1147-1153. doi: 10.1107/S1600576720008985
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
- NCNR SANS/USANS Package: Can model form factors for many common object shapes in solution. Requires the commercial IgorPro software.
- Citation: S.R. Kline Reduction and Analysis of SANS and USANS Data using Igor Pro J. Appl. Cryst. 2006, 39, 6, 895. doi:10.1107/S0021889806035059
- SASView: Python code to model form factors. (Replacement for NIST Igor software.)
- Irena: Multiple tools for analyzing SAXS, SANS, USAXS, and USANS data. Allows modeling of diffuse scattering, form factors, reflectivity, etc. Requires the commercial IgorPro software.
- Scatter: Targeted towards analysis of transmission-mode SAXS and SANS. Allows modeling of nano- and meso-structure materials (surfactants, lipids, micelles, vesicles, block-copolymers, etc.).
- Citation: S. Förster, L. Apostol and W. Bras Scatter: software for the analysis of nano- and mesoscale small-angle scattering J. Appl. Cryst. 2010, 43, 639. doi: 10.1107/S0021889810008289
- Official site.
- SASFit: Combined fitting of 1D scattering curves.
- BayesApp.org: Online tool for estimating distribution functions from SAS data.
- Official site.
- Citation: Hansen Update for BayesApp: a web site for analysis of small-angle scattering data J. Appl. Cryst. 2014 doi: 10.1107/S1600576714013156
- SCT: Software to predict/fit small-angle scattering data from atomistic models of molecules and proteins.
- Citation: D. W. Wright and S. J. Perkins SCT: a suite of programs for comparing atomistic models with small-angle scattering data J. Appl. Cryst. 2015, 48 doi: 10.1107/S1600576715007062
- Official site.
- McSAS: Monte Carlo regression to fit small-angle scattering data using collections/distributions of particles.
- Official site.
- I. Bressler, B. R. Pauw and A. F. Thünemann Citation: McSAS: software for the retrieval of model parameter distributions from scattering patterns J. Appl. Cryst. 2015, 48, 962-969. doi: 10.1107/S1600576715007347
- pySAXS: Package and GUI for SAXS analysis.
- ScatterSim: Python code for simulating the one-dimensional curve (circular average) for nanoparticle superlattices.
- Citation: Yager, K.G.; Zhang, Y.; Lu, F.; Gang, O. "Periodic lattices of arbitrary nano-objects: modeling and applications for self-assembled systems" Journal of Applied Crystallography 2014, 47, 118–129. doi: 10.1107/S160057671302832X
- See also summary of paper.
- Code available on github.
- Citation: Yager, K.G.; Zhang, Y.; Lu, F.; Gang, O. "Periodic lattices of arbitrary nano-objects: modeling and applications for self-assembled systems" Journal of Applied Crystallography 2014, 47, 118–129. doi: 10.1107/S160057671302832X
BioSAXS
- ScÅtter: Java-based application for SAXS analysis. Developed by Robert Rambo (Diamond Light Source); previously developed at the SIBYLS beamline (12.3.1) of the ALS.
- BioXTAS RAW: Simple program for performing 1D Guinier analysis for BioSAXS data. (Provided by CHESS.)
- Citation: J. B. Hopkins, R. E. Gillilan and S. Skou BioXTAS RAW: improvements to a free open-source program for small-angle X-ray scattering data reduction and analysis J. Appl. Cryst. 2017, 50 doi: 10.1107/S1600576717011438
- Official site, download.
- ATSAS: A suite of tools for small-angle scattering data of biological macromolecules.
- Citation: P. V. Konarev, M. V. Petoukhov, V. V. Volkov and D. I. Svergun ATSAS 2.1, a program package for small-angle scattering data analysis J. Appl. Cryst. 2006, 39, 277. doi: 10.1107/S0021889806004699
- Citation: M. V. Petoukhov, D. Franke, A. V. Shkumatov, G. Tria, A. G. Kikhney, M. Gajda, C. Gorba, H. D. T. Mertens, P. V. Konarev and D. I. Svergun New developments in the ATSAS program package for small-angle scattering data analysis J. Appl. Cryst. 2012, 45, 342, doi: 10.1107/S0021889812007662
- Citation: D. Franke, M. V. Petoukhov, P. V. Konarev, A. Panjkovich, A. Tuukkanen, H. D. T. Mertens, A. G. Kikhney, N. R. Hajizadeh, J. M. Franklin, C. M. Jeffries and D. I. Svergun ATSAS 2.8: a comprehensive data analysis suite for small-angle scattering from macromolecular solutions J. Appl. Cryst. 2017, 50 doi: 10.1107/S1600576717007786
- Official site.
- Biomachina: Visualization of low-resolution bead-based models of proteins from SAXS data.
- ScatterBrain: Cross-platform (Windows, OSX, Linux) IDL software, provided by Australian Synchrotron.
CD-SAXS
- cd-gisaxs
- CEA-MetroCarac/cdsaxs (includes GPU parallelization)
GISAXS
- IsGISAXS: GISAXS analysis and simulation software. Enables prediction of 2D scattering patterns, including the effects of DWBA and its variants. Written by Rémi Lazzari.
- Citation: R. Lazzari IsGISAXS: a program for grazing-incidence small-angle X-ray scattering analysis from supported islands J. Appl. Cryst. 2002, 35, 406-421. doi: 10.1107/S0021889802006088
- Official site.
- FitGISAXS: DWBA modeling. Requires commercial IgorPro software.
- Citation: Babonneau, D. FitGISAXS: software package for modelling and analysis of GISAXS data using IGOR Pro J. Appl. Cryst. 2010, 43(4), 929–936. doi: 10.1107/S0021889810020352
- Official site.
- NANOCELL: Simulates 2D diffraction patterns from single-crystals for GISAXS/GISANS geometry
- Official site.
- Citation: Tate MP, Urade VN, Kowalski JD, Wei TC, Hamilton BD, Eggiman BW, Hillhouse HW Simulation and interpretation of 2D diffraction patterns from self-assembled nanostructured films at arbitrary angles of incidence: from grazing incidence (above the critical angle) to transmission perpendicular to the substrate J. Phys. Chem. B 2006, 110 (20), 9882–9892. doi: 10.1021/jp0566008
- 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 Scientific Computing Group at 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: G. Pospelov, W. Van Herck, J. Burle, J. M. Carmona Loaiza, C. Durniak, J. M. Fisher, M. Ganeva, D. Yurov and J. Wuttke BornAgain: software for simulating and fitting grazing-incidence small-angle scattering J. Appl. Cryst. 2020, 53, 262-276. doi: 10.1107/S1600576719016789
- Official site.
- HipGISAXS: A high-performance (massively parallel) C++ software for simulating GISAXS data.
- Citation: S. Chourou, A. Sarje, X.S. Li, E. Chan, A. Hexemer, HipGISAXS: A High Performance Computing Code for Simulating Grazing Incidence X-Ray Scattering Data Journal of Applied Crystallography 2013, 46, 6, 1781-1795. doi: 10.1107/S0021889813025843
- Citation: A. Sarje, X.S. Li, S. Chourou, E. Chan, A. Hexemer, Massively Parallel X-ray Scattering Simulations in Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis (Supercomputing, SC'12), no. 46, pp. 46:1-46:11, November 2012.
- Official site.
- SimDiffraction: Simulation of diffraction patterns.
- May be obtained by contacting Dag Werner Breiby, Dept. Physics, NTNU.
- Citation: D. W. Breiby, O. Bunk, J. W. Andreasen, H. T. Lemke and M. M. Nielsen Simulating X-ray diffraction of textured films J. Appl. Cryst. 2008, 41, 262-271. doi: 10.1107/S0021889808001064
- Diffraction Pattern Calculator (DPC) toolkit: User-friendly GUI for determining unit-cell lattice parameters in GIWAXS data.
- Citation: A.K. Hailey, A.M. Hiszpanski, D.-M. Smilgies and Y.-L. Loo The Diffraction Pattern Calculator (DPC) toolkit: a user-friendly approach to unit-cell lattice parameter identification of two-dimensional grazing-incidence wide-angle X-ray scattering data Journal of Applied Crystallography 2014, 47. doi: 10.1107/S1600576714022006
- Official site.
- Indexing: Python code for overlaying peak positions for a particular unit cell on a detector image.
- Code available on github.
Reflectivity
- Reflfit: NIST software for fitting neutron (or x-ray) reflectivity curves.
- Motofit: Co-refinement of multiple contrast reflectometry data (x-ray or neutron). Written by Andrew Nelson, ANSTO, Australia.
- Citation: Nelson, A. Co-refinement of multiple contrast neutron / X-ray reflectivity data using MOTOFIT Journal of Applied Crystallography 2006, 39, 273-276. doi: 10.1107/S0021889806005073
- Official site.
- Yanera: "Yet Another NEutron Reflectivity Analyzer", provides an open-source C++ implementation of the Parratt formalism. Written by Thad Harroun (Brock University), with contributions from Kevin Yager.
- GA refl: Simultaneous fitting of x-ray and neutron polarized reflectometry data.
- Simulreflec: Calculate reflectivity of magnetic multiplayer systems.
- AFIT: Fitting of reflectometry data. (download)
- Parratt32: Windows GUI implementing the Parratt formalism. (link)
- Drydoc and Wetdoc: Multiple contrast data fitting. (link)
- Surface: Analysis of specular reflectivity. (link)
- Polly: Polarized neutron reflectometry. (link)
- Superfit: Specular and diffuse neutron reflectivity. (link)
- GenX: Parratt formalism combined with genetic algorithm.
- Citation: Matts Björck and Gabriella Andersson GenX: an extensible X-ray reflectivity refinement program utilizing differential evolution J. Appl. Cryst. 2007, 40, 1174-1178. doi: 10.1107/S0021889807045086
- Official site.
- Aurore: Open source Matlab code for neutron reflectivity, including error estimates.
- Citation: Y. Gerelli Aurore: new software for neutron reflectivity data analysis J. Appl. Cryst. 2016, 49, 330-339. doi: 10.1107/S1600576716000108
- Official site.
- Web Reflectivity Calculator: Interactive, Web-Based Calculator of Neutron and X-ray Reflectivity.
- Available online.
- Citation: Brian B. Maranville Interactive, Web-Based Calculator of Neutron and X-ray Reflectivity Journal of Research of National Institute of Standards and Technology 2017, 122, 1-6. doi: 10.6028/jres.122.034
- refnx: Python reflectivity code.
- Available on github
- Citation: A.R.J. Nelson and S.W. Prescott refnx: neutron and X-ray reflectometry analysis in Python J. Appl. Cryst. 2019. doi: 10.1107/S1600576718017296
- Multifitting: Reflectivity calculations for multilayer systems
- Citation: M. Svechnikov Multifitting: software for the reflectometric reconstruction of multilayer nanofilms J. Appl. Cryst. 2019 doi: 10.1107/S160057671901584X
- MLReflect: Machine-learning method for reflectivity curves
Crystallography
- IUCr Crystallographic software list
- X-ray Lab Crystallography Software list
- Sir2014: Crystal structure solving for small/medium structures, from x-ray or electron diffraction data.
- Official site.
- Citation: M. C. Burla, R. Caliandro, B. Carrozzini, G. L. Cascarano, C. Cuocci, C. Giacovazzo, M. Mallamo, A. Mazzone and G. Polidori Crystal structure determination and refinement via SIR2014 J. Appl. Cryst. 2015, 48, 306-309. doi: 10.1107/S1600576715001132
- SynchWeb & ISPyB: Web interface for tracking samples and data (focused on MX).
- Citation: S. J. Fisher, K. E. Levik, M. A. Williams, A. W. Ashton and K. E. McAuley SynchWeb: a modern interface for ISPyB J. Appl. Cryst. 2015, 28. doi: 10.1107/S1600576715004847
- GSAS: Open-source Python software for all types of crystallography studies.
- Toby, B. H., & Von Dreele, R. B. GSAS-II: the genesis of a modern open-source all purpose crystallography software package Journal of Applied Crystallography 2013, 46(2), 544-549. doi: 10.1107/S0021889813003531
- Official site.
- Jana2006: Reconstruct electron density modulation from powder or single-crystal data.
- 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]
- Official site.
- τompas: TEM online multi-purpose analyzing system
- Citation: R.-X. Xie and W.-Z. Zhang τompas: a free and integrated tool for online crystallographic analysis in transmission electron microscopy J. Appl. Cryst. 2020, 53. doi: 10.1107/S1600576720000801
- UnitCell Tools: Determine unit-cell parameters from a single electron diffraction pattern.
- Citation: Hong-Long Shi and Zi-An Li UnitCell Tools, a package to determine unit-cell parameters from a single electron diffraction pattern IUCrJ 2020 doi: 10.1107/S2052252521007867
Explicit Simulation
Methods that predict scattering by directly calculating/simulating the EM field propagation, wave/matter interactions, etc.
X-rays
These software packages directly simulation the propagation of an EM field, and/or the interaction between EM waves and material:
- SRW (Synchrotron Radiation Workshop): Fast numerical simulation of near-field and far-field of radiation generated by electron beams traveling through magnetic fields. I.e. can be used to simulate x-ray emission from synchrotron sources (e.g. undulator).
- Shadow: X-ray optics simulation package for coherent x-ray wavefront propagation simulations.
- Citation: Niccolo Canestrari, Oleg Chubar and Manuel Sanchez del Rio Improved models for synchrotron radiation sources in SHADOW J. Phys.: Conf. Ser. 2013, 425 162007. doi: 10.1088/1742-6596/425/16/162007
- WPG (WavePropaGator): Software package for simulating coherent and partially coherent X-ray wavefront propagation, especially intended for simulating XFEL
- McXtrace: Monte-Carlo ray tracing (based on McStas neutron ray-tracing package).
- xrt (XRayTracer): Python library for ray-tracing and wave propagation.
General EM field
- Python 3D FDTD Simulator
- Meent
- FastFD
- COMSOL multiphysics
- Macromax Maxwell solver
- JCMWave JCMSuite
Computing Materials Properties
- X-Ray Interactions With Matter: CXRO/LBL web-portal with various calculators for x-ray interaction parameters.
- NCNR: NIST Center for Neutron Research web-based calculator for Neutron Scattering Length Density and Absorption.
- pyFPRIME and ABSORB: APS software for computing approximate x-ray scattering cross sections.
- xraylib: x-ray elemental information (spectroscopic)
- Official site.
- Citation: The xraylib library for X-ray–matter interactions. Recent developments Spectrochimica Acta Part B: Atomic Spectroscopy 2011, 66 (11-12), 776-784. doi: 10.1016/j.sab.2011.09.011
- DANSE Periodic Table: Python library for x-ray and neutron elemental scattering properties.
Synchrotron
- SILX: Data reading/writing for synchrotron data formats.
- BlueSky: Instrument control, including data saving into a database and access via databroker.
General
- MultiSciView: Web-based tool for looking at arbitrary arrays of 2D image data. Convenient for looking at scattering images arranged based on metadata (coordinates, annealing history, etc.).
- Citation: MultiSciView: Multivariate Scientific X-ray Image Visual Exploration with Cross-Data Space Views Visual Informatics 2018, 1(2), 14-25 doi: 10.1016/j.visinf.2018.04.003
- 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).