Difference between revisions of "Programmatic reconstruction of tomograms"

From Dynamo
Jump to navigation Jump to search
Line 8: Line 8:
 
* Filtering of the aligned stack.
 
* Filtering of the aligned stack.
 
* Backprojection of the filtered aligned stack .
 
* Backprojection of the filtered aligned stack .
 
  
 
== Creation of aligned stacks ==
 
== Creation of aligned stacks ==
Line 21: Line 20:
  
 
Stack aligner objects can be derived from marker sets. This requires the previous step of fitting the marker set to a 3d projeciton model.  
 
Stack aligner objects can be derived from marker sets. This requires the previous step of fitting the marker set to a 3d projeciton model.  
 +
You need to have a <tt>markerSet</tt> object in memory. You can produce it with the <tt>dmarkers</tt> GUI, or read it from a file with extension <tt>.dms</tt>. For instance:
 +
 +
<tt>markers = dread('markers.dms');</tt>
 +
 +
will read the file <tt>'markers.dms'</tt> into memory as the variable <tt>markers</tt> (the name is chose arbitrarily). Now you can create the fitter object por those markers:
 +
 +
<tt> f = dfitter(markers); </tt>
 +
 +
An important step is to establish the center of the alignment:
 +
 +
<tt>f.setCenter([nx,ny]);</tt>
 +
 +
where ''nx'' and ''ny'' are the ''sidelength'' of the micrographs. Then you create a fit, i.e., search for alignment parameters that best fit the markers.
 +
 +
<tt>f.linearScan();</tt>
  
 +
The stack alignment object
  
 
==== Programmatically ====
 
==== Programmatically ====

Revision as of 11:55, 2 July 2018

Dynamo includes several tools for creation of tomograms from initial tilt series. This articles presents an overview of the tools that can be used from the command line or inside scripts created by the users.

Overview

We assume that a raw tilt series 'raw.mrc' is available, and also a set of markers that indexes the gold fiducials. Given this input, the creation of a tomogram will involve these steps.

  • Creation of an aligned stack.
  • Filtering of the aligned stack.
  • Backprojection of the filtered aligned stack .

Creation of aligned stacks

An aligned stack is created by rotating, then shifting each of the slices of a stack.

The aligner object

This procedure can be driven through an object of the class 'stackAligner', designed to contain alignment parameters, and to locate easily functionalities associated with the alignment of stacks.

Creation from a set of markers

Stack aligner objects can be derived from marker sets. This requires the previous step of fitting the marker set to a 3d projeciton model. You need to have a markerSet object in memory. You can produce it with the dmarkers GUI, or read it from a file with extension .dms. For instance:

markers = dread('markers.dms');

will read the file 'markers.dms' into memory as the variable markers (the name is chose arbitrarily). Now you can create the fitter object por those markers:

 f = dfitter(markers); 

An important step is to establish the center of the alignment:

f.setCenter([nx,ny]);

where nx and ny are the sidelength of the micrographs. Then you create a fit, i.e., search for alignment parameters that best fit the markers.

f.linearScan();

The stack alignment object

Programmatically

Stack aligners don't need to be extracted from a fitter object. If you computed your alignment parameters in any other way, you can still create a stack alignment object and fill manually its contents.

Applying the an aligner object

The method applyOnStack can be used on a stack (expressed as a variable) to produce the aligned stack.

alignedStack = stackAligner.applyOnStack('rawStack.mrc')

Weighting of aligned aligned stacks

The aligned stack cannot be directly backprojected. There are two ways to reweight its Fourier components so that aligned.mrc can be used to create

  • Ramp filtering
  • Sirt-like filer

For weighted back projection

For sirt-like filtering