VAST Lite Version 1.4.0 (c) March 4th, 2021 by Daniel Berger, Lichtman Lab, Harvard VAST is a Volume Annotation and Segmentation Tool for microscopic image stacks. It runs on PCs with 64-bit Windows 7 or later. This version of VAST is free of charge and may be distributed freely, but not sold. Commercial usage is allowed. You are using this software at your own risk. Version 1.4.0 implements the following improvements over version 1.3.0: MAJOR NEW FUNCTIONS -------------------- - Changed multiscale segmentation system from paint counters to explicit mip masks - .VSS files now support internal packing to reduce file size - 2D display can now be switched between XY, XZ, and YZ cuts, with full support for painting, skeletons etc. - Added VSVI functionality to load images from web folders via HTTP - Added support for VSVI with multi-z-tile images (16 images in one 2D image below each other for each tile) - Control buttons are now configurable with more functions (right click to change) and can be triggered with number keys 1,2,.. 0 - Annotation Layers: Added 'Annotation Schematics' window for selected Skeleton, with panning, zooming and realtime updating - Segmentation volume exporter added to Segmentation Colors context menu, saves to .txt and .csv formats OTHER NEW AND IMPROVED FUNCTIONS --------------------------------- - Added function 'Collect segments by name' to segment list window context menu - Added configurable API port to preferences - Added 'Safe saving' option to preferences - Added saving of segmentation layers to legacy vss format (VAST 1.2.1 compatible) - When painting, target tiles which become available later now retrigger painting - Added 'Go to last painted location' option to Segment List window menu (not saved in vss files) - Added pingpong mode to slice exporting - Added 'Siblings and their subtrees' option to 'Collect by name' for segment colors - Faster segmentation importing - Added text search to annotation list window - Segmentation color exporting now supports CSV files with and without header line - Added exporting of annotation layer data to CSV files with and without header line - Edge weight can now be viewed and edited in edge context menu - Node diameter is now shown in node context menu - Skeleton splitting by key delete mode and click on edge now possible; message box when deleting edges added - Added skeleton importing from .SWC and .CSV files (the latter in the format saved by VAST) - Added direct loading of images stored on Google Cloud Storage using a VSVI file, including Google OAuth2 authentication with token refresh - Optimized timing for segmentation tile refresh, reducing 'red frames' - VSS files can now be opened without an image stack loaded when using drag&drop - Segmentation image exporting: 16 bit graylevel exporting added for PNG and TIFF - Added "Arrange/Make All Siblings Children" and "Arrange/Make All Children Siblings" to Annotation Objects context menu - Added setting colors and patterns of all immediate children of a selected segment - Added "Make Primary Colors of Subtree Unique" function to segment list and annotation list context menus - Segmentation and annotation layers now remember the previously selected segment after saving - Segmentation and annotation layer specific menu functions are now also enabled when a new layer is added via the Layers window menu - The duration of location trajectories can now be set in the Preferences - Menus in annotation lists can now have colors - Added 'Z scrolling during paint stroke' to preferences file - Changed internal storage of image cubes to reduce Windows memory management overhead (major speed improvement) - Image stack exporting now includes cache cleaning to reduce memory overhead - Added Multi-tile screenshot exporting - Skeletons now change color to the parent in the 2D view when objects in the Annotation Objects window are collapsed (equivalent to segments) - Added display of edge length to edge context menu - Added 'Collapse All' to annotation objects window context menu - Improved speed of segmentation importing - Save As for segmentation layers now uses direct file-to-file copy for unchanged cubes (large speedup for packed files) - Segmentation metadata importing from text files implemented - Rewrote segmentation importer - Progress window during segmentation import now updates at least once per second - Added multi-image tiff support, including 16 bit grayscale, to segmentation importing - Main menu updated (now has separate 'Info' and 'View' menus; switching 2D orientation added to view menu) - Reduced opacity of red segmentation-not-loaded tile borders - Can now load .VSVI files with wrong number in "SourceMaxM" several times (that value is ignored / replaced with the expected value) - Cleaned up the 'Export' dialog - 'Voxel Information' dialog window now has a vertical scrollbar for longer texts - Holding down U key now solos the selected layer in the 2D view - Now 10 instead of 8 control buttons, triggered with keys 1..0 - Control button layout can now be saved to and loaded from CSV files - Coordinates toolwindow now has buttons to copy (C) and paste (P) coordinates to/from clipboard - Screenshot exporting now supports packed TIFF (LZW, ZIP) and JPEG target image formats - Z-Jump start and stepping can now be configured in the Preferences - Added total length value to 'Save Annotation Object Data' csv files (Annotation Objects context menu) - New program icon BUG FIXES ---------- - Fixed right-click 'Voxel information' function for XYZ mipmaps - Fixed nonzero offsets in VSVI files - Limited display of external HTTP replies to 1000 characters to prevent crashes - Fixed data overlap computation for very small stacks - Fixed displaced location transition end points in some cases - Fixed image exporting: BBox button is now grayed out if there is no segmentation - Fixed multi-tile EM image exporting: non-zero offsets should now work - Fixed multi-tile segmentation image exporting: non-zero offsets should now work - Fixed segmentations in screenshot and segmentation exporting if EM stack has XYXYZ mipmaps and segmentation doesn't - Fixed segmentation cleaning for XYXYZ mipmaps - Fixed translayer flood filling for segmentations with XYXYZ mipmaps - Fixed splitting functions for segmentations with XYXYZ mipmaps - Recent coordinates list updating fixed when pressing Home, G, +, or selecting 'Go to anchor point' or 'Go to last painted location' - Fixed mipmap updating when data is pasted to a segmentation layer (filling, cleaning, api, ...) - Cleaning segmentations now enforces the segmentation disk cache to be available - Fixed loading legacy .vsanno files - Segmentation disk cacheing fixed for VSS version 2 - Corrected widget scaling when segmentation list and annotation list tool windows are resized - Annotation layers should now show up as changed in the layers list if objects are added or deleted - Fixed color values displayed in 'Annotation Object Information ...' dialog - Fixed coordinates dropdown updating - Fixed Layers List window context menu for graylevel EM layers - Fixed a program hang when the segmentation layer was the first layer in the list and color picking was used - Fixed a bug that some VSVI files couldn't be loaded twice - Fixed 3 bugs in annotation object deletion - Fixed bug in annotation layers that nodes could be added to folders - Fixed mipmap updating when low-res is painted over high-res - Recent coordinates list now updates when manually editing locations - Fixed Error 39 appearing while painting - Fixed some 1-pixel offsets in 2D coordinate computations (negative rounding towards 0 problem) - Fixed a bug in segmentation importing for images larger than 2^28 bytes - Fixed a problem in segmentation importing where some sections were not written to the cache - Segmentation layer zmipmapping now has to fit EM stack to prevent problems in several functions - Fixed a problem when opening the same VSVI twice and the value of SourceMaxM being inconsistent with the data size - Save and Save-As of legacy VSS files should now be handled correctly - Fixed importing of segmentations from image stacks containing 65535 segments - Limited adding segments to 65535 segments total - Skeleton tooltips should now update when the skeleton name is changed in the annotation object list - Segmentation image exporting: File formats fixed (TIFF LZW, TIFF ZIP, RAW) - Segmentation image exporting: RAW images are now correctly cropped - Fixed a bug where VAST crashed when an annotation object was deleted - Fixed a bug where VAST crashed when a VSS file was dragged on an empty instance of VAST and 'No' was chosen in the pop-up dialog - Fixed a bug where VAST crashed when addnewannoobject was called with api layers enabled - 'Delete Selected Layer': Fixed a bug where the layer was still deleted if the user selected 'Cancel' in the popup dialog - Fixed a bug where part of the data of a merged-in vss segmentation file went missing after saving - Fixed a crash when a segmentation layer was deleted - Segmentation volume export voxel size computation fixed for stacks with XYZ mipmaps - Fixed a bug where pressing CTRL during paint strokes was not handled correctly - When the mouse pointer is over the annotation object list, 'Home' and 'G' now move the 2d view to the anchor point of the skeleton rather than going to the top of the annotation object list - Fixed a bug where the collapse state of the annotation layer was not loaded correctly from vsanno files - Removed duplicated question to add segments when opening a segmentation layer - Fixed importing images to VSV and changed the caching system to remove the delay between importing mip0 and rendering mip maps - Fixed a bug concerning mip-mapping of missing image tiles during segmentation importing - Fixed cache writing / mipmap updating when painting on incompletely loaded canvas and/or when zooming while painting - Fixed region computation for image exporting (em, seg, screenshots) if miplevels are used (right/lower edge prevented from exceeding volume size) - Fixed a crash after removing an annotation layer and then interacting with the annotation tool - Fixed a bug which caused hangs after an annotation layer was deleted - Fixed a problem when exporting from a segmentation layer which was opened by drag&drop without EM layer - Fixed a mismatch of cache size requirements checks for segmentation exporting to images - Fixed segment translation when importing segmentation from 8-bit images to a nonempty segmentation layer - Segmentation layer name in layers window should now show a * when a segment name is edited - Fixed a crash after 'Save annotation' - Fixed one more crash bug after saving annotation layer related to the annoschematic viewer briefly having no backend data - Repaired single-tile screenshot exporting as RAW - Slice exporting: Image dimensions in RAW file names corrected - 'Save As Special' removed because it was outdated and buggy (and rarely used) - Fixed segment splitting for image volumes with XYXYZ mipmaps 3D VIEWER ---------- - 3D viewer can now show the selected skeletons if "View/Show Annotations" is enabled - Segmentations in 3D viewer can be set to 'Surface Only' - Fixed skeleton and crosshairs scaling when line cube is switched off - 3D Viewer panning implemented with WASDZX and arrow keys / pgup/pgdn - 3D viewer animation export now supports vertical rotation and rocking - 3D viewer images and animations can now be saved as JPEG - Added 'Nonzero Opaque' to 3D viewer transparency options API ---- - Faster API communication - New API functions: setuimode, executecanvaspaintstroke - Added API functions getannoobject, addannoobject - Fixed API function getselectedaonodenr - Fixed removelayer API function - Fixed API data functions for segmentations with XYXYZ mipmaps - API, 'addanooobject': Single numerical parameters in aodata are now accepted if they are either uint32, int32, uint64 or double - Added API function 'getclosestaonodebycoords': Returns the annoobject id, node number, and distance of the closest node in the selected layer if <=maxdist - Parent edge weight added to API functions getannoobject and addannoobject - Added API function showwindow - Segmentation layers can now be saved through the API - New API function set2dvieworientation() - VastControlClass now includes getidsfromexactname, getchildtreeids and getimmediatechildids helper functions - Fixed data retrieval range in some getsegimage, getemimage functions - Added getpixelvaluefromfullrescoords to API - API function 'weldskeletons' implemented - API function 'getannolayerobjectnames()' fixed - API function getcurrentuistate now has a 'spacewaspressed' field - When using the API function setsegimageraw() or setsegimageRLE(), VAST now makes sure the diskcache is enabled VASTTOOLS ---------- - Added .PLY mesh export to VastTools - VastTools can now export skeletons to OBJ (one skeleton per file or concatenated) and PLY - VastTools can now export skeletons to SWC files - Added skeleton length exporting - Added CSV file targets to segment volume exporting and to masked image brightness exporting - Fixed object exporting from XYXYZ mipmapped segmentation layers - Exporting textured planes and boxes from stacks with XYXYZ mipmaps should now work - Volume export in VastTools fixed for segmentation layers with XYXYZ mip maps - VastTools: Fixed a bug causing the script to stop when exporting at mip level 0