Skip to content
Snippets Groups Projects
Commit 869b7f86 authored by Alán Muñoz's avatar Alán Muñoz
Browse files

fix(picker): update lineage format wrangling

parent 1c5117cd
No related branches found
No related tags found
No related merge requests found
...@@ -81,7 +81,8 @@ class picker(LineageProcess): ...@@ -81,7 +81,8 @@ class picker(LineageProcess):
idx = idx[valid_indices] idx = idx[valid_indices]
mothers_daughters = mothers_daughters[valid_lineage] mothers_daughters = mothers_daughters[valid_lineage]
return mothers_daughters, idx # return mothers_daughters, idx
return idx
def loc_lineage(self, kymo: pd.DataFrame, how: str, lineage=None): def loc_lineage(self, kymo: pd.DataFrame, how: str, lineage=None):
_, valid_indices = self.pick_by_lineage( _, valid_indices = self.pick_by_lineage(
...@@ -96,26 +97,33 @@ class picker(LineageProcess): ...@@ -96,26 +97,33 @@ class picker(LineageProcess):
def run(self, signals): def run(self, signals):
self.orig_signals = signals self.orig_signals = signals
indices = set(signals.index) indices = set(signals.index)
self.mothers, self.daughters = self.cells.mothers_daughters lineage = self.cells.mothers_daughters
for alg, op, *params in self.sequence: if lineage.any():
new_indices = tuple() self.mothers = lineage[:, :2]
if indices: self.daughters = lineage[:, [0, 2]]
if alg == "lineage":
param1 = params[0] for alg, op, *params in self.sequence:
new_indices = getattr(self, "pick_by_" + alg)( new_indices = tuple()
signals.loc[list(indices)], param1 if indices:
) if alg == "lineage":
else: param1 = params[0]
param1, *param2 = params new_indices = getattr(self, "pick_by_" + alg)(
new_indices = getattr(self, "pick_by_" + alg)( signals.loc[list(indices)], param1
signals.loc[list(indices)], param1, param2 )
) else:
param1, *param2 = params
if op == "union": new_indices = getattr(self, "pick_by_" + alg)(
# new_indices = new_indices.intersection(set(signals.index)) signals.loc[list(indices)], param1, param2
new_indices = indices.union(new_indices) )
new_indices = [tuple(x) for x in new_indices]
indices = indices.intersection(new_indices)
if op == "union":
new_indices = indices.union(new_indices)
indices = indices.intersection(new_indices)
else:
print("WARNING:Picker: No lineage assignment")
indices = np.array([])
return np.array(list(indices)) return np.array(list(indices))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment