# Integration of new cell-organelle-types The following lists the steps that need to be taken to integrate new types of cell organelles into the prediction and segmentation pipeline: 1. Choose a short but clear name for the cell-organelle-type which is supposed to be integrated, which in the following is used as an identifier for the cell-organelle-type.
Examples for implemented cell-organelle-types are: 'mi' for mitochondria, 'er' for the endoplasmic reticulum and 'golgi' for the golgi apparatus.
In the following, the exemplary cell-organelle-name 'co' is used. It will have to be replaced with the chosen name. 2. In `syconn/exec/exec_dense_prediction.py` add a function `predict_co()`, analogue to the other functions for prediction of cell organelles (e.g. `predict_er` or `predict_golgi`).
Within this function make sure to replace the cell-organelle-name in the parameter values passed to `predict_dense_to_kd()` accordingly; in particular `global_params.config.mpath_co` and `target_names=['co']`.
The simplest case would be to choose `n_channel=2`, one for the background volume and one for the corresponding cell-organelle-volume. If different channels are supposed to be predicted in this step, these parameters will need to be adapted accordingly. 3. In `syconn/handler/config.py` in class `DynConfig` add property-method `kd_co_path`, which returns `self.entries['paths']['kd_co']`. 4. Also in `syconn/handler/config.py` in class `DynConfig` add property-method `mpath_co`, which returns `self.model_dir + '/co/model.pts'`.
Correspondingly in the model directory add a directory co, in which the corresponding model for the prediction is stored. 5. Also in `syconn/handler/config.py` give the function `generate_default_conf()` an additional parameter `kd_co` with default value `None`.
Within the function, set `kd_co` to `working_dir + 'knossosdatasets/co/'` if it was passed as `None`.
Within the function add `entries['paths']['kd_er'] = kd_er` to write the given path of the knossos_dataset into the config-file. 6. In `syconn/handler/config.yml` make the following changes: * To the list `process_cell_organelles` add the element `co`. * Under `paths:` with an indentation add the line `kd_co:` (include the `:`). * Under `versions:` with an indentation add the line `co: version_no`, where `version_no` typically is 0. * Under `cell_objects:`, under `min_obj_vx:`, with an indentation add the line `co: min_vx_no`, where `min_vx_no` is an integer set in a sensible manner. It specifies the minimum number of voxels an object needs to have, to be identified as an example of the corresponding cell-organelle-type.
E.g. it is 500 for a large structure like the mitochondrion, but for a small structure like the synaptic vesicles, it is 1. * Under `cell_objects:`, under `probathresholds:`, with an indentation add the line `co: thresh`, where `thresh` is the probability-threshold for the generation of a segmentation dataset from a probability dataset and needs to be set to a number. Without any extra information, a reasonable choice is `thresh=0.5`. * Under `cell_objects:`, under `min_seed_vx:`, with an indentation add the line `co: min_seed`, with `min_seed` the seed for the watershed-algorithm (see description in the file). * Under `cell_objects:`, under `extract_morph_op:`, with an indentation add the line `co: morph_ops`, where `morph_ops` is a list of possible morphological operations. See explanation in file. * Under `meshes:`, under `downsampling:`, with an indentation add the line `co: mesh_down`, where `mesh_down` is a list of length 3, describing the downsampling. All the steps taken above are implemented analogously for `er` and `golgi` already, which could be used as examples and base for further organelles to be integrated.