Skip to content

v0.10.0

Choose a tag to compare

@rafalkowalewski1 rafalkowalewski1 released this 19 May 14:35
· 75 commits to master since this release
98b8970

Picasso 0.10.0 is here

Changelog

General updates:

  • Numerous new functions added in the API to simplify the more complicated analyses, for example, picasso.localize.fit2D
  • Installing Picasso as a package has less stringent dependencies and Python version requirements, the exact versions are specified for one-click-installers only
  • Almost all the functions in the GUI scripts (for example, picasso.gui.render.py) not related to GUI were moved to corresponding API scripts such that using Picasso as a Python package allows for easy analysis analogous to what GUI provides. For example, picasso.render.py does not only provide the function to generate a grayscale image of localizations only (like before) but can also be used to paint the same images with a color map as they are rendered (for example, with picks and scale bar)
  • One-click installer uses Python 3.14 (previously 3.10) and updated dependencies, which should improve the performance of some functions
  • Easy access to user settings via any Picasso module
  • Expanded test suite (CI)
  • Picasso automatically checks for updates when launched and notifies the user if a new version is available
  • Render, Localize, Average and Filter allow the user to inspect metadata in the app

Localize

  • GPUfit incorporated into Picasso (picasso.ext.pygpufit)
  • Localize supports .stk file format from MetaMorph (experimental)
  • Abort button to stop asynchronous multiprocessing (for example, during identification)
  • Error box compatible with multiprocessed tasks (clear error message)
  • Save and load identifications
  • Save spots as .tif, .npy, not .hdf5
  • Documentation updated relating to the file menu features, such as loading picks as identifications
  • Fixed reading .ims movies
  • Fixed spot saving
  • Export current view is less pixelated
  • Localization markers (green crosses) in the GUI are not affected by drift correction (only visual improvement)
  • CLI picasso localize <files> allows for MLE fitting in 3D (z-fitting still as per Huang et al, 2008.)

Render

  • Smarter fast rendering, lowering RAM usage almost two-fold
  • Faster ind. loc. precision rendering in 3D
  • Test clustering supports G5M
  • Test clustering saves the channel to which the algorithms are applied
  • Test clustering allows for applying the current parameters to the whole dataset
  • Test clustering tool tips
  • G5M calculates more accurate sigma constraints in 3D
  • Plot localizations profile for rectangular pick
  • Reading .csv files from ThunderSTORM
  • Mask settings dialog allows for zooming and panning
  • More accessible saving/loading of FOVs as .txt files
  • Show NeNA/FRC plot buttons automatically calculate them if not done already
  • Keyboard shortcut for closing all localizations (Ctrl+Shift+Backspace or Ctrl+Shift+Delete)
  • Legend is displayed on black background for better visibility
  • Log-scaling of contrast
  • New image exporting with manually selected rendering options + support for .pdf and .svg formats
  • Optimal scale bar is only set upon user's request
  • Changed the name "Nearest Neighbor Analysis" to "Calculate nearest neighbor distances" for better clarity
  • Faster non-circle picking by smarter indexing
  • Trace shows number of photons in addition to x, y and frame; exports .csv files with three columns (frame, ON/OFF and photons)
  • Manual setting of scale bar switches off automatic scale bar length
  • Apply drift from external file supports dropping the .txt file onto the window
  • Show drift keeps x and y coords to scale (on the second plot)
  • 3D rotation window supports rendering by property
  • More intuitive rotation in 3D instead of simple rotations around xyz axes
  • Animation dialog allows unlimited positions
  • Fixed 3D animation for non-square FOV
  • Fixed distances in NeNA plot (previously plotting multiple times kept increasing the values)
  • Fixed panning in 3D
  • Fixed 3D screenshot metadata
  • Fixed pre-G5M group/max locs checks when applying to all channels
  • Fixed zero-value in rendered images (previously RGB channels were capped between 1 and 255 instead of 0 and 255)
  • Fixed default directory for applying drift from external file
  • Added attribute pixelsize in View for cleaner code

SPINNA

  • Two new fitting methods for fast fitting instead of the brute force search, see documentation
  • User-defined threshold for the binary mask
  • Loading new structures in the Simulate tab without changing targets does not reset the window
  • Fixed .svg saving in the one-click-installer app
  • Fixed issues caused by removing structures in the Structures Tab (Windows)

Filter

  • Support for .csv export (not only hdf5)
  • Apply filtering steps from metadata
  • Filtering range for numerical filtering is inclusive

Average

  • Abort button
  • Improved saved metadata
  • Adjusted default parameters

Other improvements:

  • Only picasso.version.py determines software version globally, thus bumpversion is not needed anymore
  • picasso.lib.merge_locs allows for flexible frame and group incrementing when merging localizations lists
  • New functions in the API picasso.postprocess.undrift_from_fiducials and picasso.postprocess.apply_drift that can be used to undrift localizations based on picked fiducials with or without user-specified picks and to apply the calculated drift to the localizations, respectively
  • New API for alignement of locs, see picasso.postprocess: align_rcc and align_from_picked
  • New function picasso.io.load_picks
  • Adjusted installation instructions in README
  • Badges added to the GitHub repository (PyPI and Python versions, changelog)
  • Dialogs with scroll areas show no margins (e.g., Display settings dialog in Render)
  • Added help buttons to some dialogs/menu bars across the modules that open the corresponding readthedocs pages (the documentation will be further improved in the future)
  • "What's this?" help button removed from all dialogs (Windows) as it previously crashed Picasso
  • Changelog changed from .rst to markdown for GitHub display
  • Removed focus on push buttons in dialogs
  • Improved data typing of numpy arrays
  • Fixed flake8 warnings (code style only)
  • picasso.postprocess.groupprops shows no progress by default
  • picasso.io.TiffMultiMap docstrings corrected
  • CLI function nneighbor uses KDTree for higher speed
  • Picasso: Simulate (multilabel) saves label names as in "Exchange rounds to be simulated" rather than 0, 1, 2, ...
  • Fixed Picasso: ToRaw
  • path.replace() is no longer used to change the extension of the path (safer approach)

Backward incompatible changes:

  • Several new depedencies have been added. If Picasso is installed via PyPI (pip install picassosr) or one-click-installer, no action needs to be taken. Otherwise please install them when updating Picasso to v0.10.0. The dependencies are: tifffile, hdf5plugin (only for Windows to read .ims files). Additionally PyQt5 was updated to PyQt6.
  • picasso.spinna.SPINNA.fit accepts all inputs as keyword arguments (except for N_structures).
  • Names of nearly all functions in picasso.g5m and some in picasso.zfit have been changed (underscore added to prefix as private functions). The main functions in these scripts were left unchanged: g5m.g5m, zfit.zfit. Functions zfit.fit_z and zfit.fit_z_parallel are deprecated, see below.
  • Cluster centers (DBSCAN, HDBSCAN, SMLM clusterer) save number of localizations per cluster as n_locs, not n.

Deprecation warnings:

  • picasso.lib.unpack_calibration and the spot_size, z_range parameters in the G5M functions. picasso.g5m.g5m now uses calibration coefficients only for setting sigma constraints in 3D for more accurate results.
  • picasso.clusterer.cluster_center (will be renamed to _cluster_center and become a private function in v0.11.0)
  • picasso.aim: intersect1d, count_intersections, run_intersections, run_intersections_multithread, get_fft_peak, get_fft_peak_z, point_intersect_2d and point_intersect_3d (will become private functions in v0.11.0)
  • picasso.masking.mask_locs uses metadata rather than now deprecated width and height parameters
  • picasso.spinna.MaskGenerator: run_checks parameter (will be removed in v0.11.0)
  • picasso.localize.identify and picasso.localize.localize will return metadata by default in v0.11.0
  • fit_z and fit_z_parallel in picasso.zfit will be deprecated in v0.11.0. zfit.zfit takes over as the main function in the script
  • picasso.render takes in disp_px_size rather than oversampling, see the function; oversampling will be removed in v0.11.0
  • picasso.render functions: render_hist, render_gaussian, render_gaussian_iso, render_smooth and render_convolve will become private in v0.11.0
  • picasso.gausslq.initial_parameters_gpufit and picasso.gaussmle.mean_filter will become private in v0.11.0
  • picasso.localize functions: local_maxima, gradient_at, net_gradient will become private in v0.11.0. Functions fit and fit_async will be removed entirely
  • picasso.postprocess functions: index_blocks_shape, n_block_locs_at, next_frame_neighbor_distance_histogram, get_link_groups and link_loc_groups will become private in v0.11.0
  • picasso.spinna functions: find_target_counts, get_structures_permutation, targets_from_structures

Notes

⚠️ If installed in Program Files, Render and Localize may not be available for non-administrator users. Therefore, we recommend installing Picasso outside of Program Files. The current default location is C:\Picasso.
⚠️ When using Windows installer, camera config file needs to be moved to C:\Picasso\_internal\picasso. Previously under C:\Picasso\picasso.
⚠️ Windows Safety features and Windows Defender may ask multiple times for permission during the installation and download.
⚠️ If your macOS installer does not open due to potential malware, click on the "?" button and follow the instructions to open Picasso anyway. This needs to be repeated for both the main "picasso" app as well as the individual modules.