///////////////////////////////////////////////////////////////////////////////////////////////////// General Information////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////// Title of Dataset: 1D SAXS Indexing Macro for Igor Pro Author Information: Lindsay, Aaron P. (linds573@umn.edu) Mueller, Andreas J. (muel0467@umn.edu) Mahanthappa, Mahesh K. Lodge, Timothy P. Bates, Frank S. (bates001@umn.edu) University of Minnesota, Minneapolis, Minnesota 55455, United States Funding Information: NSF DMR-1801993 and GRFP-00039202 License: GNU General Public License Recommended citation for the data: Lindsay, Aaron P; Mueller, Andreas J; Mahanthappa, Mahesh K; Lodge, Timothy P; Bates, Frank S. (2021). 1D SAXS indexing macro for Igor Pro. Retrieved from the Data Repository for the University of Minnesota, https://doi.org/10.13020/9m8p-pv93. Referenced by Lindsay, A. P. Structure and Dynamics of Compositionally Asymmetric Block Polymers and their Blends. Ph.D. Thesis, University of Minnesota, Minneapolis, MN, 2021. ///////////////////////////////////////////////////////////////////////////////////////////////////// Overview //////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////// This code was developed for the analysis of 1D SAXS data collected from ordered materials. A robust file loading algorithm is included, allowing for rapid generation of publication quality stack plots. Also included is an easily updated indexing macro, affording multiple plotting options (ticks, lines, color, etc.) for indexing to a variety of phases observed in block polymers. Details on installation are included below. ///////////////////////////////////////////////////////////////////////////////////////////////////// Getting_Started ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Copy all of the files from the User Procedures folder into the Wavemetrics User Procedures folder and the file from the Igor Procedures folder into the Igor Procedures folder. Copy the plane txt files folder into the wavemetrics folder (keep txt files in the plane txt files folder). Under User Procedures, open UserInfo_Scattering. ksDefaultDataPath is the file path the file loader will have set initially every time you load new files. To get the appropriate syntax, click Macros->Load Scattering Utilities. A few new tabs will appear. Click File Utilities->Load Data Files. Click Set Path and navigate to the folder with your data files. Click Open and then copy the entire path from the small text box next to Path. Paste this inside the quotes after ksDefaultDataPath =. txtfilepath is the location of the plane txt files which are loaded in for indexing. You can navigate to this folder as done above and paste the address between the quotes after txtfilepath = . After updating the file paths, click File-> Save Procedure. You can now close the procedure file (do not kill it). You are now set up to begin plotting files and indexing. The loader panel plots 1D files from sector 5-ID-D, 12-ID-B, Datasqueeze, or the Ganesha. Also available is a generalized loading option for a .txt file with q (inverse angstroms) in the first column and intensity or log(intensity) in the second column. Note this is the export format for Datasqueeze. Multiple files can be selected at once by holding shift or command (control for PC). To produce a stack plot, plot 1D data for the trace you want on the bottom of the plot. Then select the remaining data you want to append to the plot, check "Check to append 1D" and "Offset appended," and then click the "Select Files" button. After loading a file, you can navigate to the tab General Indexing and select Index. This will open up the indexing window (controlled by the procedure file: StaticIndexing) and you can begin indexing. Drop-down menus enable selection of the trace to be indexed and the phase to which it is indexed. q* can be entered manually, found via a slider, or assigned by a marker on the trace. Unit cell parameters are directly output as are mean particle/cylinder radii for a block polymer given specification of the core fraction. Various indexing options are available, including lines, ticks, and plane labels, for which the color, style, size, and offset can be easily changed. Also included is an option to plot a spherical or cylindrical form-factor to check for extinctions. ///////////////////////////////////////////////////////////////////////////////////////////////////// Common_Issues ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////Can't_see_all_of_panel ////////////////////////////////////////////////////////////////////////////// This can be fixed by changing your screen resolution under your computers display settings. ////Weird_fonts_in_plots ////////////////////////////////////////////////////////////////////////////// Some symbols such as the angstrom symbol don't transfer well between different operating systems and Igor versions. If you see weird font on the abcissa, simply double click the axis and correct the font in the "Modify Axis" window that pops up. Change the label under the "Axis Label" tab; the output of the program is in inverse angstroms. Click 'Do It". This will populate the command line with the code to change the plot axis. Copy this, e.g., Label bottom "\Z16\f02q\f00 (\Angstrom\S-1\M\Z16)". Open the ScatteringMultiloader.ipf procedure file under Windows->Procedure Windows. Search for "Function Graph1DSAXS" (ctrl or cmd + F). Click the pencil to allow editing and paste the copied code from the command line over the other "Label bottom..." code ~line 486. Click the pencil again. Then go to File->Save Procedure. Note that this process can be used to change any of the plot settings. ///////////////////////////////////////////////////////////////////////////////////////////////////// Adding_New_Phases ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// A key feature of this macro is the simplicity by which new phases can be added. Addition of a new phase only requires copying a few lines of code and generating a tab delimited .txt file that lists the allowed reflections (hkl). If the space group or structure are known, the allowed reflections can be easily determined by calculating the associated diffraction pattern in VESTA and copying the generated list of hkl indices into a tab delimited .txt file saved in the appropriate folder location (i.e., /.../User Procedures/plane txt files). The necessary code can be copied from the end of the Phasestoindex.ipf procedure file included in the "User Procedures" folder to the end of that file. The parameters that need to be changed are indicated in the code. ///////////////////////////////////////////////////////////////////////////////////////////////////// Cylindrical_Form_Factor ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// The cylindrical form factor is plotted using a modified code from the NIST NCNR Analysis Macro (Kline J. Appl. Crystallogr. 2006) assuming a cylinder radius 100 nm. ///////////////////////////////////////////////////////////////////////////////////////////////////// Sample Datasets and Tutorial ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// A zip file has been included in the data set with sample data to demonstrate the module