Scattering approximations¤
cryojax.simulator.AbstractScatteringTheory
cryojax.simulator.AbstractScatteringTheory
¤
Base class for a scattering theory.
compute_contrast_spectrum(volume_representation: cryojax.simulator.AbstractVolumeRepresentation, image_config: cryojax.simulator.AbstractImageConfig, rng_key: PRNGKeyArray | None = None, defocus_offset: cryojax.jax_util.FloatLike | None = None) -> Complex[Array, '{image_config.padded_y_dim} {image_config.padded_x_dim//2+1}']
¤
compute_intensity_spectrum(volume_representation: cryojax.simulator.AbstractVolumeRepresentation, image_config: cryojax.simulator.AbstractImageConfig, rng_key: PRNGKeyArray | None = None, defocus_offset: cryojax.jax_util.FloatLike | None = None) -> Complex[Array, '{image_config.padded_y_dim} {image_config.padded_x_dim//2+1}']
¤
Weak-phase approximation¤
cryojax.simulator.WeakPhaseScatteringTheory(cryojax.simulator.AbstractScatteringTheory)
¤
Base linear image formation theory.
__init__(volume_integrator: cryojax.simulator.AbstractVolumeIntegrator, transfer_theory: cryojax.simulator.ContrastTransferTheory)
¤
Arguments:
volume_integrator: The method for integrating the scattering potential.transfer_theory: The contrast transfer theory.
compute_object_spectrum(volume_representation: cryojax.simulator.AbstractVolumeRepresentation, image_config: cryojax.simulator.AbstractImageConfig, rng_key: PRNGKeyArray | None = None) -> Complex[Array, '{image_config.padded_y_dim} {image_config.padded_x_dim//2+1}']
¤
compute_contrast_spectrum(volume_representation: cryojax.simulator.AbstractVolumeRepresentation, image_config: cryojax.simulator.AbstractImageConfig, rng_key: PRNGKeyArray | None = None, defocus_offset: cryojax.jax_util.FloatLike | None = None) -> Complex[Array, '{image_config.padded_y_dim} {image_config.padded_x_dim//2+1}']
¤
compute_intensity_spectrum(volume_representation: cryojax.simulator.AbstractVolumeRepresentation, image_config: cryojax.simulator.AbstractImageConfig, rng_key: PRNGKeyArray | None = None, defocus_offset: cryojax.jax_util.FloatLike | None = None) -> Complex[Array, '{image_config.padded_y_dim} {image_config.padded_x_dim//2+1}']
¤
Compute the squared wavefunction at the detector plane, given the contrast.
Explicit wavefunction methods¤
cryojax.simulator.AbstractWaveScatteringTheory
cryojax.simulator.AbstractScatteringTheory
¤
Base class for a scattering theory.
cryojax.simulator.RytovScatteringTheory(cryojax.simulator.AbstractScatteringTheory)
¤
Scattering theory for a weakly scattering object with significant phase shifts. This is based on what is called the Rytov approximation to the underlying wave equation.
This is the simplest model for multiple scattering through the specimen.
Info
Unlike in the weak-phase approximation, it is not possible to absorb a model for amplitude contrast (here via the amplitude contrast ratio) into the CTF. Instead, it is necessary to compute a complex scattering potential, where the imaginary part captures inelastic scattering.
In particular, given a projected electrostatic potential \(u(x, y)\), the complex potential \(\phi(x, y)\) for amplitude contrast ratio \(\alpha\) is
References:
- See Chapter 69, Page 2012, from Hawkes, Peter W., and Erwin Kasper. Principles of Electron Optics, Volume 4: Advanced Wave Optics. Academic Press, 2022.
- See Section 3.4, Page 61, from Spence, John CH. High-resolution electron microscopy. OUP Oxford, 2013.
__init__(volume_integrator: cryojax.simulator.AbstractVolumeIntegrator, transfer_theory: cryojax.simulator.WaveTransferTheory, amplitude_contrast_ratio: cryojax.jax_util.FloatLike = 0.1)
¤
Arguments:
volume_integrator: The method for integrating the scattering potential.transfer_theory: The wave transfer theory.amplitude_contrast_ratio: The amplitude contrast ratio.
compute_exit_wave(volume_representation: cryojax.simulator.AbstractVolumeRepresentation, image_config: cryojax.simulator.AbstractImageConfig, rng_key: PRNGKeyArray | None = None) -> Complex[Array, '{image_config.padded_y_dim} {image_config.padded_x_dim}']
¤
compute_contrast_spectrum(volume_representation: AbstractVolumeRepresentation, image_config: AbstractImageConfig, rng_key: PRNGKeyArray | None = None, defocus_offset: cryojax.jax_util._typing.FloatLike | None = None) -> Complex[Array, '{image_config.padded_y_dim} {image_config.padded_x_dim//2+1}']
¤
Compute the contrast at the detector plane, given the squared wavefunction.