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.
d_bio_nucleuslife.h
Go to the documentation of this file.
1 /************************************
2  * added: 04.01.2021 *
3  * author: David Eilenstein *
4  * contact: D.Eilenstein@gsi.de *
5  * project: ImageD *
6  * facility: GSI Darmstadt, Ger *
7  ************************************/
8 
9 #ifndef D_BIO_NUCLEUSLIFE_H
10 #define D_BIO_NUCLEUSLIFE_H
11 
12 //own
13 #include <d_enum.h>
14 #include <d_stat.h>
15 #include <d_math.h>
16 #include <d_bio_nucleusblob.h>
17 #include <d_bio_enum.h>
18 
19 //Qt
20 #include <QFileDialog>
21 #include <QFileInfo>
22 #include <QFileInfoList>
23 #include <QDir>
24 #include <QDateTime>
25 #include <QInputDialog>
26 
27 //general
28 #include <iostream>
29 #include <sstream>
30 #include <fstream>
31 #include <vector>
32 #include <algorithm>
33 
34 //openCV
35 #include <opencv2/core/core.hpp>
36 #include <opencv2/highgui/highgui.hpp>
37 #include <opencv2/imgproc/imgproc.hpp>
38 
39 //namespaces
40 using namespace std;
41 //using namespace cv; (prohibited because of abigous names with qtdatavisualization)
42 #include <d_opencv_typedefs.h>
43 
45 {
46  // Parent
47  // | |
48  // Sibbling Member1
49  // ... Member2
50  // ...
51  // MemberN (may be mitosis)
52  // | |
53  // Child1 Child2
54  //
55  //Existance of parent and childs is optional
56  //Only members are taken into account for calcs
57 
58 public:
60 
61  bool set_ScalePx2Um(double scale);
62  void set_FrameInMargin_XY(int x_min, int x_max, int y_min, int y_max) {int w = x_max - x_min; int h = y_max - y_min; if(w > 0 && h > 0) set_FrameInMargin_XY(Rect(x_min, y_min, w, h));}
63  void set_FrameInMargin_XY(Rect FrameOk) {FrameInMarginXY = FrameOk;}
64  void set_FrameBorder_XY(Rect FrameBorder) {FrameBorderXY = FrameBorder;}
65  void set_sizeTime(size_t t_size) {size_time = t_size;}
66  void set_time_irradiation(double t_irr) {time_irradiation = t_irr;}
67 
68  bool set_Parent(D_Bio_NucleusBlob* nuc_parent) {if(has_NoParent()) {pNucParent = nuc_parent; return true;} else {return false;}}
69  bool set_Child1(D_Bio_NucleusBlob* nuc_child1) {if(has_NoChild1()) {pNucChild1 = nuc_child1; return true;} else {return false;}}
70  bool set_Child2(D_Bio_NucleusBlob* nuc_child2) {if(has_NoChild2()) {pNucChild2 = nuc_child2; return true;} else {return false;}}
71  bool set_Child (D_Bio_NucleusBlob* nuc_child) {if(has_NoChild1()) {return set_Child1(nuc_child);} else {return set_Child2(nuc_child);}}
72  bool add_Member(D_Bio_NucleusBlob nuc);
73 
74  Rect frameBorder() {return FrameBorderXY;}
75 
76  bool has_Parent() {return pNucParent != nullptr;}
77  bool has_Child1() {return pNucChild1 != nullptr;}
78  bool has_Child2() {return pNucChild2 != nullptr;}
79  bool has_NoParent() {return !has_Parent();}
80  bool has_NoChild() {return !has_Child1() && !has_Child2();}
81  bool has_NoChild1() {return !has_Child1();}
82  bool has_NoChild2() {return !has_Child2();}
83  bool has_ExactlyOneChild() {return (has_Child1() && !has_Child2()) || (!has_Child1() && has_Child2());}
84  bool has_AtLeastOneChild() {return has_Child1() || has_Child2();}
85  bool has_ExactlyTwoChilds() {return has_Child1() && has_Child2();}
86  bool has_LessThenTwoChilds() {return has_ExactlyOneChild() || has_NoChild();}
87  bool has_Sibbling() {return has_Parent() ? pNucParent->matching_isMitosis() : false;}
88  bool has_NoSibbling() {return !has_Sibbling();}
89 
90  bool has_MitosisStart() {return has_Parent();}
91  bool has_NoMitosisStart() {return !has_MitosisStart();}
92  bool has_MitosisEnd() {return has_AtLeastOneChild();}
93  bool has_NoMitosisEnd() {return !has_MitosisEnd();}
94  bool has_MitosisStartAndEnd() {return has_MitosisStart() && has_MitosisEnd();}
95  bool has_NeitherMitosisStartNorEnd() {return !has_MitosisStart() && !has_MitosisEnd();}
96 
97  D_Bio_NucleusBlob* pNuc_parent() {return has_Parent() ? pNucParent : nullptr;}
98  D_Bio_NucleusBlob* pNuc_child1() {return has_Child1() ? pNucChild1 : nullptr;}
99  D_Bio_NucleusBlob* pNuc_child2() {return has_Child2() ? pNucChild2 : nullptr;}
100  vector<D_Bio_NucleusBlob> Nuc_members() {return vNucMembers;}
101  D_Bio_NucleusBlob Nuc_member(size_t i) {return i < members_count() ? vNucMembers[i] : D_Bio_NucleusBlob();}
102  D_Bio_NucleusBlob* pNuc_member(size_t i) {return i < members_count() ? &(vNucMembers[i]) : nullptr;}
103  D_Bio_NucleusBlob* pNuc_member_first() {return pNuc_member(0);}
104  D_Bio_NucleusBlob* pNuc_member_last() {return pNuc_member(members_count() - 1);}
105  D_Bio_NucleusBlob* pNuc_member_byTime(size_t t);
106  D_Bio_NucleusBlob* pNuc_excluded() {return members_count() > 0 ? vNucMembers[0].matching_excluded_pNucMarked() : nullptr;}
107 
108  size_t members_count() {return vNucMembers.size();}
109 
110  D_Bio_Focus* pFocus(size_t i_nuc, size_t ch_foc, size_t i_foc);
111 
112  bool is_excluded();
113  bool set_excluded(size_t t, bool exclude);
114 
115  //foci attribs
116  double attrib_foc (size_t i_attrib, size_t ch_val, size_t ch_foc, size_t i_nuc, size_t i_foc);
117  vector<double> attrib_foc (size_t i_attrib, size_t ch_val, size_t ch_foc, size_t i_nuc);
118  vector<vector<double>> attrib_foc (size_t i_attrib, size_t ch_val, size_t ch_foc);
119  vector<vector<vector<double>>> attrib_foc (size_t i_attrib, size_t ch_val);
120  bool attrib_foc (vector<double>* pvAttribsToAppendTo, size_t i_attrib, size_t ch_val);
121  bool attrib_foc (vector<double>* pvAttribsToAppendTo, size_t i_attrib, size_t ch_val, size_t ch_foc);
122 
123  //nuc attribs
124  double attrib_nuc (size_t i_attrib, size_t ch_val, size_t i_nuc);
125  double attrib_nuc_begin(size_t i_attrib, size_t ch_val) {return attrib_nuc(i_attrib, ch_val, 0);}
126  double attrib_nuc_end (size_t i_attrib, size_t ch_val) {return attrib_nuc(i_attrib, ch_val, members_count() - 1);}
127  vector<double> attrib_nuc (size_t i_attrib, size_t ch_val);
128  bool attrib_nuc (vector<double>* pvAttribsToAppendTo, size_t i_attrib, size_t ch_val);
129 
130  //nuc life attribs
131  double attrib_nuclife(size_t i_attrib_nuclife);
132  double attrib_nuclife_growth(size_t i_attrib_nuc, size_t ch_val) {double v0 = attrib_nuc_begin(i_attrib_nuc, ch_val); double v1 = attrib_nuc_end(i_attrib_nuc, ch_val); return v0 > 0 ? v1 / v0 : 0;}
133  double attrib_nuclife_growth_per_T(size_t i_attrib_nuc, size_t ch_val) {double nt = members_count(); return nt > 0 ? attrib_nuclife_growth(i_attrib_nuc, ch_val) / nt : 0;}
134  static bool attribute_is_focus_channel_dependent(size_t i_attrib);
135  static bool attribute_is_value_channel_dependent(size_t i_attrib);
136 
137  double closestDist2Border();
138 
139  //thresholds
140  bool nearBorderAtLeastOnce();
141  bool inRangeAtAllTimes() {return !nearBorderAtLeastOnce();}
142  bool starts_before(size_t t) {return attrib_nuclife(ATTRIB_NUCLIFE_START) < t;}
143  bool starts_at(size_t t) {return attrib_nuclife(ATTRIB_NUCLIFE_START) == t;}
144  bool starts_after(size_t t) {return attrib_nuclife(ATTRIB_NUCLIFE_START) > t;}
145  bool ends_before(size_t t) {return attrib_nuclife(ATTRIB_NUCLIFE_END) < t;}
146  bool ends_at(size_t t) {return attrib_nuclife(ATTRIB_NUCLIFE_END) == t;}
147  bool ends_after(size_t t) {return attrib_nuclife(ATTRIB_NUCLIFE_END) > t;}
148 
149 private:
150  //nuclei
151  D_Bio_NucleusBlob* pNucParent = nullptr;
152  vector<D_Bio_NucleusBlob> vNucMembers; //last one is possible end mitosis
153  D_Bio_NucleusBlob* pNucChild1 = nullptr;
154  D_Bio_NucleusBlob* pNucChild2 = nullptr;
155 
156  //age
157  size_t time_index_earliest = 0;
158  size_t time_index_latest = 0;
159 
160  //scale
161  double scale_px2um = 1.0;
162  double scale_um2px = 1.0;
163 
164  //range and context
165  Rect FrameBorderXY = Rect(0, 0, INT_MAX/2, INT_MAX/2);
166  Rect FrameInMarginXY = Rect(-INT_MAX/2, -INT_MAX/2, INT_MAX, INT_MAX);
167  size_t size_time = 0;
168  double time_irradiation = 0;
169 };
170 
171 #endif // D_BIO_NUCLEUSLIFE_H
D_Bio_NucleusLife::has_NoParent
bool has_NoParent()
Definition: d_bio_nucleuslife.h:79
D_Bio_NucleusLife::attribute_is_focus_channel_dependent
static bool attribute_is_focus_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleuslife.cpp:386
D_Bio_NucleusLife::pNuc_member_first
D_Bio_NucleusBlob * pNuc_member_first()
Definition: d_bio_nucleuslife.h:103
D_Bio_NucleusLife::is_excluded
bool is_excluded()
Definition: d_bio_nucleuslife.cpp:112
D_Bio_NucleusBlob::matching_excluded_pNucMarked
D_Bio_NucleusBlob * matching_excluded_pNucMarked()
Definition: d_bio_nucleusblob.cpp:1377
D_Math::Distance
static double Distance(Point pt1, Point pt2)
Definition: d_math.cpp:1511
D_Bio_NucleusLife::set_Parent
bool set_Parent(D_Bio_NucleusBlob *nuc_parent)
Definition: d_bio_nucleuslife.h:68
ATTRIB_NUCLIFE_FOCICOUNT_GROWTH_PER_T
@ ATTRIB_NUCLIFE_FOCICOUNT_GROWTH_PER_T
Definition: d_bio_enum.h:304
D_Bio_NucleusLife::pNuc_parent
D_Bio_NucleusBlob * pNuc_parent()
Definition: d_bio_nucleuslife.h:97
d_math.h
ATTRIB_NUCLIFE_MID
@ ATTRIB_NUCLIFE_MID
Definition: d_bio_enum.h:292
D_Bio_NucleusLife::has_ExactlyOneChild
bool has_ExactlyOneChild()
Definition: d_bio_nucleuslife.h:83
d_bio_enum.h
D_Bio_NucleusBlob::time_index
size_t time_index()
Definition: d_bio_nucleusblob.h:126
D_Bio_NucleusLife::Nuc_members
vector< D_Bio_NucleusBlob > Nuc_members()
Definition: d_bio_nucleuslife.h:100
d_bio_nucleuslife.h
ATTRIB_NUCLIFE_MITOSIS_STARTS_ENDS_WITH
@ ATTRIB_NUCLIFE_MITOSIS_STARTS_ENDS_WITH
Definition: d_bio_enum.h:312
D_Bio_NucleusLife::has_MitosisEnd
bool has_MitosisEnd()
Definition: d_bio_nucleuslife.h:92
D_Bio_NucleusBlob::get_FociChannels
size_t get_FociChannels()
Definition: d_bio_nucleusblob.h:67
D_Bio_NucleusLife::add_Member
bool add_Member(D_Bio_NucleusBlob nuc)
Definition: d_bio_nucleuslife.cpp:27
ATTRIB_NUCLIFE_END
@ ATTRIB_NUCLIFE_END
Definition: d_bio_enum.h:291
Rect
cv::Rect Rect
Definition: d_opencv_typedefs.h:65
D_Bio_NucleusLife::has_NoChild
bool has_NoChild()
Definition: d_bio_nucleuslife.h:80
ATTRIB_NUCLIFE_START
@ ATTRIB_NUCLIFE_START
Definition: d_bio_enum.h:290
D_Bio_NucleusLife::D_Bio_NucleusLife
D_Bio_NucleusLife()
Definition: d_bio_nucleuslife.cpp:11
D_Bio_NucleusLife::set_Child2
bool set_Child2(D_Bio_NucleusBlob *nuc_child2)
Definition: d_bio_nucleuslife.h:70
D_Bio_NucleusLife::has_NoMitosisEnd
bool has_NoMitosisEnd()
Definition: d_bio_nucleuslife.h:93
D_Bio_NucleusLife::set_excluded
bool set_excluded(size_t t, bool exclude)
Definition: d_bio_nucleuslife.cpp:137
D_Bio_NucleusLife::has_AtLeastOneChild
bool has_AtLeastOneChild()
Definition: d_bio_nucleuslife.h:84
D_Bio_NucleusLife::pNuc_member
D_Bio_NucleusBlob * pNuc_member(size_t i)
Definition: d_bio_nucleuslife.h:102
D_Bio_NucleusLife::starts_at
bool starts_at(size_t t)
Definition: d_bio_nucleuslife.h:143
D_Bio_NucleusLife::attrib_nuc
double attrib_nuc(size_t i_attrib, size_t ch_val, size_t i_nuc)
Definition: d_bio_nucleuslife.cpp:283
D_Bio_NucleusBlob::get_pFocus
D_Bio_Focus * get_pFocus(size_t channel, size_t index)
Definition: d_bio_nucleusblob.h:72
D_Bio_Focus
Definition: d_bio_focus.h:48
D_Bio_NucleusLife::starts_after
bool starts_after(size_t t)
Definition: d_bio_nucleuslife.h:144
D_Bio_NucleusLife::has_Child1
bool has_Child1()
Definition: d_bio_nucleuslife.h:77
D_Bio_NucleusLife::set_FrameInMargin_XY
void set_FrameInMargin_XY(Rect FrameOk)
Definition: d_bio_nucleuslife.h:63
D_Bio_NucleusLife::attrib_foc
double attrib_foc(size_t i_attrib, size_t ch_val, size_t ch_foc, size_t i_nuc, size_t i_foc)
Definition: d_bio_nucleuslife.cpp:148
ATTRIB_NUCLIFE_PATHLENGTH_UM
@ ATTRIB_NUCLIFE_PATHLENGTH_UM
Definition: d_bio_enum.h:296
D_Bio_NucleusLife::set_FrameBorder_XY
void set_FrameBorder_XY(Rect FrameBorder)
Definition: d_bio_nucleuslife.h:64
D_Bio_NucleusBlob::matching_set_excluded
void matching_set_excluded(bool exclude)
Definition: d_bio_nucleusblob.h:158
ATTRIB_NUC_NUMBER_OF
@ ATTRIB_NUC_NUMBER_OF
Definition: d_bio_enum.h:244
ATTRIB_NUCLIFE_EXCLUDED
@ ATTRIB_NUCLIFE_EXCLUDED
Definition: d_bio_enum.h:313
D_Bio_NucleusBlob::get_FociCount
size_t get_FociCount(size_t channel)
Definition: d_bio_nucleusblob.h:69
D_Bio_NucleusLife::attrib_nuc_end
double attrib_nuc_end(size_t i_attrib, size_t ch_val)
Definition: d_bio_nucleuslife.h:126
ATTRIB_NUCLIFE_FOCICOUNT_PER_AREA_GROWTH
@ ATTRIB_NUCLIFE_FOCICOUNT_PER_AREA_GROWTH
Definition: d_bio_enum.h:305
ATTRIB_NUC_SHIFT_PX
@ ATTRIB_NUC_SHIFT_PX
Definition: d_bio_enum.h:218
D_Bio_NucleusLife::attrib_nuclife_growth
double attrib_nuclife_growth(size_t i_attrib_nuc, size_t ch_val)
Definition: d_bio_nucleuslife.h:132
D_Bio_NucleusLife::attrib_nuclife
double attrib_nuclife(size_t i_attrib_nuclife)
Definition: d_bio_nucleuslife.cpp:332
ATTRIB_NUCLIFE_IN_RANGE_PERMANENT
@ ATTRIB_NUCLIFE_IN_RANGE_PERMANENT
Definition: d_bio_enum.h:309
ATTRIB_NUCLIFE_SHIFT_UM
@ ATTRIB_NUCLIFE_SHIFT_UM
Definition: d_bio_enum.h:294
ATTRIB_NUCLIFE_AGE
@ ATTRIB_NUCLIFE_AGE
Definition: d_bio_enum.h:289
ATTRIB_NUC_AREA_PX
@ ATTRIB_NUC_AREA_PX
Definition: d_bio_enum.h:214
ATTRIB_NUCLIFE_PATHLENGTH_PX
@ ATTRIB_NUCLIFE_PATHLENGTH_PX
Definition: d_bio_enum.h:295
ATTRIB_NUCLIFE_NUMBER_OF
@ ATTRIB_NUCLIFE_NUMBER_OF
Definition: d_bio_enum.h:314
ATTRIB_NUCLIFE_CLOSTEST_DIST_TO_BORDER_UM
@ ATTRIB_NUCLIFE_CLOSTEST_DIST_TO_BORDER_UM
Definition: d_bio_enum.h:308
D_Bio_NucleusLife::has_MitosisStart
bool has_MitosisStart()
Definition: d_bio_nucleuslife.h:90
ATTRIB_NUC_FOCI_COUNT_ALL
@ ATTRIB_NUC_FOCI_COUNT_ALL
Definition: d_bio_enum.h:230
D_Bio_NucleusLife::has_Sibbling
bool has_Sibbling()
Definition: d_bio_nucleuslife.h:87
D_Bio_NucleusLife::set_Child
bool set_Child(D_Bio_NucleusBlob *nuc_child)
Definition: d_bio_nucleuslife.h:71
D_Bio_NucleusLife::set_ScalePx2Um
bool set_ScalePx2Um(double scale)
Definition: d_bio_nucleuslife.cpp:16
ATTRIB_NUC_FOCI_COUNT_ALL_PER_AREA_PX
@ ATTRIB_NUC_FOCI_COUNT_ALL_PER_AREA_PX
Definition: d_bio_enum.h:231
D_Bio_NucleusLife::pNuc_member_byTime
D_Bio_NucleusBlob * pNuc_member_byTime(size_t t)
Definition: d_bio_nucleuslife.cpp:82
D_Bio_NucleusBlob
Definition: d_bio_nucleusblob.h:46
ATTRIB_NUCLIFE_PATHLENGTH_PX_PER_T
@ ATTRIB_NUCLIFE_PATHLENGTH_PX_PER_T
Definition: d_bio_enum.h:299
ATTRIB_NUCLIFE_SHIFT_PX
@ ATTRIB_NUCLIFE_SHIFT_PX
Definition: d_bio_enum.h:293
D_Bio_NucleusLife::pNuc_child1
D_Bio_NucleusBlob * pNuc_child1()
Definition: d_bio_nucleuslife.h:98
D_Bio_NucleusLife::has_ExactlyTwoChilds
bool has_ExactlyTwoChilds()
Definition: d_bio_nucleuslife.h:85
D_Bio_NucleusLife::ends_before
bool ends_before(size_t t)
Definition: d_bio_nucleuslife.h:145
D_Bio_NucleusLife::has_NoMitosisStart
bool has_NoMitosisStart()
Definition: d_bio_nucleuslife.h:91
D_Bio_NucleusLife::set_Child1
bool set_Child1(D_Bio_NucleusBlob *nuc_child1)
Definition: d_bio_nucleuslife.h:69
D_Bio_NucleusLife::starts_before
bool starts_before(size_t t)
Definition: d_bio_nucleuslife.h:142
ATTRIB_NUCLIFE_MITOSIS_ENDS_WITH
@ ATTRIB_NUCLIFE_MITOSIS_ENDS_WITH
Definition: d_bio_enum.h:311
ATTRIB_NUCLIFE_FOCICOUNT_GROWTH
@ ATTRIB_NUCLIFE_FOCICOUNT_GROWTH
Definition: d_bio_enum.h:303
D_Bio_NucleusLife::pNuc_member_last
D_Bio_NucleusBlob * pNuc_member_last()
Definition: d_bio_nucleuslife.h:104
D_Bio_Focus::attribute
double attribute(size_t i_attrib, size_t ch_val, double scale_px2um)
Definition: d_bio_focus.cpp:72
D_Bio_NucleusLife::closestDist2Border
double closestDist2Border()
Definition: d_bio_nucleuslife.cpp:414
D_Bio_NucleusLife::frameBorder
Rect frameBorder()
Definition: d_bio_nucleuslife.h:74
D_Bio_NucleusLife::members_count
size_t members_count()
Definition: d_bio_nucleuslife.h:108
D_Bio_NucleusLife::inRangeAtAllTimes
bool inRangeAtAllTimes()
Definition: d_bio_nucleuslife.h:141
D_Bio_NucleusBlob::centroid
Point2f centroid()
Definition: d_bio_nucleusblob.h:120
D_Bio_NucleusLife::has_MitosisStartAndEnd
bool has_MitosisStartAndEnd()
Definition: d_bio_nucleuslife.h:94
D_Bio_NucleusLife::ends_at
bool ends_at(size_t t)
Definition: d_bio_nucleuslife.h:146
ATTRIB_NUCLIFE_CLOSTEST_DIST_TO_BORDER_PX
@ ATTRIB_NUCLIFE_CLOSTEST_DIST_TO_BORDER_PX
Definition: d_bio_enum.h:307
D_Bio_NucleusLife::set_FrameInMargin_XY
void set_FrameInMargin_XY(int x_min, int x_max, int y_min, int y_max)
Definition: d_bio_nucleuslife.h:62
ATTRIB_NUCLIFE_FOCICOUNT_PER_AREA_GROWTH_PER_T
@ ATTRIB_NUCLIFE_FOCICOUNT_PER_AREA_GROWTH_PER_T
Definition: d_bio_enum.h:306
D_Bio_NucleusLife::has_LessThenTwoChilds
bool has_LessThenTwoChilds()
Definition: d_bio_nucleuslife.h:86
D_Bio_NucleusLife::has_Child2
bool has_Child2()
Definition: d_bio_nucleuslife.h:78
Point2d
cv::Point2d Point2d
Definition: d_opencv_typedefs.h:38
ATTRIB_FOC_NUMBER_OF
@ ATTRIB_FOC_NUMBER_OF
Definition: d_bio_enum.h:177
ATTRIB_NUC_CENTER_X_PX
@ ATTRIB_NUC_CENTER_X_PX
Definition: d_bio_enum.h:210
d_opencv_typedefs.h
ATTRIB_NUCLIFE_MITOSIS_STARTS_WITH
@ ATTRIB_NUCLIFE_MITOSIS_STARTS_WITH
Definition: d_bio_enum.h:310
D_Bio_NucleusLife::attribute_is_value_channel_dependent
static bool attribute_is_value_channel_dependent(size_t i_attrib)
Definition: d_bio_nucleuslife.cpp:400
ATTRIB_NUCLIFE_PATHLENGTH_UM_PER_T
@ ATTRIB_NUCLIFE_PATHLENGTH_UM_PER_T
Definition: d_bio_enum.h:300
D_Bio_NucleusLife::attrib_nuclife_growth_per_T
double attrib_nuclife_growth_per_T(size_t i_attrib_nuc, size_t ch_val)
Definition: d_bio_nucleuslife.h:133
d_enum.h
D_Bio_NucleusLife::pFocus
D_Bio_Focus * pFocus(size_t i_nuc, size_t ch_foc, size_t i_foc)
Definition: d_bio_nucleuslife.cpp:91
D_Bio_NucleusLife::set_time_irradiation
void set_time_irradiation(double t_irr)
Definition: d_bio_nucleuslife.h:66
D_Bio_NucleusLife::has_NoSibbling
bool has_NoSibbling()
Definition: d_bio_nucleuslife.h:88
d_bio_nucleusblob.h
D_Bio_NucleusLife::nearBorderAtLeastOnce
bool nearBorderAtLeastOnce()
Definition: d_bio_nucleuslife.cpp:428
D_Bio_NucleusLife::attrib_nuc_begin
double attrib_nuc_begin(size_t i_attrib, size_t ch_val)
Definition: d_bio_nucleuslife.h:125
ATTRIB_NUCLIFE_AREA_GROWTH
@ ATTRIB_NUCLIFE_AREA_GROWTH
Definition: d_bio_enum.h:301
ATTRIB_NUCLIFE_SHIFT_PX_PER_T
@ ATTRIB_NUCLIFE_SHIFT_PX_PER_T
Definition: d_bio_enum.h:297
D_Bio_NucleusLife::set_sizeTime
void set_sizeTime(size_t t_size)
Definition: d_bio_nucleuslife.h:65
D_Bio_NucleusLife::has_NoChild1
bool has_NoChild1()
Definition: d_bio_nucleuslife.h:81
D_Bio_NucleusLife::pNuc_child2
D_Bio_NucleusBlob * pNuc_child2()
Definition: d_bio_nucleuslife.h:99
D_Bio_NucleusLife::has_NeitherMitosisStartNorEnd
bool has_NeitherMitosisStartNorEnd()
Definition: d_bio_nucleuslife.h:95
D_Bio_NucleusLife::Nuc_member
D_Bio_NucleusBlob Nuc_member(size_t i)
Definition: d_bio_nucleuslife.h:101
ATTRIB_NUCLIFE_SHIFT_UM_PER_T
@ ATTRIB_NUCLIFE_SHIFT_UM_PER_T
Definition: d_bio_enum.h:298
ATTRIB_NUC_CENTER_Y_PX
@ ATTRIB_NUC_CENTER_Y_PX
Definition: d_bio_enum.h:212
D_Bio_NucleusLife::ends_after
bool ends_after(size_t t)
Definition: d_bio_nucleuslife.h:147
D_Bio_NucleusLife::pNuc_excluded
D_Bio_NucleusBlob * pNuc_excluded()
Definition: d_bio_nucleuslife.h:106
D_Bio_NucleusLife
Definition: d_bio_nucleuslife.h:45
D_Bio_NucleusLife::has_Parent
bool has_Parent()
Definition: d_bio_nucleuslife.h:76
D_Bio_NucleusBlob::attribute
double attribute(size_t i_attrib, size_t ch_val, double scale_px2um)
Definition: d_bio_nucleusblob.cpp:116
D_Bio_NucleusLife::has_NoChild2
bool has_NoChild2()
Definition: d_bio_nucleuslife.h:82
ATTRIB_NUCLIFE_AREA_GROWTH_PER_T
@ ATTRIB_NUCLIFE_AREA_GROWTH_PER_T
Definition: d_bio_enum.h:302
d_stat.h
D_Bio_NucleusBlob::channels
size_t channels()
Definition: d_bio_nucleusblob.h:131