Skip to content

infer_subc/organelles/lipid

fixed_infer_LD(in_img)

Procedure to infer cellmask from linearly unmixed input, with a fixed set of parameters for each step in the procedure. i.e. "hard coded"

Parameters

in_img

a 3d image containing all the channels

Returns

LD_body_object mask defined extent of liipid body

Source code in infer_subc/organelles/lipid.py
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
def fixed_infer_LD(in_img: np.ndarray) -> np.ndarray:
    """
    Procedure to infer cellmask from linearly unmixed input, with a *fixed* set of parameters for each step in the procedure.  i.e. "hard coded"

    Parameters
    ------------
    in_img:
        a 3d image containing all the channels

    Returns
    -------------
    LD_body_object
        mask defined extent of liipid body

    """
    median_sz = 0
    gauss_sig = 2.34
    method = "otsu"
    threshold_factor = 0.99  # from cellProfiler
    thresh_min = 0.5
    thresh_max = 1.0
    max_hole_w = 2.5
    small_obj_w = 4

    return infer_LD(
        in_img, median_sz, gauss_sig, method, threshold_factor, thresh_min, thresh_max, max_hole_w, small_obj_w
    )

get_LD(in_img, meta_dict, out_data_path)

load lipid if it exists, otherwise calculate and write to ome.tif file

Parameters

in_img

a 3d np.ndarray image of the inferred organelle (labels or boolean)

meta_dict

dictionary of meta-data (ome)

out_data_path

Path object where tiffs are written to

Returns

exported file name

Source code in infer_subc/organelles/lipid.py
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
def get_LD(in_img: np.ndarray, meta_dict: Dict, out_data_path: Path) -> np.ndarray:
    """
    load lipid if it exists, otherwise calculate and write to ome.tif file

    Parameters
    ------------
    in_img:
        a 3d  np.ndarray image of the inferred organelle (labels or boolean)
    meta_dict:
        dictionary of meta-data (ome)
    out_data_path:
        Path object where tiffs are written to

    Returns
    -------------
    exported file name

    """

    try:
        lipid = import_inferred_organelle("LD", meta_dict, out_data_path)
    except:
        start = time.time()
        print("starting segmentation...")
        lipid = infer_and_export_LD(in_img, meta_dict, out_data_path)
        end = time.time()
        print(f"inferred (and exported) lipid in ({(end - start):0.2f}) sec")

    return lipid

infer_LD(in_img, median_sz, gauss_sig, method, thresh_factor, thresh_min, thresh_max, max_hole_w, small_obj_w)

Procedure to infer peroxisome from linearly unmixed input.

Parameters

in_img

a 3d image containing all the channels

median_sz

width of median filter for signal

gauss_sig

sigma for gaussian smoothing of signal

method

method for applying threshold. "otsu" or "li", "triangle", "median", "ave", "sauvola","multi_otsu","muiltiotsu"

thresh_factor

scaling value for threshold

thresh_min

absolute minumum for threshold

thresh_max

absolute maximum for threshold

max_hole_w

hole filling cutoff for lipid post-processing

small_obj_w

minimu object size cutoff for lipid post-processing

Returns

peroxi_object mask defined extent of peroxisome object

Source code in infer_subc/organelles/lipid.py
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
def infer_LD(
    in_img: np.ndarray,
    median_sz: int,
    gauss_sig: float,
    method: str,
    thresh_factor: float,
    thresh_min: float,
    thresh_max: float,
    max_hole_w: int,
    small_obj_w: int,
) -> np.ndarray:
    """
    Procedure to infer peroxisome from linearly unmixed input.

    Parameters
    ------------
    in_img:
        a 3d image containing all the channels
    median_sz:
        width of median filter for signal
    gauss_sig:
        sigma for gaussian smoothing of  signal
    method:
        method for applying threshold.  "otsu"  or "li", "triangle", "median", "ave", "sauvola","multi_otsu","muiltiotsu"
    thresh_factor:
        scaling value for threshold
    thresh_min:
        absolute minumum for threshold
    thresh_max:
        absolute maximum for threshold
    max_hole_w:
        hole filling cutoff for lipid post-processing
    small_obj_w:
        minimu object size cutoff for lipid post-processing
    Returns
    -------------
    peroxi_object
        mask defined extent of peroxisome object
    """
    LD_ch = LD_CH
    ###################
    # EXTRACT
    ###################
    lipid = select_channel_from_raw(in_img, LD_ch)
    ###################
    # PRE_PROCESSING
    ###################
    lipid = scale_and_smooth(lipid, median_sz=median_sz, gauss_sig=gauss_sig)

    ###################
    # CORE_PROCESSING
    ###################
    bw = apply_threshold(
        lipid, method=method, thresh_factor=thresh_factor, thresh_min=thresh_min, thresh_max=thresh_max
    )

    ###################
    # POST_PROCESSING
    ###################
    # min_hole_w = 0
    struct_obj = fill_and_filter_linear_size(bw, hole_min=0, hole_max=max_hole_w, min_size=small_obj_w)

    return label_uint16(struct_obj)

infer_and_export_LD(in_img, meta_dict, out_data_path)

infer lipid bodies and write inferred lipid to ome.tif file

Parameters

in_img

a 3d np.ndarray image of the inferred organelle (labels or boolean)

meta_dict

dictionary of meta-data (ome)

out_data_path

Path object where tiffs are written to

Returns

exported file name

Source code in infer_subc/organelles/lipid.py
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
def infer_and_export_LD(in_img: np.ndarray, meta_dict: Dict, out_data_path: Path) -> np.ndarray:
    """
    infer lipid bodies and write inferred lipid to ome.tif file

    Parameters
    ------------
    in_img:
        a 3d  np.ndarray image of the inferred organelle (labels or boolean)
    meta_dict:
        dictionary of meta-data (ome)
    out_data_path:
        Path object where tiffs are written to

    Returns
    -------------
    exported file name

    """
    lipid = fixed_infer_LD(in_img)
    out_file_n = export_inferred_organelle(lipid, "LD", meta_dict, out_data_path)
    print(f"inferred lipid. wrote {out_file_n}")
    return lipid