Changelog#
v1.0.0#
Warning
This release introduces breaking changes. Models trained using older versions of tomoDRGN are not compatible with this release; new models should be trained instead. Models trained using this release of tomoDRGN are not compatible with the older versions of tomoDRGN; the latest tomoDRGN version should be used instead.
Major release! Expanded upstream software compatibility, added documentation and tutorials, new analyses and plots, improved performance, reduced bugs, and more.
New features
Added compatibility with upstream STA software: NextPYP and WarpTools (including metadata formats and float16 images)
Added documentation, including software overview, installation guide, function API, script usage and common next steps / pitfalls, and tutorials
Added end-to-end test suites for toy datasets from different upstream STA software (
tomodrgn/testing/commandtest*.py
)Added a new
tomodrgn analyze_volumes
command to perform analysis of a volume ensemble in real space (complementary to latent space analysis withtomodrgn analyze
)Added a new jupyter notebook template that is streamlined to interactive analysis of (1) dataset-wide property correlations via 2-D scatter plot, and (2) per-tomogram spatially contextualized properties via 3-D scatter plot and optional tomogram overlay
Changes
Simplified installation process, and removed some dependencies
Faster and more flexible star file parsing and dataset loading
Faster and lower memory dataset processing and model training / inference
Standardized and expanded set of static plots generated by
tomodrgn analyze
andtomodrgn analyze_volumes
tomodrgn filter_star
now supports directly passing a list of selected classes and the per-particle class labelstomodrgn subtomo2chimerax
now automatically evaluates the trained tomoDRGN model to produce required volumes for the specified tomogram(s)Refactored the full analysis jupyter notebook template to and renamed to _legacy
Volume generation via model decoding now uses a
models.VolumeGenerator
instance instead of subprocess calls totomodrgn eval_vol
for faster and more robust executionUpdated dependency compatibility (python >= 3.10, pytorch >= 2.3, numpy < 2.0)
Uniform command options and reasonable defaults across different scripts
Consolidated redundant code and removed unused code
Bugfixes
Many! And probably also introduced many bugs at the same time. Please let us know if you come across a potential bug by filing an issue on Github
v0.2.1#
New features
Added
--dose-override
option when loading images to manually specify dose in e-/A2/imageAdded
--starfile-source
option tofilter_star.py
to allow filtering RELION3.1-format star files from RELIONAdded
--write-tiltseries-starfile
option todownsample.py
to write RELION3.0-format star file to downsampled imagesAdded multiple options for pooling tilt images between
train_vae.py
encoder A and encoder B per particleExposed pytorch dataloader options to user in
train_vae.py
,train_nn.py
,eval_images.py
convergence_nn.py
saves FSCs calculated per epoch to pkl fileAdded
--batch-size
toeval_vol.py
calling parallelizedmodels.FTPositionalDecoder.gen_volume_batch
for accelerated volume generationAdded
--vol-path
tosubtomo2chimerax.py
allowing use of consensus reconstruction instead of unique tomodrgn volumesAdded new
quicktest.py
andunittest.py
interfaceAdded
load
method usingconfig.pkl
file to easily createdataset.TiltSeriesMRCData
object
Changes
Faster dataset loading with improved file I/O
Dataset preprocessing refactored to numpy arrays
Decreased memory utilization in
dataset.TiltSeriesMRCData
preprocessingDecreased memory utilization in
starfile.TiltSeriesStarfile
initializationDecreased memory utilization by gaussian positional encoding
Changed default positional encoding to
gaussian
Changed default latent dimensionality to
--zdim 128
train_vae.py
checks for NaN/inf during checkpoint evaluationutils.calc_fsc
allows input volumes to be either paths to .mrc files or direct numpy arraysNew plots in
convergence_vae.py
including all loss types, all-to-all volumetric correlation coefficients among tomodrgn (and optionally ground truth) volumesChanged default
subtomo2chimerax.py
color map to ChimeraX color schemeAdded requirement for pytorch>=1.11
Bugfixes
Fixed syntax of internal calls to
eval_vol.py
Fixed dataset index filtering of pre-filtered datasets
Added assert for convergence scripts that requisite input files exist
Fixed bug where
config.pkl
containing CUDA tensors could not be loaded on cpuFixed bug where precalculated
norm
would be ignored when loading dataset fromconfig.pkl
with--lazy
v0.2.0#
Features
added support for datasets with variable tilts per tomogram (tilt counts/schemes/etc)
new scripts
subtomo2chimerax
andfilter_star
additional features and checks in
tomoDRGN_viz+filt.ipynb
eval_images
supportsz.pkl
output;eval_vol
supportsz.pkl
inputnew tests
unittest.sh
andquicktest.sh
validated compatibility with python 3.7 - 3.10 and pytorch 1.8 - 1.12
Changes
refactored the majority of codebase for explicit internal tomoDRGN compatibility and some performance improvements
updated tomoDRGN install requirements and changed to
pip
-based installation--amp
is now enabled by default and can be disabled with--no-amp
--do-dose-weighting
,--do-tilt-weighting
,--dose-mask
have been renamed to--recon-dose-weight
,--recon-tilt-weight
,--l-dose-mask
, respectivelytomodrgn downsample
now benefits from pytorch-based GPU accelerationupdated training hyperparameter defaults
(many) various bugfixes
v0.1.0#
initial tomoDRGN release