CosMx FOVs being skipped
Description
When loading CosMx data from FOVs are skipped because they "do not exist in CellComposite folder" or "do not exist in CellLabels folder", however the FOVs do exist in these folders... Not sure what the issue is here, why these FOVs are being skipped or how to fix, any help would be great!
...
Minimal reproducible example
adata2 = sq.read.nanostring(
path=sample_dir,
counts_file=counts_file,
meta_file=meta_file,
fov_file=fov_file
)
Traceback
WARNING: FOV `197` does not exist in CellComposite folder, skipping it.
WARNING: FOV `570` does not exist in CellComposite folder, skipping it.
WARNING: FOV `558` does not exist in CellComposite folder, skipping it.
WARNING: FOV `646` does not exist in CellComposite folder, skipping it.
WARNING: FOV `642` does not exist in CellComposite folder, skipping it.
WARNING: FOV `271` does not exist in CellComposite folder, skipping it.
WARNING: FOV `176` does not exist in CellComposite folder, skipping it.
WARNING: FOV `614` does not exist in CellComposite folder, skipping it.
WARNING: FOV `272` does not exist in CellComposite folder, skipping it.
WARNING: FOV `496` does not exist in CellComposite folder, skipping it.
WARNING: FOV `267` does not exist in CellComposite folder, skipping it.
WARNING: FOV `297` does not exist in CellComposite folder, skipping it.
WARNING: FOV `568` does not exist in CellComposite folder, skipping it.
WARNING: FOV `447` does not exist in CellComposite folder, skipping it.
WARNING: FOV `367` does not exist in CellComposite folder, skipping it.
WARNING: FOV `98` does not exist in CellComposite folder, skipping it.
WARNING: FOV `421` does not exist in CellComposite folder, skipping it.
WARNING: FOV `564` does not exist in CellComposite folder, skipping it.
WARNING: FOV `563` does not exist in CellComposite folder, skipping it.
WARNING: FOV `559` does not exist in CellComposite folder, skipping it.
WARNING: FOV `517` does not exist in CellComposite folder, skipping it.
WARNING: FOV `222` does not exist in CellComposite folder, skipping it.
WARNING: FOV `707` does not exist in CellComposite folder, skipping it.
WARNING: FOV `683` does not exist in CellComposite folder, skipping it.
WARNING: FOV `292` does not exist in CellComposite folder, skipping it.
WARNING: FOV `192` does not exist in CellComposite folder, skipping it.
WARNING: FOV `739` does not exist in CellComposite folder, skipping it.
WARNING: FOV `562` does not exist in CellComposite folder, skipping it.
WARNING: FOV `607` does not exist in CellComposite folder, skipping it.
WARNING: FOV `247` does not exist in CellComposite folder, skipping it.
WARNING: FOV `743` does not exist in CellComposite folder, skipping it.
WARNING: FOV `491` does not exist in CellComposite folder, skipping it.
WARNING: FOV `607` does not exist in CellLabels folder, skipping it.
WARNING: FOV `568` does not exist in CellLabels folder, skipping it.
WARNING: FOV `222` does not exist in CellLabels folder, skipping it.
WARNING: FOV `564` does not exist in CellLabels folder, skipping it.
WARNING: FOV `562` does not exist in CellLabels folder, skipping it.
WARNING: FOV `98` does not exist in CellLabels folder, skipping it.
WARNING: FOV `496` does not exist in CellLabels folder, skipping it.
WARNING: FOV `367` does not exist in CellLabels folder, skipping it.
WARNING: FOV `558` does not exist in CellLabels folder, skipping it.
WARNING: FOV `421` does not exist in CellLabels folder, skipping it.
WARNING: FOV `646` does not exist in CellLabels folder, skipping it.
WARNING: FOV `272` does not exist in CellLabels folder, skipping it.
WARNING: FOV `642` does not exist in CellLabels folder, skipping it.
WARNING: FOV `614` does not exist in CellLabels folder, skipping it.
WARNING: FOV `297` does not exist in CellLabels folder, skipping it.
WARNING: FOV `197` does not exist in CellLabels folder, skipping it.
WARNING: FOV `271` does not exist in CellLabels folder, skipping it.
WARNING: FOV `739` does not exist in CellLabels folder, skipping it.
WARNING: FOV `491` does not exist in CellLabels folder, skipping it.
WARNING: FOV `743` does not exist in CellLabels folder, skipping it.
WARNING: FOV `192` does not exist in CellLabels folder, skipping it.
WARNING: FOV `292` does not exist in CellLabels folder, skipping it.
WARNING: FOV `176` does not exist in CellLabels folder, skipping it.
WARNING: FOV `570` does not exist in CellLabels folder, skipping it.
WARNING: FOV `267` does not exist in CellLabels folder, skipping it.
WARNING: FOV `563` does not exist in CellLabels folder, skipping it.
WARNING: FOV `707` does not exist in CellLabels folder, skipping it.
WARNING: FOV `447` does not exist in CellLabels folder, skipping it.
WARNING: FOV `247` does not exist in CellLabels folder, skipping it.
WARNING: FOV `559` does not exist in CellLabels folder, skipping it.
WARNING: FOV `683` does not exist in CellLabels folder, skipping it.
WARNING: FOV `517` does not exist in CellLabels folder, skipping it.
WARNING: FOV `98` does not exist, skipping it.
WARNING: FOV `176` does not exist, skipping it.
WARNING: FOV `192` does not exist, skipping it.
WARNING: FOV `197` does not exist, skipping it.
WARNING: FOV `222` does not exist, skipping it.
WARNING: FOV `247` does not exist, skipping it.
WARNING: FOV `267` does not exist, skipping it.
WARNING: FOV `271` does not exist, skipping it.
WARNING: FOV `272` does not exist, skipping it.
WARNING: FOV `292` does not exist, skipping it.
WARNING: FOV `297` does not exist, skipping it.
WARNING: FOV `367` does not exist, skipping it.
WARNING: FOV `421` does not exist, skipping it.
WARNING: FOV `447` does not exist, skipping it.
WARNING: FOV `491` does not exist, skipping it.
WARNING: FOV `496` does not exist, skipping it.
WARNING: FOV `517` does not exist, skipping it.
WARNING: FOV `558` does not exist, skipping it.
WARNING: FOV `559` does not exist, skipping it.
WARNING: FOV `562` does not exist, skipping it.
WARNING: FOV `563` does not exist, skipping it.
WARNING: FOV `564` does not exist, skipping it.
WARNING: FOV `568` does not exist, skipping it.
WARNING: FOV `570` does not exist, skipping it.
WARNING: FOV `607` does not exist, skipping it.
WARNING: FOV `614` does not exist, skipping it.
WARNING: FOV `642` does not exist, skipping it.
WARNING: FOV `646` does not exist, skipping it.
WARNING: FOV `683` does not exist, skipping it.
WARNING: FOV `707` does not exist, skipping it.
WARNING: FOV `739` does not exist, skipping it.
WARNING: FOV `743` does not exist, skipping it.
AnnData object with n_obs × n_vars = 521946 × 1165
obs: 'fov', 'Area', 'AspectRatio', 'Width', 'Height', 'Mean.PanCK', 'Max.PanCK', 'Mean.CD68', 'Max.CD68', 'Mean.Membrane', 'Max.Membrane', 'Mean.CD45', 'Max.CD45', 'Mean.DAPI', 'Max.DAPI', 'cell_id', 'assay_type', 'version', 'Run_Tissue_name', 'Panel', 'slide_ID', 'unassignedTranscripts', 'nCount_RNA', 'nFeature_RNA', 'nCount_negprobes', 'nFeature_negprobes', 'nCount_falsecode', 'nFeature_falsecode', 'Area.um2', 'CenterX_global_px', 'CenterY_global_px', 'cell', 'cell_ID'
uns: 'spatial'
obsm: 'spatial', 'spatial_fov'
Versions
scanpy==1.10.3 anndata==0.10.9 umap==0.5.6 numpy==1.26.4 scipy==1.14.1 pandas==2.2.3 scikit-learn==1.5.2 statsmodels==0.14.3 igraph==0.11.6 pynndescent==0.5.13 squidpy==1.6.1
...
UPDATE
Attempted to load the data using spatialdata-io function cosmx() and had some errors, turned out to be due to empty FOVs in the dataset. From what I can tell these were the same FOVs being skipped above.
Linking the issue here: https://github.com/scverse/spatialdata-io/issues/213
Hello,
I encountered the same issue and found that it was due to the FOVs not being present in the count matrix (i.e., the exprMat_file.csv file).
However, I would argue that even if an FOV has no detected probes, the FOV image should still be loaded.
With that in mind, I was wondering whether it might make sense to impute the count matrix with placeholder values (e.g., zeros or None) for the missing FOVs - so that the image loading logic remains consistent regardless of expression data availability?
Thanks!