Recent Releases of aspire

aspire - v0.14.0

ASPIRE v0.14.0 is minor release, adding scientific features, bug fixes, and many updates.

This release provides the following features:

  • Fast Polar Fourier Rotational Alignment for 2D class averages
  • IRLS Common Lines Algorithm
  • LUD Common Lines Algorithm
  • MATLAB reproducing legacy downsample flag option
  • MATLAB reproducing legacy normalize_background flag option
  • Load pixel_size from STAR file for RelionSource
  • Add optional pixel_size to initializer CoordinateSource
  • Icosahedral I symmetry
  • Migrate from error to warning on incorrect Volume.rotate dtypes
  • Permit corrupt MRC files in RelionSource and CoordinateSource

Bug fixes:

  • Fix flaky LUD unit test
  • Admit rectangular micrographs in CoordinateSource
  • Fix flakey BOT_align unit test
  • Fix OrientedSource save_mode=single
  • Continuous patching of evolving Numpy2 casting behavior changes
  • Resolve ambiguous dtype in image.downsample

Updates and Cleanup:

  • Remove Numpy2 experimental feature warning
  • Update registry hash for emdb_14621
  • Add scheduled downloader unit test
  • Deduplicate coor_trans and rotation code
  • Use scipy's create_group for SymmetryGroups
  • Migrate finufft and cufinufft to v2.4.0
  • Pipeline demo tutorial updates

Systems/CI Updates:

  • Flake8 updates
  • PyProject packaging updates
  • Ubuntu OS CI platform upgrade
  • Windows CI platform upgrade

- Python
Published by garrettwrong 8 months ago

aspire - v0.13.2

ASPIRE v0.13.2 is a patch release, adding multiple fixes, updates, and new supporting features.

This release provides the following features:

  • legacy_whitening isotropic noise estimator
  • sph_harm updates/optimizations
  • grid and Filter caching
  • Batched (GPU) class average BFR alignment

Bug fixes and cleanup:

  • Large scale image stacking OOM
  • nearest_rotation patch
  • CTFFilter correction
  • SymmetryGroup warnings
  • more dtype cleanup
  • Remove all remaining legacy m_ usage
  • Support mrcs file extension
  • IndexedSource filter mapping

Systems/CI Updates:

  • Numpy 2 support
  • Scipy 1.15 support
  • Remove deprecated cufinufft workaround
  • Migrate gallery loggers toward print
  • CI downloader caching

- Python
Published by garrettwrong 12 months ago

aspire - v0.13.1

ASPIRE v0.13.1 is patch release, adding optimizations, increasing GPU Common Lines acceleration, updating systems/platform and fixing several bugs.

This release provides the following features:

  • CUDA Common Lines Matrix kernel (CLOrient3D)
  • CUDA Estimate Initial Rotations kernel (CLSync3N)
  • CUDA Euler angle to rotation matrix kernel(CLSync3N)
  • Added internal common line class caching
  • Improve default saving overwrite behavior
  • Adds DiracBasis2D and DiracBasis3D

Bug fixes:

  • Whiten/PowerFilter extremal values
  • Estimate shifts validation and patches
  • Simulation amplitude/offset resampling

Systems/CI Updates:

  • Drop Python 3.8, add Python 3.12
  • Improve CI GPU code coverage
  • tox updates and minor linting updates
  • Restore codecov reporting
  • Extend codecov report to include GPU job
  • Windows specific conda environment (workaround MKL 2022 issues)

- Python
Published by garrettwrong over 1 year ago

aspire - v0.13.0

ASPIRE v0.13.0 is minor release, adding new scientific features, GPU basis acceleration, updates and bug fixes.

This release provides the following features:

  • CLSync3N Common Lines algorithm
  • CLSymmetryD2 Common Lines algorithm
  • GPU Acceleration of FFBBasis2D and FLEBasis2D
  • GPU Acceleration of FFBBasis3D
  • Pixel size attributes for Image, Volume, and ImageSource
  • Optimized spherical harmonic computations
  • Adds Sinogram GPU accelerated line projection class

Bug fixes:

  • Reconcile rotation estimation with legacy MATLAB
  • Reconcile shift estimation with legacy MATLAB
  • Fix fuzzy_mask defaults and adds low pixel patch
  • Relion/ASPIRE image offset conventions
  • whiten filter thresholds
  • Remove FINUFFT workarounds for old releases
  • SymmetryGroup pass-through
  • wemd centering patch
  • MeanEstimator defaults
  • Minor 10081 gallery udpates

Testing:

  • Long running workflow speedups (fixture reuse)
  • Reduced batched covar2D test variability
  • Warnings cleanup (Linux 3.8-3.11, M1 3.9)
  • Adds initial tests for common line algorithms with shifts

Systems/CI Updates:

  • Native Apple Silicon support
  • Remove pyshtools dependency
  • Adds OSX ARM CI platform
  • FINUFFT/cuFINUFFT major release updates
  • Update CodeCov Auth

- Python
Published by garrettwrong over 1 year ago

aspire - v0.12.3

ASPIRE v0.12.3 is patch release adding several fixes and updates.

This release provides the following features:

  • Symmetry boosting for MeanEstimator
  • SymmetryGroup parsing
  • MeanEstimator checkpointing
  • Double precision RelionSource
  • Codify default 3D basis for Estimator (FFB3D).

Bug fixes:

  • Update Projection-Backprojection conventions
  • J-Sync index bug
  • Circular import fix
  • CLOrient3D Lazy Eval
  • evaluate_src_filters_on_grid initializer
  • IndexedSource caching

Systems/CI Updates:

  • FFT swap
  • Fix pydantic dependency for ray>2.9
  • Bump OSX runner images
  • Begin updates for Numpy 2 (WIP)
  • sklearn package updates
  • pytest updates
  • Github Actions checkout and setup-python updates
  • Github Actions setup-miniconda updates
  • gemmi release updates
  • CUDA 12 support and extension environment updates
  • finufft 2.2.0 updates
  • cufinufft 2.2.0 updates
  • black style updates
  • scipy updates for 1.14.0

Documentation:

  • Minor documentation updates
  • Progress bars for common lines methods

- Python
Published by garrettwrong over 1 year ago

aspire - v0.12.2

This is a small patch release to update several dependent packages with recent versions.

It includes commits for the following:

  • Enforcing the latest version of gemmi and the associated code change
  • Very minor doc updates
  • Symmetry Boosting in MeanEstimator
  • finufft version updates
  • cufinufft version updates
  • Ability to load RelionSources as double precision
  • MeanEstimator volume coef checkpointing
  • Minor flake/black style updates

- Python
Published by garrettwrong about 2 years ago

aspire - v0.12.1

ASPIRE v0.12.1 is bugfix release, adding a mix of new features and cleanup.

This release provides the following features:

  • Interoperable 2D basis (covar2d, class averaging)
  • Improved Relion interoperability
  • Common Line SDP method
  • Shared 2D Basis tests
  • Common Lines optional fuzzy mask
  • Add Coef class
  • Nearest rotation (SVD) util method
  • FRC and FSC plotting option (disable cutoff)

Bug fixes:

  • Enforce grid conventions
  • FLE expand unit test convergence
  • Sync voting unit test patch
  • Whitening extremal value patch
  • Adds improved image projection tests
  • Adds improved volume rotation tests
  • FBBasis3D NaN values for large resolution
  • {F}PSWF basis float32 patch
  • Extend eval_coords to many volumes
  • Enforce block dtypes on assignment
  • Reduce package import resource util

Systems/CI Updates:

  • Flake8 Style Updates
  • Add public Issue template
  • Docstring cleanup
  • Adds docstring linting util to CI
  • Additional pytest conversions
  • Removes parameterized_class
  • Workaround Ray/pydantic dependency conflict

Documentation:

  • Adds Relion interoperability gallery
  • Adds Weighted spectral volume gallery
  • Update public facing Code of Conduct
  • Add K2 camera note to CTF estimator module
  • Removes deprecated legacy example scripts

- Python
Published by garrettwrong about 2 years ago

aspire - v0.12.0

ASPIRE v0.12.0 is minor release, adding new scientific features, components, and several improvements.

This release provides the following features:

  • MicrographSimulation component
  • MicrographSources with CoordinateSource integration
  • Data Downloader utility (via pooch)
  • WeightedVolumesEstimator for heterogeneous 3D reconstruction
  • TIFF Image loading support
  • Common Lines method for C2 symmetry
  • DiagMatrix operator

Bug fixes:

  • clean_image caching
  • Apple unit test patch (following numpy updates)
  • Rename PolarBasis2D to PolarFT and consistently use compact (real symmetric) representation

Systems/CI Updates:

  • Add Python 3.11, drop Python 3.7
  • Modernize Python packaging via pyproject.toml
  • Warnings cleanup
  • Migrate several tests towards pytest.fixture
  • Modular and pytest.fixture based tests for Common Lines methods
  • Reduce APPLE unit test time
  • Apple M1/M2 arm-64 install documentation
  • cufinufft v1.3 final adoption
  • GRPC dependency updates

- Python
Published by garrettwrong over 2 years ago

aspire - v0.11.1

ASPIRE v0.11.1 is patch release, mainly for minor demo updates.

This release provides the following features:

  • FourierRingCorrelation and FourierShellCorrelation

Bug fixes:

  • Tutorial MRC file download path
  • Reorders FLE indices to aid in compatibility with FB
  • Exposes class indices attributes in more places (after Source slicing)
  • Improved CL logging messages

Systems/CI Updates:

  • Simplifies install instructions

- Python
Published by garrettwrong almost 3 years ago

aspire - v0.11.0

ASPIRE v0.11.0 is minor release, adding several scientific and API changes.

This release provides the following features:

  • Extensible ClassAvgSource framework
  • Ab-initio modeling for Cn symmetry (CLSymmetryCn)
  • FLE Basis (FLEBasis2d)
  • IndexedSource for source slicing and remapping
  • Immutable source API migration
  • Image and Volume API cleanup (return types)
  • asnumpy as immutable views
  • Additional RELION 3.1 STAR file support
  • SNR Estimation and Simulation utilities
  • Improved whiten syntax
  • Immutable Source API

Documentation and Logging:

  • Tutorial Gallery restructuring
  • Lecture Feature Demo updates
  • Class Averaging API documentation and UML
  • Introductory API documentation and UML (gallery)
  • Continued filtering of log messages
  • CTF forward model validation and tutorial

Bug fixes:

  • Redundant Image conversion bug in denoised_src
  • Fixed eval_coords clustering (adjusted Rand score)
  • Negative Image index slicing (wraparound bug)
  • Polar Fourier Row Major cleanup

Systems/CI Updates:

  • conda BLAS accelerated numerical backends (mkl, openblas, accelerate)
  • Relaxed pip version requirements
  • Long running test suite on review-ready
  • CI documentation and gallery build on push
  • Windows CI patches
  • Resolve deprecation warnings (pandas, scipy)
  • Partial removal of parameterized_class
  • black 23.1.0 updates

- Python
Published by garrettwrong almost 3 years ago

aspire - v0.10.1

ASPIRE v0.10.1 is a patch release focused on adding several API improvements, bug fixes, and CI updates.

This release provides the following features:

  • Synthetic volume generators (Legacy and compact Asymmetric, Cn, Dn, T, O)
  • confuse based ASPIRE config
  • Multi dimensional stack axis for Image and Volume
  • Parallel and batched BFR and BFSR alignment
  • Scale colorbar for Image.show utilities
  • Implement and check top level imports (import aspire)
  • Restores ability to use cufinufft via config
  • NoiseAdder framework and updates

Documentation and Logging:

  • User configuration tutorial
  • Dramatically reduced console log spam
  • Replaced some logging with tqdm progress bars
  • Support user/runtime logger and tqdm configuration
  • Updated simulation docstring
  • Docstring formatting
  • Pipeline demo gallery

Bug Fixes and Cleanup:

  • Updates rotation convention to be counter-clockwise
  • Real coefficient rotations
  • Normalize background dtype
  • Fourier Bessel zero finding cleanup
  • im_translate and preprocessing cleanup/deprecation
  • CTFEstimator and voltage_to_wavelength unit fixes
  • CTF starfile output column name
  • Unit test fixes for averagers
  • Pytest parallel processing limits
  • Added missing paramatrized test cases
  • Gaussian 2D and 3D util cleanup
  • Unified transpose and flip for Volume and Image
  • covar2d ells mask bug fix
  • Consistently use recent about_axis() and Volume.load()
  • ImageSource.save() dict return
  • Remove Micrograph and MrcStack in favor of ImageSource
  • Consistent use of fft module
  • Dtype updates (Basis, Simulation, Volume, CLOrient3D, nufft)
  • Filter indices bug fix
  • Migration to Image.Resolution from Image.res (via DeprecationWarning)
  • Workaround for scipy==v0.10.0 2D interpolation
  • importlib resources updates

Systems/CI Updates:

  • GPU CI
  • Daily documentation build testing (develop)
  • CI config and additional logging
  • Disable ray on Azure for OSX and Windows
  • Adds pytest-xdist plugin for developers
  • Support building docs without running gallery
  • Updates for latest scikit-learn release
  • Began migration towards pure pytests
  • tox v4 support
  • Azure OSX 12 updates
  • Github actions v3/v4 updates

- Python
Published by garrettwrong about 3 years ago

aspire - v0.10.0

ASPIRE v0.10.0 is large release adding a wide range of features and fixes.

This release provides the following features:

  • Common Lines Method for C3/C4 Symmetry (CLSymmetryC3C4, experimental)
  • Image Accessor API for ImageSource
  • Parallelized BFSReddyChatterjiAverager2D and ReddyChatterjiAverager2D class averaging image aligners
  • Support Nonsequential ImageSource.images
  • Improved RIRClass2D batching
  • crop_pad_3d
  • Replace 2D Downsample algorithm (includes 1-pixel scaling bugfix)
  • ClassSelector API and RandomClassSelector (now randomized as default)
  • gaussian_* helper functions
  • Filter.sign method
  • Integrate CTF estimator with CoordinateSource

Bug fixes:

  • Improved dtype passthrough
  • Volume.flip default axis change
  • Rectangular micrograph axes
  • Fix crash in BatchedRotCov2D when invoked without CTF details
  • Volume.dtype mismatches and checks

Systems/CI Updates: * Refresh Azure pipeline Ubuntu images * Deprecate Azure OSX 10.15 CI in favor of OSX 11

Cleanup and Documentation Updates:

  • Logical (F)FBBasis3D tests
  • Documentation format cleanup (fixes broken parsing)
  • Top level submodule imports (API improvement)
  • .rots ~> .rotations attribute cleanup
  • 3D Downsampling cleanup
  • Improved Getting Started page
  • Improved Gallery Tutorials and Experiments examples
  • Sphinx language patch
  • Implement lower bound checks for FSPCA components
  • Fourier-Bessel Mixin class (FBBasisMixin)
  • Resolve PIL package deprecations
  • Update ComplexPCA scikit workaround for upstream releases
  • Improve evaluate and evaluate_t API standards
  • Improve Zenodo affiliation integration

- Python
Published by garrettwrong over 3 years ago

aspire - v0.9.2

ASPIRE v0.9.2 is a patch release.

This release adds the following new features:

Bug fixes:

Resolves deprecation warning for PIL. Patches ComplexPCA for newer sklearn. Updates Zenodo references.

- Python
Published by garrettwrong almost 4 years ago

aspire - v0.9.1

ASPIRE v0.9.1 is a patch release.

This release adds the following new features:

  • crop_pad_2d() in aspire.utils.coor_trans

Bug fixes:

  • Some images appeared flipped by 180 degrees in Reddy Chatterji image registration.
  • Basis objects did not stop the user from expanding images that did not match the size of the basis.
  • ArrayImageSource should have integer filter indices.

Code cleanup:

  • Basis objects can be instantiated with an integer instead of a tuple when creating square or cubic bases.
  • More descriptive commenting and docstrings added to Bessel function zero-finding code.
  • Testing for Downsampling and Fourier-Bessel 2D basis that used to depend on hardcoded results and output files now instead test expected mathematical properties.
  • Improvements to the gallery section of the documentation page include grammar fixes, updates to the author page, and a consistent color map for all images in experiment demonstrations.

- Python
Published by chris-langfield almost 4 years ago

aspire - v0.9.0

ASPIRE v0.9.0 is a minor release, adding many scientific features and software improvements.

This release provides the following new features:

  • Adds simulated and experimental abinitio pipeline gallery experiments
  • Adds ImageSource subclasses supporting whole-micrograph/particle-coordinate sources
  • Refactor and add Cn symmetry to Gaussian blob volume generation
  • extract-particles preprocessing
  • Adds Reddy Chetterji based image registration
  • Refactors class averaging towards Averager2D framework
  • Volume .mrc loading and saving functions
  • Adds Volume projection gallery tutorial

Bug fixes:

  • FB3D and FFB3D fixes (norm legendre factorial and quadrature points)
  • cov2d shrinker formula
  • Redundant Whitening for Simulation sources
  • PolarBasis2D default initialization
  • Improve handling empty result sets in APPLE
  • Default cov2d noise estimation
  • cov2d denoising matrix normalization
  • RelionSource with a single image
  • DenoisedImageSource batching
  • CTF estimation CLI output_dir

Code Cleanup:

  • Standardize use of Rotation class
  • PSWF and FPSWF cleanup, minor performance improvements
  • Force finufft signals to be complex
  • Replace CTF estimation log files with STAR
  • Refactor and cleanup grid indexing
  • Remove APPLE settings from site configuration
  • Add APPLE settings as class and command line options
  • Removes orientation estimation settings from site configutation
  • Replace importlib_resources with importlib.resources
  • Deprecates ensure
  • Tutorial gallery updates
  • Updates code contributors
  • Minor logging and documentation improvements

Systems/CI Updates:

  • Roll default Python to 3.7
  • Deprecates Python 3.6
  • Adds Python 3.10
  • Update formatting to Black 22.1.0
  • Roll stable MacOS tests to 10.15 from 10.14

- Python
Published by garrettwrong about 4 years ago

aspire - v0.8.1

ASPIRE v0.8.1 is an early patch release.

This release provides the following features:

  • New Sphinx-Gallery Documentation and Tutorial refresh
  • Aligner classes supporting simple 2D class average alignments
  • Conversion to GEMMI for starfile IO

Bug fixes:

  • Cov2D shrinker formulas
  • Cov2D noise variance estimation
  • Relion Source - mrcs singleton

Systems/CI Updates:

  • Ubuntu 18.04LTS Azure deprecation (now 20.04LTS)
  • Tox updates - py3.{6,7,8}-dev targets
  • Minor setup.py updates

Also beginning with this release ASPIRE-Python releases will begin being tracked by Zenado. A persistent DOI will become published in the next release.

- Python
Published by garrettwrong over 4 years ago

aspire - v0.8.0

ASPIRE v0.8.0 adds the following scientific features:

  • Begin adding Class Averaging Components (experimental)
  • Adaptive Support Radius Calculations
  • Wavelet-based approximate Earth-Mover's Distance (wemd)
  • Irregular (Non Square) Block Diagonal Extensions

Additionally this release includes the following updates:

  • Minor Numpy Updates in preperation for Python 3.9
  • ArrayImageSource should now admit numpy arrays directly
  • Minor README updates
  • Introduce informational Code Coverage reporting to CI (Codecov)
  • Minor PIL Upstream dependency patch
  • Improve corrupt mrc file handling in APPLE.picking
  • ArrayImageSource Patches for use in MeanEstimator

- Python
Published by garrettwrong over 4 years ago

aspire - v0.7.0

This version adds a core backend component for CTF Estimation along with mating CLI entry point which wraps MRC file IO.

Otherwise this is mostly fixes for issues found during development:

  • Bugfix covar2d shrinker and getcwfcoeffs for clean images (noise_var=0)
  • Bugfix Simulation n=1 crashes
  • Move some developer deps to "dev" package extension
  • Demo Notebook corrections and refresh
  • Bugfix in Pandas code supporting Starfile IO
  • Bugfix filter eval points outside interp grid
  • Add parallel test code coverage job to GitHub Actions (Codecov)
  • Add tests for Rotation class

- Python
Published by garrettwrong almost 5 years ago

aspire -

v0.6.3 Mainly consists of small patches and continuous updates for dependent software and CI systems. It also extends the tutorials and notebook based documentation.

  • cufinufft v1.2 Updates
  • Update Example Notebooks and add a more comprehensive demonstration
  • Replace Travis CI with GitHub Actions
  • Migrate GitHub Pages Documentation to GitHub Actions
  • FFB3D/FB3D debugging (order and dtype patches)
  • Remove unused skimage dependency
  • Add aspire cli entry point
  • Fix ImageArraySource and add working tutorial to test suite
  • Minor doc updates
  • Use nufft "many" interface in 3D calls
  • Add isotropic noise estimator
  • Separate save function into save_metedata and save_images
  • Option to load numeric backend modules

- Python
Published by garrettwrong about 5 years ago

aspire - v0.6.2

Minor update to better support pip install for ubuntu 20.04. Additions for preprocessing pipeline example and Rotations class.

- Python
Published by garrettwrong about 5 years ago

aspire - v0.6.1

Minor updates to facilitate publishing package to PyPI.

- Python
Published by garrettwrong about 5 years ago

aspire - v0.6.0

This release covers a large collection of refactoring along with cleanup:

  • Bulk of code converted to Row Major from the initial Column Major port
  • Automated style, import, and linting/pep compliance controls.
  • Restructuring of classes
  • Implementation and use of Image/Volume Classes
  • Improvements to datatype handling and addition of dtype class attributes
  • Now supporting pip installs for multiple Python versions under automated CI testing.
  • Improved logging
  • Deprecated code cleanup
  • Dependency simplification and cleanup

Additionally this release includes some scientific programming feature additions: * Addition of Dirac and Polar basis classes * Include orientation estimation submodule * Unify preprocessing Pipeline * Develop new interface for normal FFT transform using Scipy, Pyfftw and Cupy * Replace old FFT functions with new FFT interface * Integration with next generation of FINUFFT Python package * Integration of cufinufft pip package for CUDA enabled devices.

More details of work can be found in the project board associated with this changeset: https://github.com/ComputationalCryoEM/ASPIRE-Python/projects/2

- Python
Published by garrettwrong over 5 years ago