v0.10.0
·
75 commits
to master
since this release
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.pydoes 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
pixelsizein 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.pydetermines software version globally, thusbumpversionis not needed anymore picasso.lib.merge_locsallows for flexibleframeandgroupincrementing when merging localizations lists- New functions in the API
picasso.postprocess.undrift_from_fiducialsandpicasso.postprocess.apply_driftthat 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_rccandalign_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.grouppropsshows no progress by defaultpicasso.io.TiffMultiMapdocstrings corrected- CLI function
nneighboruses 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). AdditionallyPyQt5was updated toPyQt6. picasso.spinna.SPINNA.fitaccepts all inputs as keyword arguments (except forN_structures).- Names of nearly all functions in
picasso.g5mand some inpicasso.zfithave been changed (underscore added to prefix as private functions). The main functions in these scripts were left unchanged:g5m.g5m,zfit.zfit. Functionszfit.fit_zandzfit.fit_z_parallelare deprecated, see below. - Cluster centers (DBSCAN, HDBSCAN, SMLM clusterer) save number of localizations per cluster as
n_locs, notn.
Deprecation warnings:
picasso.lib.unpack_calibrationand thespot_size,z_rangeparameters in the G5M functions.picasso.g5m.g5mnow uses calibration coefficients only for setting sigma constraints in 3D for more accurate results.picasso.clusterer.cluster_center(will be renamed to_cluster_centerand 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_2dandpoint_intersect_3d(will become private functions in v0.11.0)picasso.masking.mask_locsuses metadata rather than now deprecatedwidthandheightparameterspicasso.spinna.MaskGenerator:run_checksparameter (will be removed in v0.11.0)picasso.localize.identifyandpicasso.localize.localizewill return metadata by default in v0.11.0fit_zandfit_z_parallelinpicasso.zfitwill be deprecated in v0.11.0.zfit.zfittakes over as the main function in the scriptpicasso.rendertakes indisp_px_sizerather thanoversampling, see the function;oversamplingwill be removed in v0.11.0picasso.renderfunctions:render_hist,render_gaussian,render_gaussian_iso,render_smoothandrender_convolvewill become private in v0.11.0picasso.gausslq.initial_parameters_gpufitandpicasso.gaussmle.mean_filterwill become private in v0.11.0picasso.localizefunctions:local_maxima,gradient_at,net_gradientwill become private in v0.11.0. Functionsfitandfit_asyncwill be removed entirelypicasso.postprocessfunctions:index_blocks_shape,n_block_locs_at,next_frame_neighbor_distance_histogram,get_link_groupsandlink_loc_groupswill become private in v0.11.0picasso.spinnafunctions:find_target_counts,get_structures_permutation,targets_from_structures
Notes
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.
C:\Picasso\_internal\picasso. Previously under C:\Picasso\picasso.