process example: process_pipe_3dΒΆ
This example shows how nmrglue can be used to process NMR data. In this script a 3D time domain NMRPipe file is processing into a 3D NMRPipe frequency domain file. For 3D processing the iter3D object is used to loop over XY and ZX planes. Detail on this object can be found in the nmrglue.varian documentation.
The data used in this example is available for download.
#! /usr/bin/env python
import nmrglue as ng
# create the iterator (xiter) which will loop over YX planes
xiter = ng.pipe.iter3D("nmrpipe_3d/data/test%03d.fid", 'x', 'x')
print "Processing XY planes..."
for i, (dic, plane) in enumerate(xiter):
# process the direct dimention (x)
dic, plane = ng.pipe_proc.zf(dic, plane, auto=True)
dic, plane = ng.pipe_proc.ft(dic, plane, auto=True)
dic, plane = ng.pipe_proc.ps(dic, plane, p0=0.0, p1=0.0)
dic, plane = ng.pipe_proc.di(dic, plane)
# process the first indirect (y) dimention
dic, plane = ng.pipe_proc.tp(dic, plane)
dic, plane = ng.pipe_proc.zf(dic, plane, auto=True)
dic, plane = ng.pipe_proc.ft(dic, plane, auto=True)
dic, plane = ng.pipe_proc.ps(dic, plane, p0=0.0, p1=0.0)
dic, plane = ng.pipe_proc.di(dic, plane)
dic, plane = ng.pipe_proc.tp(dic, plane)
# write out the plane
#print "Writing out Z slice:",i,"/",xiter.i_max
xiter.write("./ft/test%03d.ft2", plane, dic)
print "Processing ZX planes..."
# create the iterator (ziter) which will loop over XZ planes
ziter = ng.pipe.iter3D("./ft/test%03d.ft2", 'z', 'z')
for i, (dic, plane) in enumerate(ziter):
# process the z-dim
dic, plane = ng.pipe_proc.zf(dic, plane, auto=True)
dic, plane = ng.pipe_proc.ft(dic, plane, auto=True)
dic, plane = ng.pipe_proc.ps(dic, plane, p0=-92.0, p1=65.0)
dic, plane = ng.pipe_proc.di(dic, plane)
# write out the plane
#print "Writing out Y slice:",i,"/",ziter.i_max
ziter.write("./ft/test%03d.ft3", plane, dic)