# read .czi file path from csv reference table ref_df = pd.read_csv(ref_csv) czi_path = ref_df['files'].iloc[array_no] bg_czi_path = ref_df['controls'].iloc[array_no] print('czi path: ' + czi_path) print('control czi path: ' + bg_czi_path) # load .czi file into MultiFinder instance finder = find_cells.MultiFinder( czi_path, bg_filename=bg_czi_path, log_path=output_dir + '/log', oof_svm= '/n/denic_lab/Users/nweir/python_packages/csth-imaging/trained_svm.pkl') print('MultiFinder created.') # initialize a CellSplitter from finder splitter = segment_cells.CellSplitter(finder) print('CellSplitter instance created.') splitter.segment_nuclei(verbose=True) # segment nuclei print('Nuclei segmented.') splitter.segment_cells(488, verbose=True) # segment cells using the 488 wl print('Cells segmented.') # initialize a Foci instance from splitter foci_obj = foci.Foci(splitter, verbose=True) print('Foci instance created.') foci_obj.segment(verbose=True, thresholds={ 488: (15000, 12000), 561: (15000, 12000) }) print('Foci segmented.') print('Measuring overlap...')
# read .czi file path from csv reference table ref_df = pd.read_csv(ref_csv) czi_path = ref_df['files'].iloc[array_no] print('czi path: ' + czi_path) # load .czi file into MultiFinder instance finder = find_cells.MultiFinder(czi_path) print('MultiFinder created.') # load bg file from multi-image .czi and add to finder bg_tif_im = io.imread('/n/denic_lab/Lab/TH_Imaging/WIPI_empty_control.tif') bg_tif_im = np.moveaxis(bg_tif_im, -1, 0) # move C axis to 1st position bg_tif_im = np.expand_dims(bg_tif_im, axis=0) finder.bg_im = bg_tif_im finder.bg_channels = [488, 561, 405] print('background image added to MultiFinder.') # initialize a CellSplitter from finder splitter = segment_cells.CellSplitter(finder, threshold=800) print('CellSplitter instance created.') splitter.segment_nuclei(verbose=True) # segment nuclei print('Nuclei segmented.') splitter.segment_cells(488, verbose=True) # segment cells using the 488 wl print('Cells segmented.') # initialize a Foci instance from splitter foci_obj = foci.Foci(splitter, verbose=True) print('Foci instance created.') foci_obj.segment(verbose=True) # segment foci using PexSegmenter print('Foci segmented.') foci_obj.count_foci(verbose=True) # count foci print('Foci counted.') print('n foci:') print(foci_obj.foci_cts['488']) print(foci_obj.foci_cts['561'])
ref_df = pd.read_csv(ref_csv) czi_path = ref_df['files'].iloc[array_no] bg_czi_path = ref_df['controls'].iloc[array_no] print('czi path: ' + czi_path) print('control czi path: ' + bg_czi_path) # load .czi file into MultiFinder instance finder = find_cells.MultiFinder( czi_path, bg_filename=bg_czi_path, log_path=output_dir + '/log', oof_svm= '/n/denic_lab/Users/nweir/python_packages/csth-imaging/trained_633_svm.pkl', foc_channel=633) print('MultiFinder created.') # initialize a CellSplitter from finder splitter = segment_cells.CellSplitter(finder, cellfinder_mode='threshold') print('CellSplitter instance created.') splitter.segment_nuclei(verbose=True) # segment nuclei print('Nuclei segmented.') splitter.segment_cells(488, verbose=True) # segment cells using the 488 wl print('Cells segmented.') # initialize a Foci instance from splitter foci_obj = foci.Foci(splitter, verbose=True) print('Foci instance created.') foci_obj.segment(verbose=True, seg_channels=(488, 633), thresholds={ 488: (14000, 10000), 633: (5333, 4000) }, min_cutoff={
print(args) ref_csv = args.ref_csv array_no = int(args.array_no) output_dir = args.output_dir # read .czi file path from csv reference table ref_df = pd.read_csv(ref_csv) im_path = ref_df['files'].iloc[array_no] bg_path = ref_df['controls'].iloc[array_no] print('im path: ' + im_path) print('control path: ' + bg_path) # load .czi file into MultiFinder instance finder = find_cells.MultiFinder( im_path, bg_filename=bg_path, log_path=output_dir + '/log', foc_channel=640) print('MultiFinder created.') # initialize a CellSplitter from finder splitter = segment_cells.CellSplitter(finder, lo_p=True, threshold=300) print('CellSplitter instance created.') splitter.segment_nuclei(verbose=True) # segment nuclei print('Nuclei segmented.') splitter.segment_cells(488, verbose=True) # segment cells using the 488 wl print('Cells segmented.') # initialize a Foci instance from splitter foci_obj = foci.Foci(splitter, verbose=True) print('Foci instance created.') foci_obj.segment(seg_channels=(640,), min_cutoff={640: 5}, rm_nuclear=False, thresholds={640: (4000, 2000)}) print('Foci segmented.') cell_im = foci_obj.segmented_cells[0] all_foci_mask = foci_obj.foci[640][0] > 0 cell_golgi_vals = pd.DataFrame(index=np.unique(cell_im), columns=['intensity_mean', 'volume'])