May 20, 2026

1D Batch Processing and SAND Using NMRPipe V.2

  • 1University of Georgia
Icon indicating open access to content
QR code linking to this content
Protocol CitationChristopher Esselman, Arthur Edison 2026. 1D Batch Processing and SAND Using NMRPipe. protocols.io https://dx.doi.org/10.17504/protocols.io.kqdg3xen1g25/v2Version created by Christopher Esselman
License: This is an open access  protocol  distributed under the terms of the  Creative Commons Attribution License,  which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited
Protocol status: Working
We use this protocol and it's working
Created: May 20, 2026
Last Modified: May 20, 2026
Protocol  Integer ID: 317599
Keywords: NMRPipe, SAND, NMRbox, nmr data, 1d batch processing, proton, sand, process, 1d
Funders Acknowledgements:
Network for Advanced NMR/NSF
Grant ID: 1946970
NIH/NIGMS R35
Grant ID: GM145348
Disclaimer
DISCLAIMER – FOR INFORMATIONAL PURPOSES ONLY; USE AT YOUR OWN RISK

The protocol content here is for informational purposes only and does not constitute legal, medical, clinical, or safety advice, or otherwise; content added to protocols.io is not peer reviewed and may not have undergone a formal approval of any kind. Information presented in this protocol should not substitute for independent professional judgment, advice, diagnosis, or treatment. Any action you take or refrain from taking using or relying upon the information presented here is strictly at your own risk. You agree that neither the Company nor any of the authors, contributors, administrators, or anyone else associated with protocols.io, can be held responsible for your use of the information contained in or linked to this protocol or any of our Sites/Apps and Services.
Abstract
This protocol describes how to batch process and SAND one-dimensional (1D) proton (1H) NMR data.
Before start
This protocol assumes:


Acquire Necessary Scripts
Sign in to your NMRbox account.
Open the terminal, type csh, and press Enter.



Paste the command provided below into the terminal window and press Enter.
Command
Retrieve sand_demo1 files
wget https://raw.githubusercontent.com/edisonomics/FLAnalyzer/main/sand/sand_demo1.tar

Open the File Manager and extract sand_demo1.tar to the home directory by right-clicking on sand_demo1.tar and selecting "Extract Here."


The contents can also be extracted using the terminal by executing the command below:

tar -xvf sand_demo1.tar

Navigate to the extracted sand_demo1 directory, then copy and paste each ".com" file into the directory that contains your unprocessed data.



The ".com" files can also be copied using the terminal:

cp ./*.com ~/destination_folder

Creating Metadata table
Create a copy of meta.tab and place it into the directory containing your unprocessed data.
Update meta.tab to match the data within your unprocessed directory. Specifically, change the "DIR_NAME" column (the second column of numbers) to match the directories of the spectra you wish to batch process. You should also change the "TITLE" column (the third column) to describe the spectra you are processing, ensuring that there are no spaces in the title name.


Modifying meta.tab by hand is cumbersome, but you can use the script below to automate the process.

Download metaTabCreate.shmetaTabCreate.sh

1. Place the metaTabCreate.sh script in the same directory as the meta.tab file you just moved.
2. Ensure the file is executable by right-clicking on metaTabCreate.sh, choosing "Properties", selecting
"Permissions," and checking "Allow this file to run as a program".
3. Using a terminal, navigate (cd) to the directory containing the files and enter the command
./metaTabCreate.sh

4. Provide a title for the dataset, ensuring you do not use spaces in the name.

Ensure that the rows in the meta.tab file contain metadata only for the files you intend to process. You should delete any rows corresponding to folders that do not contain data or should not be processed.


Perform Processing
Using a new terminal window, navigate (cd) into the directory containing the unprocessed data, ".com" files, and meta.tab.
Enter the command
./all.com

The data processing is complete once a graphical image of the spectra appears on the screen. The final processed data will be located in the newly created folder named interp.
To view the spectra at any time after processing, open a terminal, navigate to the directory containing the unprocessed and processed data, and enter the command
specView.tcl -in interp/*.ft1


Optimizing Processing
Sometimes, the automatic zero-order phasing does not phase the spectra perfectly. If this is the case, please follow the steps below.
Visualize the spectra to identify which spectra are not phased correctly. Then, reprocess the chosen spectra with 0.0 zero-order phasing and 0.0 first-order phasing by changing the "P0" values for those spectra in meta.tab from Auto to 0.0 and then reexecuting
./all.com

After processing is complete, open a new terminal, navigate to the interp folder, and enter the command
nmrDraw
Note that nmrDraw functions best when used with a three-button mouse. Further directions on spectral processing and use of NMRPipe can be found at: https://www.ibbr.umd.edu/nmrpipe/index.html
Select the spectrum you want to phase by first right-clicking on "File" and then left-clicking on "Select File".



Use the top sliding bar to scroll through the spectra, and double left-click on the specific spectrum you wish to phase.



Use the sliders to phase the spectra by left-clicking and dragging them.



After the phasing looks correct, the values shown in the red box below will be the values used to replace the zero-order and first-order phase values for that spectrum in the meta.tab file.



After you have changed the phasing values in the meta.tab file, reexecute
./all.com

SAND
Download the run_sand and copy_csv_sand.sh files from the FLAnalyzer GitHub repository.
Place the run_sand file into your scratch directory on NMRbox. Your scratch directory is located at the path
/scratch/xxxx/username
, where xxxx is the number where your NMRbox username is stored (e.g., 0030). You can find this number by opening the terminal on NMRbox and typing
pwd
; the number appears immediately before your username.

An example output of executing the pwd command is: /home/nmrbox/0030/cesselman
The corresponding scratch folder for this user is: /scratch/0030/cesselman

Some users do not have a number before their name.

An example output of executing the pwd command would be: /home/nmrbox/cesselman
The corresponding scratch folder for this user would be: /scratch/cesselman
Ensure that the file is executable by using the same method described in Step 6.2.
Copy the interp folder created during batch processing into the scratch directory.
Edit the run_sand script as follows:


Line 4: Add the path to the scratch directory (e.g., scratch_directory="/scratch/0030/cesselman").

Line 5: Add the path to the interp folder in the scratch directory (e.g., interp_directory="/scratch/0030/cesselman/interp").

Line 8: Add the path to the local folder where SAND results will be saved. Ensure that this local folder already exists.
(e.g., local_directory="/home/nmrbox/0030/cesselman/Documents/").

Line 20: Change the ppm values to cover the full chemical shift range in which peaks appear
(e.g., change 10ppm and -0.5ppm to values that suit your analysis)

Completion: After editing the file, save and close it.
On NMRbox, a single user can access up to three Virtual Machines (VMs) simultaneously. To reduce the time needed for SANDing, you should use three VMs. Repeat steps 14 through 17 on the different VMs. In the interp folder for each VM, delete any files that should not be SANDed by that specific VM. For example, if you want to SAND 140 spectra, keep the spectra in the scratch folder as follows: 1-48 on the first VM, 49-96 on the second VM, and 97-140 on the third VM.
On each VM, open the terminal, navigate to the scratch directory, and execute

./run_sand


View SAND Results
In the local directory where the SAND results are saved, navigate to the folder of an individual SANDed spectrum. You can use the command below to assess the SAND results.

specView.tcl -in ft/*.ft1 sim/0001.ft1 simAll/1/*.ft1

Gather SAND CSV Files
It is helpful to gather all the SAND tables into a single directory, and this is required for use with FLAnalyzer. Download the copy_csv_sand.sh file from the FLAnalyzer GitHub (Step 14) and ensure the permissions are set to allow the script to run as an executable.
Edit the copy_csv_sand.sh script as follows:


Line 4: Add the absolute path to the directory where the CSV files will be copied.

Line 7: Change this to the absolute path of the destination directory for the SAND output folders, as specified in Line 8 of the run_sand script (Step 17).

Execute the script by entering

./copy_csv_sand.sh

Protocol references
1. Delaglio, F. et al. NMRPipe: a multidimensional spectral processing system based on UNIX pipes. J. Biomol. NMR. 6, 277-293 (1995).

2. Wu, Y. et al. SAND: Automated Time-Domain Modeling of NMR Spectra Applied to Metabolite Quantification. Anal Chem 96, 1843-1851 (2024).
Acknowledgements
Thanks to Laura Morris for reviewing the protocol.