From 90cfa3ca7476e8802038e1b9727fdf17eb762f00 Mon Sep 17 00:00:00 2001 From: Francesco Date: Tue, 27 Jan 2026 16:32:57 +0100 Subject: [PATCH 1/4] WIP: add a tool to annotate one mother-bud pair at the time --- cellacdc/docs/source/tooltips.rst | 12 ++++++++++++ cellacdc/gui.py | 27 +++++++++++++++++++++++++-- cellacdc/workers.py | 2 +- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/cellacdc/docs/source/tooltips.rst b/cellacdc/docs/source/tooltips.rst index 0d545570..4cfb8be2 100644 --- a/cellacdc/docs/source/tooltips.rst +++ b/cellacdc/docs/source/tooltips.rst @@ -159,6 +159,12 @@ :height: 16px :width: 16px +.. |annotateSingleMotherBudPairButton| image:: https://raw.githubusercontent.com/SchmollerLab/Cell_ACDC/refs/heads/main/cellacdc/resources/icons/lock_id_annotate_future.svg + :target: https://github.com/SchmollerLab/Cell_ACDC/blob/main/cellacdc/resources/icons/lock_id_annotate_future.svg + :alt: annotateSingleMotherBudPairButton icon + :height: 16px + :width: 16px + .. |segmentToolAction| image:: https://raw.githubusercontent.com/SchmollerLab/Cell_ACDC/refs/heads/main/cellacdc/resources/icons/segment.svg :target: https://github.com/SchmollerLab/Cell_ACDC/blob/main/cellacdc/resources/icons/segment.svg :alt: segmentToolAction icon @@ -478,6 +484,12 @@ Edit tools: Cell cycle analysis * **Automatically assign bud to mother (** |assignBudMothAutoAction| **):** Automatically assign buds to mothers using YeastMate. * **Manually edit cell cycle annotations table (** |editCcaToolAction| **"Ctrl+Shift+P"):** Manually edit cell cycle annotations table. * **Re-initialize cell cycle annotations table (** |reInitCcaAction| **):** Re-initialize cell cycle annotations table from this frame onward. NOTE: This will erase all the already annotated future frames information (from the current session not the saved information). +* **Annotate one mother-bud pair at the time (** |annotateSingleMotherBudPairButton| **"Y"):** + 1. Activate to annotate a single mother-bud pair at the time. + 2. Annotate past and future frames + 3. Deactivate to go back to the frame you were annotating before activating this tool. + + NOTE: When annotating future frames, the other cells will not be displayed and they will be ignored. Edit tools: Normal division: Lineage tree ----------------------------------------- diff --git a/cellacdc/gui.py b/cellacdc/gui.py index 3bafb0ad..f6ab42f6 100755 --- a/cellacdc/gui.py +++ b/cellacdc/gui.py @@ -1010,6 +1010,25 @@ def gui_createToolBars(self): self.checkableQButtonsGroup.addButton(self.setIsHistoryKnownButton) self.functionsNotTested3D.append(self.setIsHistoryKnownButton) + self.annotateSingleMotherBudPairButton = QToolButton(self) + self.annotateSingleMotherBudPairButton.setIcon( + QIcon(":lock_id_annotate_future.svg") + ) + self.annotateSingleMotherBudPairButton.setCheckable(True) + self.annotateSingleMotherBudPairButton.setShortcut('Y') + self.annotateSingleMotherBudPairButton.setVisible(False) + self.annotateSingleMotherBudPairButton.action = ccaToolBar.addWidget( + self.annotateSingleMotherBudPairButton + ) + self.checkableButtons.append(self.annotateSingleMotherBudPairButton) + self.widgetsWithShortcut['Annotate one mother-bud pair at the time'] = ( + self.annotateSingleMotherBudPairButton + ) + self.checkableQButtonsGroup.addButton( + self.annotateSingleMotherBudPairButton + ) + self.functionsNotTested3D.append(self.annotateSingleMotherBudPairButton) + ccaToolBar.addAction(self.assignBudMothAutoAction) ccaToolBar.addAction(self.editCcaToolAction) ccaToolBar.addAction(self.reInitCcaAction) @@ -14562,8 +14581,12 @@ def keyPressEvent(self, ev): return if ev.key() == Qt.Key_Q and self.debug: - # posData = self.data[self.pos_i] - printl(self.ax1.highlightingRectItems) + worker, thread = self.autoSaveActiveWorkers[-1] + printl(len(worker.dataQ)) + printl( + self.manualAnnotPastButton.isChecked(), + self.annotateSingleMotherBudPairButton.isChecked() + ) if not self.isDataLoaded: self.logger.warning( diff --git a/cellacdc/workers.py b/cellacdc/workers.py index 04dbab37..6b3b7392 100755 --- a/cellacdc/workers.py +++ b/cellacdc/workers.py @@ -836,7 +836,7 @@ def __init__(self, mutex, waitCond, savedSegmData): self.abortSaving = False self.isSaving = False self.isPaused = False - self.dataQ = deque(maxlen=5) + self.dataQ = deque(maxlen=2) self.isAutoSaveON = False self.debug = False From 9ad32511cd0162b08ed326beb425b9656afe307b Mon Sep 17 00:00:00 2001 From: Francesco Date: Tue, 27 Jan 2026 19:39:36 +0100 Subject: [PATCH 2/4] wip: setup annotate single mother bud tool --- cellacdc/_warnings.py | 28 +++++++++ cellacdc/gui.py | 142 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 164 insertions(+), 6 deletions(-) diff --git a/cellacdc/_warnings.py b/cellacdc/_warnings.py index b50d1987..5645c9d8 100644 --- a/cellacdc/_warnings.py +++ b/cellacdc/_warnings.py @@ -202,6 +202,34 @@ def warnPromptSegmentPointsLayerNotInit(qparent=None): ) return msg.cancel +def warnNoIDsInS(qparent=None): + from cellacdc import widgets + txt = html_utils.paragraph(f""" + None of the IDs present at this frame + are in 'S' phase.

+ This tool can be used only for mother-bud pairs.

+ Thank you for your patience! + """) + msg = widgets.myMessageBox(wrapText=False) + msg.warning( + qparent, 'No cells in "S" phase', txt, + ) + return msg.cancel + +def warnSelectedIDisNotInS(ID, qparent=None): + from cellacdc import widgets + txt = html_utils.paragraph(f""" + The selected ID {ID} cell cycle stage is not 'S'!

+ Make sure you are hovering a cell ID in 'S' (mother of bud), + when activating this mode.

+ Thank you for your patience! + """) + msg = widgets.myMessageBox(wrapText=False) + msg.warning( + qparent, 'Selected ID not in S', txt, + ) + return msg.cancel + def warnPromptSegmentModelNotInit(qparent=None): from cellacdc import widgets txt = html_utils.paragraph(f""" diff --git a/cellacdc/gui.py b/cellacdc/gui.py index f6ab42f6..81298187 100755 --- a/cellacdc/gui.py +++ b/cellacdc/gui.py @@ -3346,9 +3346,13 @@ def gui_connectEditActions(self): self.whitelistIDsToolbar.sigViewOGIDs.connect(self.whitelistViewOGIDs) - self.whitelistIDsToolbar.sigAddNewIDs.connect(self.whitelistAddNewIDsToggled) + self.whitelistIDsToolbar.sigAddNewIDs.connect( + self.whitelistAddNewIDsToggled + ) - self.whitelistIDsToolbar.sigLoadOGLabs.connect(self.whitelistLoadOGLabs_cb) + self.whitelistIDsToolbar.sigLoadOGLabs.connect( + self.whitelistLoadOGLabs_cb + ) self.whitelistIDsToolbar.sigTrackOGagainstPreviousFrame.connect( self.whitelistTrackOGagainstPreviousFrame_cb @@ -3370,6 +3374,10 @@ def gui_connectEditActions(self): self.addScaleBarAction.toggled.connect(self.addScaleBar) self.addTimestampAction.toggled.connect(self.addTimestamp) self.saveLabColormapAction.triggered.connect(self.saveLabelsColormap) + + self.annotateSingleMotherBudPairButton.toggled.connect( + self.annotateSingleMotherBudPair_cb + ) self.enableSmartTrackAction.toggled.connect(self.enableSmartTrack) # Brush/Eraser size action @@ -3381,18 +3389,26 @@ def gui_connectEditActions(self): self.modeComboBox.activated.connect(self.clearComboBoxFocus) self.equalizeHistPushButton.toggled.connect(self.equalizeHist) - self.editOverlayColorAction.triggered.connect(self.toggleOverlayColorButton) - self.editTextIDsColorAction.triggered.connect(self.toggleTextIDsColorButton) + self.editOverlayColorAction.triggered.connect( + self.toggleOverlayColorButton + ) + self.editTextIDsColorAction.triggered.connect( + self.toggleTextIDsColorButton + ) self.overlayColorButton.sigColorChanging.connect(self.changeOverlayColor) self.overlayColorButton.sigColorChanged.connect(self.saveOverlayColor) - self.textIDsColorButton.sigColorChanging.connect(self.updateTextAnnotColor) + self.textIDsColorButton.sigColorChanging.connect( + self.updateTextAnnotColor + ) self.textIDsColorButton.sigColorChanged.connect(self.saveTextIDsColors) self.setMeasurementsAction.triggered.connect(self.showSetMeasurements) self.addCustomMetricAction.triggered.connect(self.addCustomMetric) self.addCombineMetricAction.triggered.connect(self.addCombineMetric) - self.labelsGrad.colorButton.sigColorChanging.connect(self.updateBkgrColor) + self.labelsGrad.colorButton.sigColorChanging.connect( + self.updateBkgrColor + ) self.labelsGrad.colorButton.sigColorChanged.connect(self.saveBkgrColor) self.labelsGrad.sigGradientChangeFinished.connect(self.updateLabelsCmap) self.labelsGrad.sigGradientChanged.connect(self.ticksCmapMoved) @@ -13032,6 +13048,102 @@ def copyLostObjContour_cb(self, checked): self.lostObjImage = np.zeros_like(self.currentLab2D) self.updateLostContoursImage(0) + def getHoveredMotherBudIDs(self): + posData = self.data[self.pos_i] + + hoverID = self.getLastHoveredID() + try: + ccs = posData.cca_df.loc[hoverID, 'cell_cycle_stage'] + except Exception as err: + ccs = 'G1' + + cca_df = posData.cca_df + cca_df_S = cca_df[cca_df['cell_cycle_stage'] == 'S'] + IDs_in_S = cca_df_S.index.to_list() + + if not IDs_in_S: + _warnings.warnNoIDsInS(qparent=self) + return + + while ccs != 'S': + win = apps.QLineEditDialog( + title='Selected ID not in S', + msg='The cell cycle stage of the selected ID is not "S"\n' + 'Enter the ID (mother or bud) ' + 'that you want to annotate.', + parent=self, + isInteger=True, + allowedValues=IDs_in_S, + defaultTxt=IDs_in_S[0] + ) + win.exec_() + if win.cancel: + return + + hoverID = win.EntryID + ccs = cca_df.loc[hoverID, 'cell_cycle_stage'] + + relationship = posData.cca_df.loc[hoverID, 'relationship'] + relative_ID = posData.cca_df.loc[hoverID, 'relative_ID'] + mothID = hoverID if relationship == 'mother' else relative_ID + budID = hoverID if relationship == 'bud' else relative_ID + + return mothID, budID + + def annotateSingleMotherBudPair_cb(self, checked): + posData = self.data[self.pos_i] + self.modeComboBox.setDisabled(checked) + if checked: + self.store_data() + + self.annotateSingleMothBudPairState = {} + mothIDbudID = self.getHoveredMotherBudIDs() + + if mothIDbudID is None: + self.annotateSingleMotherBudPairButton.setChecked(False) + return + + mothID, budID = mothIDbudID + + self.logger.info( + 'Setting annotation mode for single mother-bud pair = ' + f'{(mothID, budID)}, at frame n. {posData.frame_i+1}' + ) + + self.annotateSingleMothBudPairState['mother_ID'] = ( + mothID + ) + self.annotateSingleMothBudPairState['bud_ID'] = ( + budID + ) + self.annotateSingleMothBudPairState['frame_i_to_restore'] = ( + posData.frame_i + ) + + self.ax1.sigRangeChanged.connect(self.highlightManualAnnotMode) + self.ax1.setHighlighted(True, color='green') + else: + frame_to_restore = self.manualAnnotState.get('frame_i_to_restore') + if frame_to_restore is None: + return + + self.store_data() + self.store_manual_annot_data() + + last_tracked_i_to_restore = self.manualAnnotState['last_tracked_i'] + self.manualAnnotRestoreLastTrackedFrame(last_tracked_i_to_restore) + + self.logger.info( + f'Restoring view to frame n. {posData.frame_i+1}...' + ) + posData.frame_i = frame_to_restore + self.get_data() + self.updateAllImages() + self.updateScrollbars() + self.ax1.sigRangeChanged.disconnect() + self.ax1.setHighlighted(False) + QTimer.singleShot(150, self.autoRange) + def manualAnnotPast_cb(self, checked): posData = self.data[self.pos_i] if checked: @@ -27994,6 +28106,24 @@ def setTitleText( self, lost_IDs=None, new_IDs=None, IDs_with_holes=None, tracked_lost_IDs=None ): + if self.annotateSingleMotherBudPairButton.isChecked(): + mothID = self.annotateSingleMothBudPairState.get( + 'mother_ID' + ) + budID = self.annotateSingleMothBudPairState.get( + 'bud_ID' + ) + frame_to_restore = self.annotateSingleMothBudPairState.get( + 'frame_i_to_restore' + ) + txt = ( + f'Annotating mother-bud pair {(mothID, budID)} ' + f'since frame n. {frame_to_restore+1}' + ) + htmlTxt = f'{txt}' + self.titleLabel.setText(htmlTxt) + return + if self.manualAnnotPastButton.isChecked(): lockedID = self.editIDspinbox.value() frame_to_restore = self.manualAnnotState.get('frame_i_to_restore') From 88bea46ce9e82de01c312b4e3d2ec4eca9d30aa8 Mon Sep 17 00:00:00 2001 From: Francesco Date: Wed, 28 Jan 2026 17:27:36 +0100 Subject: [PATCH 3/4] feat: annotate single mother-bud pair tool, closes #985 --- cellacdc/cca_functions.py | 34 +++ cellacdc/gui.py | 245 ++++++++++++++++---- cellacdc/load.py | 35 ++- cellacdc/myutils.py | 3 +- global_cca_df_with_single_moth_bud_pair.csv | 124 ++++++++++ 5 files changed, 380 insertions(+), 61 deletions(-) create mode 100644 global_cca_df_with_single_moth_bud_pair.csv diff --git a/cellacdc/cca_functions.py b/cellacdc/cca_functions.py index cd87389b..2ca15a5a 100755 --- a/cellacdc/cca_functions.py +++ b/cellacdc/cca_functions.py @@ -864,7 +864,41 @@ def add_generation_num_of_relative_ID( acdc_df_with_col = acdc_df_by_frame_i.reset_index() return acdc_df_with_col + +def get_IDs_gen_num_will_divide(cca_df): + """Get a list of (ID, gen_num) of cells that require `will_divide`>0 + + Parameters + ---------- + cca_df : pd.DataFrame + DataFrame with cc annotations for every frame and Cell_ID + Returns + ------- + list of tuples + List of (ID, gen_num) of cells that require `will_divide`>0 + """ + + cca_df_buds = cca_df.query('relationship == "bud"') + IDs_gen_num_will_divide = [] + for budID, bud_cca_df in cca_df_buds.groupby('Cell_ID'): + all_gen_nums = cca_df.query(f'Cell_ID == {budID}')['generation_num'] + if not (all_gen_nums > 0).any(): + # bud division is annotated in the future + continue + + mothID = int(bud_cca_df['relative_ID'].iloc[0]) + first_frame_bud = bud_cca_df['frame_i'].iloc[0] + gen_num_moth = cca_df.query( + f'(frame_i == {first_frame_bud}) & (Cell_ID == {mothID})' + )['generation_num'].iloc[0] + + IDs_gen_num_will_divide.append((mothID, gen_num_moth)) + IDs_gen_num_will_divide.append((budID, 0)) + + return IDs_gen_num_will_divide + + def get_IDs_gen_num_will_divide_wrong(global_cca_df): """Get a list of (ID, gen_num) of cells whose `will_divide`>0 but the next generation does not exist (i.e., `will_divide` is wrong) diff --git a/cellacdc/gui.py b/cellacdc/gui.py index 81298187..6709272b 100755 --- a/cellacdc/gui.py +++ b/cellacdc/gui.py @@ -1568,6 +1568,7 @@ def autoSaveWorkerTimerCallback(self, worker, posData): worker._enqueue(posData) def autoSaveWorkerDone(self): + self.logger.info('Autosaving done.') self.setStatusBarLabel(log=False) def ccaCheckerWorkerDone(self): @@ -13068,7 +13069,8 @@ def getHoveredMotherBudIDs(self): while ccs != 'S': win = apps.QLineEditDialog( title='Selected ID not in S', - msg='The cell cycle stage of the selected ID is not "S"\n' + msg='The cell cycle stage of the selected ID ' + 'is not "S".

' 'Enter the ID (mother or bud) ' 'that you want to annotate.', parent=self, @@ -13088,7 +13090,7 @@ def getHoveredMotherBudIDs(self): mothID = hoverID if relationship == 'mother' else relative_ID budID = hoverID if relationship == 'bud' else relative_ID - return mothID, budID + return int(mothID), int(budID) def annotateSingleMotherBudPair_cb(self, checked): posData = self.data[self.pos_i] @@ -13110,6 +13112,13 @@ def annotateSingleMotherBudPair_cb(self, checked): f'{(mothID, budID)}, at frame n. {posData.frame_i+1}' ) + self.annotateSingleMothBudPairState['doWarnLostObj'] = ( + self.warnLostCellsAction.isChecked() + ) + self.annotateSingleMothBudPairState['doAnnotateLostObjs'] = ( + self.annotLostObjsToggle.isChecked() + ) + self.annotateSingleMothBudPairState['mother_ID'] = ( mothID ) @@ -13119,29 +13128,49 @@ def annotateSingleMotherBudPair_cb(self, checked): self.annotateSingleMothBudPairState['frame_i_to_restore'] = ( posData.frame_i ) + self.annotateSingleMothBudPairState['last_cca_frame_i'] = ( + self.navigateScrollBar.maximum()-1 + ) + + self.warnLostCellsAction.setChecked(False) + self.annotLostObjsToggle.setChecked(False) self.ax1.sigRangeChanged.connect(self.highlightManualAnnotMode) self.ax1.setHighlighted(True, color='green') else: - frame_to_restore = self.manualAnnotState.get('frame_i_to_restore') + frame_to_restore = self.annotateSingleMothBudPairState.get( + 'frame_i_to_restore' + ) if frame_to_restore is None: return - self.store_data() - self.store_manual_annot_data() - - last_tracked_i_to_restore = self.manualAnnotState['last_tracked_i'] - self.manualAnnotRestoreLastTrackedFrame(last_tracked_i_to_restore) + self.store_single_mother_bud_pair_data() self.logger.info( f'Restoring view to frame n. {posData.frame_i+1}...' ) posData.frame_i = frame_to_restore + last_cca_frame_i_to_restore = ( + self.annotateSingleMothBudPairState['last_cca_frame_i'] + ) + self.annotateSingleMotherBudPairRestoreLastCcaFrame( + last_cca_frame_i_to_restore + ) self.get_data() self.updateAllImages() self.updateScrollbars() self.ax1.sigRangeChanged.disconnect() self.ax1.setHighlighted(False) + + self.warnLostCellsAction.setChecked( + self.annotateSingleMothBudPairState['doWarnLostObj'] + ) + self.annotLostObjsToggle.setChecked( + self.annotateSingleMothBudPairState['doAnnotateLostObjs'] + ) + + self.annotateSingleMothBudPairState = {} + QTimer.singleShot(150, self.autoRange) def manualAnnotPast_cb(self, checked): @@ -13238,18 +13267,32 @@ def highlightManualAnnotMode(self, viewBox, viewRange): self.ax1.setHighlighted(True) def updateHighlightedAxis(self): - if not self.manualAnnotPastButton.isChecked(): - return + color = None + if self.manualAnnotPastButton.isChecked(): + frame_to_restore = self.manualAnnotState.get('frame_i_to_restore') + posData = self.data[self.pos_i] + if posData.frame_i == frame_to_restore: + color = 'green' + elif posData.frame_i < frame_to_restore: + color = 'gold' + else: + color = 'red' - frame_to_restore = self.manualAnnotState.get('frame_i_to_restore') - posData = self.data[self.pos_i] - if posData.frame_i == frame_to_restore: - color = 'green' - elif posData.frame_i < frame_to_restore: - color = 'gold' - else: - color = 'red' + if self.annotateSingleMotherBudPairButton.isChecked(): + frame_to_restore = self.annotateSingleMothBudPairState.get( + 'frame_i_to_restore' + ) + posData = self.data[self.pos_i] + if posData.frame_i == frame_to_restore: + color = 'green' + elif posData.frame_i < frame_to_restore: + color = 'gold' + else: + color = 'red' + if color is None: + return + self.ax1.setHighlightingRectItemsColor(color) def updateLostNewCurrentIDs(self): @@ -14693,12 +14736,8 @@ def keyPressEvent(self, ev): return if ev.key() == Qt.Key_Q and self.debug: - worker, thread = self.autoSaveActiveWorkers[-1] - printl(len(worker.dataQ)) - printl( - self.manualAnnotPastButton.isChecked(), - self.annotateSingleMotherBudPairButton.isChecked() - ) + posData = self.data[self.pos_i] + printl(posData.new_IDs) if not self.isDataLoaded: self.logger.warning( @@ -18632,8 +18671,16 @@ def manualAnnotRestoreLastTrackedFrame(self, last_tracked_i_to_restore): posData.allData_li[frame_i] = data_frame_i - self.navigateScrollBar.setMaximum(last_tracked_i_to_restore+1) - self.navSpinBox.setMaximum(last_tracked_i_to_restore+1) + posData.last_tracked_i = last_tracked_i_to_restore + self.setNavigateScrollBarMaximum() + + def annotateSingleMotherBudPairRestoreLastCcaFrame( + self, cca_frame_i_to_restore + ): + if self.navigateScrollBar.maximum()-1 <= cca_frame_i_to_restore: + return + + self.resetCcaFuture(cca_frame_i_to_restore+1) def setNavigateScrollBarMaximum(self): posData = self.data[self.pos_i] @@ -20509,6 +20556,8 @@ def initGlobalAttr(self): self.timestampDialog = None self.scaleBarDialog = None self.countObjsWindow = None + + self.annotateSingleMothBudPairState = {} # Second channel used by cellpose self.secondChannelName = None @@ -20889,6 +20938,40 @@ def store_manual_annot_data( # data_frame_i['manually_edited_lab']['zoom_slice'] = zoom_slice + def store_single_mother_bud_pair_data(self, cca_df=None): + posData = self.data[self.pos_i] + data_frame_i = posData.allData_li[posData.frame_i] + + if cca_df is None: + cca_df = data_frame_i['acdc_df'] + + if cca_df is None: + return + + mothID = self.annotateSingleMothBudPairState.get('mother_ID') + if mothID is None: + return + + budID = self.annotateSingleMothBudPairState['bud_ID'] + single_moth_bud_pair_cca = cca_df.loc[[mothID, budID]].copy() + stored_moth_bud_pairs_cca = data_frame_i.get('moth_bud_pairs_cca') + if stored_moth_bud_pairs_cca is None: + data_frame_i['moth_bud_pairs_cca'] = single_moth_bud_pair_cca + else: + if mothID in stored_moth_bud_pairs_cca.index: + stored_moth_bud_pairs_cca = stored_moth_bud_pairs_cca.drop( + index=mothID + ) + + if budID in stored_moth_bud_pairs_cca.index: + stored_moth_bud_pairs_cca = stored_moth_bud_pairs_cca.drop( + index=budID + ) + + data_frame_i['moth_bud_pairs_cca'] = pd.concat( + [stored_moth_bud_pairs_cca, single_moth_bud_pair_cca], + ).drop_duplicates() + @exception_handler def store_data( self, pos_i=None, enforce=True, debug=False, mainThread=True, @@ -20985,6 +21068,7 @@ def store_data( if not mainThread: self.pointsLayerDataToDf(posData) + self.store_cca_df( pos_i=pos_i, mainThread=mainThread, autosave=autosave, store_cca_df_copy=store_cca_df_copy @@ -21216,7 +21300,7 @@ def checkCcaPastFramesNewIDs(self): # Remove IDs found in past frames from new_IDs list newIDs = np.array(posData.new_IDs, dtype=np.uint32) - mask_index = np.in1d(newIDs, cca_df_i.index) + mask_index = np.isin(newIDs, cca_df_i.index) posData.new_IDs = list(newIDs[~mask_index]) if not posData.new_IDs: return found_cca_df_IDs @@ -21350,6 +21434,28 @@ def _getCcaCostMatrix( return cost + def getSingleMotherBudPairCca_df(self): + if not self.annotateSingleMotherBudPairButton.isChecked(): + return + + posData = self.data[self.pos_i] + start_frame_i = ( + self.annotateSingleMothBudPairState['frame_i_to_restore'] + ) + + if posData.frame_i <= start_frame_i: + # Past frame --> no need to get cca_df + return + + mothID = self.annotateSingleMothBudPairState['mother_ID'] + budID = self.annotateSingleMothBudPairState['bud_ID'] + + # Get previous dataframe + acdc_df = posData.allData_li[posData.frame_i-1]['acdc_df'] + prev_cca_df = acdc_df[self.cca_df_colnames].loc[[mothID, budID]].copy() + + return prev_cca_df + def autoCca_df(self, enforceAll=False): """ Assign each bud to a mother with scipy linear sum assignment @@ -21375,6 +21481,13 @@ def autoCca_df(self, enforceAll=False): proceed = self.warnFrameNeverVisitedSegmMode() return notEnoughG1Cells, proceed + # Get temporary cca_df with single mother-bud pair mode active + cca_df = self.getSingleMotherBudPairCca_df() + if cca_df is not None: + posData.cca_df = cca_df + self.store_single_mother_bud_pair_data(cca_df=cca_df) + return notEnoughG1Cells, proceed + # Determine if this is the last visited frame for repeating # bud assignment on non manually correct (corrected_on_frame_i>0) buds. # The idea is that the user could have assigned division on a cell @@ -21385,15 +21498,33 @@ def autoCca_df(self, enforceAll=False): curr_df, enforceAll=enforceAll ) - frameAlreadyAnnotated = ( + # Get previous dataframe + acdc_df = posData.allData_li[posData.frame_i-1]['acdc_df'] + prev_cca_df = acdc_df[self.cca_df_colnames].copy() + + # When using "single mother-bud pair annotation" mode, + # there might be some IDs that do not have annotations yet + # --> not fully annotated frame + missingIDs = [] + if posData.cca_df is not None: + missingIDs = [ + ID for ID in posData.IDs + if ID not in posData.cca_df.index + and ID in prev_cca_df.index + ] + + frameAlreadyFullyAnnotated = ( posData.cca_df is not None and not enforceAll and not isLastVisitedAgain + and not missingIDs ) # Use stored cca_df and do not modify it with automatic stuff - if frameAlreadyAnnotated: + if frameAlreadyFullyAnnotated: return notEnoughG1Cells, proceed + self.updateLostNewCurrentIDs() + # Keep only correctedAssignIDs if requested # For the last visited frame we perform assignment again only on # IDs where we didn't manually correct assignment @@ -21419,22 +21550,24 @@ def autoCca_df(self, enforceAll=False): notEnoughG1Cells = False proceed = False return notEnoughG1Cells, proceed - - # Get previous dataframe - acdc_df = posData.allData_li[posData.frame_i-1]['acdc_df'] - prev_cca_df = acdc_df[self.cca_df_colnames].copy() - + if posData.cca_df is None: posData.cca_df = prev_cca_df.copy() else: posData.cca_df = curr_df[self.cca_df_colnames].copy() + if missingIDs: + # Add missing IDs from previous cca_df + posData.cca_df.loc[missingIDs] = prev_cca_df.loc[missingIDs] + + posData.cca_df = posData.cca_df.dropna() + # concatenate new IDs found in past frames (before frame_i-1) if found_cca_df_IDs is not None: cca_df = pd.concat([posData.cca_df, *found_cca_df_IDs]) unique_idx = ~cca_df.index.duplicated(keep='first') posData.cca_df = cca_df[unique_idx] - + # If there are no new IDs we are done if not posData.new_IDs: proceed = True @@ -21744,7 +21877,7 @@ def set_2Dlab(self, lab2D): else: posData.lab = lab2D - def get_labels( + def get_labels_array( self, from_store=False, frame_i=None, @@ -21825,7 +21958,7 @@ def _get_editID_info(self, df): for row in manually_edited_df.itertuples() ] return editID_info - + def apply_manual_edits_to_lab_if_needed(self, lab): posData = self.data[self.pos_i] data_frame_i = posData.allData_li[posData.frame_i] @@ -21869,7 +22002,7 @@ def _get_data_unvisited(self, posData, debug=False, lin_tree_init=True,): elif str(self.modeComboBox.currentText()) == 'Normal division: Lineage tree': # Warn that we are visiting a frame that was never segm-checked - # on cell cycle analysis mode + # on Normal division: Lineage tree mode msg = widgets.myMessageBox() txt = html_utils.paragraph( 'Segmentation and Tracking was never checked from ' @@ -21885,10 +22018,8 @@ def _get_data_unvisited(self, posData, debug=False, lin_tree_init=True,): return proceed_cca, never_visited # Requested frame was never visited before. Load from HDD - labels = self.get_labels() - posData.lab = self.apply_manual_edits_to_lab_if_needed( - labels - ) + lab = self.get_labels_array() + posData.lab = self.apply_manual_edits_to_lab_if_needed(lab) posData.rp = skimage.measure.regionprops(posData.lab) self.setManualBackgroundLab() @@ -21933,7 +22064,7 @@ def _get_data_unvisited(self, posData, debug=False, lin_tree_init=True,): def _get_data_visited(self, posData, debug=False, lin_tree_init=True,): # Requested frame was already visited. Load from RAM. never_visited = False - posData.lab = self.get_labels(from_store=True) + posData.lab = self.get_labels_array(from_store=True) posData.rp = skimage.measure.regionprops(posData.lab) df = posData.allData_li[posData.frame_i]['acdc_df'] if df is None: @@ -22144,8 +22275,8 @@ def initCca(self): 'No, stay on current frame') ) if goToFrameButton == msg.clickedButton: - self.addMissingIDs_cca_df(posData) - self.store_cca_df() + # self.addMissingIDs_cca_df(posData) + # self.store_cca_df() msg = 'Looking good!' self.last_cca_frame_i = last_cca_frame_i posData.frame_i = last_cca_frame_i @@ -22415,7 +22546,9 @@ def resetWillDivideInfo(self): if global_cca_df is None: return + global_cca_df.to_csv('global_cca_df_with_single_moth_bud_pair.csv') global_cca_df = load._fix_will_divide(global_cca_df) + self.storeFromConcatCcaDf(global_cca_df) def ccaCheckerStopChecking(self): @@ -22534,9 +22667,8 @@ def get_cca_df(self, frame_i=None, return_df=False, debug=False): cca_df = None i = posData.frame_i if frame_i is None else frame_i df = posData.allData_li[i]['acdc_df'] - if df is not None: - if 'cell_cycle_stage' in df.columns: - cca_df = df[self.cca_df_colnames].copy() + if df is not None and 'cell_cycle_stage' in df.columns: + cca_df = df[self.cca_df_colnames].copy() if cca_df is None and self.isSnapshot: cca_df = self.getBaseCca_df() @@ -22544,6 +22676,12 @@ def get_cca_df(self, frame_i=None, return_df=False, debug=False): if cca_df is not None: cca_df = cca_df.dropna() + else: + moth_bud_pairs_cca = ( + posData.allData_li[i].get('moth_bud_pairs_cca', None) + ) + if moth_bud_pairs_cca is not None: + cca_df = moth_bud_pairs_cca if return_df: return cca_df @@ -22666,11 +22804,16 @@ def store_cca_df( if store_cca_df_copy and cca_df is not None: posData.allData_li[i]['cca_df'] = cca_df.copy() + if self.annotateSingleMotherBudPairButton.isChecked(): + self.store_single_mother_bud_pair_data(cca_df=cca_df) + if autosave: self.enqAutosave() self.enqCcaIntegrityChecker() - def lin_tree_to_acdc_df(self, force_all=False, ignore=set(), force=set(), specific=set()): + def lin_tree_to_acdc_df( + self, force_all=False, ignore=set(), force=set(), specific=set() + ): """ Syncs the lineage tree DataFrame with the acdc_df DataFrame. By default, it will only try to sync frames which have not been synced before. This can be changed using the optional arguments. @@ -28050,7 +28193,7 @@ def getPrevFrameIDs(self, current_frame_i=None): return prevIDs # IDs in previous frame were not stored --> load prev lab from HDD - prev_lab = self.get_labels( + prev_lab = self.get_labels_array( from_store=False, frame_i=prev_frame_i, return_copy=False @@ -28660,7 +28803,7 @@ def getTrackedLostIDs(self, prev_lab=None, IDs_in_frames=None, frame_i=None): frame_i = posData.frame_i if prev_lab is None: - prev_lab = self.get_labels( + prev_lab = self.get_labels_array( from_store=True, frame_i=posData.frame_i-1, return_existing=False, diff --git a/cellacdc/load.py b/cellacdc/load.py index 051a6608..f107e118 100755 --- a/cellacdc/load.py +++ b/cellacdc/load.py @@ -517,8 +517,7 @@ def _fix_corrected_assignment_i(acdc_df: pd.DataFrame): def _fix_will_divide(acdc_df): """Resetting annotaions in GUI sometimes does not fully reset `will_divide` - column. Here we set `will_divide` back to 0 for those cells whose - next generation does not exist (division was not annotated) + column. Here we reset `will_divide` Parameters ---------- @@ -534,19 +533,22 @@ def _fix_will_divide(acdc_df): if 'cell_cycle_stage' not in acdc_df.columns: return acdc_df - required_cols = ['frame_i', 'Cell_ID', 'generation_num', 'will_divide'] + required_cols = [ + 'frame_i', 'Cell_ID', 'generation_num', 'will_divide', 'relationship', + 'relative_ID' + ] cca_df_mask = ~acdc_df['cell_cycle_stage'].isna() cca_df = acdc_df[cca_df_mask].reset_index()[required_cols] - IDs_will_divide_wrong = ( - cca_functions.get_IDs_gen_num_will_divide_wrong(cca_df) - ) - if not IDs_will_divide_wrong: + IDs_gen_num_will_divide = cca_functions.get_IDs_gen_num_will_divide(cca_df) + + if not IDs_gen_num_will_divide: return acdc_df - cca_df = cca_df.reset_index().set_index(['Cell_ID', 'generation_num']) - cca_df.loc[IDs_will_divide_wrong, 'will_divide'] = 0 + cca_df['will_divide'] = 0.0 + cca_df = cca_df.reset_index().set_index(['Cell_ID', 'generation_num']) + cca_df.loc[IDs_gen_num_will_divide, 'will_divide'] = 1.0 cca_df = cca_df.reset_index() acdc_df = acdc_df.reset_index() @@ -556,6 +558,21 @@ def _fix_will_divide(acdc_df): cca_df_index = cca_df_mask[cca_df_mask].index acdc_df.loc[cca_df_index, 'will_divide'] = cca_df['will_divide'] + # IDs_will_divide_wrong = ( + # cca_functions.get_IDs_gen_num_will_divide_wrong(cca_df) + # ) + # if IDs_will_divide_wrong: + # cca_df = cca_df.reset_index().set_index(['Cell_ID', 'generation_num']) + # cca_df.loc[IDs_will_divide_wrong, 'will_divide'] = 0 + # cca_df = cca_df.reset_index() + # acdc_df = acdc_df.reset_index() + + # cca_df = cca_df.set_index(['frame_i', 'Cell_ID']) + # acdc_df = acdc_df.set_index(['frame_i', 'Cell_ID']) + + # cca_df_index = cca_df_mask[cca_df_mask].index + # acdc_df.loc[cca_df_index, 'will_divide'] = cca_df['will_divide'] + return acdc_df def _add_missing_columns(acdc_df): diff --git a/cellacdc/myutils.py b/cellacdc/myutils.py index 8fad6fdd..5806ea69 100644 --- a/cellacdc/myutils.py +++ b/cellacdc/myutils.py @@ -5001,7 +5001,8 @@ def get_empty_stored_data_dict(): 'rois': [], 'delMasks': [], 'delIDsROI': [], 'state': [] }, 'IDs': [], - 'manually_edited_lab': {'lab': {}, 'zoom_slice': None} + 'manually_edited_lab': {'lab': {}, 'zoom_slice': None}, + 'single_moth_bud_pair_cca': None, } def iterate_along_axes(arr, axes, arr_ndim=None): diff --git a/global_cca_df_with_single_moth_bud_pair.csv b/global_cca_df_with_single_moth_bud_pair.csv new file mode 100644 index 00000000..fe52ab37 --- /dev/null +++ b/global_cca_df_with_single_moth_bud_pair.csv @@ -0,0 +1,124 @@ +frame_i,Cell_ID,cell_cycle_stage,generation_num,relative_ID,relationship,emerg_frame_i,division_frame_i,is_history_known,corrected_on_frame_i,will_divide,daughter_disappears_before_division,disappears_before_division,time_minutes,time_hours,generation_num_tree,parent_ID_tree,root_ID_tree,sister_ID_tree,is_cell_dead,is_cell_excluded,was_manually_edited,x_centroid,y_centroid,num_objects,end_of_cell_cycle_frame_i,cell_area_pxl,cell_vol_vox,cell_area_um2,cell_vol_fl,basename,Dia_Ph3_autoBkgr_bkgrVal_median,Dia_Ph3_autoBkgr_bkgrVal_mean,Dia_Ph3_autoBkgr_bkgrVal_q75,Dia_Ph3_autoBkgr_bkgrVal_q25,Dia_Ph3_autoBkgr_bkgrVal_q95,Dia_Ph3_autoBkgr_bkgrVal_q05,Dia_Ph3_dataPrepBkgr_bkgrVal_median,Dia_Ph3_dataPrepBkgr_bkgrVal_mean,Dia_Ph3_dataPrepBkgr_bkgrVal_q75,Dia_Ph3_dataPrepBkgr_bkgrVal_q25,Dia_Ph3_dataPrepBkgr_bkgrVal_q95,Dia_Ph3_dataPrepBkgr_bkgrVal_q05,Dia_Ph3_mean,Dia_Ph3_sum,Dia_Ph3_amount_autoBkgr,Dia_Ph3_amount_dataPrepBkgr,Dia_Ph3_amount_manualBkgr,Dia_Ph3_mean_manualBkgr,Dia_Ph3_median,Dia_Ph3_min,Dia_Ph3_max,Dia_Ph3_q25,Dia_Ph3_q75,Dia_Ph3_q05,Dia_Ph3_q95,Dia_Ph3_concentration_autoBkgr_from_vol_vox,Dia_Ph3_concentration_dataPrepBkgr_from_vol_vox,Dia_Ph3_concentration_autoBkgr_from_vol_fl,Dia_Ph3_concentration_dataPrepBkgr_from_vol_fl,major_axis_length,minor_axis_length,inertia_tensor_eigvals-0,inertia_tensor_eigvals-1,equivalent_diameter,moments-0-0,moments-0-1,moments-0-2,moments-0-3,moments-1-0,moments-1-1,moments-1-2,moments-1-3,moments-2-0,moments-2-1,moments-2-2,moments-2-3,moments-3-0,moments-3-1,moments-3-2,moments-3-3,area,solidity,extent,inertia_tensor-0-0,inertia_tensor-0-1,inertia_tensor-1-0,inertia_tensor-1-1,filled_area,centroid-0,centroid-1,bbox_area,local_centroid-0,local_centroid-1,convex_area,euler_number,moments_normalized-0-0,moments_normalized-0-1,moments_normalized-0-2,moments_normalized-0-3,moments_normalized-1-0,moments_normalized-1-1,moments_normalized-1-2,moments_normalized-1-3,moments_normalized-2-0,moments_normalized-2-1,moments_normalized-2-2,moments_normalized-2-3,moments_normalized-3-0,moments_normalized-3-1,moments_normalized-3-2,moments_normalized-3-3,moments_central-0-0,moments_central-0-1,moments_central-0-2,moments_central-0-3,moments_central-1-0,moments_central-1-1,moments_central-1-2,moments_central-1-3,moments_central-2-0,moments_central-2-1,moments_central-2-2,moments_central-2-3,moments_central-3-0,moments_central-3-1,moments_central-3-2,moments_central-3-3,bbox-0,bbox-1,bbox-2,bbox-3,Dia_Ph3_CV,test_channel_indipendent_metric,velocity_pixel,velocity_um,disappears_before_end +0,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +0,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +1,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +1,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +2,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +2,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +3,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +3,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +4,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +4,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +5,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +5,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +6,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +6,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +7,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +7,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +8,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +8,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +9,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +9,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +10,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +10,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +11,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +11,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +12,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +12,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +13,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +13,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +14,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +14,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +15,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +15,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +16,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +16,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +17,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +17,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +18,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +18,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +19,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +19,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +20,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +20,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +21,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +21,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +22,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +22,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +23,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +23,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +24,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +24,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +25,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +25,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +26,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +26,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +27,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +27,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +28,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +28,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +29,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +29,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +30,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +30,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +31,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +31,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +32,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +32,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +33,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +33,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +34,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +34,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +35,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +35,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +36,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +36,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +37,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +37,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +38,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +38,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +39,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +39,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +40,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +40,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +41,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +41,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +42,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +42,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +43,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +43,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +44,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +44,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +44,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +45,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +45,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +45,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +46,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +46,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +46,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +47,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +47,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +47,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +48,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +48,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +48,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +49,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +49,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +50,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +50,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +51,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +51,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +52,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +52,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +53,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +53,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +54,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +54,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +55,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +55,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +56,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +56,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +57,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +57,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +58,2,G1,4.0,7.0,mother,-1.0,58.0,False,-1.0,0.0,0.0,0.0,174.0,2.9,0.0,0.0,0.0,0.0,False,False,0.0,301.0,304.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 +58,7,G1,1.0,2.0,mother,44.0,58.0,True,-1.0,0.0,0.0,0.0,174.0,2.9,0.0,0.0,0.0,0.0,False,False,0.0,338.0,289.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 From 1a2458ba8d3e4e05783e0ceef9a81597c5c8d973 Mon Sep 17 00:00:00 2001 From: Francesco Date: Thu, 29 Jan 2026 09:45:30 +0100 Subject: [PATCH 4/4] fix: delete unnecessary csv test file --- global_cca_df_with_single_moth_bud_pair.csv | 124 -------------------- 1 file changed, 124 deletions(-) delete mode 100644 global_cca_df_with_single_moth_bud_pair.csv diff --git a/global_cca_df_with_single_moth_bud_pair.csv b/global_cca_df_with_single_moth_bud_pair.csv deleted file mode 100644 index fe52ab37..00000000 --- a/global_cca_df_with_single_moth_bud_pair.csv +++ /dev/null @@ -1,124 +0,0 @@ -frame_i,Cell_ID,cell_cycle_stage,generation_num,relative_ID,relationship,emerg_frame_i,division_frame_i,is_history_known,corrected_on_frame_i,will_divide,daughter_disappears_before_division,disappears_before_division,time_minutes,time_hours,generation_num_tree,parent_ID_tree,root_ID_tree,sister_ID_tree,is_cell_dead,is_cell_excluded,was_manually_edited,x_centroid,y_centroid,num_objects,end_of_cell_cycle_frame_i,cell_area_pxl,cell_vol_vox,cell_area_um2,cell_vol_fl,basename,Dia_Ph3_autoBkgr_bkgrVal_median,Dia_Ph3_autoBkgr_bkgrVal_mean,Dia_Ph3_autoBkgr_bkgrVal_q75,Dia_Ph3_autoBkgr_bkgrVal_q25,Dia_Ph3_autoBkgr_bkgrVal_q95,Dia_Ph3_autoBkgr_bkgrVal_q05,Dia_Ph3_dataPrepBkgr_bkgrVal_median,Dia_Ph3_dataPrepBkgr_bkgrVal_mean,Dia_Ph3_dataPrepBkgr_bkgrVal_q75,Dia_Ph3_dataPrepBkgr_bkgrVal_q25,Dia_Ph3_dataPrepBkgr_bkgrVal_q95,Dia_Ph3_dataPrepBkgr_bkgrVal_q05,Dia_Ph3_mean,Dia_Ph3_sum,Dia_Ph3_amount_autoBkgr,Dia_Ph3_amount_dataPrepBkgr,Dia_Ph3_amount_manualBkgr,Dia_Ph3_mean_manualBkgr,Dia_Ph3_median,Dia_Ph3_min,Dia_Ph3_max,Dia_Ph3_q25,Dia_Ph3_q75,Dia_Ph3_q05,Dia_Ph3_q95,Dia_Ph3_concentration_autoBkgr_from_vol_vox,Dia_Ph3_concentration_dataPrepBkgr_from_vol_vox,Dia_Ph3_concentration_autoBkgr_from_vol_fl,Dia_Ph3_concentration_dataPrepBkgr_from_vol_fl,major_axis_length,minor_axis_length,inertia_tensor_eigvals-0,inertia_tensor_eigvals-1,equivalent_diameter,moments-0-0,moments-0-1,moments-0-2,moments-0-3,moments-1-0,moments-1-1,moments-1-2,moments-1-3,moments-2-0,moments-2-1,moments-2-2,moments-2-3,moments-3-0,moments-3-1,moments-3-2,moments-3-3,area,solidity,extent,inertia_tensor-0-0,inertia_tensor-0-1,inertia_tensor-1-0,inertia_tensor-1-1,filled_area,centroid-0,centroid-1,bbox_area,local_centroid-0,local_centroid-1,convex_area,euler_number,moments_normalized-0-0,moments_normalized-0-1,moments_normalized-0-2,moments_normalized-0-3,moments_normalized-1-0,moments_normalized-1-1,moments_normalized-1-2,moments_normalized-1-3,moments_normalized-2-0,moments_normalized-2-1,moments_normalized-2-2,moments_normalized-2-3,moments_normalized-3-0,moments_normalized-3-1,moments_normalized-3-2,moments_normalized-3-3,moments_central-0-0,moments_central-0-1,moments_central-0-2,moments_central-0-3,moments_central-1-0,moments_central-1-1,moments_central-1-2,moments_central-1-3,moments_central-2-0,moments_central-2-1,moments_central-2-2,moments_central-2-3,moments_central-3-0,moments_central-3-1,moments_central-3-2,moments_central-3-3,bbox-0,bbox-1,bbox-2,bbox-3,Dia_Ph3_CV,test_channel_indipendent_metric,velocity_pixel,velocity_um,disappears_before_end -0,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -0,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -1,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -1,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -2,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -2,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -3,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -3,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -4,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -4,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -5,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -5,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -6,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -6,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -7,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -7,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -8,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -8,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -9,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -9,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -10,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -10,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -11,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -11,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -12,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -12,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -13,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -13,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -14,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -14,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -15,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -15,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -16,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -16,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -17,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -17,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -18,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -18,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -19,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -19,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -20,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -20,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -21,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -21,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -22,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -22,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -23,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -23,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -24,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -24,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -25,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -25,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -26,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -26,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -27,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -27,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -28,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -28,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -29,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -29,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -30,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -30,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -31,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -31,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -32,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -32,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -33,1,S,0.0,2.0,bud,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -33,2,S,2.0,1.0,mother,-1.0,-1.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -34,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -34,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -35,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -35,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -36,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -36,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -37,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -37,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -38,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -38,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -39,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -39,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -40,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -40,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -41,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -41,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -42,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -42,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -43,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -43,2,G1,3.0,1.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -44,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -44,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -44,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -45,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -45,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -45,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -46,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -46,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -46,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -47,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -47,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -47,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -48,1,G1,1.0,2.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -48,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -48,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,1.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -49,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -49,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -50,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -50,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -51,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -51,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -52,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -52,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -53,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -53,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -54,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -54,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -55,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -55,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -56,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -56,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -57,2,S,3.0,7.0,mother,-1.0,34.0,False,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -57,7,S,0.0,2.0,bud,44.0,-1.0,True,-1.0,0.0,0.0,0.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, -58,2,G1,4.0,7.0,mother,-1.0,58.0,False,-1.0,0.0,0.0,0.0,174.0,2.9,0.0,0.0,0.0,0.0,False,False,0.0,301.0,304.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0 -58,7,G1,1.0,2.0,mother,44.0,58.0,True,-1.0,0.0,0.0,0.0,174.0,2.9,0.0,0.0,0.0,0.0,False,False,0.0,338.0,289.0,0.0,0.0,0.0,0.0,0.0,0.0,0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0