Skip to content

Releases: DataLab-Platform/DataLab

v0.19.1

08 Apr 10:38
Compare
Choose a tag to compare

See DataLab roadmap page for future and past milestones.

DataLab Version 0.19.1

🛠️ Bug fixes:

  • Pairwise operation mode:
    • Fixed an unexpected behavior when using the pairwise operation mode with functions that take a single second operand (e.g. for images: difference, division, arithmetic operations, and flatfield correction)
    • If only one set of operands was selected in a single group, a warning message was displayed "In pairwise mode, you need to select objects in at least two groups.", which is correct for functions that are symmetric (e.g. addition, multiplication, etc.), but not for functions that are not symmetric (e.g. difference, division, etc.).
    • This is now fixed: the warning message is only displayed for functions that are symmetric (e.g. addition, multiplication, etc.).
    • This closes Issue #157 - Pairwise operation mode: unexpected behavior with functions that take a single second operand
  • Fixed Issue #152 - Ignore nan values for image normalization, flatfield correction, offset correction, and centroid computation
  • Fixed Issue #153 - Ignore nan values for signal normalization and statistics computations (both analysis result and interactive tool)
  • Fixed Issue #158 - When editing ROI of a list of images, the first image of the selection is shown (instead of the last as in the image panel)
  • Fixed Issue #159 - When selecting multiple images just after opening an HDF5 file, the "View in a new window" feature does not work (KeyError exception)
  • Fixed Issue #160 - When selecting multiple images and clearing ROI in ROI editor, only the first image is affected
  • Fixed Issue #161 - Refresh image items only if necessary (when editing ROI, pasting/deleting metadata)
  • Fixed Issue #162 - View in a new window: when displaying multiple images, the item list panel should be visible
  • Fixed Issue #163 - Open from directory: expected one group per folder when loading multiple files
  • Fixed Issue #164 - Open from directory: unsupported files should be ignored when loading files recursively, to avoid warning popup dialog boxes
  • Fixed Issue #165 - When opening a file, the default signal/image title must be set to the file name, instead of the relative path to the file name

v0.19.0

31 Mar 11:32
Compare
Choose a tag to compare

See DataLab roadmap page for future and past milestones.

DataLab Version 0.19.0

💥 New features and enhancements:

  • Image operation features ("Operations" menu):
    • Renamed "Rotation" submenu to "Flip or rotation"
    • New "Flip diagonally" feature
  • Signal processing features ("Processing" menu):
    • New "Convert to Cartesian coordinates" feature
    • New "Convert to polar coordinates" feature
  • Signal analysis features ("Analysis" menu):
    • Renamed "X values at min/max" to "Abscissa of the minimum and maximum"
    • New "Abscissa at y=..." feature
  • New "Open from directory" feature:
    • This feature allows to open multiple files from a directory at once, recursively (only the files with the supported extensions by the current panel are opened)
    • Add "Open from directory" action to the "File" menu for both Signal and Image panels
    • Add support for folders when dropping files in the Signal and Image panels
  • Add 1/x operation to the "Operations" menu for both Signal and Image panels:
    • This feature relies on the numpy.reciprocal function, and handles the case where the denominator is zero by catching warnings and replacing the np.inf values with np.nan values
    • Add compute_inverse method for image and signal processors
    • This closes Issue #143 - New feature: 1/x for signals and images
  • Public API (local or remote):
    • Add add_group method with title and select arguments to create a new group in a data panel (e.g. Signal or Image panel) and eventually select it after creation:
      • Method was added to the following classes: AbstractCDLControl, BaseDataPanel and RemoteClient
      • This closes the following issues:
        • Issue #131 - BaseDataPanel.add_group: add select argument
        • Issue #47 - Remote proxy / Public API: add add_group method
    • AbstractCDLControl.get_object_uuids: add an optional group argument (group ID, title or number) to eventually filter the objects by group (this closes Issue #130)
  • When opening an HDF5 file, the confirmation dialog box asking if current workspace should be cleared has a new possible answer "Ignore":
    • Choosing "Ignore" will prevent the confirmation dialog box from being displayed again, and will choose the current setting (i.e. clear or not the workspace) for all subsequent file openings
    • Added a new "Clear workspace before loading HDF5 file" option in the "Settings" dialog box, to allow the user to change the current setting (i.e. clear or not the workspace) for all subsequent file openings
    • Added a new "Ask before clearing workspace" option in the "Settings" dialog box, to allow the user to disable or re-enable the confirmation dialog box asking if current workspace should be cleared when opening an HDF5 file
    • This closes Issue #146 - Ask before clearing workspace when opening HDF5 file: add "Ignore" option to prevent dialog from being displayed again
  • Object and group title renaming:
    • Removed "Rename group" feature from the "Edit" menu and context menu
    • Added "Rename object" feature to the "Edit" menu and context menu, with F2 shortcut, to rename the title of the selected object or group
    • This closes Issue #148 - Rename signal/image/group title by pressing F2
  • Region of Interest editor:
    • Regrouped the graphical actions (new rectangular ROI, new circular ROI, new polygonal ROI) in a single menu "Graphical ROI"
    • Added new "Coordinate-based ROI" menu to create a ROI using manual input of the coordinates:
      • For signals, the ROI is defined by the start and end coordinates
      • For images:
        • The rectangular ROI is defined by the top-left and bottom-right coordinates
        • The circular ROI is defined by the center and radius coordinates
        • The polygonal ROI is not supported yet
      • This closes Issue #145 - ROI editor: add manual input of the coordinates

🛠️ Bug fixes:

  • Fixed Issue #141 - Image analysis: mask nan values when computing statistics, for example
  • Fixed Issue #144 - Average profile extraction: ValueError when selection rectangle is larger than the image

v0.18.2

17 Mar 08:39
Compare
Choose a tag to compare

See DataLab roadmap page for future and past milestones.

DataLab Version 0.18.2

ℹ️ General information:

  • Python 3.13 is now supported, since the availability of the scikit-image V0.25 (see Issue #104 - Python 3.13: KeyError: 'area_bbox')

💥 Enhancements:

  • Added new "Keep results after computation" option in "Processing" section:
    • Before this change, when applying a processing feature (e.g. a filter, a threshold, etc.) on a signal or an image, the analysis results were removed from the object
    • This new option allows to keep the analysis results after applying a processing feature on a signal or an image. Even if the analysis results are not updated, they might be relevant in some use cases (e.g. when using the 2D peak detection feature on an image, and then applying a filter on the image, or summing two images, etc.)

🛠️ Bug fixes:

  • Fixed Issue #138 - Image colormaps were no longer stored in metadata (and serialized in HDF5 files) since PlotPy v2.6.3 (this commit, specifically: PlotPyStack/PlotPy@a37af8a)
  • Fixed Issue #137 - Arithmetic operations and signal interpolation: dialog box with parameters is not displayed
  • Fixed Issue #136 - When processing a signal or an image, the analysis result is kept from original object
    • Before this fix, when processing a signal or an image (e.g. when applying a filter, a threshold, etc.), the analysis result was kept from the original object, and was not updated with the new data. Thus the analysis result was not meaningful anymore, and was misleading the user.
    • This is now fixed: the analysis result is now removed when processing a signal or an image. However it is not recalculated automatically, because there is no way to know which analysis result should be recalculated (e.g. if the user has applied a filter, should the FWHM be recalculated?) - besides, the current implementation of the analysis features does not allow to recalculate the analysis results automatically when the data is modified. The user has to recalculate the analysis results manually if needed.
  • Fixed Issue #132 - Plot analysis results: "One curve per result title" mode ignores ROIs
    • Before this fix, the "One curve per result title" mode was ignoring ROIs, and was plotting the selected result for all objects (signals or images) without taking into account the ROI defined on the objects
    • This is now fixed: the "One curve per result title" mode now takes into account the ROI defined on the objects, and plots the selected result for each object (signal or image) and for each ROI defined on the object
  • Fixed Issue #128 - Support long object titles in Signal and Image panels
  • Fixed Issue #133 - Remove specific analysis results from metadata clipboard during copy operation
  • Fixed Issue #135 - Allow to edit ROI on multiple signals or images at once
    • Before this fix, the ROI editor was disabled when multiple signals or images were selected
    • This is now fixed: the ROI editor is now enabled when multiple signals or images are selected, and the ROI is applied to all selected signals or images (only the ROI of the first selected signal or image is taken into account)
    • This new behavior is consistent with the ROI extraction feature, which allows to extract the ROI on multiple signals or images at once, based on the ROI defined on the first selected signal or image
  • Image ROI features:
    • Fixed Issue #120 - ROI extraction on multiple images: defined ROI should not be saved in the first selected object. The design choice is to save the defined ROI neither in the first nor in any of the selected objects: the ROI is only used for the extraction, and is not saved in any object
    • Fixed Issue #121 - AttributeError when extracting multiple ROIs on a single image, if more than one image is selected
    • Fixed Issue #122 - Image masks are not refreshed when removing metadata except for the active image
    • Fixed Issue #123 - Image masks are not refreshed when pasting metadata on multiple images, except for the last image
  • Text and CSV files:
    • Enhance text file reading by detecting data headers (using a list of typical headers from scientific instruments) and by allowing to skip the header when reading the file
    • Ignore encoding errors when reading files in both open feature and import wizard, hence allowing to read files with special characters without raising an exception
    • Fixed Issue #124 - Text files: support locale decimal separator (different than .)
  • Signal analysis features: fixed duplicate results when no ROI is defined
  • Fixed Issue #113 - Call to RemoteClient.open_h5_files (and import_h5_file) fails without passing the optional arguments
  • Fixed Issue #116 - KeyError exception when trying to remove a group after opening an HDF5 file

v0.18.1

13 Dec 16:51
Compare
Choose a tag to compare

See DataLab roadmap page for future and past milestones.

DataLab Version 0.18.1

💥 Enhancements:

  • FWHM computation now raises an exception when less than two points are found with zero-crossing method
  • Improved result validation for array-like results by checking the data type of the result

🛠️ Bug fixes:

  • Fixed Issue #106 - Analysis: coordinate shifted results on images with ROIs and shifted origin
  • Fixed Issue #107 - Wrong indices when extracting a profile from an image with a ROI
  • Fixed Issue #111 - Proxy add_object method does not support signal/image metadata (e.g. ROI)
  • Test data plugin / "Create 2D noisy gauss image": fixed amplitude calculation in cdl.tests.data.create_2d_random for non-integer data types

📚 Documentation:

  • Fixed path separators in plugin directory documentation
  • Corrected left and right area descriptions in workspace documentation
  • Updated Google style link in contributing guidelines
  • Fixed various French translations in the documentation

v0.18.0

14 Nov 17:49
Compare
Choose a tag to compare

DataLab is available on all platforms:

ℹ️ General information:

  • PlotPy v2.7 is required for this release.
  • Dropped support for Python 3.8.
  • Python 3.13 is not supported yet, due to the fact that some dependencies are not compatible with this version.

💥 New features and enhancements:

  • New operation mode feature:

    • Added "Operation mode" feature to the "Processing" tab in the "Settings" dialog box
    • This feature allows to choose between "single" and "pairwise" operation modes for all basic operations (addition, subtraction, multiplication, division, etc.):
      • "Single" mode: single operand mode (default mode: the operation is done on each object independently)
      • "Pairwise" mode: pairwise operand mode (the operation is done on each pair of objects)
    • This applies to both signals and images, and to computations taking N inputs
    • Computations taking N inputs are the ones where:
      • N(>=2) objects in give N objects out
      • N(>=1) object(s) + 1 object in give N objects out
  • New ROI (Region Of Interest) features:

    • New polygonal ROI feature
    • Complete redesign of the ROI editor user interfaces, improving ergonomics and consistency with the rest of the application
    • Major internal refactoring of the ROI system to make it more robust (more tests) and easier to maintain
  • Implemented Issue #102 - Launch DataLab using datalab instead of cdl. Note that the cdl command is still available for backward compatibility.

  • Implemented Issue #101 - Configuration: set default image interpolation to anti-aliasing (5 instead of 0 for nearest). This change is motivated by the fact that a performance improvement was made in PlotPy v2.7 on Windows, which allows to use anti-aliasing interpolation by default without a significant performance impact.

  • Implemented Issue #100 - Use the same installer and executable on Windows 7 SP1, 8, 10, 11. Before this change, a specific installer was required for Windows 7 SP1, due to the fact that Python 3.9 and later versions are not supported on this platform. A workaround was implemented to make DataLab work on Windows 7 SP1 with Python 3.9.

🛠️ Bug fixes:

  • Fixed Issue #103 - proxy.add_annotations_from_items: circle shape color seems to be ignored.

v0.17.1

01 Oct 18:27
Compare
Choose a tag to compare

DataLab is available on all platforms:

ℹ️ PlotPy v2.6.2 is required for this release.

💥 New features and enhancements:

  • Image View:
    • Before this release, when selecting a high number of images (e.g. when selecting a group of images), the application was very slow because all the images were displayed in the image view, even if they were all superimposed on the same image
    • The workaround was to enable the "Show first only" option
    • Now, to improve performance, if multiple images are selected, only the last image of the selection is displayed in the image view if this last image has no transparency and if the other images are completely covered by this last image
  • Clarification: action "Show first only" was renamed to "Show first object only", and a new icon was added to the action
  • API: added width and height properties to ImageObj class (returns the width and height of the image in physical units)
  • Windows launcher "start.pyw": writing a log file "datalab_error.log" when an exception occurs at startup

🛠️ Bug fixes:

  • Changing the color theme now correctly updates all DataLab's user interface components without the need to restart the application

ℹ️ Other changes:

  • OpenCV is now an optional dependency:
    • This change is motivated by the fact that the OpenCV conda package is not maintained on Windows (at least), which leads to an error when installing DataLab with conda
    • When OpenCV is not installed, only the "OpenCV blob detection" feature won't work, and a warning message will be displayed when trying to use this feature

v0.17.0

02 Aug 15:42
Compare
Choose a tag to compare

ℹ️ PlotPy v2.6 is required for this release.

💥 New features and enhancements:

  • Menu "Computing" was renamed to "Analysis" for both Signal and Image panels, to better reflect the nature of the features in this menu
  • Regions Of Interest (ROIs) are now taken into account everywhere in the application where it makes sense, and not only for the old "Computing" menu (now "Analysis") features. This closes Issue #93. If a signal or an image has an ROI defined:
    • Operations are done on the ROI only (except if the operation changes the data shape, or the pixel size for images)
    • Processing features are done on the ROI only (if the destination object data type is compatible with the source object data type, which excludes thresholding, for instance)
    • Analysis features are done on the ROI only, like before
  • As a consequence of previous point, and for clarity:
    • The "Edit Regions of interest" and "Remove all Regions of interest" features have been moved from the old "Computing" (now "Analysis") menu to the "Edit" menu where all metadata-related features are located
    • The "Edit Regions of interest" action has been added to both Signal and Image View vertical toolbars (in second position, after the "View in a new window" action)
  • Following the bug fix on image data type conversion issues with basic operations, a new "Arithmetic operation" feature has been added to the "Operations" menu for both Signal and Image panels. This feature allows to perform linear operations on signals and images, with the following operations:
    • Addition: obj3 = (obj1 + obj2) * a + b
    • Subtraction: obj3 = (obj1 - obj2) * a + b
    • Multiplication: obj3 = (obj1 * obj2) * a + b
    • Division: obj3 = (obj1 / obj2) * a + b
  • Improved "View in a new window" and "ROI editor" dialog boxes size management: default size won't be larger than DataLab's main window size
  • ROI editor:
    • Added toolbars for both Signal and Image ROI editors, to allow to zoom in and out, and to reset the zoom level easily
    • Rearranged the buttons in the ROI editor dialog box for better ergonomics and consistency with the Annotations editor ("View in a new window" dialog box)
  • Application color theme:
    • Added support for color theme (auto, light, dark) in the "Settings" dialog box
    • The color theme is applied without restarting the application

🛠️ Bug fixes:

  • Intensity profile / Segment profile extraction:
    • When extracting a profile on an image with a ROI defined, the associated PlotPy feature show a warning message ('UserWarning: Warning: converting a masked element to nan.') but the profile is correctly extracted and displayed, with NaN values where the ROI is not defined.
    • NaN values are now removed from the profile before plotting it
  • Simple processing features with a one-to-on mapping with a Python function (e.g. numpy.absolute, numpy.log10, etc.) and without parameters: fix result object title which was systematically ending with "|" (the character that usually precedes the list of parameters)
  • Butterworth filter: fix cutoff frequency ratio default value and valid range
  • Fix actions refresh issue in Image View vertical toolbar:
    • When starting DataLab with the Signal Panel active, switching to the Image View was showing "View in a new window" or "Edit Regions of interest" actions enabled in the vertical toolbar, even if no image was displayed in the Image View
    • The Image View vertical toolbar is now correctly updated at startup
  • View in a new window: cross section tools (intensity profiles) stayed disabled unless the user selected an image through the item list - this is now fixed
  • Image View: "Show contrast panel" toolbar button was not enabled at startup, and was only enabled when at least one image was displayed in the Image View - it is now always enabled, as expected
  • Image data type conversion:
    • Previously, the data type conversion feature was common to signal and image processing features, i.e. a simple conversion of the data type using NumPy's astype method
    • This was not sufficient for image processing features, in particular for integer images, because even if the result was correct from a numerical point of view, underflow or overflow could be legitimately seen as a bug from a mathematical point of view
    • The image data type conversion feature now relies on the internal clip_astype function, which clips the data to the valid range of the target data type before converting it (in the case of integer images)
  • Image ROI extraction issues:
    • Multiple regressions were introduced in version 0.16.0:
      • Single circular ROI extraction was not working as expected (a rectangular ROI was extracted, with unexpected coordinates)
      • Multiple circular ROI extraction lead to a rectangular ROI extraction
      • Multiple ROI extraction was no longer cropping the image to the overall bounding box of the ROIs
    • These issues are now fixed, and unit tests have been added to prevent regressions:
      • An independent test algorithm has been implemented to check the correctness of the ROI extraction in all cases mentioned above
      • Tests cover both single and multiple ROI extraction, with circular and rectangular ROIs
  • Overflow and underflow issues in some operations on integer images:
    • When processing integer images, some features were causing overflow or underflow issues, leading to unexpected results (correct results from a numerical point of view, but not from a mathematical point of view)
    • This issue only concerned basic operations (addition, subtraction, multiplication, division, and constant operations) - all the other features were already working as expected
    • This is now fixed as result output are now floating point images
    • Unit tests have been added to prevent regressions for all these operations

v0.16.4

09 Jul 08:19
Compare
Choose a tag to compare

DataLab Version 0.16.4

This is a minor maintenance release.

🛠️ Bug fixes:

  • Requires PlotPy v2.4.1 or later to fix the following issues related to the contrast adjustment feature:
    • A regression was introduced in an earlier version of PlotPy: levels histogram was no longer removed from
      contrast adjustment panel when the associated image was removed from the plot
    • This is now fixed: when an image is removed, the histogram is removed as well and
      the contrast panel is refreshed (which was not the case even before the regression)
  • Ignore AssertionError in config_unit_test.py when executing test suite on WSL

📚 Documentation:

  • Fix class reference in Wrap11Func documentation

v0.16.3

04 Jul 06:38
Compare
Choose a tag to compare

See DataLab roadmap page for future and past milestones.

DataLab Version 0.16.3

🛠️ Bug fixes:

  • Fixed Issue #84 - Build issues with V0.16.1: signal name conflict, ...
    • This issue was intended to be fixed in version 0.16.2, but the fix was not complete
    • Thanks to @rolandmas for reporting the issue and for the help in investigating the problem and testing the fix
  • Fixed Issue #85 - Test data paths may be added multiple times to cdl.utils.tests.TST_PATH
    • This issue is related to Issue #84
    • Adding the test data paths multiple times to cdl.utils.tests.TST_PATH was causing the test data to be loaded multiple times, which lead to some tests failing (a simple workaround was added to V0.16.2: this issue is now fixed)
    • Thanks again to @rolandmas for reporting the issue in the context of the Debian packaging
  • Fixed Issue #86 - Average of N integer images overflows data type
  • Fixed Issue #87 - Image average profile extraction: AttributeError when trying to edit profile parameters
  • Fixed Issue #88 - Image segment profile: point coordinates inversion

v0.16.2

01 Jul 16:46
Compare
Choose a tag to compare

See DataLab roadmap page for future and past milestones.

DataLab Version 0.16.2

This release requires PlotPy v2.4.0 or later, which brings the following bug fixes and new features:

  • New constrast adjustment features and bug fixes:

    • New layout: the vertical toolbar (which was constrained in a small area on the
      right side of the panel) is now a horizontal toolbar at the top of the panel,
      beside the title
    • New "Set range" button: allows the user to set manually the minimum and maximum
      values of the histogram range
    • Fixed histogram update issues when no image was currently selected (even if the
      an image was displayed and was selected before)
    • Histogram range was not updated when either the minimum or maximum value was set
      using the "Minimum value" or "Maximum value" buttons (which have been renamed to
      "Min." and "Max." in this release)
    • Histogram range was not updated when the "Set full range" button was clicked, or
      when the LUT range was modified using the "Scales / LUT range" form in "Properties"
      group box
  • Image view context menu: new "Reverse X axis" feature

ℹ️ Minor new features and enhancements:

  • Image file types:
    • Added native support for reading .SPE, .GEL, .NDPI and .REC image files
    • Added support for any imageio-supported file format through configuration file (entry imageio_formats may be customized to complement the default list of supported formats: see documentation for more details)

🛠️ Bug fixes:

  • Image Fourier analysis:

    • Fixed logarithmic scale for the magnitude spectrum (computing dB instead of natural logarithm)
    • Fixed PSD computation with logarithmic scale (computing dB instead of natural logarithm)
    • Updated the documentation to explicitly mention that the logarithmic scale is in dB
  • Fixed Issue #82 - Macros are not renamed in DataLab after exporting them to Python scripts

  • ResultProperties object can now be added to SignalObj or ImageObj metadata even outside a Qt event loop (because the label item is no longer created right away)

  • Progress bar is now automatically closed as expected when an error occurrs during a long operation (e.g. when opening a file)

  • Difference, division, ...: dialog box for the second operand selection was allowing to select a group (only a signal or an image should be selected)

  • When doing an operation which involves an object (signal or image) with higher order number than the current object (e.g. when subtracting an image with an image from a group below the current image), the resulting object's title now correctly refers to the order numbers of the objects involved in the operation (e.g., to continue with the subtraction example mentioned above, the resulting object's title was previously referring to the order number before the insertion of the resulting image)

  • Added support for additional test data folder thanks to the CDL_DATA environment variable (useful for testing purposes, and especially in the context of Debian packaging)