Skip to content
Merged
14 changes: 7 additions & 7 deletions src/celldega/pre/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -842,13 +842,6 @@ def add_custom_segmentation(
/ f"meta_gene_{segmentation_parameters['segmentation_approach']}.parquet",
)

save_cbg_gene_parquets(
base_path=path_landscape_files,
cbg=cbg_custom,
verbose=True,
segmentation_approach=segmentation_parameters["segmentation_approach"],
)

make_meta_cell_image_coord(
technology=segmentation_parameters["technology"],
path_transformation_matrix=str(
Expand All @@ -864,6 +857,13 @@ def add_custom_segmentation(
image_scale=image_scale,
)

save_cbg_gene_parquets(
base_path=path_landscape_files,
cbg=cbg_custom,
verbose=True,
segmentation_approach=segmentation_parameters["segmentation_approach"],
)

create_cluster_and_meta_cluster(
technology=segmentation_parameters["technology"],
path_landscape_files=path_landscape_files,
Expand Down
6 changes: 5 additions & 1 deletion src/celldega/pre/boundary_tile.py
Original file line number Diff line number Diff line change
Expand Up @@ -259,14 +259,18 @@ def get_cell_polygons(
)
cells_orig = gpd.GeoDataFrame(grouped, geometry="geometry")[["geometry"]]

cells_orig.rename(columns={"geometry": "geometry_micron"}, inplace=True)

# Transform geometries
cells_orig["geometry"] = batch_transform_geometries(
cells_orig["geometry"], transformation_matrix, 1
cells_orig["geometry_micron"], transformation_matrix, 1
)
cells_orig["GEOMETRY"] = cells_orig["geometry"].apply(
lambda geom: [[list(coord) for coord in geom.exterior.coords]]
)

cells_orig.set_geometry("geometry", inplace=True)

return cells_orig


Expand Down
10 changes: 7 additions & 3 deletions src/celldega/qc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def _process_custom_technology(base_path):
trx = pd.read_parquet(Path(base_path) / "transcripts.parquet")
trx_meta = trx[trx[cell_index] != -1][[transcript_index, cell_index, gene]]
cell_gdf = gpd.read_parquet(Path(base_path) / "cell_polygons.parquet")
cell_meta_gdf = gpd.read_parquet(Path(base_path) / "cell_metadata.parquet")
cell_meta_gdf = gpd.read_parquet(Path(base_path) / "cell_metadata_micron_space.parquet")

return cell_index, gene, transcript_index, trx_meta, cell_gdf, cell_meta_gdf

Expand All @@ -92,12 +92,15 @@ def _process_xenium_technology(base_path, segmentation_parameters):
trx = trx.rename(columns={"name": gene})
trx_meta = trx[trx[cell_index] != "UNASSIGNED"][[transcript_index, cell_index, gene]]

transformation_matrix = pd.read_csv(Path(base_path) / "micron_to_image_transform.csv", header=None, sep=" ").values
cell_gdf = get_cell_polygons(
technology=segmentation_parameters["technology"],
path_cell_boundaries=Path(base_path) / "cell_boundaries.parquet",
transformation_matrix = transformation_matrix
)

cell_gdf = gpd.GeoDataFrame(geometry=cell_gdf["geometry"])
cell_gdf = gpd.GeoDataFrame(geometry=cell_gdf["geometry_micron"])

cell_gdf["geometry"] = cell_gdf["geometry"].apply(get_largest_polygon)
cell_gdf.reset_index(inplace=True)
cell_gdf["area"] = cell_gdf["geometry"].area
Expand Down Expand Up @@ -461,14 +464,15 @@ def _create_barplot_visualization(
- cell_a_name: Name of cell type A
- cell_b_name: Name of cell type B
"""

orthogonal_data = pd.DataFrame(
{
"Technology": [i for i in cell_a_with_b_cell_specific_genes for _ in range(2)],
"Category": [
f"{cell_a_name} with {cell_b_name} genes",
f"{cell_b_name} with {cell_a_name} genes",
]
* 4,
* len(cell_a_with_b_cell_specific_genes.keys()),
"Count": [
gene
for pair in zip(
Expand Down
Loading