Project

General

Profile

Actions

Bug #3356

closed

Ctf Display does not work as well when extending resolution past 5 Å

Added by Neil Voss over 9 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
Image Processing
Target version:
-
Start date:
08/12/2015
Due date:
% Done:

0%

Estimated time:
Affected Version:
Appion/Leginon 3.2
Show in known bugs:
No
Workaround:

Description

Ctf Display does not work as well when extending resolution past 5 Å

num of sections to divide the 1D spectrum into
initially it was 3 sections to 5 A (or 0.2 A-1)
for going to 3 A (0.33 A-1) should be 5 sections
to cover the same space per section 0.2/3 = 0.067
0.33/0.067 = 15/3 = 5 sections
so the new number of sections will be 15/maxRes and it is dynamic

or one could use the square of the resolution, but let's try this first


Related issues 1 (1 open0 closed)

Related to Appion - Feature #3950: Create CTF test dataset within DockerAssignedNeil Voss02/15/2016

Actions
Actions #1

Updated by Scott Stagg about 9 years ago

I think we might be seeing a bug related to this. With some negative stain images, the database insertion is failing. Below is the error:

 ... Computing median of power spectra series
 ... Compute PSD with fieldsize 2048 and 9 images complete in 55.18 sec
!!! WARNING: Requested resolution (3.000) is not available (8.100)
 ... Preform a rotational average and remove spikes...
PART 1: SETUP PARAMETERS AND ELLIPTICAL AVERAGE
 ... Number of available peaks is 250
/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctftools.py:490: DeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  xdataint = xdataint[:outercutsize]
 ... Determine and subtract noise model
PART 2: BACKGROUND NOISE SUBTRACTION
 ... starting peak extension
Peak Extension Complete in 3.75 msec
Traceback (most recent call last):
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/bin/pyace2.py", line 361, in <module>
    imgLoop.run()
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/appionLoop2.py", line 93, in run
    self.loopCommitToDatabase(imgdata)
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/appionLoop2.py", line 143, in loopCommitToDatabase
    return self.commitToDatabase(imgdata)
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/bin/pyace2.py", line 286, in commitToDatabase
    ctfinsert.validateAndInsertCTFData(imgdata, self.ctfvalues, self.ctfrundata, self.params['rundir'])
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctfinsert.py", line 45, in validateAndInsertCTFData
    ctfvalues = runCTFdisplayTools(imgdata, ctfvalues, opimagedir, fftpath, fftfreq)
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctfinsert.py", line 83, in runCTFdisplayTools
    ctfdisplaydict = ctfdisplay.makeCtfImages(imgdata, ctfvalues, fftpath, fftfreq)
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctfdisplay.py", line 1257, in makeCtfImages
    ctfdisplaydict = a.CTFpowerspec(imgdata, ctfdata, fftpath, fftfreq, twod=twod)
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctfdisplay.py", line 1139, in CTFpowerspec
    normpowerspec = self.normalizeCtf(powerspec, twod=twod)
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctfdisplay.py", line 210, in normalizeCtf
    fitvalleydata[startIndex:endIndex], "below")
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctfnoise.py", line 550, in modelCTFNoise
    filterctfdata, contraintFunction)
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctfnoise.py", line 399, in getAllInitialParameters
    fitparams, value = self.fitLinear(xdata, ctfdata, contraintFunction)
  File "/panfs/storage.local/imb/stagg/software/myami_dev/appion/appionlib/apCtf/ctfnoise.py", line 183, in fitLinear
    z = numpy.polyfit(xdata, ctfdata, 1)
  File "/usr/lib64/python2.6/site-packages/numpy/lib/polynomial.py", line 551, in polyfit
    raise TypeError("expected non-empty vector for x")
TypeError: expected non-empty vector for x

The pixel size for these images is 4.05 and we can see one Thon ring. We aren't having any problems with cryo data.

Actions #2

Updated by Neil Voss over 8 years ago

  • Related to Feature #3950: Create CTF test dataset within Docker added
Actions #3

Updated by Anchi Cheng over 8 years ago

Neil,

It occurs to me that the way you generate 1D plot can be applied to any image given. How about feed in the empty image from the algorithm Bob Glaeser suggested awhile ago, see Issue #2078. You should get a perfect 1D background to subtract. No fitting needed except the water ring itself which I would think will be easier once all other components are gone.

Actions #4

Updated by Neil Voss over 8 years ago

Hi Anchi, The background noise is not as difficult a problem as the envelope. But it would be interesting to try this.

The main issue is where I decide to cut the sections for the fit. In close to focus images there are not as many peaks and valleys that make good cut points.

Actions #5

Updated by Neil Voss over 8 years ago

  • Status changed from Assigned to Closed
  • Assignee deleted (Neil Voss)

I am closing this issue as other (more specific) issues are the main culprit. See issue #3950 for a list.

Actions

Also available in: Atom PDF