Skip to content

Commit 5ff088b

Browse files
committed
fix bug where the donor loc are somewhat mismatched..
1 parent 7627554 commit 5ff088b

1 file changed

Lines changed: 15 additions & 21 deletions

File tree

src/utils/helper_functions.py

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def get_obs_var_for_integrated(
2727

2828
if s1_adata.uns["method_id"] == "perfect_integration":
2929
print(
30-
"Control method 'perfect_integration' detected. Changing batch labels for each split as we only have batch 1 in each split."
30+
"Control method 'perfect_integration' detected. Changing batch labels for non-control cells in each split as they are all from batch 1."
3131
)
3232

3333
# the idea is, we will change the batch labels in each split to reflect the correct donor/batch mapping
@@ -38,45 +38,39 @@ def get_obs_var_for_integrated(
3838

3939
print("Old split 1 donor/batch mapping:", flush=True)
4040
print(
41-
s1_adata.obs.loc[
42-
(s1_adata.obs.is_control == 0), ["donor", "batch"]
43-
].value_counts(),
41+
s1_adata.obs.loc[:, ["donor", "batch", "is_control"]].value_counts(),
4442
flush=True,
4543
)
4644

4745
split_dict_s1 = get_donor_batch_map(u_adata, split_of_interest=1)
48-
s1_adata.obs.loc[(s1_adata.obs.is_control == 0), "batch"] = s1_adata.obs[
49-
"donor"
50-
].map(split_dict_s1)
51-
s1_adata.obs.loc[(s1_adata.obs.is_control == 0), "split"] = 1
46+
mask_s1 = s1_adata.obs.is_control == 0
47+
s1_adata.obs.loc[mask_s1, "batch"] = s1_adata.obs.loc[mask_s1, "donor"].map(
48+
split_dict_s1
49+
)
50+
s1_adata.obs.loc[mask_s1, "split"] = 1
5251

5352
print("New split 1 donor/batch mapping:", flush=True)
5453
print(
55-
s1_adata.obs.loc[
56-
(s1_adata.obs.is_control == 0), ["donor", "batch"]
57-
].value_counts(),
54+
s1_adata.obs.loc[:, ["donor", "batch", "is_control"]].value_counts(),
5855
flush=True,
5956
)
6057

6158
print("Old split 2 donor/batch mapping:", flush=True)
6259
print(
63-
s2_adata.obs.loc[
64-
(s2_adata.obs.is_control == 0), ["donor", "batch"]
65-
].value_counts(),
60+
s2_adata.obs.loc[:, ["donor", "batch", "is_control"]].value_counts(),
6661
flush=True,
6762
)
6863

6964
split_dict_s2 = get_donor_batch_map(u_adata, split_of_interest=2)
70-
s2_adata.obs.loc[(s2_adata.obs.is_control == 0), "batch"] = s2_adata.obs[
71-
"donor"
72-
].map(split_dict_s2)
73-
s2_adata.obs.loc[(s2_adata.obs.is_control == 0), "split"] = 2
65+
mask_s2 = s2_adata.obs.is_control == 0
66+
s2_adata.obs.loc[mask_s2, "batch"] = s2_adata.obs.loc[mask_s2, "donor"].map(
67+
split_dict_s2
68+
)
69+
s2_adata.obs.loc[mask_s2, "split"] = 2
7470

7571
print("New split 2 donor/batch mapping:", flush=True)
7672
print(
77-
s2_adata.obs.loc[
78-
(s2_adata.obs.is_control == 0), ["donor", "batch"]
79-
].value_counts(),
73+
s2_adata.obs.loc[:, ["donor", "batch", "is_control"]].value_counts(),
8074
flush=True,
8175
)
8276

0 commit comments

Comments
 (0)