SMS spoke design with SAR constraints
Guérin Bastien, Setsompop Kawin, Ye Huihui, Poser Benedikt A., Stenger Andrew V. and Wald Lawrence L. (2015). "Design of parallel transmission pulses for simultaneous multislice with explicit control for peak power and local specific absorption rate". Magnetic Resonance in Medicine 73(5):1946–1953
What this code does
This Matlab code (no MEX, no GPU code) computes least-squares and magnitude least-squares pTx spoke SMS pulses with SAR constraints. The MLS problem can be solved using the phase adoption approach of Setsompop et al. or a full optimization strategy.
Pre-scan data format
The format of the pre-scan data (e.g., B0 map, B1+ maps, slice information in the SODA file) matches the Siemens pTx "Step 2" data format. To take a closer look at this, download the prescan_sms2.zip file. The ROI, B0 and B1+ maps need to have Z images, where Z is the number of SMS slices to be excited simultaneously. To get the ROI and B0 maps, I use the Siemens product gre_fieldmapping sequence (make sure to chose "save magnitude/phase" in order to get both the B0 and ROI maps in the same scan). The B0, B1 and ROI datasets must have the same number of pixels and same dimensions.
Unzip the code folder and add it to your path. Unzip the data folder and run the script run_spokes_sms.m. There are several options in it that are straightforward to understand. Most of the spoke options (such as slice-thickness, slice-selection gradient, time-bandwidth product etc...) are specified in the text file spokes_def.txt and can be changed there.