Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Misc. improvements, GUI speed-ups, and new options #100

Merged
merged 4 commits into from
Mar 1, 2022

Conversation

bahanonu
Copy link
Owner

@bahanonu bahanonu commented Mar 1, 2022

Main features and changes:

  • Increment to CIAtah version to 4.2.0.
  • GUI improvements to ciapkg.motion_correction.computeManualMotionCorrection that significantly speed up GUI responsiveness, e.g. when doing hundreds of sessions.
  • computeMatchObjBtwnTrials now supports manual alignment of sessions before automated alignment and matching of cells across sessions.
  • Replace calls to suptitle with ciapkg.overloaded.suptitle due to function being dropped from newer Matlab releases.
  • Misc fixes for edge cases and other improvements.

New functions

  • ciapkg.api.getMovieFileType - API access for getMovieFileType.
  • ciapkg.api.getMovieInfo - API access for getMovieInfo.
  • ciapkg.api.readFrame - API access for readFrame.

Updated @ciatah

  • ciatah - Misc code fixes to conform to better Matlab language standards.
  • ciatahMainGui - Additional check only for movie previews of supported movie files. "Folder files" list selection additional regexp support. Changed so that 'Start selected method' button selects the correct folders like occurs when pressing enter. The folder list will no longer reset when selecting certain GUI elements that should not impact folder list.
  • computeMatchObjBtwnTrials - Added manual alignment option before automated for cases in which there are large shifts or rotations along with changes in bulk cells identified that might be hard for automated to align.
  • modelDownsampleRawMovies - Change TIF finding to split apart the information file before using for regular expression.
  • modelModifyRegionAnalysis - Fix modelVarsFromFilesCheck and modelVarsFromFiles recursion edge case.
  • modelPreprocessMovieFunction - Updated suptitle to ciapkg.overloaded.suptitle. Fix "No movies" dialog box displaying when movies successfully run. Add modelPreprocessMovieFunction settings saved in CIAtah class to saved output file for later retrieval. For selecting turboreg crop coordinates, switched to ciapkg.io.readFrame when single frame is requested as this is faster and avoids long read times of all frame information as occurs in certain types of TIFF files or hard drives. Misc code fixes to conform to better Matlab language standards.
  • modelVerifyDataIntegrity - Updated suptitle to ciapkg.overloaded.suptitle.
  • runPipeline - Eliminate the close all figure when initializing the main GUI. Unexpected for some users and undesirable in certain cases. Instead close all figures if a method is selected, this avoids user not getting feedback if figures are re-used and focus is not shifted.
  • viewMovie - Updated suptitle to ciapkg.overloaded.suptitle.

Updated +ciapkg

  • signalSorter - Updated suptitle to ciapkg.overloaded.suptitle. Also limit number of GUI re-runs to prevent infinite looping. Fixed issue with gca.XRuler.Axle.LineStyle being an empty object when axes created, leading to failure to assign and error loops. Make all openFigure to ciapkg.api.openFigure.
    downloadGithubRepositories - Update _external_programs to call ciapkg.getDirExternalPrograms() to standardize call across all functions. If multiple repos requested but one already downloaded, previously exited before downloading the other repos.
  • readHDF5Subset - Fix display of information on error.
  • createPeakTriggeredImages - Ensure only unique signal peaks used.
  • fftImage - Misc code fixes to conform to better Matlab language standards.
  • getMovieFileType - Update all strcmp to endsWith to ensure finding file extension as there are cases where software will export metadata into files with naming schema like NAME.tif.xml for NAME.tif and this can cause issues when using strcmp without endsWith-like checks. Update docs. Added varargin support.
  • getMovieInfo - Directly call loadMovieList and bypass ciapkg.api.
  • loadMovieList - AVI now read(...,'native') is faster.
  • jsonRead - Fix edge case where the end of the imported string is a space, causing jsondecode to fail.
  • loadMovieList - AVI now read(...,'native') is faster.
  • manageMiji - Added forceLoad option.
  • manageParallelWorkers - Added nCoresFree option for users to set the number of cores to remain free. Added ability to input just the number of workers to open as 1st single input argument that aliases for the "setNumCores" Name-Value input, still support other input arguments as well.
  • modelAddOutsideDependencies - No longer use Fiji-based Miji.
  • readFrame - AVI now read(...,'native') is faster.
  • resetMiji - Update to use manageMiji to setup Miji, avoid certain issues. Also search for imagej instead of Fiji path.
  • computeManualMotionCorrection - Change number of pixels to translate per click and UI improvements. Improved pre-allocation, minimize GUI slowdown for large inputs over time. Improve speed of GUI and responsiveness. Force altInputImages to initialize as input class type to avoid automatic conversion to double (save space/ram). Significant speed improvements by removing certain calls to figure, axis, imagesc, etc. that slow down UI over time when many sessions aligned.
  • downsampleMovie - Update for Matlab standards.
  • viewAddTextToMovie - Added varargin for future additions.
  • changeFont - Updated so doesn't change Axes backgroundcolor when changing font color, only Axes text.
  • displayMatchingObjs - Updated suptitle to ciapkg.overloaded.suptitle
  • openFigure - Option to add a title to the figure, e.g. "Figure 1" becomes "Fig. 1 - Lorem ipsum". Also make user accessible change figure background color.
  • playMovie - AVI now read(...,'native') is faster. Also add primaryTrackingPointNback option to allow a trailing number of points from prior frames to appear.
  • exampleFxn - updated for better help.
  • getMovieFileType - Added support for checking if a cell was accidentally input instead of a string path along with verifying that input was a string. Added support for oir and czi/lsm Olympus and Zeiss file formats that already was in loadMovieList.

Updated +ciapkg.api

  • convertInscopixIsxdToHdf5 - Update +image package to +inscopix.

bahanonu and others added 4 commits March 1, 2022 04:26
Main features and changes:
- Increment to CIAtah version to `4.2.0`.
- GUI improvements to `ciapkg.motion_correction.computeManualMotionCorrection` that significantly speed up GUI responsiveness, e.g. when doing hundreds of sessions.
- `computeMatchObjBtwnTrials` now supports manual alignment of sessions before automated alignment and matching of cells across sessions.
- Replace calls to `suptitle` with `ciapkg.overloaded.suptitle` due to function being dropped from newer Matlab releases.
- Misc fixes for edge cases and other improvements.

## New functions
- `ciapkg.api.getMovieFileType` - API access for `getMovieFileType`.
- `ciapkg.api.getMovieInfo` - API access for `getMovieInfo`.
- `ciapkg.api.readFrame` - API access for `readFrame`.

## Updated `@ciatah`
- `ciatah` - Misc code fixes to conform to better Matlab language standards.
- `ciatahMainGui` - Additional check only for movie previews of supported movie files. "Folder files" list selection additional regexp support. Changed so that 'Start selected method' button selects the correct folders like occurs when pressing enter. The folder list will no longer reset when selecting certain GUI elements that should not impact folder list.
- `computeMatchObjBtwnTrials` - Added manual alignment option before automated for cases in which there are large shifts or rotations along with changes in bulk cells identified that might be hard for automated to align.
- `modelDownsampleRawMovies` - Change TIF finding to split apart the information file before using for regular expression.
- `modelModifyRegionAnalysis` - Fix modelVarsFromFilesCheck and modelVarsFromFiles recursion edge case.
- `modelPreprocessMovieFunction` - Updated suptitle to ciapkg.overloaded.suptitle. Fix "No movies" dialog box displaying when movies successfully run. Add `modelPreprocessMovieFunction` settings saved in CIAtah class to saved output file for later retrieval. For selecting turboreg crop coordinates, switched to ciapkg.io.readFrame when single frame is requested as this is faster and avoids long read times of all frame information as occurs in certain types of TIFF files or hard drives. Misc code fixes to conform to better Matlab language standards.
- `modelVerifyDataIntegrity` - Updated suptitle to ciapkg.overloaded.suptitle.
- `runPipeline` - Eliminate the close all figure when initializing the main GUI. Unexpected for some users and undesirable in certain cases.
- `viewMovie` - Updated suptitle to ciapkg.overloaded.suptitle.

## Updated `+ciapkg`
- `signalSorter` - Updated suptitle to ciapkg.overloaded.suptitle. Also limit number of GUI re-runs to prevent infinite looping. Fixed issue with `gca.XRuler.Axle.LineStyle` being an empty object when axes created, leading to failure to assign and error loops. Make all openFigure to ciapkg.api.openFigure.
`downloadGithubRepositories` - Update `_external_programs` to call ciapkg.getDirExternalPrograms() to standardize call across all functions. If multiple repos requested but one already downloaded, previously exited before downloading the other repos.
- `readHDF5Subset` - Fix display of information on error.
- `createPeakTriggeredImages` - Ensure only unique signal peaks used.
- `fftImage` - Misc code fixes to conform to better Matlab language standards.
- `getMovieFileType` - Update all strcmp to endsWith to ensure finding file extension as there are cases where software will export metadata into files with naming schema like NAME.tif.xml for NAME.tif and this can cause issues when using strcmp without endsWith-like checks. Update docs. Added varargin support.
- `getMovieInfo` - Directly call loadMovieList and bypass ciapkg.api.
- `loadMovieList` - AVI now read(...,'native') is faster.
- `jsonRead` - Fix edge case where the end of the imported string is a space, causing jsondecode to fail.
- `loadMovieList` - AVI now read(...,'native') is faster.
- `manageMiji` - Added `forceLoad` option.
- `manageParallelWorkers` - Added nCoresFree option for users to set the number of cores to remain free. Added ability to input just the number of workers to open as 1st single input argument that aliases for the "setNumCores" Name-Value input, still support other input arguments as well.
- `modelAddOutsideDependencies` - No longer use Fiji-based Miji.
- `readFrame` - AVI now read(...,'native') is faster.
- `resetMiji` - Update to use manageMiji to setup Miji, avoid certain issues. Also search for imagej instead of Fiji path.
- `computeManualMotionCorrection` - Change number of pixels to translate per click and UI improvements. Improved pre-allocation, minimize GUI slowdown for large inputs over time. Improve speed of GUI and responsiveness. Force altInputImages to initialize as input class type to avoid automatic conversion to double (save space/ram). Significant speed improvements by removing certain calls to figure, axis, imagesc, etc. that slow down UI over time when many sessions aligned.
- `downsampleMovie` - Update for Matlab standards.
- `viewAddTextToMovie` - Added varargin for future additions.
- `changeFont` - Updated so doesn't change Axes backgroundcolor when changing font color, only Axes text.
- `displayMatchingObjs` - Updated suptitle to ciapkg.overloaded.suptitle
- `openFigure` - Option to add a title to the figure, e.g. "Figure 1" becomes "Fig. 1 - Lorem ipsum". Also make user accessible change figure background color.
- `playMovie` - AVI now read(...,'native') is faster. Also add `primaryTrackingPointNback` option to allow a trailing number of points from prior frames to appear.
- `exampleFxn` - updated for better help.

## Updated `+ciapkg.api`
- `convertInscopixIsxdToHdf5` -  Update +image package to +inscopix.
- Added support for checking if a cell was accidentally input instead of a string path along with verifying that input was a string. Added support for oir and czi/lsm Olympus and Zeiss file formats that already was in loadMovieList.
@bahanonu
Copy link
Owner Author

bahanonu commented Mar 1, 2022

Tested on MATLAB 2021b on Windows 10. Merging.

image

m19_matchedCells

@bahanonu bahanonu merged commit 0dc144f into master Mar 1, 2022
@bahanonu bahanonu mentioned this pull request Mar 2, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant