The NMRPipe system is a UNIX software environment of processing, graph
ics, and analysis tools designed to meet current routine and research-
oriented multidimensional processing requirements, and to anticipate a
nd accommodate future demands and developments. The system is based on
UNIX pipes, which allow programs running simultaneously to exchange s
treams of data under user control. In an NMRPipe processing scheme, a
stream of spectral data flows through a pipeline of processing program
s, each of which performs one component of the overall scheme, such as
Fourier transformation or linear prediction. Complete multidimensiona
l processing schemes are constructed as simple UNIX shell scripts. The
processing modules themselves maintain and exploit accurate records o
f data sizes, detection modes, and calibration information in all dime
nsions, so that schemes can be constructed without the need to explici
tly define or anticipate data sizes or storage details of real and ima
ginary channels during processing. The asynchronous pipeline scheme pr
ovides other substantial advantages, including high flexibility, favor
able processing speeds, choice of both all-in-memory and disk-bound pr
ocessing, easy adaptation to different data formats, simpler software
development and maintenance, and the ability to distribute processing
tasks on multi-CPU computers and computer networks.