 |
ImageD
v2_7_5 (24.06.22)
ImageD is an image processing software designed for rapid prototyping and implementing algorithms and solutions for science, research and teaching.
|
Go to the documentation of this file.
9 #ifndef D_BIO_NUCLEUSPEDIGREE_H
10 #define D_BIO_NUCLEUSPEDIGREE_H
26 #include <QFileDialog>
28 #include <QFileInfoList>
31 #include <QInputDialog>
32 #include <QMessageBox>
43 #include <opencv2/core/core.hpp>
44 #include <opencv2/highgui/highgui.hpp>
45 #include <opencv2/imgproc/imgproc.hpp>
61 void set_size_time_and_mosaik(
size_t t_size,
size_t y_size,
size_t x_size);
62 void set_time_irradiation(
double t_irr);
64 size_t size_Y() {
return size_mosaik_y;}
65 size_t size_X() {
return size_mosaik_x;}
67 size_t nuclei_blob_count(
size_t t,
size_t y,
size_t x);
68 size_t nuclei_blob_count(
size_t t);
69 size_t nuclei_blob_count();
71 size_t mosaik_index_non_empty_min_x();
72 size_t mosaik_index_non_empty_max_x();
73 size_t mosaik_index_non_empty_min_y();
74 size_t mosaik_index_non_empty_max_y();
80 D_Bio_NucleusBlob* get_pNucleus(
size_t t,
size_t y_mosaic,
size_t x_mosaic,
size_t i);
81 D_Bio_NucleusBlob* get_pNucleus(
size_t t,
size_t y_mosaic_min,
size_t x_mosaic_min,
size_t y_mosaic_max,
size_t x_mosaic_max,
size_t y_pos_px,
size_t x_pos_px);
82 vector<D_Bio_NucleusBlob*> get_pNuclei_FromNucLifes(
bool filtered_only);
84 size_t get_NucleusLifesCount(
bool filtered);
87 bool load_nuclei_data(QString QS_path_NucDataMaster, QString QS_path_NucData,
size_t nt,
size_t ny,
size_t nx,
bool forget_contour,
bool foci_are_part_of_nuc_files);
90 bool initMatching(vector<double> score_weights, vector<double> score_maxima,
double shift_limit,
double max_rel_area_inc_to,
double max_rel_area_dec_to,
double max_age,
double thres_tm1_go1,
double thres_tm2_go1,
double thres_tm3_go1,
double thres_tm1_go2,
double thres_tm2_go2,
double thres_tm3_go2,
double mitosis_mult_go1,
double mitosis_mult_go2);
93 int updatePedigreeView_Plot3D(
size_t points_per_edge,
size_t t_min = 0,
size_t t_max =
size_t(INFINITY),
double y_min_um = -INFINITY,
double y_max_um = INFINITY,
double x_min_um = -INFINITY,
double x_max_um = INFINITY);
94 int updatePedigreeView_Plot3D(
D_Viewer_Plot_3D *viewer,
size_t points_per_edge,
size_t t_min = 0,
size_t t_max =
size_t(INFINITY),
double y_min_um = -INFINITY,
double y_max_um = INFINITY,
double x_min_um = -INFINITY,
double x_max_um = INFINITY);
96 int setPedigreeViewer_Volumetric(
D_Viewer_3D *viewer);
97 int updatePedigreeView_Volumetric(
size_t size_volT_px,
size_t size_volY_px,
size_t size_volX_px,
size_t size_Node_px,
size_t size_Edge_px,
size_t size_Y_px_original,
size_t size_X_px_original);
98 int updatePedigreeView_Volumetric(
D_Viewer_3D *viewer,
size_t size_volT_px,
size_t size_volY_px,
size_t size_volX_px,
size_t size_Node_px,
size_t size_Edge_px,
size_t size_Y_px_original,
size_t size_X_px_original);
100 static int updatePedigreeView_Volumetric_TimeThread(
D_VisDat_Obj *pVD_Target, vector<vector<vector<vector<D_Bio_NucleusBlob>>>> *pvvvvNucsTYXI,
double score_range,
double score_min,
size_t size_Node_px,
size_t size_Edge_px,
size_t size_Y_px_original,
size_t size_X_px_original,
Rect frame_legit,
size_t t_plane);
109 void set_FrameBorder_XY(
Rect FrameBorder);
111 void set_channels(QStringList channels_foc, QStringList channels_val) {QSL_Channels_Foci = channels_foc; QSL_Channels_Values = channels_val;}
113 bool set_attrib_filter_ui(QGroupBox* box_foci, QGroupBox* box_nucblobs, QGroupBox* box_nuclifes);
114 bool set_attrib_filter_path(QDir* pDir_Save);
115 bool set_attrib_filter_channels(QStringList channels_foc, QStringList channels_val);
116 bool set_attrib_filter_scaling();
117 bool set_attrib_filter(
size_t filter_mode,
size_t i_filt,
bool is_active,
size_t i_att,
size_t i_comp,
size_t i_ch,
double thres_val);
119 bool calc_NucLifes();
120 bool calc_NucLifes_Filtered();
122 vector<double> attrib_data(
size_t i_data_pt_lvl,
size_t i_att_lvl_nuclife,
size_t i_att_lvl_nucblob,
size_t i_att_nuclife,
size_t i_att_nucblob,
size_t i_att_foc,
size_t ch_val,
size_t ch_foc,
size_t stat_low,
size_t stat_high);
124 vector<double> attrib_nuclife(
size_t i_attrib);
125 vector<double> attrib_nucblob(
size_t i_attrib,
size_t ch_val);
126 vector<double> attrib_foci(
size_t i_attrib,
size_t ch_val);
127 vector<double> attrib_foci(
size_t i_attrib,
size_t ch_val,
size_t ch_foc);
129 bool save_analysis(QString QS_SavePath);
131 bool data_filtered_exists(
size_t data_level);
132 bool save_attribs_raw(QDir DIR_SaveMaster);
133 bool save_attribs_raw(QFileInfo FI_SaveCsv,
size_t data_level);
134 bool save_attribs_stats_1D(QDir DIR_SaveMaster);
135 bool save_attribs_stats_1D(QFileInfo FI_SaveCsv,
size_t data_level);
136 bool save_attribs_stats_2D(QDir DIR_SaveMaster);
137 bool save_attribs_stats_2D_NucLifes(QDir DIR_SaveAttribsStats2D);
138 bool save_attribs_stats_2D_NucBlobs(QDir DIR_SaveAttribsStats2D);
139 bool save_attribs_stats_2D_Foci(QDir DIR_SaveAttribsStats2D, QString subset_name);
143 void match_all_go1();
144 void match_all_go2();
146 void match_time_go1(
size_t t);
147 void match_time_go2(
size_t t);
148 void match_time_correct_mitosis_go1(
size_t t);
149 void match_time_correct_mitosis_go2(
size_t t);
151 bool match_save_results(QString QS_path);
152 bool match_load_data_and_matches(QString QS_path_NucDataMaster, QString QS_path_NucData, QString QS_path_NucLifes,
size_t nt,
size_t ny,
size_t nx,
bool forget_contour,
bool foci_are_part_of_nuc_files);
153 bool match_load_matches(QString QS_path_NucLifes);
155 bool event_find(QString* QS_FoundEventType,
int* t_found,
int* y_found,
int* x_found, vector<int> vType_Search, vector<int> vType_Param,
int t_min,
int y_min,
int x_greater_than,
bool filter_use_t_after,
int filter_param_t_after,
bool filter_use_t_before,
int filter_param_t_before,
bool filter_use_range,
int filter_param_x_min,
int filter_param_x_max,
int filter_param_y_min,
int filter_param_y_max,
bool filter_no_excluded);
156 bool event_find(
int* t_found,
int* y_found,
int* x_found,
int type,
int param,
int t_min,
int y_min,
int x_greater_than,
bool filter_use_t_after,
int filter_param_t_after,
bool filter_use_t_before,
int filter_param_t_before,
bool filter_use_range,
int filter_param_x_min,
int filter_param_x_max,
int filter_param_y_min,
int filter_param_y_max,
bool filter_no_excluded);
157 bool event_check(
int* t_event,
int* y_event,
int* event_x,
D_Bio_NucleusLife* pNucLifeTest,
int type,
int param);
158 vector<size_t> event_counts(vector<int> vType_Param,
int t_min,
int y_min,
int x_greater_than,
bool filter_use_t_after,
int filter_param_t_after,
bool filter_use_t_before,
int filter_param_t_before,
bool filter_use_range,
int filter_param_x_min,
int filter_param_x_max,
int filter_param_y_min,
int filter_param_y_max,
bool filter_no_excluded);
161 void SetAttribFilterToNeedUpdate();
165 static bool match_save_results_time_thread(vector<vector<vector<vector<D_Bio_NucleusBlob>>>> *pvvvvNucsTYXI, QDir DirSaveMaster,
size_t t_thread);
166 static bool load_time_nuclei_data_thread(vector<vector<vector<vector<D_Bio_NucleusBlob>>>> *pvvvvNucsTYXI, QDir DirLoadMaster, QDir DirLoadNucs,
size_t t_thread,
bool forget_contour,
bool foci_are_part_of_nuc_files,
int *err);
167 static bool load_time_nuclei_matches_thread(vector<vector<vector<vector<D_Bio_NucleusBlob>>>> *pvvvvNucsTYXI, QDir DirLoadNucLifes,
size_t t_thread,
int *err);
169 void match_correct_mitosis(
size_t t_parents,
size_t t_childs,
double score_multiplier,
bool allow_new_mitosis);
170 void match_times(
size_t t_parents,
size_t t_childs,
double score_thresh,
bool allow_new_mitosis);
172 void match_find_possible_matches( vector<vector<double>> *vvPossibleMatches,
size_t t_parents,
size_t t_childs,
double score_thresh,
bool allow_new_mitosis);
173 void match_find_possible_mitosis_corrections(vector<vector<double>> *vvPossibleMitosisCorrections,
size_t t_parents,
size_t t_childs,
double score_multiplier,
bool allow_new_mitoses);
175 static void match_find_possible_matches_thread(vector<vector<vector<vector<D_Bio_NucleusBlob>>>> *pvvvvNucsTYXI, vector<vector<double>> *vvPossibleMatches,
size_t t_parents,
size_t t_childs,
double score_thresh,
bool allow_new_mitosis, vector<size_t> *pvScoreRelevantCriteria, vector<double> *pvScoreWeights, vector<double> *pvScoreMax,
double max_area_increase_to_rel,
double max_area_decrease_to_rel,
double max_shift,
size_t y_toProc);
176 static void match_find_possible_mitosis_corrections_thread(vector<vector<vector<vector<D_Bio_NucleusBlob>>>> *pvvvvNucsTYXI, vector<vector<double>> *vvPossibleMitosisCorrections,
size_t t_parents,
size_t t_childs,
double mitosis_score_muliplier,
bool allow_new_mitoses, vector<size_t> *pvScoreRelevantCriteria, vector<double> *pvScoreWeights, vector<double> *pvScoreMax,
double max_area_increase_to_rel,
double max_area_decrease_to_rel,
double max_shift,
size_t y_toProc);
178 void match_accept_matches(vector<vector<double>> *vvPossibleMatches,
bool allow_new_mitosis);
179 void match_accept_mitosis_corrections(vector<vector<double>> *vvPossibleMitosisCorrections,
bool allow_new_mitosis);
181 void calc_PlotVol(vector<Point3d> vNodesCoord, vector<Point3d> vEdgeCoordBegins, vector<Point3d> vEdgeCoordEnds, vector<QColor> vNodeColor, vector<QColor> vEdgeColor,
int size_T_px,
int size_Y_px,
int size_X_px,
int size_nodes = 3,
int size_edge = 1);
191 size_t size_time = 0;
192 size_t size_mosaik_y = 0;
193 size_t size_mosaik_x = 0;
196 double time_irradiation = 0;
199 QStringList QSL_Channels_Foci;
200 QStringList QSL_Channels_Values;
203 vector<vector<vector<vector<D_Bio_NucleusBlob>>>> vvvvNucBlobs_TYXI;
204 vector<D_Bio_NucleusLife> vNucLifes;
205 vector<D_Bio_NucleusLife> vNucLifes_Filtered;
208 vector<size_t> vScoreCriteria_Relevant;
209 vector<double> vScoreWeights_Relevant;
210 vector<double> vScoreMaxima_Relevant;
211 double match_thresh_max_area_increase_to = 1.25;
212 double match_thresh_max_area_decrease_to = 0.35;
213 double match_thresh_max_shift = 200;
214 double match_max_age = 35;
215 double match_score_thres_tm1_go1 = 0.50;
216 double match_score_thres_tm2_go1 = 0.55;
217 double match_score_thres_tm3_go1 = 0.60;
218 double match_score_thres_tm1_go2 = 0.20;
219 double match_score_thres_tm2_go2 = 0.25;
220 double match_score_thres_tm3_go2 = 0.30;
221 double match_score_multiplier_mitosis_go1 = 0.20;
222 double match_score_multiplier_mitosis_go2 = 0.70;
223 size_t match_earliest_mitosis_allowed = 0;
226 double scale_px_to_um = 0.1;
227 double scale_t_to_h = 1.0;
228 double scale_nodes = 1;
229 double scale_edges = 1;
232 Rect FrameBorderXY =
Rect(0, 0, INT_MAX, INT_MAX);
233 Rect FrameInMarginXY =
Rect(0, 0, INT_MAX, INT_MAX);
236 bool state_ScoreWeightsAndMaxSet =
false;
237 bool state_PedigreeViewer_Plot3D_Set =
false;
238 bool state_PedigreeViewer_Volumetric_Set =
false;
239 bool state_AttribFiltersSet =
false;
240 bool state_NucLifesCalced =
false;
241 bool state_NucLifesFilteredCalced =
false;
242 bool state_NucLifeFilteringRunning =
false;
250 enum MATCH_ATTRIB_INDEX {
251 MATCH_ATTRIB_INDEX_SCORE,
252 MATCH_ATTRIB_INDEX_PARENT_T,
253 MATCH_ATTRIB_INDEX_PARENT_Y,
254 MATCH_ATTRIB_INDEX_PARENT_X,
255 MATCH_ATTRIB_INDEX_PARENT_I,
256 MATCH_ATTRIB_INDEX_CHILD_T,
257 MATCH_ATTRIB_INDEX_CHILD_Y,
258 MATCH_ATTRIB_INDEX_CHILD_X,
259 MATCH_ATTRIB_INDEX_CHILD_I,
260 MATCH_ATTRIB_INDEX_NUMBER_OF
274 const QStringList QSL_EventType = {
275 "large dist between nuclei",
278 "short life (isolated)",
279 "short life (loose start)",
280 "short life (loose end)",
281 "short life (between mitoses)"
285 #endif // D_BIO_NUCLEUSPEDIGREE_H
bool match_save_results(QString QS_path)
Definition: d_bio_nucleuspedigree.cpp:2624
const QStringList QSL_Errors
Definition: d_enum.h:183
static bool attribute_is_focus_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleuslife.cpp:386
void set_earliest_mitoses_allowed(size_t t_earliest)
Definition: d_bio_nucleuspedigree.h:110
@ ATTRIB_FOC_DETECTED_IN_CH
Definition: d_bio_enum.h:176
void set_scale_T2h(double scale)
Definition: d_bio_nucleuspedigree.h:104
bool matching_excluded_life()
Definition: d_bio_nucleusblob.cpp:1367
@ ER_okay
Definition: d_enum.h:133
bool calc_NucLifes_Filtered()
Definition: d_bio_nucleuspedigree.cpp:1227
vector< double > attrib_nucblob(size_t i_attrib, size_t ch_val)
Definition: d_bio_nucleuspedigree.cpp:1520
bool calc_NucLifes()
Definition: d_bio_nucleuspedigree.cpp:1162
D_Bio_NucleusBlob * pNuc_member_first()
Definition: d_bio_nucleuslife.h:103
void match_time_go1(size_t t)
Definition: d_bio_nucleuspedigree.cpp:2596
bool is_excluded()
Definition: d_bio_nucleuslife.cpp:112
size_t size_X()
Definition: d_bio_nucleuspedigree.h:65
bool set_ScalePx2Um(double scale)
Definition: d_bio_attribute_filter.cpp:66
int size_Y()
Definition: d_visdat_dim.h:60
void clear_Foci()
Definition: d_bio_nucleusblob.h:60
@ c_STAT_2D_NUMBER_OF
Definition: d_enum.h:875
bool set_Parent(D_Bio_NucleusBlob *nuc_parent)
Definition: d_bio_nucleuslife.h:68
D_Bio_NucleusBlob * pNuc_parent()
Definition: d_bio_nucleuslife.h:97
void add_Focus(size_t channel, D_Bio_Focus focus)
Definition: d_bio_nucleusblob.cpp:108
bool set_SaveDir(QDir *pDirSave)
Definition: d_bio_attribute_filter.cpp:77
void info_popup()
Definition: d_bio_nucleuspedigree.cpp:312
const QString D_QS_Version
Definition: d_enum.h:18
@ c_DIM_X
Definition: d_enum.h:235
int size_T()
Definition: d_visdat_dim.h:62
void set_time_irradiation(double t_irr)
Definition: d_bio_nucleuspedigree.cpp:39
void match_time_go2(size_t t)
Definition: d_bio_nucleuspedigree.cpp:2603
cv::Point2f Point2f
Definition: d_opencv_typedefs.h:37
bool set_attrib_filter_ui(QGroupBox *box_foci, QGroupBox *box_nucblobs, QGroupBox *box_nuclifes)
Definition: d_bio_nucleuspedigree.cpp:1080
@ c_VIEWER_3D_ALPHA_MAX_IS_TRANSPARENT
Definition: d_enum.h:491
vector< D_Bio_NucleusBlob * > get_pNuclei_FromNucLifes(bool filtered_only)
Definition: d_bio_nucleuspedigree.cpp:380
static bool attribute_is_focus_channel_dependent(size_t i_attrib)
Definition: d_bio_focus.cpp:125
@ c_DIM_T
Definition: d_enum.h:238
static bool Smaller_3D(double x0, double x1, double x2, double y0, double y1, double y2)
Definition: d_math.cpp:1407
size_t size_T()
Definition: d_bio_nucleuspedigree.h:63
size_t time_index()
Definition: d_bio_nucleusblob.h:126
int plot_Tree(vector< Point3d > vNodesCoord, vector< Point3d > vEdgeCoordBegins, vector< Point3d > vEdgeCoordEnds, vector< QColor > vNodeColor, vector< QColor > vEdgeColor, size_t shadow, bool background, bool grid, bool smooth, QString axis_x, QString axis_y, QString axis_z, size_t points_per_edge=5, double size_nodes=0.1, double size_edge=0.05, bool called_internally=false)
Definition: d_viewer_plot_3d.cpp:838
void set_FrameBorder_XY(Rect FrameBorder)
Definition: d_bio_nucleuspedigree.cpp:1069
D_Bio_NucleusBlob * matching_Child2()
Definition: d_bio_nucleusblob.h:179
@ ATTRIB_FILTER_MODE_FOCI
Definition: d_bio_enum.h:346
int setPedigreeViewer_Plot3D(D_Viewer_Plot_3D *viewer)
Definition: d_bio_nucleuspedigree.cpp:621
bool event_find(QString *QS_FoundEventType, int *t_found, int *y_found, int *x_found, vector< int > vType_Search, vector< int > vType_Param, int t_min, int y_min, int x_greater_than, bool filter_use_t_after, int filter_param_t_after, bool filter_use_t_before, int filter_param_t_before, bool filter_use_range, int filter_param_x_min, int filter_param_x_max, int filter_param_y_min, int filter_param_y_max, bool filter_no_excluded)
Definition: d_bio_nucleuspedigree.cpp:2714
D_Bio_NucleusLife * get_pNucleusLife(size_t index, bool filtered)
Definition: d_bio_nucleuspedigree.cpp:427
bool has_MitosisEnd()
Definition: d_bio_nucleuslife.h:92
@ ER_size_missmatch
Definition: d_enum.h:141
@ EVENT_TYPE_SHORT_LIFE_LOOSE_END
Definition: d_bio_nucleuspedigree.h:270
@ EVENT_TYPE_NUMBER_OF
Definition: d_bio_nucleuspedigree.h:272
size_t get_FociChannels()
Definition: d_bio_nucleusblob.h:67
bool add_Member(D_Bio_NucleusBlob nuc)
Definition: d_bio_nucleuslife.cpp:27
cv::Rect Rect
Definition: d_opencv_typedefs.h:65
@ NUC_LIFE_FILE_SECTION_PARENT
Definition: d_bio_enum.h:97
@ c_DIM_Y
Definition: d_enum.h:236
void clear()
Definition: d_bio_nucleuspedigree.cpp:16
@ ER_UiNotInit
Definition: d_enum.h:177
@ c_COMPARE_EQUAL
Definition: d_enum.h:1235
bool initMatching(vector< double > score_weights, vector< double > score_maxima, double shift_limit, double max_rel_area_inc_to, double max_rel_area_dec_to, double max_age, double thres_tm1_go1, double thres_tm2_go1, double thres_tm3_go1, double thres_tm1_go2, double thres_tm2_go2, double thres_tm3_go2, double mitosis_mult_go1, double mitosis_mult_go2)
Definition: d_bio_nucleuspedigree.cpp:524
vector< double > attrib_nuclife(size_t i_attrib)
Definition: d_bio_nucleuspedigree.cpp:1497
bool matching_foundNoChild()
Definition: d_bio_nucleusblob.h:188
cv::Vec3b Vec3b
Definition: d_opencv_typedefs.h:51
bool set_Child2(D_Bio_NucleusBlob *nuc_child2)
Definition: d_bio_nucleuslife.h:70
bool has_NoMitosisEnd()
Definition: d_bio_nucleuslife.h:93
D_Bio_NucleusBlob * pNuc_member(size_t i)
Definition: d_bio_nucleuslife.h:102
const QStringList QSL_Attrib_Nuc
Definition: d_bio_enum.h:246
@ ER_file_not_exist
Definition: d_enum.h:161
Definition: d_viewer_3d.h:85
void set_time_index(size_t t)
Definition: d_bio_nucleusblob.h:128
@ DATA_LEVEL_NUCBLOB_ATTRIB
Definition: d_bio_enum.h:385
void set_FociChannels(size_t channels)
Definition: d_bio_nucleusblob.h:56
D_Bio_Focus * get_pFocus(size_t channel, size_t index)
Definition: d_bio_nucleusblob.h:72
Definition: d_bio_focus.h:48
@ DATA_LEVEL_NUCLIFE_STAT_NUCBLOB
Definition: d_bio_enum.h:373
bool has_Child1()
Definition: d_bio_nucleuslife.h:77
@ DATAPOINT_LEVEL_NUMBER_OF
Definition: d_bio_enum.h:362
int setPedigreeViewer_Volumetric(D_Viewer_3D *viewer)
Definition: d_bio_nucleuspedigree.cpp:603
@ DATAPOINT_LEVEL_FOC
Definition: d_bio_enum.h:361
size_t mosaik_index_non_empty_min_y()
Definition: d_bio_nucleuspedigree.cpp:112
@ NUC_LIFE_FILE_SECTION_TAGS
Definition: d_bio_enum.h:100
void set_FrameBorder_XY(Rect FrameBorder)
Definition: d_bio_nucleuslife.h:64
int set_VisDat(D_VisDat_Obj *pVD_toShow)
Definition: d_viewer_3d.cpp:325
size_t mosaik_index_non_empty_min_x()
Definition: d_bio_nucleuspedigree.cpp:84
The D_VisDat_Dim class Represents a 6D volume.
Definition: d_visdat_dim.h:49
D_Bio_NucleusBlob * matching_Child1()
Definition: d_bio_nucleusblob.h:178
void matching_set_excluded(bool exclude)
Definition: d_bio_nucleusblob.h:158
bool matching_foundExactlyOneChild()
Definition: d_bio_nucleusblob.h:192
@ ATTRIB_NUC_NUMBER_OF
Definition: d_bio_enum.h:244
double matching_Score_Parent()
Definition: d_bio_nucleusblob.h:148
const QString D_QS_Release
Definition: d_enum.h:19
static function< double(vector< double >)> Function_SingleStat(int stat)
Definition: d_stat.cpp:683
@ EVENT_TYPE_LARGE_DIST_BETWEEN_NUC
Definition: d_bio_nucleuspedigree.h:265
@ DATA_LEVEL_NUCLIFE_STAT_STAT_FOC
Definition: d_bio_enum.h:374
@ DATAPOINT_LEVEL_NUCLIFE
Definition: d_bio_enum.h:359
void set_channels(QStringList channels_foc, QStringList channels_val)
Definition: d_bio_nucleuspedigree.h:111
size_t get_FociCount(size_t channel)
Definition: d_bio_nucleusblob.h:69
static bool attribute_is_focus_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleusblob.cpp:244
The D_VisDat_Obj class Represents a 6D image.
Definition: d_visdat_obj.h:51
size_t get_nuclei_count()
Definition: d_bio_nucleusimage.h:82
cv::Point3d Point3d
Definition: d_opencv_typedefs.h:41
@ ATTRIB_NUC_SHIFT_PX
Definition: d_bio_enum.h:218
double attrib_nuclife(size_t i_attrib_nuclife)
Definition: d_bio_nucleuslife.cpp:332
static int Create_VD_Single_Constant(D_VisDat_Obj *pVD_New, D_VisDat_Dim dim_new, int type=CV_8UC1, double value=0)
Definition: d_visdat_proc.cpp:1403
D_Bio_NucleusBlob get_nucleus(size_t nuc)
Definition: d_bio_nucleusimage.h:93
@ ATTRIB_NUCLIFE_AGE
Definition: d_bio_enum.h:289
cv::Point Point
Definition: d_opencv_typedefs.h:35
QString info()
Definition: d_bio_nucleuspedigree.cpp:140
D_Bio_NucleusBlob * matching_ChildFavorite()
Definition: d_bio_nucleusblob.h:180
Mat * pMA_full()
Definition: d_visdat_obj.h:61
QString get_path_absolute_loaded_from()
Definition: d_bio_nucleusblob.h:97
int load(QString path, bool foci_are_part_of_nuc_files)
Definition: d_bio_nucleusimage.cpp:486
bool set_attrib_filter_scaling()
Definition: d_bio_nucleuspedigree.cpp:1128
D_Bio_NucleusPedigree()
Definition: d_bio_nucleuspedigree.cpp:11
bool matching_parent_isMitosis()
Definition: d_bio_nucleusblob.h:195
@ EVENT_TYPE_EXCLUDED
Definition: d_bio_nucleuspedigree.h:267
@ ATTRIB_NUCLIFE_NUMBER_OF
Definition: d_bio_enum.h:314
EVENT_TYPE
Definition: d_bio_nucleuspedigree.h:264
@ c_VOLUME_XYT
Definition: d_enum.h:330
bool has_MitosisStart()
Definition: d_bio_nucleuslife.h:90
int matching_excluded_life_time()
Definition: d_bio_nucleusblob.cpp:1372
bool event_check(int *t_event, int *y_event, int *event_x, D_Bio_NucleusLife *pNucLifeTest, int type, int param)
Definition: d_bio_nucleuspedigree.cpp:2847
bool accept_Foc(D_Bio_Focus *pFoc)
Definition: d_bio_attribute_filter.cpp:126
@ ATTRIB_FILTER_MODE_NUC_BLOB
Definition: d_bio_enum.h:347
@ EVENT_TYPE_SHORT_LIFE_BETWEEN_MITOSES
Definition: d_bio_nucleuspedigree.h:271
size_t mosaik_index_non_empty_max_x()
Definition: d_bio_nucleuspedigree.cpp:98
bool set_ScalePx2Um(double scale)
Definition: d_bio_nucleuslife.cpp:16
Definition: d_bio_nucleusimage.h:50
void set_scale_px2um(double scale)
Definition: d_bio_nucleuspedigree.h:103
bool match_load_data_and_matches(QString QS_path_NucDataMaster, QString QS_path_NucData, QString QS_path_NucLifes, size_t nt, size_t ny, size_t nx, bool forget_contour, bool foci_are_part_of_nuc_files)
Definition: d_bio_nucleuspedigree.cpp:2649
Definition: d_bio_nucleusblob.h:46
void set_time_irradiation(double t)
Definition: d_bio_nucleusblob.h:129
void match_all_go1()
Definition: d_bio_nucleuspedigree.cpp:2584
D_Bio_NucleusBlob * pNuc_child1()
Definition: d_bio_nucleuslife.h:98
const QStringList QSL_DatapointLevel
Definition: d_bio_enum.h:364
static bool attribute_is_value_channel_dependent(size_t i_attrib)
Definition: d_bio_focus.cpp:107
D_Bio_NucleusBlob * matching_Parent()
Definition: d_bio_nucleusblob.h:181
void match_time_correct_mitosis_go2(size_t t)
Definition: d_bio_nucleuspedigree.cpp:2617
Rect rect_RegularRange_px()
Definition: d_bio_nucleuspedigree.h:66
int size_X()
Definition: d_visdat_dim.h:59
void set_pNucOwner(D_Bio_NucleusBlob *owner)
Definition: d_bio_focus.h:64
bool matching_isNoMitosis()
Definition: d_bio_nucleusblob.h:190
bool has_NoMitosisStart()
Definition: d_bio_nucleuslife.h:91
@ EVENT_TYPE_MITOSIS
Definition: d_bio_nucleuspedigree.h:266
bool set_channels(QStringList channels_foc, QStringList channels_val)
Definition: d_bio_attribute_filter.cpp:50
void forget_contour_and_calc_feats()
Definition: d_bio_nucleusblob.h:115
bool set_Child1(D_Bio_NucleusBlob *nuc_child1)
Definition: d_bio_nucleuslife.h:69
bool set_filter(size_t i_filt, bool is_active, size_t i_att, size_t i_comp, size_t i_ch, double thres_val)
Definition: d_bio_attribute_filter.cpp:89
bool set_attrib_filter(size_t filter_mode, size_t i_filt, bool is_active, size_t i_att, size_t i_comp, size_t i_ch, double thres_val)
Definition: d_bio_nucleuspedigree.cpp:1140
bool match_load_matches(QString QS_path_NucLifes)
Definition: d_bio_nucleuspedigree.cpp:2660
vector< size_t > event_counts(vector< int > vType_Param, int t_min, int y_min, int x_greater_than, bool filter_use_t_after, int filter_param_t_after, bool filter_use_t_before, int filter_param_t_before, bool filter_use_range, int filter_param_x_min, int filter_param_x_max, int filter_param_y_min, int filter_param_y_max, bool filter_no_excluded)
Definition: d_bio_nucleuspedigree.cpp:2959
D_Bio_NucleusBlob * pNuc_member_last()
Definition: d_bio_nucleuslife.h:104
double attribute(size_t i_attrib, size_t ch_val, double scale_px2um)
Definition: d_bio_focus.cpp:72
size_t members_count()
Definition: d_bio_nucleuslife.h:108
@ ER_size_bad
Definition: d_enum.h:140
@ NUC_LIFE_FILE_SECTION_MEMBERS
Definition: d_bio_enum.h:98
@ DATA_LEVEL_NUCBLOB_STAT_FOC
Definition: d_bio_enum.h:386
Point2f centroid()
Definition: d_bio_nucleusblob.h:120
void match_all_go2()
Definition: d_bio_nucleuspedigree.cpp:2590
bool matching_RemoveChild(D_Bio_NucleusBlob *nuc_remove_child)
Definition: d_bio_nucleusblob.cpp:1333
@ NUC_LIFE_FILE_SECTION_PATH_INFO
Definition: d_bio_enum.h:96
bool accept_NucBlob(D_Bio_NucleusBlob *pNucBlob)
Definition: d_bio_attribute_filter.cpp:147
@ NUC_LIFE_FILE_SECTION_NUMBER_OF
Definition: d_bio_enum.h:102
void matching_SetAsParent(D_Bio_NucleusBlob *nuc_set_parent, double score)
Definition: d_bio_nucleusblob.cpp:1316
const QStringList QSL_EventType
Definition: d_bio_nucleuspedigree.h:274
@ ATTRIB_FILTER_MODE_NUC_LIFE
Definition: d_bio_enum.h:348
void match_all()
Definition: d_bio_nucleuspedigree.cpp:2578
@ SCORE_SHIFT
Definition: d_bio_enum.h:107
void set_FrameInMargin_XY(int x_min, int x_max, int y_min, int y_max)
Definition: d_bio_nucleuslife.h:62
size_t get_NucleusLifesCount(bool filtered)
Definition: d_bio_nucleuspedigree.cpp:409
const QStringList QSL_Attrib_NucLife
Definition: d_bio_enum.h:316
void Set_AlphaMode(size_t alpha_mode)
Definition: d_viewer_3d.h:128
Definition: d_bio_attribute_filter.h:61
Definition: d_bio_nucleuspedigree.h:53
bool save_analysis(QString QS_SavePath)
Definition: d_bio_nucleuspedigree.cpp:1589
@ DATA_LEVEL_NUCLIFE_ATTRIB
Definition: d_bio_enum.h:372
bool has_Child2()
Definition: d_bio_nucleuslife.h:78
static bool Greater_3D(double x0, double x1, double x2, double y0, double y1, double y2)
Definition: d_math.cpp:1431
Definition: d_viewer_plot_3d.h:69
void set_scale_edges(double scale)
Definition: d_bio_nucleuspedigree.h:106
QString get_path_relative()
Definition: d_bio_nucleusblob.h:95
QColor matching_TypeColor(Rect FrameNotNearBorder, double t_begin, double t_end)
Definition: d_bio_nucleusblob.cpp:1492
void set_FrameInMargin_XY(int x_min, int x_max, int y_min, int y_max)
Definition: d_bio_nucleuspedigree.h:107
@ ATTRIB_FOC_NUMBER_OF
Definition: d_bio_enum.h:177
D_Bio_NucleusBlob * get_pNucleus(size_t t, size_t y_mosaic, size_t x_mosaic, size_t i)
Definition: d_bio_nucleuspedigree.cpp:320
const QStringList QSL_Attrib_Foc
Definition: d_bio_enum.h:179
bool matching_foundParent()
Definition: d_bio_nucleusblob.h:186
bool is_path_relative(QString path_rel)
Definition: d_bio_nucleusblob.h:98
void matching_SetAsChild(D_Bio_NucleusBlob *nuc_set_child, double score)
Definition: d_bio_nucleusblob.cpp:1293
D_VisDat_Dim * pDim()
Definition: d_visdat_obj.h:73
void set_OffsetMosaicGrid(Point OffsetMosaicGrid)
Definition: d_bio_nucleusimage.h:68
bool set_attrib_filter_path(QDir *pDir_Save)
Definition: d_bio_nucleuspedigree.cpp:1104
const QStringList QSL_StatList2D
Definition: d_enum.h:877
const QStringList QSL_StatList
Definition: d_enum.h:797
cv::Point3i Point3i
Definition: d_opencv_typedefs.h:39
bool set_filter_mode(size_t mode)
Definition: d_bio_attribute_filter.cpp:35
static bool attribute_is_value_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleuslife.cpp:400
bool matching_foundAtMostOneChild()
Definition: d_bio_nucleusblob.h:189
@ EVENT_TYPE_SHORT_LIFE_ISOLATED
Definition: d_bio_nucleuspedigree.h:268
double dist2contour(Point2f point)
Definition: d_bio_nucleusblob.h:116
@ c_STAT_NUMBER_OF_STATS
Definition: d_enum.h:795
void SetAttribFilterToNeedUpdate()
Definition: d_bio_nucleuspedigree.cpp:3029
void matching_setTriedToMatchAtLeastOnce(bool tried)
Definition: d_bio_nucleusblob.h:207
void set_time_irradiation(double t_irr)
Definition: d_bio_nucleuslife.h:66
vector< double > attrib_foci(size_t i_attrib, size_t ch_val)
Definition: d_bio_nucleuspedigree.cpp:1543
cv::Vec< T, N > Vec
Definition: d_opencv_typedefs.h:44
@ NUC_LIFE_FILE_SECTION_CHILDS
Definition: d_bio_enum.h:99
bool load_nuclei_data(QString QS_path_NucDataMaster, QString QS_path_NucData, size_t nt, size_t ny, size_t nx, bool forget_contour, bool foci_are_part_of_nuc_files)
Definition: d_bio_nucleuspedigree.cpp:437
int updatePedigreeView_Plot3D(size_t points_per_edge, size_t t_min=0, size_t t_max=size_t(INFINITY), double y_min_um=-INFINITY, double y_max_um=INFINITY, double x_min_um=-INFINITY, double x_max_um=INFINITY)
Definition: d_bio_nucleuspedigree.cpp:635
size_t size_Y()
Definition: d_bio_nucleuspedigree.h:64
const QString QS_NucLifeTag_Excluded
Definition: d_bio_enum.h:104
@ EVENT_TYPE_SHORT_LIFE_LOOSE_START
Definition: d_bio_nucleuspedigree.h:269
void Set_Volume(size_t volume_index)
Definition: d_viewer_3d.h:126
vector< double > attrib_data(size_t i_data_pt_lvl, size_t i_att_lvl_nuclife, size_t i_att_lvl_nucblob, size_t i_att_nuclife, size_t i_att_nucblob, size_t i_att_foc, size_t ch_val, size_t ch_foc, size_t stat_low, size_t stat_high)
Definition: d_bio_nucleuspedigree.cpp:1348
bool matching_isMitosis()
Definition: d_bio_nucleusblob.h:193
size_t nuclei_blob_count()
Definition: d_bio_nucleuspedigree.cpp:75
double matching_Score(D_Bio_NucleusBlob *nuc_calc_score, vector< size_t > *pvScoreRelevantCriteria, vector< double > *pvScoreWeights, vector< double > *pvScoreMax, double max_area_increase_to_rel, double max_area_decrease_to_rel, double max_shift)
Definition: d_bio_nucleusblob.cpp:1156
bool set_path_absolute(QString path_abs, QDir master_dir)
Definition: d_bio_nucleusblob.cpp:960
size_t mosaik_index_non_empty_max_y()
Definition: d_bio_nucleuspedigree.cpp:126
void set_sizeTime(size_t t_size)
Definition: d_bio_nucleuslife.h:65
bool accept_NucLife(D_Bio_NucleusLife *pNucLife)
Definition: d_bio_attribute_filter.cpp:168
bool set_attrib_filter_channels(QStringList channels_foc, QStringList channels_val)
Definition: d_bio_nucleuspedigree.cpp:1116
@ SCORE_NUMBER_OF
Definition: d_bio_enum.h:117
static bool attribute_is_value_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleusblob.cpp:226
@ DATAPOINT_LEVEL_NUCBLOB
Definition: d_bio_enum.h:360
D_Bio_NucleusBlob * pNuc_child2()
Definition: d_bio_nucleuslife.h:99
@ c_VIEWER_PLOT_3D_SHADOW_NONE
Definition: d_enum.h:554
void Set_backgroundColor(QColor color)
Definition: d_viewer_3d.h:127
const QStringList QSL_NucLifeFileSections
Definition: d_bio_enum.h:87
void info_debug()
Definition: d_bio_nucleuspedigree.cpp:208
bool matching_foundNoParent()
Definition: d_bio_nucleusblob.h:187
int updatePedigreeView_Volumetric(size_t size_volT_px, size_t size_volY_px, size_t size_volX_px, size_t size_Node_px, size_t size_Edge_px, size_t size_Y_px_original, size_t size_X_px_original)
Definition: d_bio_nucleuspedigree.cpp:759
D_Bio_NucleusBlob * pNuc_excluded()
Definition: d_bio_nucleuslife.h:106
Definition: d_bio_nucleuslife.h:45
static int Calc_Stats(vector< double > *v_stats, vector< double > v_data, bool calc_sorted)
Definition: d_stat.cpp:16
bool has_Parent()
Definition: d_bio_nucleuslife.h:76
void set_FrameInMargin_XY(Rect FrameInRange)
Definition: d_bio_nucleuspedigree.h:108
@ SCORE_AREA
Definition: d_bio_enum.h:108
size_t filter_inactive_1st()
Definition: d_bio_attribute_filter.cpp:117
void set_size_time_and_mosaik(size_t t_size, size_t y_size, size_t x_size)
Definition: d_bio_nucleuspedigree.cpp:25
double attribute(size_t i_attrib, size_t ch_val, double scale_px2um)
Definition: d_bio_nucleusblob.cpp:116
void match_time_correct_mitosis_go1(size_t t)
Definition: d_bio_nucleuspedigree.cpp:2610
bool add_nucleus_blob(size_t t, size_t y, size_t x, D_Bio_NucleusBlob nuc)
Definition: d_bio_nucleuspedigree.cpp:504
@ ER_index_out_of_range
Definition: d_enum.h:146
@ NUC_LIFE_FILE_SECTION_END
Definition: d_bio_enum.h:101
void set_scale_nodes(double scale)
Definition: d_bio_nucleuspedigree.h:105
bool matching_HasAncestorInRange(size_t t_oldest, double y_min_px, double y_max_px, double x_min_px, double x_max_px)
Definition: d_bio_nucleusblob.cpp:1531
static int Calc_Stats_2D(vector< double > *v_stats, vector< double > v_data_x, vector< double > v_data_y)
Definition: d_stat.cpp:348
@ ER_empty
Definition: d_enum.h:135