Skip to content

Commit

Permalink
Merge pull request #83 from klarman-cell-observatory/boli
Browse files Browse the repository at this point in the history
Updated for spatial analysis
  • Loading branch information
yihming committed Dec 23, 2021
2 parents 0c7111b + 48a31c1 commit 8e2e597
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 6 deletions.
2 changes: 1 addition & 1 deletion pegasusio/multimodal_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ def filter_data(self,
unselected = []
mito_dict = DictWithDefault(mito_prefix)
for key, unidata in self.data.items():
if (key in focus_set) and (unidata.get_modality() == "rna"):
if (key in focus_set) and (unidata.get_modality() in {"rna", "visium"}):
if ("passed_qc" not in unidata.obs) or (not cache_passqc):
calc_qc_filters(unidata,
select_singlets = select_singlets,
Expand Down
7 changes: 4 additions & 3 deletions pegasusio/qc_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def calc_qc_filters(
--------
>>> calc_qc_filters(unidata, min_umis = 500, select_singlets = True)
"""
assert unidata.uns["modality"] == "rna"
assert unidata.uns["modality"] in {"rna", "visium"}

filters = []

Expand Down Expand Up @@ -129,13 +129,14 @@ def calc_qc_filters(
if max_umis is not None:
filters.append(unidata.obs["n_counts"] < max_umis)

if (mito_prefix is not None) and (percent_mito is not None):
if mito_prefix is not None:
mito_genes = unidata.var_names.map(lambda x: x.startswith(mito_prefix)).values.nonzero()[0]
unidata.obs["percent_mito"] = (
unidata.X[:, mito_genes].sum(axis=1).A1
/ np.maximum(unidata.obs["n_counts"].values, 1.0)
) * 100
filters.append(unidata.obs["percent_mito"] < percent_mito)
if percent_mito is not None:
filters.append(unidata.obs["percent_mito"] < percent_mito)

if len(filters) > 0:
selected = np.logical_and.reduce(filters)
Expand Down
2 changes: 1 addition & 1 deletion pegasusio/spatial_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def __init__(
feature_multiarrays: Optional[Dict[str, np.ndarray]] = None,
barcode_multigraphs: Optional[Dict[str, csr_matrix]] = None,
feature_multigraphs: Optional[Dict[str, csr_matrix]] = None,
cur_matrix: str = "raw.data",
cur_matrix: str = "X",
img: Optional[pd.DataFrame] = None,
) -> None:
assert metadata["modality"] == "visium"
Expand Down
2 changes: 1 addition & 1 deletion pegasusio/spatial_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ def load_visium_folder(input_path) -> MultimodalData:
barcode_metadata = pd.concat([rna_data.obs, spatial_metadata], axis=1)
feature_metadata = rna_data.var

matrices = {"raw.data": rna_data.X}
matrices = {"X": rna_data.X}
metadata = {"genome": rna_data.get_genome(), "modality": "visium"}

# Store “pxl_col_in_fullres” and ”pxl_row_in_fullres” as a 2D array,
Expand Down

0 comments on commit 8e2e597

Please sign in to comment.