Remove certain cells that look like doublets by gene expression levels


My problem is a little bit complicated so I’m not sure if there is a solution.

I have a preprocessed anndata object. After plotting some genes by UMAP it shows some cells having expression of different cell type markers (Cardiomyocytes and endothelial cells and fibroblasts), some weaker than others.

To try and remove them, I used two different ways:

  1. DoubletDetection package → doublets are scored as 1 and I removed doublets by
doub = adata[adata.obs['doublet'] == 0].copy()
  1. Scrublet package → doublets are scored as True and I removed doublets by
doub = adata[adata.obs['predicted_doublets_log'] ==False].copy()

However, these cells still exist. The suspected doublets were indeed removed but those cells were not considered as such.

Since they have mixed genes expression, I thought maybe removing them by gene expression. Is there a way to do that?
What can be a better way without compromising other cells? Is there a way to annotate all cells and remove these cells in particular by a specific annotation?

Any suggestion would be appreciated.

Thanks in advance!