I think the way we (or I?) implemented filling in NaNs in snipping can cause wrong assignment of NaNs with multiprocessing, or when multiple selections have been made before snipping.
|
if self.clr_weight_name: |
|
self._isnan1 = np.isnan( |
|
self.clr.bins()[self.clr_weight_name].fetch(region1_coords).values |
|
) |
|
self._isnan2 = np.isnan( |
|
self.clr.bins()[self.clr_weight_name].fetch(region2_coords).values |
|
) |
This block would overwrite the self._isnan1/2 arrays for each selection, while it should be stored in a dict for each region, perhaps.
I think the way we (or I?) implemented filling in NaNs in snipping can cause wrong assignment of NaNs with multiprocessing, or when multiple selections have been made before snipping.
cooltools/cooltools/api/snipping.py
Lines 353 to 359 in c610f43
This block would overwrite the self._isnan1/2 arrays for each selection, while it should be stored in a dict for each region, perhaps.