GenericDosy (Oct 2009)
index
/Users/mad/Documents/Developpement/repository/NMRnotebook/NPK/trunk/python/NPK/GenericDosy.py

The library of DOSY processing functions to be used with the NPK program.
 
This library implement the specific functions needed for NMR-DOSY processing.
Most of these functions require that the NPK mathematical kernel is loaded.

 
Modules
       
Nucleus
Param
copy
math
os
re
sys
time

 
Classes
       
maxent_state

 
class maxent_state
    This class maintains a permanent state for MaxEnt processing
it is a wrapper over the NPK kernel
it also maintains additional parameters, such as samplings...
 
  Methods defined here:
copyto_kernel(self)
sets the kernel with private values
dosy_me_preset(self, preset=3)
Presets MaxEnt parameters for DOSY processing
preset value ranges from 0 to 5
sets the parameters for a balance between speed (1) and quality (5), 0 is for fit
get_iltalgo(self)
get_iltsize(self)
get_ilttype(self)
get_iter(self)
get_lambcont(self)
get_lambsp(self)
get_miniter(self)
get_ndisp(self)
me_preset(self, preset_value=3)
Presets MaxEnt parameters for Fourier processing
preset value ranges from 1 to 5
sets the parameters for a balance between speed (1) and quality (5)
report(self)
set_algo(self, x)
algo determines the global MaxEnt algorithm,
0 fixed-point with Gull and Daniel equation for Entropy 
1 fixed-point with Gifa equation for Entropy 
2 steepest descent equation is used
3 conjugate gradient is used
set_iltalgo(self, st)
string which determines which algo is used for ILT analysis
MaxEnt or Fit
set_iltsize(self, x)
size for computing ILT processing
set_ilttype(self, st)
string which determines which sampling is used for ILT analysis
REGULAR or TABULATED
set_iter(self, x)
set_lambcont(self, x)
set_lambsp(self, x)
set_linemini(self, x)
xlinemini determines ho line minimisation is performed
0 single step iteration
1 line-maximization using parabolic fit.
2 : line-maximization using bracketing before parabolic
set_miniter(self, x)
set_ndisp(self, x)
set_wucorrec(self, x)
determines wether Wu correction is used or not

 
Functions
       
RemovePoints(list)
remove the points of the current 1D which index is given in list
RemoveRows(list)
remove the rows of the current 2D  which index is given in list
auto_damp_width()
uses the tab buffer to determine the optimum dmin and dmax for ILT processing
calibdosy(litdelta, bigdelta, recovery=0.0, seq_type='ste', nucleus='1H', maxgrad=50.0, maxtab=50.0, gradshape=1.0, unbalancing=0.0)
returns the DOSY calibrating factor from the parameters
 
  bigdelta float
   "Big Delta"  : diffusion delay in msec
 
  litdelta float
   "little Delta"  : gradient duration in msec
 
  seq_type enum "pgse","ste","bpp_ste","ste_2echoes","bpp_ste_2echoes","oneshot" / default ste
   the type of DOSY sequence used
    pgse : the standard hahn echoe sequence
    ste : the standard stimulated echoe sequence
    bpp_ste : ste with bipolar gradient pulses
    ste_2echoes : ste compensated for convection
    bpp_ste_2echoes : bpp_ste compensated for convection
    oneshot : the oneshot sequence from Pelta, Morris, Stchedroff, Hammond, 2002, Magn.Reson.Chem. 40, p147
    
  nucleus enum "1H","2H","13C","15N","17O","19F","31P" / default 1H
   the observed nucleus
 
 recovery float
   Gradient recovery delay
 
 maxgrad float
   Maximum Amplificator Gradient Intensity, in G/cm    / default 50.0
 
 maxtab float
   Maximum Tabulated Gradient Value in the tabulated file. / default 100.0
   Bruker users with gradient list in % use 100 here
   Bruker users with gradient list in G/cm (difflist) use maxgrad here
   Varian users use 32768 here
 
 gradshape float
   integral factor depending on the gradient shape used / default 1.0
   typical values are :
       1.0 for rectangular gradients
       0.6366 = 2/pi for sine bell gradients
       0.4839496 for 4% truncated gaussian (Bruker gauss.100 file)
   Bruker users using difflist use 1.0 here, as it is already included in difflist
check_diverged()
check if MaxEnt is ok (entropy and chi2 != NaN)
true if something diverged
cont_maxent_ilt(me)
Continue from a do_maxent_ilt run
damp_to_ppm(dmin, dmax, reverse=0)
compute pseudo ppm axis parameters
 
if reverse = 1, means axis was reversed with respect to standard MaxEnt processing (as in TopSpin/Dosym
do_maxent_ilt(me)
copy me to kernel and run maxent accordingly
dosy2d(datafile, Dmin, Dmax, Dfactor, me, list_to_do)
Realize the actual processing of a 2D DOSY
 
It implements the complete DOSY processing for 2D.
DOSY data are in-memory, diffusion dimension is in F1, NMR spectra in F2
 
datafile : name and path of the specified input F2 processed data file.
Dmin, Dmax, Dfactor determines the window border along the diffusion axis
me : is a maxent_state object, holding all the details for the processing parameters
list_to_do : list of the indexes of the column to process.
 
%author% Marc-Andre Delsuc
%version% 1.0
mar 2006 - first version, rewritte from dosy2d in Gifa
dosybidon(datafile, Dmin, Dmax, Dfactor, me, list_to_do)
##################################################################################
dosyfit(me)
#---------------------------------------
dosymaxent(mearg)
Realise the 1D ILT transformation involved in DOSY processing.
uses the 1D buffer and the tab buffer as found in the kernel.
 
mearg is a MaxEnt object, which contains all the parameters
It try to optimise lambsp in order to get the fastest iteration possible
 
It stores temporary results in a file, and get back to it
if something went wrong.
 
see also : dosy2d INVTLAP INVTLAPCONT
 
 %author% M-A.D. from Thierry Gostan
dosymaxent_new(mearg)
This version is a rewrite, it does not really work for the moment
 
Realise the 1D ILT transformation inv-olved in DOSY processing.
uses the 1D buffer and the tab buffer as found in the kernel.
 
mearg is a MaxEnt object, which contains all the parameters
It try to optimise lambsp in order to get the fastest iteration possible
 
It stores temporary results in a file, and get back to it
if something went wrong.
 
see also : dosy2d INVTLAP INVTLAPCONT
 
 %author% M-A.D. from Thierry Gostan
load_sq_tab(filename)
load in TAB buffer a simple 1D series;
takes the square of the values, usefull for loading DOSY buffers
skip # and ; comments
 
destroy the content of the 1D buffer!
see also : load

 
Data
        __author__ = 'Marc A. Delsuc <delsuc@igbmc.fr>'
__date__ = 'Oct 2009'

 
Author
        Marc A. Delsuc <delsuc@igbmc.fr>