v3.3.1: fixes to backprojection and tilt with indices; per tomo star filtering
This is a patch release to address several bugs and issues that have come to our attention:
- adding
--micrograph-files
argument tofilter_star
to create separate output files for each_rlnMicroGraphName
encountered in the file --ind
with--encode-mode=tilt
wasn’t working in the case where all particles had the same number of tilts due todtype=object
patch introduced earlier- fixed by storing particle→tilt index produced by
TiltSeriesData.parse_particle_tilt()
as a list instead of an array; this is more robust in general and all downstream cases are agnostic (see tests below)
- fixed by storing particle→tilt index produced by
backproject_voxel
was producing errors when trying to calculate threshold FSC values due to deprecated code used to parse FSC matrix (#371)- fixed by copying over code already used in
commands/fsc
- fixed by copying over code already used in
train_nn
andtrain_vae
would error out if inputs were not divisible by 8 when using AMP optimization (e.g. #353)- a warning here suffices as AMP optimization is the default and this is frustrating for many users
- better error message when CTF file is missing from
write_star
inputs - better error message when
backproject_voxel
output is not.mrc
- bug in
ET_viz
notebook when--ind
not specified caused by inconsistent definition ofind0
- bug in filtering notebook caused by using
ind=ind_orig
when loading dataset and then trying to filter again (#363) ZeroDivisionError
bugs in all notebooks when using small training datasets- updating template analysis notebooks to use the given
kmeans
value in the copied-over notebook, similarly to out auto-updating of notebook epoch numbers
In addition to making the required fixes, we have expanded and improved our deployment tests to cover these cases and close some gaps in our testing coverage:
- adding a stand-alone test of backprojection under
test_reconstruct
applying both.mrcs
and.star
inputs - more testing of
train_nn
cases with different--amp
,--batch-size
,--poses
values - fixing
check=True
issue inutils.run_command()
that was allowing tests of backprojection to fail silently - new deployment task schedule
- the
main
deployment task has been split intotests
andstyle
for tests of code integrity and code linting respectively - run
tests
andstyle
along withbeta-release
any time a patch version tag[0-9]+\.[0-9]+\.[0-9]+-*
is pushed to any branch to trigger a verified upload to TestPyPI- also run
tests
andstyle
for any push todevelop
branch to allow for testing before beta release
- also run
- update
release
to only run when a stable version tag (^[0-9]+\.[0-9]+\.[0-9]+$
) is pushed tomain
tests
andstyle
run on any push tomain
to allow for testing prior to release
- the
Other changes include:
- applying
tmpdir_factory
to improve thetrain_dir
andAbinitioDir
fixtures used in tests with more robust setup and teardowns - CodeFactor badge and nicer TestPyPI installation command in
README
- dynamic update of plotted point sizes in
cryoDRGN_filtering.ipynb
interactive filtering widget, useful for smaller datasets for which the default is too small for points to be seen - using
plt.close()
afteranalyze
plotting for better memory management