Difference between revisions of "Walkthrough on adaptive bandpass filtering"

From Dynamo
Jump to navigation Jump to search
Line 1: Line 1:
 +
The  ''adaptive bandpass filtering'' technique encompasses two elements:
 +
* independent refinement of two half sets of the data
 +
* dynamic computation of the low pass filter at each iteration
  
 
== Creating a test data set ==
 
== Creating a test data set ==
  
 +
<tt>dtutorial ttest2 -M 50 -noise 0.2 -tight 1 -template ribosome32.em -dshift 0</tt>
  
== Creating and ABP project with the GUI==
+
We can check the produced images:
 +
 
 +
<tt> dslices ttest2/data -jz 0 -labels 1</tt>
 +
 
 +
[[  File:ABPdata.png |thumb|center|800px|  Tutorial data set depicted with <tt>dslice</tt>]]
 +
 
 +
== Creating an ABP project with the GUI==
 +
 
 +
The easiest way to create an adaptive bandpass project is to first create an auxiliary single reference project and then deriving the corresponding ABP project.
  
 
=== Creation of supporting single reference project===
 
=== Creation of supporting single reference project===
  
[[ File:ABPmanualCreate.png  |thumb|center|800px| xxxxx ]]
+
Launch the project editor through:
  
[[ File:ABPmanualParticles.png |thumb|center|800px| xxxxx ]]
+
  <tt>dcp;</tt>
  
[[ File:ABPmanualTable.png |thumb|center|800px| xxxxx ]]
+
[[ File:ABPmanualCreate.png |thumb|center|800px| {Project creation ]]
  
[[ File:ABPmanualTemplate.png  |thumb|center|800px| xxxxx ]]
+
The different fields will open as we input the required info. We start with the particles.
  
[[  File:ABPmanualMasks.png |thumb|center|800px| xxxxx ]]
+
[[ File:ABPmanualParticles.png  |thumb|center|800px| Entering the tutorial data set ]]
 +
 
 +
=== Seed files ===
 +
Table, template and masks don't need special formatting. We will just provide ''Dynamo'' with the default options.  The table can be initialized to a ''blank'' table, which just contains the indices of the particles.
 +
 
 +
[[  File:ABPmanualTable.png |thumb|center|800px| Creation of a blank table]]
 +
 
 +
Template can be initialized just as an average of particles. This average will be recomputed anyway when we derive the ABP project.
 +
 
 +
[[ File:ABPmanualTemplate.png  |thumb|center|800px| Creation of initial template ]]
 +
 
 +
Masks are initiated to default values. This means spherical masks for alignment and classification masks, and full cubes for smoothing and fourier mask of template.
 +
 
 +
[[  File:ABPmanualMasks.png |thumb|center|800px| Default masks ]]
  
 
=== Derivation of ABP project ===
 
=== Derivation of ABP project ===
  
[[ File:ABPmanualABP.png  |thumb|center|800px| xxxxx ]]
+
After the initialization of the support single reference project, you can derive an ABP project, through ''Multireference > Adaptive filtering > derive a project "
 +
 
 +
[[ File:ABPmanualABP.png  |thumb|center|800px| Derivation of ABP Projects ]]
 +
 
 +
You need to edit the created new project (by default will have the same name as the base project with the string <tt>_eo</tt> appended)
  
[[  File:ABPmanualABPinput.png |thumb|center|800px| xxxxx ]]
+
[[  File:ABPmanualABPinput.png |thumb|center|800px| Bring the project to scope inside <tt>dcp</tt> ]]
  
[[  File:ABPmanualABPTemplate.png |thumb|center|800px| xxxxx ]]
+
[[  File:ABPmanualABPTemplate.png |thumb|center|800px| Template creation ]]
  
 
[[  File:ABPmanualFSCinitial.png |thumb|center|800px| xxxxx ]]
 
[[  File:ABPmanualFSCinitial.png |thumb|center|800px| xxxxx ]]
Line 47: Line 76:
 
[[  File:ABPmanualFSCInteractiveLastIteration.png |thumb|center|800px| xxxxx ]]
 
[[  File:ABPmanualFSCInteractiveLastIteration.png |thumb|center|800px| xxxxx ]]
  
[[  |thumb|center|800px| xxxxx ]]
+
== Creating an ABP project from the command line ==
 +
 
 +
=== Create the support project ===
 +
<nowiki>dcp.new('ptest02','d','ttest2/data','show',0);
 +
 +
==== Provide initial files ====
 +
dvhint_files ptest02 item *; </nowiki>
 +
 +
==== Change execution parameters====
 +
<nowiki>dvput ptest02 -cr 360 -cs 45 -ir 360 -is 45 -rff 2 -rf 4 -dst matlab_parfor ...
 +
    -cores 2 -mwa 2 -dim 16 </nowiki>
 +
 +
=== Derive ABP project ===
 +
 +
<tt>dveo ptest02 --abf </tt>
 +
 
 +
And create the templates:
 +
<tt>dvtemplate ptest02_eo --ro -N 10 </tt>
 +
 +
% check initial references
 +
 
 +
=== Derive ABP project ===
 +
<> dpkproject.fsc.plotFSCInitialReferences(dvload('ptest_eo'));
 +
 +
dvput ptest02_eo -abpi 3 -abpt 0.143 -abppb 0 -ite 10 ite_r2 0 -ite_r3 0 -lim 3 -limm 1
 +
dvhint_files ptest02_eo item masks
 +
dvunfold ptest02_eo
 +
ptest02_eo
 +
 +
% look at the plots
 +
dpkconv.plotConvergenceAll('ptest02_eo')
 +
 
 +
[[ File:ABPcommandCoarse.png |thumb|center|800px| xxxxx ]]
 +
 
 +
<tt>ddb ptest02_eo:bandpass_resolution -r t<tt>
 +
 
 +
<tt>disp(t);</tt>
 +
 
 +
== Extending an ABP project from the command line ==
 +
 
 +
<tt>dynamo_vpr_branch ptest02_eo refine02 -n 0 -ite 7 -br 1 </tt>
 +
   <tt>dvput refine02 -cr 15 -cs 3 -ir 15 -is 3 -rff 2 -rf 2 -ite 10 -abpi 8 -mra 0 -dim 32</tt>
 +
<tt>dvunfold refine02 </tt>
 +
<tt> refine02 </tt>
 +
<tt>dpkconv.plotConvergenceAll('refine02');</tt>
 +
 
 +
[[  File:ABPfineResult.png |thumb|center|800px| xxxxx ]]
 +
 
 +
[[  File:ABPfineComparison.png |thumb|center|800px| xxxxx ]]

Revision as of 17:53, 27 November 2017

The adaptive bandpass filtering technique encompasses two elements:

  • independent refinement of two half sets of the data
  • dynamic computation of the low pass filter at each iteration

Creating a test data set

dtutorial ttest2 -M 50 -noise 0.2 -tight 1 -template ribosome32.em -dshift 0

We can check the produced images:

 dslices ttest2/data -jz 0 -labels 1
Tutorial data set depicted with dslice

Creating an ABP project with the GUI

The easiest way to create an adaptive bandpass project is to first create an auxiliary single reference project and then deriving the corresponding ABP project.

Creation of supporting single reference project

Launch the project editor through:

dcp;
{Project creation

The different fields will open as we input the required info. We start with the particles.

Entering the tutorial data set

Seed files

Table, template and masks don't need special formatting. We will just provide Dynamo with the default options. The table can be initialized to a blank table, which just contains the indices of the particles.

Creation of a blank table

Template can be initialized just as an average of particles. This average will be recomputed anyway when we derive the ABP project.

Creation of initial template

Masks are initiated to default values. This means spherical masks for alignment and classification masks, and full cubes for smoothing and fourier mask of template.

Default masks

Derivation of ABP project

After the initialization of the support single reference project, you can derive an ABP project, through Multireference > Adaptive filtering > derive a project "

Derivation of ABP Projects

You need to edit the created new project (by default will have the same name as the base project with the string _eo appended)

Bring the project to scope inside dcp
Template creation
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx
xxxxx

Creating an ABP project from the command line

Create the support project

dcp.new('ptest02','d','ttest2/data','show',0);
 
==== Provide initial files ====
dvhint_files ptest02 item *; 

Change execution parameters

dvput ptest02 -cr 360 -cs 45 -ir 360 -is 45 -rff 2 -rf 4 -dst matlab_parfor ...
     -cores 2 -mwa 2 -dim 16 

Derive ABP project

dveo ptest02 --abf

And create the templates:

dvtemplate ptest02_eo --ro -N 10 

% check initial references

Derive ABP project

<> dpkproject.fsc.plotFSCInitialReferences(dvload('ptest_eo'));

dvput ptest02_eo -abpi 3 -abpt 0.143 -abppb 0 -ite 10 ite_r2 0 -ite_r3 0 -lim 3 -limm 1
dvhint_files ptest02_eo item masks
dvunfold ptest02_eo
ptest02_eo

% look at the plots
dpkconv.plotConvergenceAll('ptest02_eo')
xxxxx
ddb ptest02_eo:bandpass_resolution -r t
disp(t);

Extending an ABP project from the command line

dynamo_vpr_branch ptest02_eo refine02 -n 0 -ite 7 -br 1 
 dvput refine02 -cr 15 -cs 3 -ir 15 -is 3 -rff 2 -rf 2 -ite 10 -abpi 8 -mra 0 -dim 32
dvunfold refine02 
 refine02 
dpkconv.plotConvergenceAll('refine02');
xxxxx
xxxxx