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_volumescommand 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 analyzeandtomodrgn analyze_volumestomodrgn filter_starnow supports directly passing a list of selected classes and the per-particle class labelstomodrgn subtomo2chimeraxnow 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.VolumeGeneratorinstance instead of subprocess calls totomodrgn eval_volfor 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-overrideoption when loading images to manually specify dose in e-/A2/imageAdded
--starfile-sourceoption tofilter_star.pyto allow filtering RELION3.1-format star files from RELIONAdded
--write-tiltseries-starfileoption todownsample.pyto write RELION3.0-format star file to downsampled imagesAdded multiple options for pooling tilt images between
train_vae.pyencoder A and encoder B per particleExposed pytorch dataloader options to user in
train_vae.py,train_nn.py,eval_images.pyconvergence_nn.pysaves FSCs calculated per epoch to pkl fileAdded
--batch-sizetoeval_vol.pycalling parallelizedmodels.FTPositionalDecoder.gen_volume_batchfor accelerated volume generationAdded
--vol-pathtosubtomo2chimerax.pyallowing use of consensus reconstruction instead of unique tomodrgn volumesAdded new
quicktest.pyandunittest.pyinterfaceAdded
loadmethod usingconfig.pklfile to easily createdataset.TiltSeriesMRCDataobject
Changes
Faster dataset loading with improved file I/O
Dataset preprocessing refactored to numpy arrays
Decreased memory utilization in
dataset.TiltSeriesMRCDatapreprocessingDecreased memory utilization in
starfile.TiltSeriesStarfileinitializationDecreased memory utilization by gaussian positional encoding
Changed default positional encoding to
gaussianChanged default latent dimensionality to
--zdim 128train_vae.pychecks for NaN/inf during checkpoint evaluationutils.calc_fscallows input volumes to be either paths to .mrc files or direct numpy arraysNew plots in
convergence_vae.pyincluding all loss types, all-to-all volumetric correlation coefficients among tomodrgn (and optionally ground truth) volumesChanged default
subtomo2chimerax.pycolor map to ChimeraX color schemeAdded requirement for pytorch>=1.11
Bugfixes
Fixed syntax of internal calls to
eval_vol.pyFixed dataset index filtering of pre-filtered datasets
Added assert for convergence scripts that requisite input files exist
Fixed bug where
config.pklcontaining CUDA tensors could not be loaded on cpuFixed bug where precalculated
normwould be ignored when loading dataset fromconfig.pklwith--lazy
v0.2.0#
Features
added support for datasets with variable tilts per tomogram (tilt counts/schemes/etc)
new scripts
subtomo2chimeraxandfilter_staradditional features and checks in
tomoDRGN_viz+filt.ipynbeval_imagessupportsz.pkloutput;eval_volsupportsz.pklinputnew tests
unittest.shandquicktest.shvalidated 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--ampis now enabled by default and can be disabled with--no-amp--do-dose-weighting,--do-tilt-weighting,--dose-maskhave been renamed to--recon-dose-weight,--recon-tilt-weight,--l-dose-mask, respectivelytomodrgn downsamplenow benefits from pytorch-based GPU accelerationupdated training hyperparameter defaults
(many) various bugfixes
v0.1.0#
initial tomoDRGN release