Skip to content

Commit ad98e58

Browse files
authored
Take into account that chromosomes may be removed when specifying manual reference (icbi-lab#135)
1 parent 83a9f05 commit ad98e58

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

src/infercnvpy/tl/_infercnv.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,15 @@ def infercnv(
9797
logging.warning(f"Skipped {np.sum(var_mask)} genes because they don't have a genomic position annotated. ") # type: ignore
9898
if exclude_chromosomes is not None:
9999
var_mask = var_mask | adata.var["chromosome"].isin(exclude_chromosomes)
100+
100101
tmp_adata = adata[:, ~var_mask]
102+
reference = _get_reference(adata, reference_key, reference_cat, reference)[:, ~var_mask]
101103

102104
expr = tmp_adata.X if layer is None else tmp_adata.layers[layer]
103105

104106
if scipy.sparse.issparse(expr):
105107
expr = expr.tocsr()
106108

107-
reference = _get_reference(tmp_adata, reference_key, reference_cat, reference)
108-
109109
var = tmp_adata.var.loc[:, ["chromosome", "start", "end"]] # type: ignore
110110

111111
chr_pos, chunks = zip(

tests/test_tools.py

+4
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ def test_infercnv(adata_oligodendroma, reference_key, reference_cat):
4949
cnv.tl.infercnv(adata_oligodendroma, reference_key=reference_key, reference_cat=reference_cat)
5050

5151

52+
def test_infercnv_manual_reference(adata_oligodendroma):
53+
cnv.tl.infercnv(adata_oligodendroma, reference=np.ones(adata_oligodendroma.shape[1]))
54+
55+
5256
@pytest.mark.skip(
5357
reason="rpy2 segfaults on the CI. I don't know why and don't have the time for a painful debugging session."
5458
)

0 commit comments

Comments
 (0)