# Difference between revisions of "Fourier Shell Correlation"

(13 intermediate revisions by the same user not shown) | |||

Line 4: | Line 4: | ||

# During [[Adaptive bandpass filtering | adaptive bandpassing]], the FSC of the two half averages is used to measure the ''resolution'' attained at each iteration. | # During [[Adaptive bandpass filtering | adaptive bandpassing]], the FSC of the two half averages is used to measure the ''resolution'' attained at each iteration. | ||

# During a regular project, the FSC between the freshly computed [[iteration average]] and the one generated in the previous iteration is also computed. This information is used to measure the ''convergence''. | # During a regular project, the FSC between the freshly computed [[iteration average]] and the one generated in the previous iteration is also computed. This information is used to measure the ''convergence''. | ||

+ | |||

The command line that computes the FSC is {{docfunction|dynamo_fsc|dfsc}}. In its default settings, the FSC for two volumes with a sidelength of ''N'' pixels would be a vector with a length of "N"/2 pixels. | The command line that computes the FSC is {{docfunction|dynamo_fsc|dfsc}}. In its default settings, the FSC for two volumes with a sidelength of ''N'' pixels would be a vector with a length of "N"/2 pixels. | ||

<tt> | <tt> | ||

− | + | #compute A as fourier transform of real space volume a | |

− | + | #compute B as fourier transform of real space volume a | |

− | + | #for each shell index i=1:N/2 | |

− | : compute a discretized shell n(i) | + | #: compute a discretized shell n(i) as a volume with entries 0 or 1 |

− | :: a fourier pixel with a distance ''k'' from the center is in n(i) if | + | #:: a fourier pixel with a distance ''k'' from the center is in shell n(i) if i<=|k|<i+1 |

− | : locate elements of A and B inside shell n(i) | + | #: locate elements of A and B inside shell n(i) |

− | :: | + | #:: A<sub>i</sub> = A|n(i) ; a vector with as many entries as non-zero elements in n(i) |

− | :: | + | #:: B<sub>i</sub> = B|n(i) ; a vector with as many entries as non-zero elements in n(i) |

− | : compute cross correlation of | + | #: compute cross correlation of vectors A<sub>i</sub>, B<sub>i</sub>: |

− | :: FSC(i) = | + | #:: FSC(i) = A<sub>i</sub> * B<sub>i</sub> / |A<sub>i</sub>| |B<sub>i</sub>| |

+ | #:: ''*'' represents pixelwise multiplication, |.| is the vector norm. | ||

</tt> | </tt> | ||

− | With this definition, the first element in a FSC would measure the similarity of the two | + | With this definition, the first element in a FSC would measure the similarity of A and B restricted to a first shell A<sub>1</sub> and B<sub>1</sub>. With the definition above, this first shell skips the central Fourier mode, i.e. the zero-th component of the Fourier transform (i.e, the total intensity of particle ''a'' in direct space). The FSC of the central Fourier model of two volumes will always be 1 (being the correlation of two scalars), and it's not represented. |

## Latest revision as of 08:40, 27 April 2016

The Fourier Shell Correlation (FSC) between two volumes is a measure of their similarity. It assigns a coefficient between -1 and 1 to each chosen frequency range.

FSC computations are used in different areas of *Dynamo*

- During adaptive bandpassing, the FSC of the two half averages is used to measure the
*resolution*attained at each iteration. - During a regular project, the FSC between the freshly computed iteration average and the one generated in the previous iteration is also computed. This information is used to measure the
*convergence*.

The command line that computes the FSC is `dfsc`. In its default settings, the FSC for two volumes with a sidelength of *N* pixels would be a vector with a length of "N"/2 pixels.
`
`

- compute A as fourier transform of real space volume a
- compute B as fourier transform of real space volume a

- for each shell index i=1:N/2
- compute a discretized shell n(i) as a volume with entries 0 or 1
- a fourier pixel with a distance
*k*from the center is in shell n(i) if i<=|k|<i+1

- a fourier pixel with a distance
- locate elements of A and B inside shell n(i)
- A
_{i}= A|n(i) ; a vector with as many entries as non-zero elements in n(i) - B
_{i}= B|n(i) ; a vector with as many entries as non-zero elements in n(i)

- A
- compute cross correlation of vectors A
_{i}, B_{i}:- FSC(i) = A
_{i}* B_{i}/ |A_{i}| |B_{i}| -
***represents pixelwise multiplication, |.| is the vector norm.

- FSC(i) = A

- compute a discretized shell n(i) as a volume with entries 0 or 1

`
With this definition, the first element in a FSC would measure the similarity of A and B restricted to a first shell A`_{1} and B_{1}. With the definition above, this first shell skips the central Fourier mode, i.e. the zero-th component of the Fourier transform (i.e, the total intensity of particle *a* in direct space). The FSC of the central Fourier model of two volumes will always be 1 (being the correlation of two scalars), and it's not represented.