Currently there are three peak volume methods: one that does a parabolic
fit (the original one; not very good; still the default in release 1.0.3
but no longer in the forthcoming 1.0.4); one that just does a box sum
(this will be the default in 1.0.4); and one that does a truncated box sum
(it tries to figure out where the peak stops).
The box sum volume methods get the boxWidth (which of course along with
the peak center determines the box) as follows. For each dimension of a
peak there is a data model object called a peakDim. Each peakDim has an
attribute called boxWidth, but it is optional so normally (i.e. by
default) it is set to None (i.e. the Python None object). If that
boxWidth is None then the algorithm uses application specific data stored
on the dataDim associated with the peakDim (i.e. peakDim.dataDim). If
that applciation specific data is None then it uses 1 as the value,
although as it happens the algorithm uses 3 as a minimum (otherwise it is
too thin a box). (And note, the boxWidth is in points, not ppm.)
There is currently no easy way to set the peakDim.boxWidth attribute
(although you could set this yourself, if you had some algorithm). The
application specific dataDim box widths can be set in the Crosspeaks ->
Peak Find Parameters dialog, in the "Spectrum widths" table.
There is some peak functionality in python/ccpnmr/analysis/PeakBasic.py.
For example, there is a pickPeak(peakList, position, unit = 'point')
function whereby you can create a peak with a specified position. (There
is another function below it, called addPeak(), which is pretty much
equivalent, only it separates out the aliasing and does not do ppm. So
stick with pickPeak() I guess.)
If there's anything else required then let us know.
Wayne
On Fri, 17 Jun 2005, Tim Stevens wrote:
> > Namely, we would like to get out of a series of 2D spectra the variation
> > in cross-peak intensity (height) and volume including where the cross-peak
> > disappears into the noise.
>
> This is similar to what is already possible in the rate measurements
> section of Analysis. There is even an option to pick peaks at non-maxima
> locations, according to a reference peak list, so you can follow peak
> intensities into the noise.
>
>
> > This task is essentially the same as deriving
> > intensity series from a 15N relaxation data set, but in this case is
> > actually from a different type of experiment.
>
> The rates section of Analysis doesn't care what the type of experiments
> are bing used, it just fits functions to the intensities of series
> similarly located (or assigned) peaks. Hopefully we could expand this to
> suit your needs. So maybe take a look at the rates functionality and let
> us now where things need expanding.
>
>
> > So, to be clear (hopefully), we want to set bounding boxes and
> > cross-peak centre locations for each peak of interest in the initial
> > spectrum, including a 'control region' of only noise, keep them fixed
> > over the series of spectra, and extract the volumes and heights
> > respectively. Importantly we do not want to be dependent upon whether
> > the software 'finds' a cross-peak or not.
>
> Most of this we can do already. The order of precedence for grouping peaks
> is:
>
> 1, Find similarly assigned peaks
> 2, Locate existing peaks within reference tolerances
> 3, Pick new peaks at maxima within reference tolerances
> 4, Pick new peaks at exactly the reference position
>
> Points 3, and 4, can be independently switched on or off.
>
> The bounding box for peak locating is global; i.e. applies to all the
> refence locations equally, so this might not be quite what you want.
>
> We already have a function to get a noise value for a spectrum. In
> analysis/Util.py we have getNoiseEstimate() - although at some point we'll
> put this in a documented and more descriptive location. This function
> automatically estimates noise for a spectrum by choosing fractions of a
> random sample of points with a low standard deviation.
>
> I'll let Wayne comment on how the peak volume measurement methods may work
> in the noise...
>
> Tim
>
> -------------------------------------------------------------------------------
> Dr Tim Stevens Email: [log in to unmask]
> Department of Biochemistry [log in to unmask]
> University of Cambridge Phone: +44 1223 766022 (office)
> 80 Tennis Court Road +44 7816 338275 (mobile)
> Old Addenbrooke's Site +44 1223 364613 (home)
> Cambridge CB2 1GA WWWeb: http://www.bio.cam.ac.uk/~tjs23
> United Kingdom http://www.pantonia.co.uk
> -------------------------------------------------------------------------------
> ------ +NH3CH(CH(CH3)OH)C(O)NHCH(CH(CH3)CH2CH3)C(O)NHCH(CH2CH2SCH3)CO2- -------
> -------------------------------------------------------------------------------
>
|