doublet estimation returns nan -> breaks filtering function
I am running the doublet estimation and it shows a warning in 4 cases:
RuntimeWarning:/mnt/workspace/rwiegan/conda_envs/sctoolbox/lib/python3.10/site-packages/scrublet/scrublet.py:464: invalid value encountered in double_scalars
This leads to NaNs saved in the "predicted_doublet" column.
The function qc.filter_cells(adata, "predicted_doublet", remove_bool=True)
cannot handle NaNs and this error is thrown:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Cell In [15], line 6
3 qc.estimate_doublets(adata, groupby=condition_column, threads=threads, threshold=doublet_threshold)
5 #Remove the duplicates from adata
----> 6 qc.filter_cells(adata, "predicted_doublet", remove_bool=True)
8 #Save to adata to plot later on
9 adata.uns["infoprocess"]["plot_metrics"].append("doublet_score")
File /mnt/workspace/rwiegan/git/sc_framework/sctoolbox/qc_filter.py:1078, in filter_cells(adata, cells, remove_bool, inplace)
1057 def filter_cells(adata, cells, remove_bool=True, inplace=True):
1058 """
1059 Remove cells from anndata object.
1060
(...)
1075 If inplace is False, returns the filtered Anndata object. If inplace is True, returns None.
1076 """
-> 1078 ret = _filter_object(adata, cells, which="obs", remove_bool=remove_bool, inplace=inplace)
1080 return ret
File /mnt/workspace/rwiegan/git/sc_framework/sctoolbox/qc_filter.py:1027, in _filter_object(adata, filter, which, remove_bool, inplace)
1025 boolean = table[filter].values
1026 if remove_bool is True:
-> 1027 boolean = ~boolean
1029 else:
1030 # Check if all genes/cells are found in adata
1031 not_found = list(set(filter) - set(table.index))
TypeError: bad operand type for unary ~: 'float'