Recent Releases of mia

mia - Version 1.7.15

New plugin features - File and series name filters now handle case sensitivity independently. - Mac keyboard shortcuts now also use the command key

New module features - Child and partner object count modules now have the option to have the measurements be fixed at the time they are first calculated, or be live (evaluated when accessed).

Other - General bugfixes

- Java
Published by sjcross 6 months ago

mia - Version 1.7.14

New module features - Numerical object filters (e.g. "Based on measurement") can now output summary and individual measurements with fixed names. This helps with downstream modules that rely on a known measurement name. - Added visual outputs to some modules still missing them. All modules should now give a visual output (unless they don't make sense to).

Other - Copy and paste (as well as equivalent operations) should now work on Mac using the command shortcut

- Java
Published by sjcross 6 months ago

mia - Version 1.7.13

New modules - ScaleObjectSet module uniformly scales an entire object set. This is equivalent to the ScaleStack module. In addition to scaling by a specific factor, object sets can also be scaled to match a fixed size, existing object set size or image size. Scaled objects are stored as children of their respective input objects.

New module features - SingleClassCluster now uses the Elki library for DBSCAN. This is much more performant than the previously-implemented Apache Commons Math version. Since this is a different implementation, results may differ slightly from the previous version. - CalculateNearestNeighbour now assigns object partnerships between nearest neighbours

Other - Fixed DeepImageJ and SAMJ dependency issues preventing GitHub Action from completing successfully. - General bugfixes

- Java
Published by sjcross 6 months ago

mia - Version 1.7.12

New module features - SetLookupTable can now accept RGB values to construct a new LUT

Other - Bugfix for CreateSkeleton when exporting loops with multithreading enabled

- Java
Published by sjcross 7 months ago

mia - Version 1.7.11

New modules - FitCircles uses ImageJ's built-in circle fitter to fit circles to 2D (or 3D projected) objects and add centroid and radius measurements to selected objects.

New module features - ManuallyIdentifyObjects can now display selected objects on all slices and/or frames. - Better memory handling for SAMJ modules.

Other - General bugfixes.

- Java
Published by sjcross 8 months ago

mia - Version 1.7.10

New plugin features - Overlays generated by MIA modules can be toggled on/off with F12 keyboard shortcut.

New modules - UnwarpCentroids module uses sets of tracked object centroid coordinates to apply B-spline unwarping.

New module features - Updated ApplyCellpose to work with the most recent version of PTBIOP wrapper. This also allows the latest Cellpose models (e.g. cpsam) to be used. PTBIOP can be installed directly from the ImageJ Updater again. - ROIs can be selected in ManuallyIdentifyObjects by double-clicking on image - ApplySegmentAnything now also accepts ROIs (not just point centroids) as inputs. When a ROI is provided, the full region is sent to Segment Anything. - FocusStackLocal now ensures applied height map is within range of input stack.

Other - Exported Excel files now record memory status of computer to help identify problems. - Fixed environment installation in SAMJ modules. - Updated variable names in Elastix modules to match latest versions of PTBIOP. - General bugfixes.

- Java
Published by sjcross 8 months ago

mia - Version 1.7.9

New module features - ManuallyIdentifyObjects can now remove regions from existing objects in an equivalent way to how they're added. With this, the interface of ManuallyIdentifyObjects has slightly changed.

- Java
Published by sjcross 11 months ago

mia - Version 1.7.8

New plugin features - File browser is larger by default

Other - General bugfixes

- Java
Published by sjcross 11 months ago

mia - Version 1.7.7

New module features - CellposeDetection can now process 3D timepoints individually and reports current progress in MIA status bar

Other - Changed function visibility in RunScript - General bugfixes

- Java
Published by sjcross 11 months ago

mia - Version 1.7.6

New module features - Classes can be automatically assigned in ManuallyIdentifyObjects - ApplyDeepImageJ can convert images to RGB before processing

Other - Fixed rendering of points in ManuallyIdentifyObjects - General bug fixes.

- Java
Published by sjcross 11 months ago

mia - Version 1.7.5

New modules - LineHoughDetection will identify lines in images. This works in a similar way to other Hough-based detectors in MIA in that detection can be either the N strongest features or all features above a specific score.

New module features - Improved memory handling for SegmentAnything-based modules (ManuallyIdentifyObjects and ApplySegmentAnything). - MetadataExtractor can now operate on fixed strings (not just filenames, filepaths, etc.).

Other - General bug fixes.

- Java
Published by sjcross 12 months ago

mia - Version 1.7.4

New modules - CreateClassImage creates an image for multiple object sets, where all pixels within an object set have a user-defined index. This way, class images for deep learning training can be easily generated. For example, all nuclei pixels can be assigned a value of "1", all cytoplasmic pixels a value of "2" and so on. The most recently added pixels are written onto the image, irrespective of what's already there, so object overlap can be handled by selecting the dominant objects last in the list. - CreateObjectGrid will generate a dense array of objects in 2D that fill an image region. The area of each cell in the grid can be specified. This is useful for modules such as ApplySegmentAnything, where the centroids of this grid can be used as inputs.

New module features - In AddTracks, track rendering with a limited history (i.e. only showing most recent 10 frames) can fade out. - The maximum output object area can now be defined in ApplySegmentAnything. This prevents excessively large objects being detected, which can take a long time for large image areas.

Other - Numeric parameters no longer require any value. This means the value can be removed prior to insertion of dynamically-generated fields. - General bug fixes.

- Java
Published by sjcross 12 months ago

mia - Version 1.7.3

New module features - ManuallyIdentifyObjects now supports keyboard shortcuts for primary operations (add new objects, remove objects, etc.). These are listed next to each button.

Other - Bugfix for saving image stacks

- Java
Published by sjcross about 1 year ago

mia - Version 1.7.2

Other - Added dependency to ApplySegmentAnything so MIA won't crash if SAMJ isn't present

- Java
Published by sjcross about 1 year ago

mia - Version 1.7.1

New modules - ApplySegmentAnything creates objects using Meta's Segment Anything and the SAMJ plugin. This takes centroids of specified input objects as the point locations for segmenting objects. - MeasureDistancesToNeightbours calculates the mean, min, max and standard deviation distances to N neighbouring objects in either the same object class or another class. These can be limited at a maximum distance.

New module features - ImageSaver can now export images as file sequences. This includes the option to break hyperstacks down by each dimension, or keep some combined. Filename indices can be either single valued (e.g. 0001) or dimension based (e.g. _C0001Z0002_T0001) - ApplyDeepImageJModel can now process models that output single image classifications (rather than just pixel classification). In these cases, classifications and probabilities of being in that class are added as measurements to the relevant input image. - Updated MeasureObjectCurvature to offer optional calculation in 3D. When in 3D only absolute curvature values are exported. - ManuallyIdentifyObjects will show all selected objects as overlays, rather than just most recently selected object.

Other - Updated SAMJ (Segment Anything) integration for ManuallyIdentifyObjects to be compatible with latest version of SAMJ. - More errors and warnings will now be written to Excel log sheet - "About" documentation page will now show version of current MIA. - General bugfixes

- Java
Published by sjcross about 1 year ago

mia - Version 1.7.0

New modules - TileStack module converts a large image into a tiled stack. This also works for hyperstacks and be set to place tiles along either of the C,Z or T axes, even if these axes already have dimensions larger than 1. Includes optional tile overlap. - StitchTiles module will reverse tiling created using above module. Applies linear interpolation between tiles when overlap is specified. These two modules are useful when dealing with large images in DeepImageJ for example.

New module features - Updated ObjectMeasurementCalculator to include the same options as ImageMeasurementCalculator. These modules now use a common abstract module from which they inherit much of their functionality. - SetLookupTable can now also apply any LUTs available to ImageJ. Added the option to invert a LUT prior to applying it. - ShowImage has additional composite display modes (invert, max and min), which can be used to display inverted (on a white background) LUTs without generating a totally white image.

Other - Moved "Measurement" class to a slightly different location. - General bugfixes

- Java
Published by sjcross about 1 year ago

mia - Version 1.6.12

Other - Bugfixes for ManuallyIdentifyObjects

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.11

Other - Bugfix for batch mode file loading

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.10

New module features - Segment Anything implementation in ManuallyIdentifyObjects no longer allows encodings to be stored and retrieved as this used too much memory. Instead, when running in batch mode, the next image can be preinitialised, so it will load almost instantly when run properly. This requires running the workflow up to the ManuallyIdentifyObjects module in the background for the next image, so any modules displaying images will cause those images to appear. - SetLookupTable now allows LUTs to be set based on the emitted wavelength. This uses the CIE colour matching algorithm.

Other - Memory logging records elapsed time for each module as well as the full analysis run. - General bug fixes

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.9

New plugin features - When running in batch mode, files should execute in folder order (that is, alphabetically per folder).

New module features - ManuallyIdentifyObjects can now implement extensions. These extensions can run code prior to the image being displayed and can add elements to the object selector control window. - Added support for Meta's "Segment Anything" network via SAMJ. With this, models can be automatically installed and used when running ManuallyIdentifyObjects. Selecting a region of the image will extract the corresponding object ROI using Segment Anything.

  • ManuallyIdentifyObjects gains the ability to automatically add regions to the object list when they're selected. This removes the need to continually click "Add as new object". Similarly, it can be set to add objects automatically to the existing object specified by its ID number.

Other - General bug fixes

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.8

Other - Bugfix for object interpolation when using ManuallyDetectObjects

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.7

New module features - "Manually detect objects" now has an additional tool which allows the user to select any unlabelled regions within a selected ROI. To do this, the user must first select a region (as a ROI), then go to "Tools > Select unlabelled space in region". Any unlabelled pixels in that space will be selected in a new ROI, which can be added as a new object.

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.6

New module features - Running "MIA (headless)" while the macro recorder is enabled should now output the correct command. Note: the recorder will also capture a run command without parameters, which still needs to be ignored. - Modules using object edges ("Create distance bands", "Relate many to one", "Relate many to many" and "Relate objects") can now ignore edges coincident with the image edge. When this setting is enabled, only surfaces within the image region will be considered.

Other - Bugfixes related to modules that expand objects. Previously objects expanding beyond the image edge would offset the output objects. - Other general bugfixes.

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.5

New plugin features - "MIA Headless" can now be run from an ImageJ macro without displaying any GUI elements. The parameters can be recorded using the ImageJ macro recorder. This functionality is still in development, so all parameters must be specified. Future development will aim to only require non-default values to be specified. When no "variables" are present, variables=\"\" must be included in the macro arguments (this isn't automatically added by the macro recorder).

New modules - "Z interpolator" module can be used to reduce the spacing between Z-slices for objects. Coordinates for the added slices are generated using ImageJ's binary interpolation functionality. This works best for larger objects, with minimal shape change between slices.

Other - Bugfixes for "Create distance bands", "Duplicate objects" and "Grow objects". - Other general bugfixes.

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.4

New modules - "Adopt parent metadata" allows objects to add a new metadata item that mirrors that of a parent object. This is equivalent to the existing "Adopt parent measurement" module. - "Duplicate objects" creates an exact replica of all objects in a collection. It can optionally also duplicate measurements, relationships and metadata associated with each object. - "Resolve object overlap" removes overlapping object regions. The division between overlapping objects is set half way between the non-overlapping object edges.

New module features - "Extract object edges" now allows users to specify weighting mode for distance transform. - "Grow objects" can now update the input object as well as create totally new (child) objects. - "Manually identify objects" has updated overlay rendering options. Overlays can be either semi-transparent "fills" or outlines. They can also be coloured according to ID number, assigned class (if present) or single colours. This module also gains an option to select contiguous regions of an image without any existing objects (accessed via new "Tools" menu from object selection window).

Other - Improved memory handling for ImgLib2 images - General bugfixes

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.3

New plugin features - Optimised when analysis tester (determines which modules can run) executes. This should now run less often, resulting in better plugin performance, especially with workflows containing large numbers of modules.

New modules - "Save overlay as ROIs" creates a zipped ROI file containing all overlay items as ImageJ ROIs. This allows overlays to be saved and distributed without requiring the underlying image to be saved.

New module features - "Adopt parent measurement", "Calculate statistics for children" and "Calculate statistics for partners" now allow multiple measurements to be selected within a single module instance. All measurements listed in a single module will have the same statistics (e.g. mean, minimum, etc.) applied. Also changed output measurement names to remove " in favour of [ and ]. - "Apply Weka object classification" now retains an instance of the classifier and only updates it when the classifier file path changes. - Added minimum feet diameter to "Measure object shape". - "Convert objects to image" can now use object metadata to colour objects.

Other - Fixed lost module references when copying, pasting and performing undo/redo operations. - General bugfixes

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.2

New plugin features - Workflows can be loaded directly from XLSX files that have previously been exported by MIA. These spreadsheets must retain the original "Configuration" sheet containing the "WORKFLOW CONFIGURATION (XML)" section. - Module status updates are now shorter, so should fit more reliably into available space.

New modules - "Create bounding boxes" creates a solid box around each object (up to the spatial limits in each direction) and assigns it as a child of the original object. - "Export VOC annotations" creates Pascal VOC formal XML files for specified objects. Currently supports bounding boxes and object classes. These annotation files can be used for training deep learning models. - "Filter with/without metadata" filters objects based on whether they have a specified metadata item associated with them. This is analogous to modules such as "Filter with/without measurement".

New module features - "Manually identify objects" now has the option to assign classes to each object. These are specified as metadata items associated with those objects. For this, a new object classification window appears that displays all known classes as well as shorter lists for classes present in the image and also those recently used. Lists can be narrowed down using a class name search. New classes can be added. Class lists can be created from scratch or loaded from CSV files. - "Manually identify objects" can also load pre-detected objects from another object collection. For example, these could be previously-detected objects that could be deleted, updated or assigned a new class. - "Save objects as ROIs" can now optionally also save applied object classes. - "Load objects from ROIs" can likewise load object classes where present in the input ROI files.

Other - "Combine object sets" will now associate measurements, metadata and relationships with new objects created during merging. - "Create distance bands" should be significantly faster when processing bands with a relatively small maximum distance (i.e. bands that only cover a small portion of the image). - Other general bugfixes

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.1

New modules - "Plot track motility" module creates motility plots for tracks. These can either be rendered onto the same axes or created as one plot per axis (output as a stack of images). As with other plotting modules, these are output to the workspace as images. Each plot can be colour-coded according to the usual range of measurements and values. - "Kalman tracking" module runs TrackMate's Kalman filter-based tracking. This performs best on objects moving in a near-linear manner. This module can handle track splitting and merging. When splitting and merging are enabled, tracks will be broken down into segments, which are regions of the track that contain no splits and merges. These track segment objects are children of the main track objects and are themselves parents to the indivudal timepoint objects. As such, they are inserted between the normal tracks and objects in "standard" tracks. Splitting and merging can be disabled. - "Overlap tracking 3D" facilitates tracking based on 3D overlap of objects. As with the Kalman tracking module, it can handle track splitting and merging.

New module features - The "Add tracks" overlay module can handle tracks with splitting and merging by selecting either the top-level track parent or the track segment parent.

Other - Other general bug fixes and optimisations.

- Java
Published by sjcross over 1 year ago

mia - Version 1.6.0

New plugin features - Insert dynamic parameters from the plugin GUI. Dynamic parameters, introduced in v1.1.0, are references to image and object measurements or metadata values that can be used in place of normal parameters. These values are evaluated at the time of use, so for example, an intensity threshold could be set as an image measurement (e.g. median image intensity) rather than needing to be fixed in advance. References to these dynamic parameters can now be added by right-clicking on the parameter name and selecting "Insert dynamic value".

  • References to global variables can now also be added from the plugin GUI using the same method as described above.
  • Convert buttons, tickboxes and drop-downs to text inputs. All parameter types can now be converted to accept plain text inputs by right-clicking their names. This allows global variables and dynamic parameters to be used for any parameter.
  • Text metadata can now be associated with each object. These text metadata items are assigned by modules in a similar way to measurements and can be used in operations such as object filtering and as overlay text labels.

New modules - Added ObjectSlicesTo3D module, which allows objects detected in individual slices to be combined into full 3D objects. Examples where this could be used are objects output by CellposeDetection and StarDistDetection. - Added FilterByMetadata module, which allows object metadata items to be used to filter objects.

New module features - ApplyWekaObjectClassification now adds an object metadata item reporting the assigned class. - AddLabels can add object metadata items as an overlay. - ImageCalculator can now perform pixel-wise comparative tests (e.g. equal to, greater than, etc.) to images.

Other - Other general bug fixes and optimisations.

- Java
Published by sjcross over 1 year ago

mia - Version 1.5.2

  • Added ability to measure location of brightest pixel in an image via MeasureObjectIntensity module.
  • Enabled multithreading in Elastix image registration module
  • Updated ConcatenateStacks2 to allow ImgLib2 images to be combined without duplication. This action removes the input images from the workspace. ConcatenateStacks2 module can be accessed by enabling deprecated modules via Edit > Preferences.
  • General bug fixes and performance improvements

- Java
Published by sjcross almost 2 years ago

mia - Version 1.5.1

  • Changing any parameters in InputControl will now automatically cause the test file to be updated when clicking a module evaluation button (arrow to right of module name in "Editing mode"
  • Bugfix for LostAndFoundItem items not being found. This should allow older workflows to be more reliably loaded again.

- Java
Published by sjcross about 2 years ago

mia - Version 1.5.0

  • Moved from a single Maven artefact to multiple modules. These can be used to import only the relevant parts of MIA into another project. At the lowest level, there are coordinate handling and algorithm artefacts. Above these is the mia-core artefact, which defines most of MIA's functionality. Then, above these are artefacts dealing with MIA modules and macros. Finally, modules that require additional ImageJ update sites to be enabled are placed in their own artefacts (e.g. mia-deepimagej).
  • Added modules implementing the PTBIOP wrappers for Cellpose and Elastix. These are in the Maven artefact mia-ptbiop and will only appear when the PTBIOP update site is enabled.
  • General bugfixes and improvements.

- Java
Published by sjcross about 2 years ago

mia - Version 1.4.9

  • Added "AdoptParentMeasurement" module, which allows children to copy a measurement from a parent object. This can be used in cases where a "Parent measurement" option has not been implemented (e.g. in the AddTracks module, where instantaneous colours based on a parent measurement are explicitly implemented).
  • Added ability to use position measurements in AddTracks and MeasureTrackMotion modules rather than positions based on integer coordinates.

- Java
Published by sjcross about 2 years ago

mia - Version 1.4.8

  • Bugfixes for MeasureRelativeOrientation, FilterByMeasurementExtremes and CreateDistanceBands

- Java
Published by sjcross about 2 years ago

mia - Version 1.4.7

  • Bugfix for getting ROIs of single slice objects. In rare cases, this was causing modules such as SaveObjectsAsROIs to fail.

- Java
Published by sjcross over 2 years ago

mia - Version 1.4.6

  • Updated DistanceBands module to CreateDistanceBands. This now runs from objects and allows surfaces, centroids and parent object centroids to be used to generate distance bands. Distance bands should now be confined to a single object, so distances won't be affected by adjacent objects.

- Java
Published by sjcross over 2 years ago

mia - Version 1.4.5

  • RelateManyToOne module now has option to display labelled images for parent objects and children (matching colours)
  • DistanceBands module can now generate bands from objects as well as images. Bands can also now be related to parent objects based on spatial overlap.

- Java
Published by sjcross over 2 years ago

mia - Version 1.4.4

  • Added "live" modules for real-time selection of manual intensity thresholds and measurement-based filter thresholds. When executed, these display summary images and a control box in which the relevant parameter can be adjusted.
  • Added module to plot object measurements over time for tracks. The generated plots are added to the workspace as an image stack (one slice per track).
  • RunScript now allows hard-coded import redirection for classes which are no longer in their original packages.
  • Bugfix for ROI extraction for 3D objects.

- Java
Published by sjcross over 2 years ago

mia - Version 1.4.3

  • Added histogram export to intensity orientation modules
  • Bugfix for temporal interpolation in ManuallyIdentifyObjects

- Java
Published by sjcross over 2 years ago

mia - Version 1.4.2

  • Added MeasureImageIntensityOrientation and MeasureObjectIntensityOrientation modules, which use Directionality_ plugin to measure directionality of signal within an image or region.
  • Added CreateWholeSliceObjects, which creates a unique object for each timepoint (and optionally, slice) of an image stack. This allows whole-image measurements to be quickly calculated for different timepoints and slices. Objects automatically store timepoint and slice measurements.
  • Renamed MeasureSkeleton to CreateSkeleton. This module can now create a skeleton from a binary image without the need to create an input object first.
  • Volume class now calculates ROIs for slices using a tightly-cropped region, rather than the full image. This greatly improves performance, especially for larger images.
  • Added IL2Support parameter to Module abstract object, which will be used to report which modules support ImgLib2. This has values of None, Partial or Full.
  • Various other bugfixes

- Java
Published by sjcross over 2 years ago

mia - Version 1.4.1

  • Skipped release due to improperly formed .jar on Maven Central

- Java
Published by sjcross over 2 years ago

mia - Version 1.4.0

  • Adds version numbers to each module (currently set to 1.0.0)
  • Module version checking will currently warn if module versions differ between workflows and the plugin and will estimate the severity of the effect on results
  • Renamed "Difference of Gaussian 2D" filter to "LoG 2D (approximation)" and added new "DoG 2D" filter.
  • Removed unneeded RNG from random lookup tables
  • Removed docs (now hosted at misanalysis/mianalysis.github.io)

- Java
Published by sjcross over 2 years ago

mia - Version 1.3.0

  • Integrates the previously-separate sjcommon library into MIA and removes this as a dependency+
  • Minor documentation revisions

- Java
Published by sjcross over 2 years ago

mia - Version 1.2.10

  • Added Javadoc comments to modules and module parameters
  • Added guide for running MIA in headless mode on Mac
  • Added ability to manually add modules to list of available modules. This is useful when developing new modules (can add new module from main method when running from IDE).
  • Updated README.md with information about contributing
  • Fixed broken links in documentation.

- Java
Published by sjcross over 2 years ago

mia - Version 1.2.9

  • Moved documentation to separate mianalysis.github.io repository. This will automatically compile after each release using GitHub Actions.
  • Modified usage of SubHyperStackMaker to account for different operation in latest version of ImageJ.
  • Modified test images for 16 bit intensity inversion to match current ImageJ default behaviour.

- Java
Published by sjcross over 2 years ago

mia - Version 1.2.8

  • RelateOneToOne now has the option to only consider linking objects in the same timepoint.
  • Use of BioFormats' Memoizer is now optional (controlled via Edit > Preferences) and included check for Kryo dependency. If Kryo isn't version 5.4.0 or higher, Memoizer will be automatically disabled as it would fail to run otherwise.
  • Added module dependency for ApplyDeepImageJModel, specifying for now that DeepImageJ needs to be version 2.1.15 or lower. Integration with DeepImageJ version 3 and above will be added in the coming weeks (targeted for end of August 2023).
  • Updated README.md to include details of preprint and poster

- Java
Published by sjcross over 2 years ago

mia - Version 1.2.7

  • ExtractObjectEdges now accepts object and parent object measurements as metrics for the edge width
  • FilterMeasurementsByExtremes can now retain/remove N objects with the largest/smallest measurements, rather than a single object
  • Added ClearOverlay module to remove any overlay components from an image
  • Added MIA_RunWorkflow macro to run a workflow directly from an ImageJ macro without the need for MIA to be open
  • Other general bug fixes

- Java
Published by sjcross almost 3 years ago

mia - Version 1.2.6

  • Added "Random (vibrant)" colormap for overlays
  • Bugfix for splash screen on MacOS
  • Other general bugfixes

- Java
Published by sjcross almost 3 years ago

mia - Version 1.2.5

  • AddLabels can now use positions from object measurements
  • Added MorphoLibJ's surface area and sphericity measurements to output of MeasureObjectShape
  • Added measurement outputs to RealteOneToOne
  • Updated XLSX exporter dependencies so errors and warning shouldn't occur

- Java
Published by sjcross almost 3 years ago

mia - Version 1.2.4

  • Image registration modules now work with images of different resolutions. Both images are padded to the maximum width/height of either image.

- Java
Published by sjcross almost 3 years ago

mia - Version 1.2.3

  • Added bit depth as a measurement for MeasureImageDimensions
  • Overlays in ManuallyIdentifyObjects now only appear in their Z-slice
  • Added option to MaskObjects to remove objects left with no volume following masking
  • Added alternative thresholding option to RelateManyToMany to allow linking as long as one object has a minimum overlap.

- Java
Published by sjcross about 3 years ago

mia - Version 1.2.2

  • Added in ellipsoid fitting using a couple of BoneJ functions
  • Added variable patch size for ApplyDeepImageJ
  • General optimisations and bug fixes

- Java
Published by sjcross about 3 years ago

mia - Version 1.2.1

  • Added ApplyDeepImageJModel module, which runs any DeepImageJ currently installed in Fiji on a provided image (requires DeepImageJ update site to be enabled).
  • Added DistanceBands module, which creates concentric band objects around objects in a binarised image
  • Added GrowObjects module, which simplifies the application of segmenting cells and cytoplasm. This can perform distance- or intensity-based watershed segmentation of a region from provided marker objects. The output objects are automatically related to their marker object.
  • Added more automated tests, primarily for image processing modules.
  • SaveObjectsAsROIs now includes additional options for saving objects as individual ROI files or on a per-slice basis.
  • Generalised image rendering for improved compatibility with other projects that use MIA as a library.
  • General bug fixes and improvements.
  • Updated publications on https://mianalysis.github.io/mia/publications site

DeepImageJ model) Example image generated using DeepImageJ integration (model is Neuron Segmentation in EM (Membrane Prediction) by Constantin Pape)

- Java
Published by sjcross about 3 years ago

mia - Version 1.2.0

  • Added headless mode to allow workflows to be run without the need for opening a graphical instance of Fiji. This enables running MIA on terminal-only systems such as compute clusters. For more information see the guide at https://mianalysis.github.io/mia/guides/runningheadless.html
  • The "MIA (headless)" menu option can also be used to run existing workflows with a minimal graphical interface and provides a method for launching workflows from ImageJ macros
  • Added modules to load and save objects to ImageJ .roi and .zip (zipped ROI) files
  • Included StarDistDetection module from mia-deeplearning repository. This module will only appear if StarDist update site is enabled
  • Projection axis cannow be specified in ProjectImage. This module also switched to primarily using ImgLib2. ProjectImage also outputs average projections as 32-bit
  • Updated handling of modules with incompatible dependencies. Now such modules aren't flagged at launch of MIA; instead, inactive modules are listed in both "Unavailable modules" section of "Add module" menu and via "Help > Unavailable modules" menu. Missing modules are still flagged when loading workflows that call for them
  • Minor website formatting updates and removal of "html" from URLs
  • Added many "MethodSource" tests for image processing modules. These are needed in the transition of these modules to ImgLib2
  • General bugfixes

- Java
Published by sjcross over 3 years ago

mia - Version 1.1.1

  • Added modules to measure Gini coefficient on whole images (or masked images) and on an object-by-object basis. The Gini coefficient measures the inequality between pixel intensities.
  • Added CI{} and CD{} calculation expressions, which output results in integer and double precision formats, respectively. The existing C{} version still exists and will output as a double.
  • Added Preference option to specify time elapsed before image loader will generate a BFMEMO file (default 3 seconds)

- Java
Published by sjcross over 3 years ago

mia - Version 1.1.0

  • Introduces variable parameters. Numeric and text parameters can be injected with expressions that will be evaluated at runtime. With these, it's possible to use values in the workspace as parameters. Currently, the following expressions are supported:

    Type | Expression | Example ---- | ----------- | -------- Metadata | Me{[metadata name]} | Me{Filepath} Image measurements | Im{[image name|measurement name]} | Im{RedChannel|DIMENSIONS // WIDTH} Object measurement statistics | Os{[objects name|measurement name|statistic]} | Os{Nuclei|SHAPE // N_VOXELS|MEAN} Object counts | Oc{[objects name]} | Oc{Nuclei}

  • Added ability to save and load selections while running ManuallyIdentifyObjects. This should help prevent against total loss of manually-selected regions. Selections are saved to ImageJ ROI .zip file by going to File > Save objects and can be loaded back in by going to File > Load objects.

  • Second image in ImageCalculator can be weighted differently for average pixel calculations. This allows one channel to appear stronger when displayed as composite.

  • SetDisplayRange can now use an external image to determine intensity ranges (this can provide a speed increase when using "Precise" method)

  • Enabled theme selection by going to "Edit > Preferences" from "Editing View"

  • Improved Image class abstraction so future inclusion of other image storage methods (e.g. ImgLib2) should be easier.

  • Renamed module "WekaProbabilityMaps" to "WekaPixelClassification"

- Java
Published by sjcross over 3 years ago

mia - Version 1.0.5

  • ImageSaver can generate a save path based on generic terms
  • ImageLoader can use special "start" term for numeric image sequences when the first index is unknown.
  • Bugfixes for DistanceMap, ExpandShrinkObjects and NormaliseIntensity

- Java
Published by sjcross over 3 years ago

mia - Version 1.0.4

  • Implemented BioFormats Memoizer for improved handling of large file loading (this should make subsequent loads of the same file much faster).
  • Added classified image output as an option for WEKAPixelClassification.
  • Renamed WekaProbabilityMaps to WekaPixelClassification.
  • NormaliseIntensity can now use an external image for calculation of intensity range.
  • Added MeasureWidth module, which skeletonises each object and calculates width statistics based on twice the distance from the skeleton to the original object surface.
  • General bug fixes and UI improvements

- Java
Published by sjcross over 3 years ago

mia - Version 1.0.3

  • Added modules for image- and object-based greyscale K-function using implementation from M. Amgad, et al. (doi: 10.1371/journal.pone.0144404)
  • Added junction-based end joining to Ridge Detection module
  • ManuallyIdentifyObjects now has the option to select points as individual objects without having to select "Add new object" after each one
  • Columns in exported Excel spreadsheets will now be ordered alphabetically by final name (i.e. nickname) in groups (e.g. metadata, then images, then objects)
  • Fixed issue with distance maps not working correctly
  • Added more documentation
  • Updated dependencies (Apache POI and FlatLAF)

- Java
Published by sjcross over 3 years ago

mia - Version 1.0.2

  • Added module to measure greyscale K-function for images
  • Re-enabled FitEllipse module, but now using ImageJ's built-in ellipse fitting
  • DetectSpots module can now operate slice-by-slice (i.e. not linking 3D stacks in 3D)
  • ExpandShrinkObjects module now uses MorphoLibJ for 2D processing
  • ManuallyIdentifyObjects can now import point-based object selections as individual objects (controlled by a new parameter)

- Java
Published by sjcross over 3 years ago

mia - Version 1.0.1

  • IdentifyObjects can now detect in 3D (as before) or slice-by-slice, where it treats each slice as a separate object
  • TrackEditor can now add new objects (single XYZ points) to tracks
  • Splash screen optimisation for Linux
  • Added progress messages to concave and convex hull calculators

- Java
Published by sjcross almost 4 years ago

mia - Version 1.0.0

  • Moving to v1.0.0 to coincide with release as ImageJ update site
  • Updated installation documentation
  • Updated reference to common library (now sjcommon)

- Java
Published by sjcross almost 4 years ago

mia - Version 0.21.16

  • Switched to FlatLaf light LookAndFeel to give more consistency across different OSs
  • Fixed crashes in convex and concave hull modules

- Java
Published by sjcross almost 4 years ago

mia - Version 0.21.15

  • Changes focused on preparing MIA for distribution via a Fiji update site
  • Moved ImgPlusTools and ellipse/ellipsoid features from Common library

- Java
Published by sjcross almost 4 years ago

mia - Version 0.21.14

  • Changed Plugins menu name to "ModularImageAnalysis (MIA)" to make function more obvious
  • Added list of publications to website
  • Bugfix for RelateOneToOne to prevent crash when linking failed
  • Optimised linking in RelateOneToOne to minimise likelihood of failed linking

- Java
Published by sjcross almost 4 years ago

mia - Version 0.21.13

  • Added ScaleStack module, which can apply 2D scaling to image stacks
  • Improved file-list column handling
  • Added more automated tests

- Java
Published by sjcross almost 4 years ago

mia - Version 0.21.12

  • Images in tests stored as .zip to save space
  • Started adding more tests

- Java
Published by sjcross about 4 years ago

mia - Version 0.21.11

  • Compatibility with MorphoLibJ v1.5.0

- Java
Published by sjcross about 4 years ago

mia - Version 0.21.10

  • Added TrackObjects weight for established tracks (favours linking to tracks with longer histories)
  • Label overlays in ManuallyIdentifyObjects can be disabled

- Java
Published by sjcross about 4 years ago

mia - Version 0.21.9

  • RunScript can now export object relationships and object measurements for objects created by that module
  • AddRelationshipConnection overlay for partner objects now only displays links in that frame

- Java
Published by sjcross about 4 years ago

mia - Version 0.21.8

  • Added independent rotation to registration modules
  • Switched point matching method in object centroid-based registration
  • Added option to calculate global intensity thresholds within objects only

- Java
Published by sjcross about 4 years ago

mia - Version 0.21.7

  • Bugfix for pixel classification (should now produce the same results as going via TS plugin)
  • Bugfix for object masking when updating input objects

- Java
Published by sjcross about 4 years ago

mia - Version 0.21.6

  • Improve object tracking options for optimising linking based on absolute direction.
  • Bugfixes for image loading using ImageJ reader (improves spatial calibration handling)
  • Removed sisu dependencies

- Java
Published by sjcross about 4 years ago

mia - Version 0.21.5

  • Updates to Ridge Detection module, adding ability to join all ends (not just those identified as junctions) based on proximity and orientation.
  • Added warning to ConcatenateStacks if bit depths are mismatched
  • Added warnings to colocalisation analysis modules for cases where colocalisation couldn't be calculated (previously threw an error).

- Java
Published by sjcross about 4 years ago

mia - Version 0.21.4

  • Logging states (enabled/disabled) are stored between Fiji sessions
  • Bugfix for TextArea parameters holding focus
  • Bugfix for Watershed LUT inversion

- Java
Published by sjcross over 4 years ago

mia - Version 0.21.3

  • Added module for concave hull (2D) object detection
  • Added module for object detection based on pixel-level clustering
  • Added different colourmap options for overlay generation
  • Module dependencies now use SciJavaPlugin framework
  • Updated TrackMate-based module dependencies to TrackMate 7.2.0 or newer
  • Updated output Excel format to store full .mia XML content
  • Bugfix for outputting error log to Excel file
  • Bugfix for block matching image registration

- Java
Published by sjcross over 4 years ago

mia - Version 0.21.2

  • Added calculation of largest shortest path to MeasureSkeleton
  • Added output of transformation matrix for affine-based registration
  • Added module to perform affine registration using fixed transform values
  • Updates to webpages
  • Bugfix for MeasureSpecificWidth when using calibrated reference points

- Java
Published by sjcross over 4 years ago

mia - Version 0.21.1

  • Added module for rectangle detection using Hough transform
  • Added visual cues to GUI for erroring and skipped modules
  • Comma-separated lists can now use form "(end-3)" to specify a value relative to the end (maximum value)
  • Completed module and parameter documentation

- Java
Published by sjcross over 4 years ago

mia - Version 0.21.0

  • Switched to SciJavaPlugin model for identifying modules. The same will be used for adding new modules (e.g. MIA_MATLAB and VideoHandler)
  • Added module dependencies. Modules will not be loaded if these aren't met.
  • Modules skipped via workflow handling will be highlighted in editor view in orange.
  • Updated for compatibility with TrackMate 7.0.0 (added "SpotDetection" module and deprecated "RunTrackMate")
  • Updated to use scijava pom v31.1.0
  • Optimised Maven dependencies to reduce .jar size from ~19MB to ~14MB
  • Added module descriptions (~ 95% coverage)
  • Added parameter descriptions (~97% coverage)

- Java
Published by sjcross over 4 years ago

mia - Version 0.20.2

  • Added image measurements as thresholding source for colocalisation modules
  • Bugfix for FitGaussian2D generating offset centroids
  • Bugfix for track editor incorrectly linking points when "tracks" with only a single timepoint are present.
  • Added module descriptions (~ 92% coverage)
  • Added parameter descriptions (~92% coverage)

- Java
Published by sjcross over 4 years ago

mia - Version 0.20.1

  • Updated access to scijava services. MIA class now has single ImageJService parameter ("ijService") rather than separate copies of UIService, ScriptService and Context.

- Java
Published by sjcross over 4 years ago

mia - Version 0.20.0

  • Changed namespace to io.github.mianalysis
  • Standardised package names to be only lowercase
  • Added GUI module search functionality (enabled via "View" menu or module selection menu)
  • Moved Fiji plugin location to Plugins > MIA > MIA (Modular Image Analysis)
  • Added module to measure object intensity along central object backbone (MeasureIntensityAlongPath)
  • Added module descriptions (~ 91% coverage)
  • Added parameter descriptions (~90% coverage)

- Java
Published by sjcross over 4 years ago

mia - Version 0.19.1

  • Overlay modules now have the option to specify the colour scale range (for measurement based overlays). The minimum and maximum colour can be set independently as automatic or manual.
  • Bugfix for distant relatives not having measurements set correctly (e.g. track measurements based on grandchildren)
  • Added parameter descriptions (~87% coverage)

- Java
Published by sjcross over 4 years ago

mia - Version 0.19.0

  • Binary image modules now have standardised binary logic control (pre-0.19.0 workflows may need updating to retain compatibility)
  • Updated colocalisation modules (image and object) to use Fiji's Coloc2 plugin. This offers more measurement options.
  • Added TrackEditor module, which runs TrackMate's TrackScheme editor view. This can be used on any tracked objects (not just those from RunTrackMate)
  • Added module descriptions (~ 86% coverage)
  • Added parameter descriptions (~86% coverage)
  • Minor bugfixes

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.16

  • Reintroduces the ability to disable sections from the basic GUI view. This is done using the power icons to the left of the blue separator headings.

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.15

  • Bugfix for extracting object cross-section (won't fail if using a quadtree object with no voxels in a requested slice)
  • Bugfix for file loading from folders

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.14

  • Added option for booleans as global variables
  • Bugfixes for running scripts from files

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.13

  • Tidied up available metadata field notification parameter
  • Bugfix for image flipping in affine image registration modules

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.12

  • Added sphere object detection module (Hough-based)
  • Added module to filter objects of the same class based on their proximity (favouring one over the other based on a specified measurement)
  • Added option to test flipped images in affine-based registration modules
  • Added option to specify centroid location based on fixed values or object measurements for GetObjectLocalRegion
  • Renamed Hough-based detection to "Circle detection"
  • Bugfix when loading .mia files without a specified input path

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.11

  • Added module for image registration based on object centroids (uses code from SIFT to align points)
  • Standardised progress messages shown in status bar ("Processed X or Y images (Z%)").
  • Bugfix for object local region (skipping top slice)
  • Speed optimisation for single class cluster generation and intensity measurements

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.10

  • Bugfix for dependencies required to export .xlsx spreadsheets
  • Added module descriptions (~ 82% coverage)
  • Added parameter descriptions (~74% coverage)

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.9

- Java
Published by sjcross over 4 years ago

mia - Version 0.18.8

  • Added module ("Run script") to run the full range of Fiji-supported scripts (e.g. Jython, Groovy, etc.)
  • Added option to pad/crop images loaded via sequential image loaders when images don't all have the same size.
  • Standardised image registration modules such that they all use a common abstract class and are split down as either "Affine" or "Unwarp". All registration module names have changed as a result.
  • Optimised Maven Shade plugin dependencies, leading to a 50% reduction in .jar size

- Java
Published by sjcross almost 5 years ago

mia - Version 0.18.7

  • Added module to set spatial calibration of an image based on fixed values, GUI-selected values or object measurements.
  • Added option to load images based on alphabetical filenames (rather than numeric image sequences).
  • Various bugfixes.

- Java
Published by sjcross almost 5 years ago

mia - Version 0.18.6

  • Added point-pair plotting to automatic registration module
  • 2D intensity histogram now outputs floats
  • Bugfix for object classification module

- Java
Published by sjcross almost 5 years ago

mia - Version 0.18.5

  • Added module to apply Weka-based object classifications (requires pre-trained model file)
  • Added module to generate 2D intensity histograms using ImgLib2 library

- Java
Published by sjcross almost 5 years ago

mia - Version 0.18.4

  • Added measurements to BestFocusSubstack
  • GUI bugfixes

- Java
Published by sjcross almost 5 years ago

mia - Version 0.18.3

  • Added module for extracting substacks from objects (ExtractObjectCrossSection)
  • Minor GUI updates

- Java
Published by sjcross almost 5 years ago

mia - Version 0.18.2

  • Added tiling option to WEKA pixel classification module
  • Added median and mode to image intensity measurement module
  • Enabled manual thresholding of 32-bit images

- Java
Published by sjcross almost 5 years ago

mia - Version 0.18.1

  • Added ability to filter objects based on relative value of two measurements (i.e. is MeasurementA >= MeasurementB).
  • Bugfix for not exporting statistics if individual objects not also being exported.

- Java
Published by sjcross almost 5 years ago