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_NucleusPedigree Class Reference

#include <d_bio_nucleuspedigree.h>

Inheritance diagram for D_Bio_NucleusPedigree:

Public Types

enum  EVENT_TYPE {
  EVENT_TYPE_LARGE_DIST_BETWEEN_NUC, EVENT_TYPE_MITOSIS, EVENT_TYPE_EXCLUDED, EVENT_TYPE_SHORT_LIFE_ISOLATED,
  EVENT_TYPE_SHORT_LIFE_LOOSE_START, EVENT_TYPE_SHORT_LIFE_LOOSE_END, EVENT_TYPE_SHORT_LIFE_BETWEEN_MITOSES, EVENT_TYPE_NUMBER_OF
}
 

Public Slots

void SetAttribFilterToNeedUpdate ()
 

Public Member Functions

 D_Bio_NucleusPedigree ()
 
void clear ()
 
void set_size_time_and_mosaik (size_t t_size, size_t y_size, size_t x_size)
 
void set_time_irradiation (double t_irr)
 
size_t size_T ()
 
size_t size_Y ()
 
size_t size_X ()
 
Rect rect_RegularRange_px ()
 
size_t nuclei_blob_count (size_t t, size_t y, size_t x)
 
size_t nuclei_blob_count (size_t t)
 
size_t nuclei_blob_count ()
 
size_t mosaik_index_non_empty_min_x ()
 
size_t mosaik_index_non_empty_max_x ()
 
size_t mosaik_index_non_empty_min_y ()
 
size_t mosaik_index_non_empty_max_y ()
 
QString info ()
 
void info_debug ()
 
void info_popup ()
 
D_Bio_NucleusBlobget_pNucleus (size_t t, size_t y_mosaic, size_t x_mosaic, size_t i)
 
D_Bio_NucleusBlobget_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)
 
vector< D_Bio_NucleusBlob * > get_pNuclei_FromNucLifes (bool filtered_only)
 
size_t get_NucleusLifesCount (bool filtered)
 
D_Bio_NucleusLifeget_pNucleusLife (size_t index, bool filtered)
 
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)
 
bool add_nucleus_blob (size_t t, size_t y, size_t x, D_Bio_NucleusBlob nuc)
 
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)
 
int setPedigreeViewer_Plot3D (D_Viewer_Plot_3D *viewer)
 
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)
 
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)
 
int setPedigreeViewer_Volumetric (D_Viewer_3D *viewer)
 
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)
 
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)
 
void set_scale_px2um (double scale)
 
void set_scale_T2h (double scale)
 
void set_scale_nodes (double scale)
 
void set_scale_edges (double scale)
 
void set_FrameInMargin_XY (int x_min, int x_max, int y_min, int y_max)
 
void set_FrameInMargin_XY (Rect FrameInRange)
 
void set_FrameBorder_XY (Rect FrameBorder)
 
void set_earliest_mitoses_allowed (size_t t_earliest)
 
void set_channels (QStringList channels_foc, QStringList channels_val)
 
bool set_attrib_filter_ui (QGroupBox *box_foci, QGroupBox *box_nucblobs, QGroupBox *box_nuclifes)
 
bool set_attrib_filter_path (QDir *pDir_Save)
 
bool set_attrib_filter_channels (QStringList channels_foc, QStringList channels_val)
 
bool set_attrib_filter_scaling ()
 
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)
 
bool calc_NucLifes ()
 
bool calc_NucLifes_Filtered ()
 
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)
 
vector< double > attrib_nuclife (size_t i_attrib)
 
vector< double > attrib_nucblob (size_t i_attrib, size_t ch_val)
 
vector< double > attrib_foci (size_t i_attrib, size_t ch_val)
 
vector< double > attrib_foci (size_t i_attrib, size_t ch_val, size_t ch_foc)
 
bool save_analysis (QString QS_SavePath)
 
void match_all ()
 
void match_all_go1 ()
 
void match_all_go2 ()
 
void match_time_go1 (size_t t)
 
void match_time_go2 (size_t t)
 
void match_time_correct_mitosis_go1 (size_t t)
 
void match_time_correct_mitosis_go2 (size_t t)
 
bool match_save_results (QString QS_path)
 
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)
 
bool match_load_matches (QString QS_path_NucLifes)
 
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)
 
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)
 
bool event_check (int *t_event, int *y_event, int *event_x, D_Bio_NucleusLife *pNucLifeTest, int type, int param)
 
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)
 

Public Attributes

const QStringList QSL_EventType
 

Member Enumeration Documentation

◆ EVENT_TYPE

Enumerator
EVENT_TYPE_LARGE_DIST_BETWEEN_NUC 
EVENT_TYPE_MITOSIS 
EVENT_TYPE_EXCLUDED 
EVENT_TYPE_SHORT_LIFE_ISOLATED 
EVENT_TYPE_SHORT_LIFE_LOOSE_START 
EVENT_TYPE_SHORT_LIFE_LOOSE_END 
EVENT_TYPE_SHORT_LIFE_BETWEEN_MITOSES 
EVENT_TYPE_NUMBER_OF 

Constructor & Destructor Documentation

◆ D_Bio_NucleusPedigree()

D_Bio_NucleusPedigree::D_Bio_NucleusPedigree ( )

Member Function Documentation

◆ add_nucleus_blob()

bool D_Bio_NucleusPedigree::add_nucleus_blob ( size_t  t,
size_t  y,
size_t  x,
D_Bio_NucleusBlob  nuc 
)

◆ attrib_data()

vector< double > D_Bio_NucleusPedigree::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 
)

◆ attrib_foci() [1/2]

vector< double > D_Bio_NucleusPedigree::attrib_foci ( size_t  i_attrib,
size_t  ch_val 
)

◆ attrib_foci() [2/2]

vector< double > D_Bio_NucleusPedigree::attrib_foci ( size_t  i_attrib,
size_t  ch_val,
size_t  ch_foc 
)

◆ attrib_nucblob()

vector< double > D_Bio_NucleusPedigree::attrib_nucblob ( size_t  i_attrib,
size_t  ch_val 
)

◆ attrib_nuclife()

vector< double > D_Bio_NucleusPedigree::attrib_nuclife ( size_t  i_attrib)

◆ calc_NucLifes()

bool D_Bio_NucleusPedigree::calc_NucLifes ( )

◆ calc_NucLifes_Filtered()

bool D_Bio_NucleusPedigree::calc_NucLifes_Filtered ( )

◆ clear()

void D_Bio_NucleusPedigree::clear ( )

◆ event_check()

bool D_Bio_NucleusPedigree::event_check ( int *  t_event,
int *  y_event,
int *  event_x,
D_Bio_NucleusLife pNucLifeTest,
int  type,
int  param 
)

◆ event_counts()

vector< size_t > D_Bio_NucleusPedigree::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 
)

◆ event_find() [1/2]

bool D_Bio_NucleusPedigree::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 
)

◆ event_find() [2/2]

bool D_Bio_NucleusPedigree::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 
)

◆ get_NucleusLifesCount()

size_t D_Bio_NucleusPedigree::get_NucleusLifesCount ( bool  filtered)

◆ get_pNuclei_FromNucLifes()

vector< D_Bio_NucleusBlob * > D_Bio_NucleusPedigree::get_pNuclei_FromNucLifes ( bool  filtered_only)

◆ get_pNucleus() [1/2]

D_Bio_NucleusBlob * D_Bio_NucleusPedigree::get_pNucleus ( size_t  t,
size_t  y_mosaic,
size_t  x_mosaic,
size_t  i 
)

◆ get_pNucleus() [2/2]

D_Bio_NucleusBlob * D_Bio_NucleusPedigree::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 
)

◆ get_pNucleusLife()

D_Bio_NucleusLife * D_Bio_NucleusPedigree::get_pNucleusLife ( size_t  index,
bool  filtered 
)

◆ info()

QString D_Bio_NucleusPedigree::info ( )

◆ info_debug()

void D_Bio_NucleusPedigree::info_debug ( )

◆ info_popup()

void D_Bio_NucleusPedigree::info_popup ( )

◆ initMatching()

bool D_Bio_NucleusPedigree::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 
)

◆ load_nuclei_data()

bool D_Bio_NucleusPedigree::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 
)

◆ match_all()

void D_Bio_NucleusPedigree::match_all ( )

◆ match_all_go1()

void D_Bio_NucleusPedigree::match_all_go1 ( )

◆ match_all_go2()

void D_Bio_NucleusPedigree::match_all_go2 ( )

◆ match_load_data_and_matches()

bool D_Bio_NucleusPedigree::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 
)

◆ match_load_matches()

bool D_Bio_NucleusPedigree::match_load_matches ( QString  QS_path_NucLifes)

◆ match_save_results()

bool D_Bio_NucleusPedigree::match_save_results ( QString  QS_path)

◆ match_time_correct_mitosis_go1()

void D_Bio_NucleusPedigree::match_time_correct_mitosis_go1 ( size_t  t)

◆ match_time_correct_mitosis_go2()

void D_Bio_NucleusPedigree::match_time_correct_mitosis_go2 ( size_t  t)

◆ match_time_go1()

void D_Bio_NucleusPedigree::match_time_go1 ( size_t  t)

◆ match_time_go2()

void D_Bio_NucleusPedigree::match_time_go2 ( size_t  t)

◆ mosaik_index_non_empty_max_x()

size_t D_Bio_NucleusPedigree::mosaik_index_non_empty_max_x ( )

◆ mosaik_index_non_empty_max_y()

size_t D_Bio_NucleusPedigree::mosaik_index_non_empty_max_y ( )

◆ mosaik_index_non_empty_min_x()

size_t D_Bio_NucleusPedigree::mosaik_index_non_empty_min_x ( )

◆ mosaik_index_non_empty_min_y()

size_t D_Bio_NucleusPedigree::mosaik_index_non_empty_min_y ( )

◆ nuclei_blob_count() [1/3]

size_t D_Bio_NucleusPedigree::nuclei_blob_count ( )

◆ nuclei_blob_count() [2/3]

size_t D_Bio_NucleusPedigree::nuclei_blob_count ( size_t  t)

◆ nuclei_blob_count() [3/3]

size_t D_Bio_NucleusPedigree::nuclei_blob_count ( size_t  t,
size_t  y,
size_t  x 
)

◆ rect_RegularRange_px()

Rect D_Bio_NucleusPedigree::rect_RegularRange_px ( )
inline

◆ save_analysis()

bool D_Bio_NucleusPedigree::save_analysis ( QString  QS_SavePath)

◆ set_attrib_filter()

bool D_Bio_NucleusPedigree::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 
)

◆ set_attrib_filter_channels()

bool D_Bio_NucleusPedigree::set_attrib_filter_channels ( QStringList  channels_foc,
QStringList  channels_val 
)

◆ set_attrib_filter_path()

bool D_Bio_NucleusPedigree::set_attrib_filter_path ( QDir *  pDir_Save)

◆ set_attrib_filter_scaling()

bool D_Bio_NucleusPedigree::set_attrib_filter_scaling ( )

◆ set_attrib_filter_ui()

bool D_Bio_NucleusPedigree::set_attrib_filter_ui ( QGroupBox *  box_foci,
QGroupBox *  box_nucblobs,
QGroupBox *  box_nuclifes 
)

◆ set_channels()

void D_Bio_NucleusPedigree::set_channels ( QStringList  channels_foc,
QStringList  channels_val 
)
inline

◆ set_earliest_mitoses_allowed()

void D_Bio_NucleusPedigree::set_earliest_mitoses_allowed ( size_t  t_earliest)
inline

◆ set_FrameBorder_XY()

void D_Bio_NucleusPedigree::set_FrameBorder_XY ( Rect  FrameBorder)

◆ set_FrameInMargin_XY() [1/2]

void D_Bio_NucleusPedigree::set_FrameInMargin_XY ( int  x_min,
int  x_max,
int  y_min,
int  y_max 
)
inline

◆ set_FrameInMargin_XY() [2/2]

void D_Bio_NucleusPedigree::set_FrameInMargin_XY ( Rect  FrameInRange)
inline

◆ set_scale_edges()

void D_Bio_NucleusPedigree::set_scale_edges ( double  scale)
inline

◆ set_scale_nodes()

void D_Bio_NucleusPedigree::set_scale_nodes ( double  scale)
inline

◆ set_scale_px2um()

void D_Bio_NucleusPedigree::set_scale_px2um ( double  scale)
inline

◆ set_scale_T2h()

void D_Bio_NucleusPedigree::set_scale_T2h ( double  scale)
inline

◆ set_size_time_and_mosaik()

void D_Bio_NucleusPedigree::set_size_time_and_mosaik ( size_t  t_size,
size_t  y_size,
size_t  x_size 
)

◆ set_time_irradiation()

void D_Bio_NucleusPedigree::set_time_irradiation ( double  t_irr)

◆ SetAttribFilterToNeedUpdate

void D_Bio_NucleusPedigree::SetAttribFilterToNeedUpdate ( )
slot

◆ setPedigreeViewer_Plot3D()

int D_Bio_NucleusPedigree::setPedigreeViewer_Plot3D ( D_Viewer_Plot_3D viewer)

◆ setPedigreeViewer_Volumetric()

int D_Bio_NucleusPedigree::setPedigreeViewer_Volumetric ( D_Viewer_3D viewer)

◆ size_T()

size_t D_Bio_NucleusPedigree::size_T ( )
inline

◆ size_X()

size_t D_Bio_NucleusPedigree::size_X ( )
inline

◆ size_Y()

size_t D_Bio_NucleusPedigree::size_Y ( )
inline

◆ updatePedigreeView_Plot3D() [1/2]

int D_Bio_NucleusPedigree::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 
)

◆ updatePedigreeView_Plot3D() [2/2]

int D_Bio_NucleusPedigree::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 
)

◆ updatePedigreeView_Volumetric() [1/2]

int D_Bio_NucleusPedigree::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 
)

◆ updatePedigreeView_Volumetric() [2/2]

int D_Bio_NucleusPedigree::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 
)

make sure node and edge sizes are odd

define dimension

init black volume as plot background

cosmetic params

score norming

create threads

start threads

wait for all threads to finish

show plot

finish

Member Data Documentation

◆ QSL_EventType

const QStringList D_Bio_NucleusPedigree::QSL_EventType
Initial value:
= {
"large dist between nuclei",
"mitosis",
"excluded",
"short life (isolated)",
"short life (loose start)",
"short life (loose end)",
"short life (between mitoses)"
}

The documentation for this class was generated from the following files: