Skip to content

Commit 618298d

Browse files
authored
Merge pull request #17 from LorenzLamm/make_pypi_deployment
Make pypi deployment
2 parents 3ad3671 + 002d105 commit 618298d

3 files changed

Lines changed: 28 additions & 6 deletions

File tree

src/membrain_stats/geodesic_distances/geodesic_ripleys.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ def geodesic_ripleys_folder(
1919
in_folder: str,
2020
out_folder: str,
2121
pixel_size_multiplier: float = None,
22+
pixel_size_multiplier_positions: float = None,
2223
start_classes: List[int] = [0],
2324
target_classes: List[int] = [0],
2425
ripley_type: str = "O",
2526
num_bins: int = 100,
27+
bin_size: float = None,
2628
method: str = "fast",
2729
exclude_edges: bool = False,
2830
edge_exclusion_width: float = 50.0,
@@ -34,7 +36,11 @@ def geodesic_ripleys_folder(
3436

3537
# load mehes
3638
mesh_dicts = [
37-
get_mesh_from_file(filename, pixel_size_multiplier=pixel_size_multiplier)
39+
get_mesh_from_file(
40+
filename,
41+
pixel_size_multiplier=pixel_size_multiplier,
42+
pixel_size_multiplier_positions=pixel_size_multiplier_positions,
43+
)
3844
for filename in filenames
3945
]
4046

@@ -65,7 +71,10 @@ def geodesic_ripleys_folder(
6571

6672
# aggregate computed values to output global ripley's statistics
6773
ripley_stats = aggregate_ripleys_stats(
68-
ripley_stats=ripley_stats, ripley_type=ripley_type, num_bins=num_bins
74+
ripley_stats=ripley_stats,
75+
ripley_type=ripley_type,
76+
num_bins=num_bins,
77+
bin_size=bin_size,
6978
)
7079

7180
# store in star file

src/membrain_stats/mesh_conversion_cli.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,7 @@ def geodesic_ripley(
387387
num_bins: int = Option( # noqa: B008
388388
50, help="Into how many bins should the ripley statistics be split?"
389389
),
390+
bin_size: float = Option(None, help="Size of the bins in Anstrom."), # noqa: B008
390391
method: str = Option( # noqa: B008
391392
"fast",
392393
help="Method to use for computing geodesic distances. Can be either 'exact' or 'fast'.",
@@ -425,6 +426,7 @@ def geodesic_ripley(
425426
target_classes=target_classes,
426427
ripley_type=ripley_type,
427428
num_bins=num_bins,
429+
bin_size=bin_size,
428430
method=method,
429431
exclude_edges=exclude_edges,
430432
edge_exclusion_width=edge_exclusion_width,

src/membrain_stats/utils/ripley_utils.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ def get_ripleys_inputs(ripley_stats: List[dict]):
3232
return distance_matrices, mesh_distances, barycentric_areas
3333

3434

35-
def get_xaxis_distances(distance_matrices: List[np.array], num_bins: int):
35+
def get_xaxis_distances(
36+
distance_matrices: List[np.array], num_bins: int, bin_size: float = None
37+
):
3638
# flatten protein-protein distances
3739
all_distances = np.concatenate(
3840
[np.ravel(distance_matrix) for distance_matrix in distance_matrices]
@@ -44,8 +46,14 @@ def get_xaxis_distances(distance_matrices: List[np.array], num_bins: int):
4446
all_distances = all_distances[sort_indices]
4547

4648
# split distances into bins
49+
if bin_size is not None:
50+
max_val = np.max(all_distances[all_distances < np.inf])
51+
bins = np.arange(0, max_val, bin_size)
52+
else:
53+
bins = num_bins
54+
4755
distance_histogram, bin_edges = np.histogram(
48-
all_distances[all_distances < np.inf], bins=num_bins
56+
all_distances[all_distances < np.inf], bins=bins
4957
)
5058
all_distances = bin_edges[:-1]
5159

@@ -147,7 +155,10 @@ def define_xy_values(
147155

148156

149157
def aggregate_ripleys_stats(
150-
ripley_stats: List[dict], ripley_type: str = "L", num_bins: int = 50
158+
ripley_stats: List[dict],
159+
ripley_type: str = "L",
160+
num_bins: int = 50,
161+
bin_size: float = None,
151162
):
152163
assert ripley_type in ["K", "L", "O"]
153164
# extract relevant arrays
@@ -188,7 +199,7 @@ def aggregate_ripleys_stats(
188199

189200
# split protein-protein distances into bins
190201
all_distances, distance_histogram = get_xaxis_distances(
191-
distance_matrices=distance_matrices, num_bins=num_bins
202+
distance_matrices=distance_matrices, num_bins=num_bins, bin_size=bin_size
192203
)
193204
protein_per_distance = distance_histogram / avg_starting_points
194205

0 commit comments

Comments
 (0)