コード例 #1
0
ファイル: strategies.py プロジェクト: bobi5rova/cecog
class SegmentationPluginPropagate(_SegmentationPlugin):

    LABEL = 'Propagate region from primary'
    NAME = 'propagate'
    COLOR = '#FFFF99'
    DOC = ":additional_segmentation_plugins"

    REQUIRES = ['primary_segmentation']

    PARAMS = [('presegmentation_median_radius', IntTrait(1, 0, 100, label='Median radius')),
              ('presegmentation_alpha', FloatTrait(1.0, 0, 4000, label='Otsu factor', digits=2)),
              ('lambda', FloatTrait(0.05, 0, 4000, label='Lambda', digits=2)),
              ('delta_width', IntTrait(1, 1, 4, label='Delta width')),
              ]

    @stopwatch()
    def _run(self, meta_image, container):
        image = meta_image.image

        img_prefiltered = ccore.disc_median(image, self.params['presegmentation_median_radius'])
        t = int(ccore.get_otsu_threshold(img_prefiltered) * self.params['presegmentation_alpha'])
        img_bin = ccore.threshold_image(img_prefiltered, t)
        img_labels = ccore.segmentation_propagate(img_prefiltered, img_bin,
                                                  container.img_labels,
                                                  self.params['lambda'],
                                                  self.params['delta_width'])
        return ccore.ImageMaskContainer(image, img_labels, False, True, True)
コード例 #2
0
ファイル: eventselection.py プロジェクト: bobi5rova/cecog
class SectionEventSelection(SectionCore):

    SECTION_NAME = SECTION_NAME_EVENT_SELECTION

    OPTIONS = [
        ('event_selection',
         [('eventchannel',
           SelectionTrait2(None, [], label='Channel')),
          ('event_selection',
           BooleanTrait(True, label='Event Selection')),
          ('backwardrange',
           FloatTrait(0, -1, 4000, label='Duration [pre]')),
          ('forwardrange',
           FloatTrait(0, -1, 4000, label='Duration [post]')),

          ('duration_unit',
           SelectionTrait2(TimeConverter.FRAMES,
                           TimeConverter.units,
                           label='Duration unit')),
          ('backwardrange_min', BooleanTrait(False, label='Min.')),
          ('forwardrange_min', BooleanTrait(False, label='Min.')),
          ('maxindegree', IntTrait(1, 0, 4000, label='Max in-degree')),
          ('maxoutdegree', IntTrait(2, 0, 4000, label='Max out-degree')),
          ]),

        ('supervised_event_selection',
         [('supervised_event_selection',
           BooleanTrait(True, label='Supervised',
                        widget_info=BooleanTrait.RADIOBUTTON)),
          ('labeltransitions',
           StringTrait('', 200, label='Class transition motif(s)')),
          ('backwardlabels',
           StringTrait('', 200, label='Class filter [pre]',
                       mask='(\d+,)*\d+')),
          ('forwardlabels',
           StringTrait('', 200, label='Class filter [post]',
                       mask='(\d+,)*\d+')),
          ('backwardcheck',
           FloatTrait(2, 0, 4000, label='Filter duration [pre]')),
          ('forwardcheck',
           FloatTrait(2, 0, 4000, label='Filter duration [post]')),
          ]),

        ('unsupervised_event_selection',
         [('unsupervised_event_selection',
           BooleanTrait(False, label='Unsupervised',
                        widget_info=BooleanTrait.RADIOBUTTON)),
          ('min_event_duration',
           IntTrait(3, 1, 100, label='Min. event duration')),
          ('num_clusters',
           IntTrait(6, 2, 15, label='Number of clusters',)),
          ('min_cluster_size',
           IntTrait(2, 1, 10, label='Min. cluster size',)),
          ])
        ]
コード例 #3
0
class SectionErrorcorrection(SectionCore):

    SECTION_NAME = SECTION_NAME_ERRORCORRECTION

    OPTIONS = [
      ('error_correction',
       [('primary', BooleanTrait(True, label='primary')),
        ('secondary', BooleanTrait(False, label='secondary')),
        ('tertiary', BooleanTrait(False, label='tertiary')),
        ('merged', BooleanTrait(False, label='merged')),

        ('constrain_graph',
            BooleanTrait(True, label='Constrain graph')),
        ('primary_graph',
         StringTrait('', 1000, label='Primary file',
                     widget_info=StringTrait.STRING_FILE)),
        ('secondary_graph',
         StringTrait('', 1000, label='Secondary file',
                     widget_info=StringTrait.STRING_FILE)),
        ('tertiary_graph',
         StringTrait('', 1000, label='Tertiary file',
                     widget_info=StringTrait.STRING_FILE)),
        ('merged_graph',
         StringTrait('', 1000, label='Merged ch. file',
                     widget_info=StringTrait.STRING_FILE)),
        ('groupby_position',
         BooleanTrait(True, label='Position',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('groupby_sirna',
         BooleanTrait(False, label='siRNA',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('hmm_smoothing',
         BooleanTrait(True, label='Smoothing Model',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('hmm_baumwelch',
         BooleanTrait(False, label='Baum-Welch',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('groupby_genesymbol',
         BooleanTrait(False, label='Gene Symbol',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('overwrite_time_lapse',
         BooleanTrait(False, label='Overwrite time-lapse')),
        ('timelapse',
         FloatTrait(1, 0, 2000, digits=2,
                    label='Time-lapse [min]')),
        ('max_time',
         FloatTrait(-1, -1, 2000, digits=2,
                    label='Max. time in plot [min]')),
        ('ignore_tracking_branches',
         BooleanTrait(False, label='Ignore tracking branches')),
        ('enable_sorting',
         BooleanTrait(False, label='Sort by phase duration')),
        ('sorting_sequence',
         StringTrait('', 1000, label='Label sequence',
                     mask='(\w+,)*\w+')),
        ('primary_sort',
         StringTrait('', 100)),
        ('secondary_sort',
            StringTrait('', 100)),
        ('compose_galleries',
         BooleanTrait(False, label='Compose gallery images')),
        ('compose_galleries_sample',
         IntTrait(-1, -1, 10000, label='Max. number of random samples')),
        ('resampling_factor',
         FloatTrait(0.4, 0.01, 1.0, label="Resampling factor")),
        ('size_gallery_image',
         IntTrait(60, 1, 1000, label='Size of gallery images (px)'))
        ])
      ]
コード例 #4
0
class SectionErrorcorrection(SectionCore):

    SECTION_NAME = SECTION_NAME_ERRORCORRECTION

    OPTIONS = [('error_correction', [
        ('filename_to_r',
         StringTrait('',
                     1000,
                     label='R-project executable',
                     widget_info=StringTrait.STRING_FILE)),
        ('constrain_graph', BooleanTrait(True, label='Constrain graph')),
        ('primary_graph',
         StringTrait('',
                     1000,
                     label='Primary file',
                     widget_info=StringTrait.STRING_FILE)),
        ('secondary_graph',
         StringTrait('',
                     1000,
                     label='Secondary file',
                     widget_info=StringTrait.STRING_FILE)),
        ('skip_processed_plates',
         BooleanTrait(False, label='Skip processed plates')),
        ('position_labels', BooleanTrait(False, label='Position labels')),
        ('mappingfile_path',
         StringTrait('',
                     1000,
                     label='Path',
                     widget_info=StringTrait.STRING_PATH)),
        ('groupby_position',
         BooleanTrait(True,
                      label='Position',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('groupby_oligoid',
         BooleanTrait(False,
                      label='Oligo ID',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('groupby_genesymbol',
         BooleanTrait(False,
                      label='Gene symbol',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('overwrite_time_lapse',
         BooleanTrait(False, label='Overwrite time-lapse')),
        ('timelapse', FloatTrait(1,
                                 0,
                                 2000,
                                 digits=2,
                                 label='Time-lapse [min]')),
        ('max_time',
         FloatTrait(100, 1, 2000, digits=2, label='Max. time in plot [min]')),
        ('ignore_tracking_branches',
         BooleanTrait(False, label='Ignore tracking branches')),
        ('show_html', BooleanTrait(True, label='Open in browser')),
        ('enable_sorting', BooleanTrait(False,
                                        label='Sort by phase duration')),
        ('sorting_sequence',
         StringTrait('', 1000, label='Label sequence', mask='(\w+,)*\w+')),
        ('primary_sort', StringTrait('', 100)),
        ('secondary_sort', StringTrait('', 100)),
        ('compose_galleries',
         BooleanTrait(False, label='Compose gallery images')),
        ('compose_galleries_sample',
         IntTrait(-1, -1, 10000, label='Max. number of random samples')),
    ])]
コード例 #5
0
ファイル: tracking.py プロジェクト: imcf/cecog
class SectionTracking(SectionCore):

    SECTION_NAME = SECTION_NAME_TRACKING

    OPTIONS = [
        ('tracking', [
            ('tracking_regionname',
             SelectionTrait2(None, [], label='Region name')),
            ('tracking_maxobjectdistance',
             IntTrait(0, 0, 4000, label='Max object x-y distance')),
            ('tracking_maxtrackinggap',
             IntTrait(0, 0, 4000, label='Max time-point gap')),
            ('tracking_maxsplitobjects',
             IntTrait(0, 0, 4000, label='Max split events')),
            ('tracking_maxindegree', IntTrait(1,
                                              0,
                                              4000,
                                              label='Max in-degree')),
            ('tracking_maxoutdegree',
             IntTrait(2, 0, 4000, label='Max out-degree')),
            ('tracking_exporttrackfeatures',
             BooleanTrait(True, label='Export tracks')),
            ('tracking_compressiontrackfeatures',
             SelectionTrait(COMPRESSION_FORMATS[0],
                            COMPRESSION_FORMATS,
                            label='Compression')),
        ]),
        ('event_selection', [
            ('tracking_labeltransitions',
             StringTrait('',
                         200,
                         label='Class transition motif(s)',
                         mask='(\(\d+,\d+\),)*\(\d+,\d+\)')),
            ('tracking_backwardrange',
             FloatTrait(0, -1, 4000, label='Duration [pre]')),
            ('tracking_forwardrange',
             FloatTrait(0, -1, 4000, label='Duration [post]')),
            ('tracking_backwardlabels',
             StringTrait('',
                         200,
                         label='Class filter [pre]',
                         mask='(\d+,)*\d+')),
            ('tracking_forwardlabels',
             StringTrait('',
                         200,
                         label='Class filter [post]',
                         mask='(\d+,)*\d+')),
            ('tracking_backwardcheck',
             FloatTrait(2, 0, 4000, label='Filter duration [pre]')),
            ('tracking_forwardcheck',
             FloatTrait(2, 0, 4000, label='Filter duration [post]')),
            ('tracking_duration_unit',
             SelectionTrait2(TRACKING_DURATION_UNITS_DEFAULT[0],
                             TRACKING_DURATION_UNITS_DEFAULT,
                             label='Duration unit')),
            ('tracking_backwardrange_min', BooleanTrait(False, label='Min.')),
            ('tracking_forwardrange_min', BooleanTrait(False, label='Min.')),
        ]),
        ('visualization', [
            ('tracking_visualization',
             BooleanTrait(False, label='Visualization')),
            ('tracking_visualize_track_length',
             IntTrait(5, -1, 10000, label='Max. time-points')),
            ('tracking_centroid_radius',
             IntTrait(3, -1, 50, label='Centroid radius')),
        ]),
    ]
コード例 #6
0
class SectionPostProcessing(SectionCore):

    SECTION_NAME = SECTION_NAME_POST_PROCESSING

    OPTIONS = [('post_processing', [
        ('ibb_analysis', BooleanTrait(True, label='IBB analysis')),
        ('mappingfile_path',
         StringTrait('',
                     1000,
                     label='Mapping file path',
                     widget_info=StringTrait.STRING_PATH)),
        ('single_plot', BooleanTrait(
            True,
            label='Export single event',
        )),
        ('single_plot_max_plots', IntTrait(
            1,
            1,
            2000,
            label='Max. number',
        )),
        ('ibb_ratio_signal_threshold',
         FloatTrait(
             1.2,
             0.5,
             5,
             label='IBB minimum ratio signal threshold',
         )),
        ('ibb_range_signal_threshold',
         FloatTrait(
             3,
             0.5,
             5,
             label='IBB minimum range threshold',
         )),
        ('ibb_onset_factor_threshold',
         FloatTrait(
             1.2,
             1,
             5,
             label='IBB onset slope threshold',
         )),
        ('nebd_onset_factor_threshold',
         FloatTrait(
             1.2,
             1,
             5,
             label='NEBD onset slope threshold',
         )),
        ('plot_ylim1_low', IntTrait(
            0,
            0,
            2000,
            label='Y-axis limit (low)',
        )),
        ('plot_ylim1_high',
         IntTrait(
             100,
             1,
             4000,
             label='Y-axis limit (high)',
         )),
        ('single_plot_ylim_low',
         FloatTrait(
             1,
             0,
             10,
             label='Y-axis ratio range (low)',
         )),
        ('single_plot_ylim_high',
         IntTrait(
             5,
             1,
             30,
             label='Y-axis ratio range (high)',
         )),
        ('group_by_position',
         BooleanTrait(True,
                      label='Position',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('group_by_oligoid',
         BooleanTrait(False,
                      label='Oligo ID',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('group_by_genesymbol',
         BooleanTrait(False,
                      label='Gene symbol',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('group_by_group',
         BooleanTrait(False,
                      label='Group',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('color_sort_by_position',
         BooleanTrait(False,
                      label='Position',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('color_sort_by_oligoid',
         BooleanTrait(True,
                      label='Oligo ID',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('color_sort_by_genesymbol',
         BooleanTrait(False,
                      label='Gene symbol',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('color_sort_by_group',
         BooleanTrait(False,
                      label='Group',
                      widget_info=BooleanTrait.RADIOBUTTON)),
        ('securin_analysis', BooleanTrait(True, label='Securin analysis')),
    ])]