Template Creation
In CryoLike, “Templates” (or a
Templates
object) are stacks of
images, with each image representing the 2D projection of a
base 3D structure or 3D map onto a surface normal to a
particular orientation (“viewing angle”) of the
capture device.
Overview
- CryoLike can convert models in several formats:
PDB files
MRC files
In-memory representations (as Pytorch Tensors or Numpy Arrays)
The Templates object itself is an extension of the
Images object: it consists
of a stack of images. The main difference is that
the Templates requires that
viewing angles be recorded (while Images objects may leave
this field empty, since its meaning is not well-defined in that
context).
Templates Metadata
As described in more detail in the
image settings documentation,
there are some image descriptor
metadata fields that apply only to Templates during the
conversion process. Other than viewing distance,
these are only required or used for converting PDB files.
Interfaces
Users should generate Templates using the
make_templates_from_inputs() wrapper function,
which generates all templates using previously
specified parameters for many PDBs of maps.
For a basic example of generating Templates from PDB files, see the
template generation example.
For complete documentation of the API, see the
API documentation, in particular the
make_templates_from_inputs() function
and the Templates class.
Wrapper function
The make_templates_from_inputs() wrapper function accepts:
a list of inputs
list_of_inputs: each input can be a path to a file (PDB, MRC), or a Numpy array or Torch tensor containing density data already loaded into memory.The path to an image descriptor file (see the image settings documentation for more details)
Whether or not to output plotted samples of the converted Templates (
output_plots)The root output folder
folder_output, which defaults to a directory calledtemplatesin the working directoryWhether to use verbose output
The wrapper function will emit one stack of Templates per input in
the list. Each stack will have a number of images equal to the number
of viewing angles defined in the image descriptor file. Template
stacks will be written to the directory specified by the folder_output
parameter (default ./templates). This directory will be created
if it does not already exist.
Each file will be named following the pattern:
templates_fourier_{name}.pt, where {name} is
for file-based inputs, the name of the source PDB or MRC file (without extension)
for in-memory inputs,
tensor_{i}where{i}is the order of the item in the input list.
If a file by this name already exists–for instance, if the user processed
two files named data.mrc–then a counter will be appended to the
output name.
Additionally, a file named template_file_list.npy will be written
in the output folder documenting the name of every file output by the
run (as a Numpy array of strings).
Example
Given the following list of inputs:
folder1/model.pdbfolder2/model.pdb[a volume represented as a Torch Tensor]
with folder_output set to my_project/templates, the function would write the files:
my_project/templates/templates_fourier_model.ptmy_project/templates/templates_fourier_model_1.ptmy_project/templates/templates_fourier_tensor_2.ptmy_project/templates/template_file_list.npy
If the user has requested that plots be created, they will be placed
in <folder_output>/plots/.
For every output Templates file, the plotter function will write three plots:
templates_fourier_{NAME}.png
templates_phys_{NAME}.png
power_spectrum_{NAME}.png
where {NAME} follows the same pattern as for output files (except that
repeat file names will not generate a counter–in the event of name collisions,
the later plots will overwrite the earlier ones.)
These plots contain images of the first 16 template images in physical and Fourier space, as well as the power spectrum of the Fourier-space representation.
Additional methods
Most users are expected to use the wrapper function described above.
However, the Templates class also exposes some functions that
can generate a stack of templates from a function, as well as the
underlying calls to create templates from physical volumes
or from atom positions.