Skip to content

Commit fb27576

Browse files
committed
Switch from _is_na to pd.isna
1 parent 05344e5 commit fb27576

9 files changed

Lines changed: 28 additions & 24 deletions

File tree

src/scirpy/ir_dist/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import pandas as pd
2+
13
"""Compute distances between immune receptor sequences"""
24

35
from collections.abc import Sequence
@@ -8,7 +10,7 @@
810
from scipy.sparse import csr_matrix
911

1012
from scirpy.get import airr as get_airr
11-
from scirpy.util import DataHandler, _doc_params, _is_na, deprecated
13+
from scirpy.util import DataHandler, _doc_params, deprecated
1214

1315
from . import metrics
1416

@@ -237,7 +239,7 @@ def _get_unique_seqs(tmp_adata, chain_type):
237239
tmp_seqs = np.concatenate(
238240
[get_airr(tmp_adata, key, f"{chain_type}_{chain_id}").values for chain_id in ["1", "2"]] # type: ignore
239241
)
240-
return np.unique([x.upper() for x in tmp_seqs[~_is_na(tmp_seqs)]])
242+
return np.unique([x.upper() for x in tmp_seqs[~pd.isna(tmp_seqs)]])
241243

242244
for i, tmp_params in enumerate([params, params_ref]):
243245
if tmp_params is not None:

src/scirpy/pl/_vdj_usage.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44

55
import matplotlib.pyplot as plt
66
import numpy as np
7+
import pandas as pd
78

89
from scirpy.get import airr as get_airr
910
from scirpy.io import AirrCell
10-
from scirpy.util import DataHandler, _is_na, _normalize_counts
11+
from scirpy.util import DataHandler, _normalize_counts
1112

1213
from .styling import _init_ax
1314

@@ -163,7 +164,7 @@ def vdj_usage(
163164

164165
# Draw gene segments
165166
for i, (segment_size, gene) in list(enumerate(zip(segment_sizes, genes, strict=False)))[:max_segments][::-1]:
166-
if _is_na(gene):
167+
if pd.isna(gene):
167168
gene = "none"
168169
gene_tops[col_name][gene] = bottom + segment_size
169170
if draw_bars:
@@ -229,15 +230,15 @@ def vdj_usage(
229230
try:
230231
tmp_gene = ribbon[target_pair[0]]
231232
tmp_col = target_pair[0]
232-
tmp_gene = "none" if _is_na(tmp_gene) else tmp_gene
233+
tmp_gene = "none" if pd.isna(tmp_gene) else tmp_gene
233234
ribbon_color = gene_colors[tmp_col][tmp_gene]
234235
except KeyError:
235236
# Don't draw ribbon if the source gene is not drawn.
236237
continue
237238

238239
for col_name in target_pair:
239240
gene = ribbon[col_name]
240-
if _is_na(gene):
241+
if pd.isna(gene):
241242
gene = "none"
242243
if gene not in tmp_gene_tops[col_name]:
243244
gene = "other"

src/scirpy/tl/_chain_qc.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from scanpy import logging
88

99
from scirpy import get
10-
from scirpy.util import DataHandler, _is_na
10+
from scirpy.util import DataHandler
1111

1212

1313
@DataHandler.inject_param_docs()
@@ -176,10 +176,10 @@ def _chain_pairing(
176176

177177
logging.debug("Done initalizing")
178178

179-
mask_has_vj1 = ~_is_na(get.airr(params, "junction_aa", "VJ_1").values)
180-
mask_has_vdj1 = ~_is_na(get.airr(params, "junction_aa", "VDJ_1").values)
181-
mask_has_vj2 = ~_is_na(get.airr(params, "junction_aa", "VJ_2").values)
182-
mask_has_vdj2 = ~_is_na(get.airr(params, "junction_aa", "VDJ_2").values)
179+
mask_has_vj1 = ~pd.isna(get.airr(params, "junction_aa", "VJ_1").values)
180+
mask_has_vdj1 = ~pd.isna(get.airr(params, "junction_aa", "VDJ_1").values)
181+
mask_has_vj2 = ~pd.isna(get.airr(params, "junction_aa", "VJ_2").values)
182+
mask_has_vdj2 = ~pd.isna(get.airr(params, "junction_aa", "VDJ_2").values)
183183

184184
logging.debug("Done with masks")
185185

src/scirpy/tl/_clonal_expansion.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import numpy as np
66
import pandas as pd
77

8-
from scirpy.util import DataHandler, _is_na, _normalize_counts
8+
from scirpy.util import DataHandler, _normalize_counts
99

1010

1111
def _clip_and_count(
@@ -48,7 +48,7 @@ def _get_interval(value: int) -> str:
4848
.assign(tmp_count=lambda X: pd.Categorical(_get_interval(X["tmp_count"].values), categories=categories))
4949
)
5050
clipped_count = obs.merge(clonotype_counts, how="left", on=groupby_cols)["tmp_count"]
51-
clipped_count[_is_na(obs[target_col])] = "nan"
51+
clipped_count[pd.isna(obs[target_col])] = "nan"
5252
clipped_count.index = obs.index
5353

5454
if inplace:
@@ -170,7 +170,7 @@ def summarize_clonal_expansion(
170170
obs[tmp_col] = expansion
171171

172172
# filter NA values
173-
obs = obs.loc[~_is_na(obs[target_col]), :]
173+
obs = obs.loc[~pd.isna(obs[target_col]), :]
174174

175175
if summarize_by == "clone_id":
176176
obs.drop_duplicates(inplace=True)

src/scirpy/tl/_clonotype_modularity.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22
from typing import Literal
33

44
import numpy as np
5+
import pandas as pd
56
import scipy.sparse
67
import scipy.stats
78
from mudata import MuData
89
from scanpy import logging
910
from statsmodels.stats.multitest import fdrcorrection
1011

11-
from scirpy.util import DataHandler, _is_na, tqdm
12+
from scirpy.util import DataHandler, tqdm
1213
from scirpy.util._negative_binomial import fit_nbinom
1314
from scirpy.util.graph import _get_igraph_from_adjacency
1415

@@ -107,7 +108,7 @@ def clonotype_modularity(
107108
n_permutations = 1000 if permutation_test == "approx" else 10000
108109

109110
clonotype_per_cell = params.get_obs(target_col)
110-
cells_with_valid_clonotype = clonotype_per_cell[~_is_na(clonotype_per_cell.values)].index
111+
cells_with_valid_clonotype = clonotype_per_cell[~pd.isna(clonotype_per_cell.values)].index
111112
data_subset = params.data[cells_with_valid_clonotype.values, :]
112113
try:
113114
connectivities = data_subset.obsp[connectivity_key]

src/scirpy/tl/_diversity.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import numpy as np
55
import pandas as pd
66

7-
from scirpy.util import DataHandler, _is_na
7+
from scirpy.util import DataHandler
88

99

1010
def _shannon_entropy(counts: np.ndarray):
@@ -105,7 +105,7 @@ def alpha_diversity(
105105
"""
106106
params = DataHandler(adata, airr_mod)
107107
ir_obs = params.get_obs([target_col, groupby])
108-
ir_obs = ir_obs.loc[~_is_na(ir_obs[target_col]), :]
108+
ir_obs = ir_obs.loc[~pd.isna(ir_obs[target_col]), :]
109109
clono_counts = ir_obs.groupby([groupby, target_col], observed=True).size().reset_index(name="count")
110110

111111
diversity = {}

src/scirpy/tl/_group_abundance.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import pandas as pd
66

77
from scirpy.get import _has_ir
8-
from scirpy.util import DataHandler, _is_na, _normalize_counts
8+
from scirpy.util import DataHandler, _normalize_counts
99

1010

1111
def _group_abundance(
@@ -17,7 +17,7 @@ def _group_abundance(
1717
sort: Literal["count", "alphabetical"] | Sequence[str] = "count",
1818
) -> pd.DataFrame:
1919
# remove NA rows
20-
na_mask = _is_na(ir_obs[groupby]) | _is_na(ir_obs[target_col])
20+
na_mask = pd.isna(ir_obs[groupby]) | pd.isna(ir_obs[target_col])
2121
ir_obs = ir_obs.loc[~na_mask, :]
2222

2323
# normalize to fractions

src/scirpy/tl/_ir_query.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
from scirpy.ir_dist import MetricType, _get_metric_key
1212
from scirpy.ir_dist._clonotype_neighbors import ClonotypeNeighbors
13-
from scirpy.util import DataHandler, _is_na, read_cell_indices, tqdm
13+
from scirpy.util import DataHandler, read_cell_indices, tqdm
1414

1515
from ._clonotypes import _common_doc, _common_doc_parallelism, _doc_clonotype_definition, _validate_parameters
1616

@@ -407,7 +407,7 @@ def reduce_fun(x):
407407

408408
# convert nan-equivalents to real nan values.
409409
for col in df_res:
410-
df_res.loc[_is_na(df_res[col]), col] = None
410+
df_res.loc[pd.isna(df_res[col]), col] = None
411411

412412
if inplace:
413413
for col in df_res:

src/scirpy/tl/_repertoire_overlap.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from scipy.cluster import hierarchy as sc_hierarchy
66
from scipy.spatial import distance as sc_distance
77

8-
from scirpy.util import DataHandler, _is_na, _normalize_counts
8+
from scirpy.util import DataHandler, _normalize_counts
99

1010

1111
@DataHandler.inject_param_docs()
@@ -65,7 +65,7 @@ def repertoire_overlap(
6565
obs[normalize] = params.get_obs(normalize)
6666

6767
# Remove NA rows
68-
na_mask = _is_na(obs[groupby]) | _is_na(obs[target_col])
68+
na_mask = pd.isna(obs[groupby]) | pd.isna(obs[target_col])
6969
df = obs.loc[~na_mask, :].copy()
7070

7171
# Normalize to fractions

0 commit comments

Comments
 (0)