Difference between revisions of "Cross correlation matrix"

From Dynamo
Jump to navigation Jump to search
 
(16 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
This similarity of particles ''i'' and ''j''  measured in terms of the normalized cross correlation of the the two aligned particles, filtered to their common fourier components, and  restricted to a region in direct space (indicated by a classification mask). The pseudo code will run as:
 
This similarity of particles ''i'' and ''j''  measured in terms of the normalized cross correlation of the the two aligned particles, filtered to their common fourier components, and  restricted to a region in direct space (indicated by a classification mask). The pseudo code will run as:
 
<code>
 
<code>
 
+
# Input
# read particle i  -> Pi
+
#:  particles p<sub>i</sub> and p<sub>j</sub>
# rotate and shift particles ''i''
+
#:  alignment parameters A<sub>i</sub> and A<sub>j</sub>
# create the missing wedge of particle
+
#: classification mask m
# rotate missing wedge of particles ''i'' ''RiWi''  
+
# read particles ''i'' and ''j'' -> p<sub>i</sub>, p<sub>j</sub>
# compute Fourier coefficients   common to Cij
+
# align particles ''i'', and ''j'' -> A<sub>i</sub>p<sub>i</sub>, A<sub>j</sub>p<sub>j</sub>
 +
# compute missing wedges for particles ''i'' and ''j'' -> W<sub>i</sub>, W<sub>j</sub>
 +
# rotate missing wedges  -> R<sub>i</sub>W<sub>i</sub>, R<sub>j</sub>W<sub>j</sub>
 +
#: R<sub>i</sub> is the rotational part of A<sub>i</sub>
 +
# compute Fourier coefficients common to bCoth rotated missing wedges
 +
#:C<sub>ij</sub> = intersection(R<sub>i</sub>W<sub>i</sub>, R<sub>j</sub>W<sub>j</sub>)
 +
# filter both p<sub>i</sub> and p<sub>j</sub> with C<sub>ij</sub>
 +
#: p̃<sub>i</sub> = F<sup>-1</sup>[  F(p<sub>i</sub>).*  C<sub>ij</sub>  ]
 +
#: (.* is pixelwise multiplication)
 +
# compare the filtered particles inside the classification mask.
 +
#: ccmatrix(i,j)<- normalized cross correlation(p̃<sub>i</sub>|<sub>m</sub>, p̃<sub>j</sub>|<sub>m</sub>)
 
</code>
 
</code>
 +
==Input for ccmatrix construction==
 +
The minimal input is a set of particles (formatted as a [[data folder]]) and their alignment parameters (formatted as a [[table]]). You also may want to specify a classification mask and optatively additional mathematical operations on the particles (as bandpassing or symmetrization).
  
 +
==Computation of a ccmatrix==
 +
''Dynamo'' typically implements the computation of a ccmatrix in independent blocks. These blocks can be handled separately by different cores, but you do NOT have to tune the number of blocks to the number of available cores. The number of blocks needs to be [[Memory/speed balance during ccmatrix computation|tuned to the memory of your system]] and will be generally higher than the number of cores, so that each core will process several blocks sequentially.
  
==Input of a ccmatrix==
+
==Applications of the  ccmatrix==
 
+
A ccmatrix is most commonly used in the context of [[Principal component analysis| PCA classification]].
 
+
They can be used for Hierarchical clustering (using for instance the GUI {{t|dynamo_ccmatrix_analysis}}), but this procedure is normally much weaker than PCA.
==Computation of ccmatrix==
 
 
 
==Application of a ccmatrix==
 

Latest revision as of 11:16, 19 April 2016


The cross correlation matrix (often called ccmatrix in Dynamo jargon) of a set of N particles is an N X N matrix. Each entry (i,j) represents the similarity of particles i and j in the data set.

Definition of similarity

This similarity of particles i and j measured in terms of the normalized cross correlation of the the two aligned particles, filtered to their common fourier components, and restricted to a region in direct space (indicated by a classification mask). The pseudo code will run as:

  1. Input
    particles pi and pj
    alignment parameters Ai and Aj
    classification mask m
  2. read particles i and j -> pi, pj
  3. align particles i, and j -> Aipi, Ajpj
  4. compute missing wedges for particles i and j -> Wi, Wj
  5. rotate missing wedges -> RiWi, RjWj
    Ri is the rotational part of Ai
  6. compute Fourier coefficients common to bCoth rotated missing wedges
    Cij = intersection(RiWi, RjWj)
  7. filter both pi and pj with Cij
    i = F-1[ F(pi).* Cij ]
    (.* is pixelwise multiplication)
  8. compare the filtered particles inside the classification mask.
    ccmatrix(i,j)<- normalized cross correlation(p̃i|m, p̃j|m)

Input for ccmatrix construction

The minimal input is a set of particles (formatted as a data folder) and their alignment parameters (formatted as a table). You also may want to specify a classification mask and optatively additional mathematical operations on the particles (as bandpassing or symmetrization).

Computation of a ccmatrix

Dynamo typically implements the computation of a ccmatrix in independent blocks. These blocks can be handled separately by different cores, but you do NOT have to tune the number of blocks to the number of available cores. The number of blocks needs to be tuned to the memory of your system and will be generally higher than the number of cores, so that each core will process several blocks sequentially.

Applications of the ccmatrix

A ccmatrix is most commonly used in the context of PCA classification. They can be used for Hierarchical clustering (using for instance the GUI dynamo_ccmatrix_analysis), but this procedure is normally much weaker than PCA.