Release Notes: v0.7.1 - 06/27/24
You may download the latest release with:
git clone -b v0.7.1 https://github.com/angelolab/ark-analysis.git
What's new?
Pixie updates
In certain datasets, it is impossible to assign all unique SOM clusters. This was previously prohibitive because error checks required all unique SOM clusters to have at least 1 pixel/cell assigned to it. With this update, this is no longer the case, and users may continue in spite of this.
To prevent users from generating duplicate cluster_id
columns by accidentally running the mask generation function multiple times, a safeguard has been added.
An ongoing issue with visualizing unordered cluster IDs using the existing plotting functions has been resolved. Regardless of the spacing and ordering of the IDs internally, they are mapped to the correct color in the overlays.
Update the Mantis directory conversion process to turn off erosion and use an updated cluster_id
column to generate correct and clearer overlays.
Lab members often have multiple resolutions of clustering analysis that need to be resolved. The post clustering notebook has been updated to allow users to define new cluster groups based on user-set mappings.
Spatial Analysis Updates
Our repo is gradually transitioning our internal single-cell data representation format to AnnData. We need a way to convert our existing format to be scverse compatible. The AnnData conversion notebook is the first step of this large-scale conversion process.
Prevent incorrect ordering of kmeans clusters by adding control params.
Correct a bug in fiber segmentation that causes metric averages for a fiber to be the same at the first metric value.
ezSegmenter Updates
merge_masks.py
took a while to run on very long datasets with thousands of FOVs. This has been optimized by only merging cells that are in the areas surrounding objects.
Due to requests from lab members, we've added a generalized masking script to create masks from single or composite channel tiffs. This is implemented using the channel masking function from the TNBC repo.
Update image loading process to use np.int32
for compatibility of composite array addition and subtraction.
With the addition of various types of masks, it's important for the cell table generation notebook to differentiate only _whole_cell.tiff
and _nuclear.tiff
files if desired. Support for this has been added. Also prevents FOVs with duplicate substrings from breaking the cell table generation process by requiring specific names.
Optimize the generation of nuclear masks to prevent repetitive computation.
Deployment + Environment Updates
Our deployment stack requires enhanced security protocols, including OIDC and 2FA. These have been updated to allow for future releases.
Downgraded Python to 3.10 while waiting for scikit-image
support for 3.11.
🚀 Features
- Generalized masking @camisowers (#1092)
- Don't require user to have all pixel SOM clusters represented during assignment @alex-l-kong (#1124)
- 1119 reducing time to merge in merge maskspy wi ez segmenter @bryjcannon (#1123)
- Add multiple clustering resolution functionality @camisowers (#1095)
AnnData
Conversion Notebook @srivarra (#1079)
🐛 Bug Fixes
- Fix kmeans notebook mask generation @camisowers (#1130)
- Manual mask names @camisowers (#1126)
- Fiber stats bugs @camisowers (#1128)
- Fix color masking in Pixie @camisowers (#1127)
- Changes process lists search for matching fov and mask names to use a… @bryjcannon (#1104)
- 1100 empty composites masks in ez segmenter notebook @bryjcannon (#1101)
- Don't generate duplicate
cluster_id
columns ifgenerate_and_save_cluster_masks
run twice @alex-l-kong (#1110) - Only load whole cell masks if
nuclear_counts=False
ingenerate_cell_table
@alex-l-kong (#1107) - General CI Updates @srivarra (#1114)
- Fix cell cluster visualization in Mantis @camisowers (#1083)