Hello,
The calculation is done as follows. (It's something we arrived at after a
bit of trial and error so if someone has a better method let us know.)
We sample 1000 points at random in the spectrum. We then take 10 random
subsets of 100 points from the 1000 (so some points can end up in more
than one of the subsets and some points might end up in none). It
calculates the standard deviation for each of those subsets. It takes the
minimal one and multiplies (fudge factor) by 1.1 and it takes that to me
the noise estimate. It also multiplies by the spectrum scale (the next
column to the left of the noise in the spectrum table).
As for recalculation I think the easiest way right now is to write a macro
or if it is a one off to run the following script at the Python prompt:
>>> spectrum =
top.nmrProject.findFirstExperiment(name=EXPT_NAME).findFirstDataSource(name=SPECTRUM_NAME)
>>> from ccpnmr.analysis.core.ExperimentBasic import getNoiseEstimate
>>> spectrum.noiseLevel = getNoiseEstimate(spectrum)
where EXPT_NAME is the experiment name and SPECTRUM_NAME is the spectrum
name (as given in the spectrum table). (Note that the function,
getNoiseEstimate(), does not set the noiseLevel attribute, it just
calculates it, hence the spectrum.noiseLevel = ...)
(And it turns out that the "notifier" that should update the spectrum
table if the noiseLevel is (re)set had a typo in it, so I've fixed that
now.)
Wayne
On Wed, 4 Aug 2010, Justin Lecher wrote:
> Hi all,
>
> if one double clicks on the noise coulmn for the spectry ccpn calculates
> a noise level. I have two questions concerning this:
>
> 1.
> How is it done?
>
> 2.
> If I changed the level manually, how can I let ccpn calculate it another
> time?
>
> justin
>
> --
> Justin Lecher
> Institute for Neuroscience and Biophysics
> ISB 3 - Institute for structural biochemistry
> Research Centre Juelich GmbH,
> 52425 Juelich,Germany
> phone: +49 2461 61 5385
>
>
>
|