Scattering factor parameters¤
Modeling the electron scattering amplitudes of individual atoms is an important component of modeling cryo-EM images, as these are typically used to approximate the electrostatic potential. Typically, the scattering factor for each individual atom is numerically approximated with a fixed functional form but varying parameters for different atoms. These parameters are stored in lookup tables in the literature. This documentation provides these lookup tables and utilities for extracting them so that they may be used to compute electrostatic potentials in cryoJAX.
cryojax.constants.extract_scattering_factor_parameters(atom_types: Int[ndarray, 'n_atoms'], scattering_factor_parameter_table: xarray.core.dataset.Dataset | None = None) -> dict[str, Float[ndarray, 'n_atoms n_scattering_factors']]
¤
Gets the parameters for the scattering factor for each atom in
atom_types.
Arguments:
atom_identitites: Array containing the index of the one-hot encoded atom names. By default, Hydrogen is "1", Carbon is "6", Nitrogen is "7", etc.scattering_factor_parameter_table: The table of scattering factors as anxarray.Dataset. By default, this is the tabulation from "Robust Parameterization of Elastic and Absorptive Electron Atomic Scattering Factors" by Peng et al. (1996), given byread_peng_element_scattering_factor_parameter_table.
Returns:
The particular scattering factor parameters stored in
scattering_factor_parameter_table for atom_types.
Peng scattering factor parameters¤
cryojax.constants.PengScatteringFactorParameters
¤
A convenience wrapper for instantiating the scattering factor parameters from Peng et al. (1996).
To access scattering factors \(a_i\) and \(b_i\) given in the citation,
from cryojax.io import read_atoms_from_pdb
from cryojax.constants import PengScatteringFactorParameters
# Load positions of atoms and one-hot encoded atom names
atom_positions, atom_types = read_atoms_from_pdb(...)
parameters = PengScatteringFactorParameters(atom_types)
print(parameters.a, parameters.b) # a_i and b_i
__init__(atomic_numbers: Int[ndarray, 'n_atoms'])
¤
Arguments:
atomic_numbers: The atom types as an integer array.
cryojax.constants.read_peng_scattering_factor_parameter_table() -> xarray.core.dataset.Dataset
¤
Function to load the atomic scattering factor parameter table from "Robust Parameterization of Elastic and Absorptive Electron Atomic Scattering Factors" by Peng et al. (1996).
Returns:
The parameter table for parameters \(\{a_i\}_{i = 1}^5\) and \(\{b_i\}_{i = 1}^5\)
for each atom, described in the above reference. This is stored as an
xarray.Dataset.