This PR closes #43. It adds a nuclei and a membrane channel as well as the tissue type to the training examples stored in the tfrecord. Nuclei and membrane channels are calculated as the average of the normalized channels whose names are passed to the init.
How did you implement your changes
Class SegmentationTFRecords gets three additional inputs: nuclei_channels, membrane_channels and tissue_type. The latter is just directly stored as a string attribute in the tfrecord examples. The former two contain lists of channel names (like ["Ki67", "Dapi"]) and the channels are loaded with the new class function SegmentationTFRecords.get_composite_image. The function loads and normalizes the images and returns the average over the channel dimension.
What is the purpose of this PR?
This PR closes #43. It adds a nuclei and a membrane channel as well as the tissue type to the training examples stored in the tfrecord. Nuclei and membrane channels are calculated as the average of the normalized channels whose names are passed to the init.
How did you implement your changes
Class
SegmentationTFRecords
gets three additional inputs:nuclei_channels
,membrane_channels
andtissue_type
. The latter is just directly stored as a string attribute in the tfrecord examples. The former two contain lists of channel names (like["Ki67", "Dapi"]
) and the channels are loaded with the new class functionSegmentationTFRecords.get_composite_image
. The function loads and normalizes the images and returns the average over the channel dimension.Remaining issues None