From 6f87e722fcdf4af93917480003f6106197d7d03f Mon Sep 17 00:00:00 2001 From: Wojciech Lason <40389067+wlason@users.noreply.github.com> Date: Tue, 15 Oct 2024 20:55:36 +0100 Subject: [PATCH] Update run_preprocess_prot.py --- panpipes/python_scripts/run_preprocess_prot.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/panpipes/python_scripts/run_preprocess_prot.py b/panpipes/python_scripts/run_preprocess_prot.py index e221138d..12fbc67f 100644 --- a/panpipes/python_scripts/run_preprocess_prot.py +++ b/panpipes/python_scripts/run_preprocess_prot.py @@ -103,6 +103,22 @@ else: L.error("You must specify a background MuData to run dsb, containing both rna and prot") sys.exit("You must specify a background MuData to run dsb, containing both rna and prot") + + # RNA and PROT layer must be present in the object to run dsb + mods = list(all_mdata_bg.mod.keys()) + if 'prot' not in mods: + L.error("The MuData you specified does not contain prot modality. Cannot run dsb") + sys.exit("The MuData you specified does not contain prot modality. Cannot run dsb") + if 'rna' not in mods: + L.error("The MuData you specified does not contain rna modality. Cannot run dsb") + sys.exit("The MuData you specified does not contain rna modality. Cannot run dsb") + del mods + + # the RNA and PROT must intersect - they won't if experimental design included some cells without PROT data + L.info("Checking that only cells with PROT signal present are in the bacground object") + if all_mdata_bg['rna'].shape[0] != all_mdata_bg['prot'].shape[0]: + mu.pp.intersect_obs(mdata_bg) + all_mdata_bg.update() # checking that the same proteins are in foreground and background (since foreground might have been filtered) L.info("Checking that the same proteins are in foreground and background")