Source code for bioimageloader.collections._bbbc002
from functools import cached_property
from pathlib import Path
from typing import List, Optional
import albumentations
import cv2
import numpy as np
import tifffile
from skimage.util import img_as_float32
from ..base import Dataset
[docs]class BBBC002(Dataset):
"""Drosophila Kc167 cells
There are 10 fields of view of each sample, for a total of 50 fields of
view. The images were acquired on a Zeiss Axiovert 200M microscope. The
images provided here are a single channel, DNA. The image size is 512 x 512
pixels. The images are provided as 8-bit TIFF files.
Parameters
----------
root_dir : str
Path to root directory
transforms : albumentations.Compose, optional
An instance of Compose (albumentations pkg) that defines augmentation in
sequence.
num_samples : int, optional
Useful when ``transforms`` is set. Define the total length of the
dataset. If it is set, it overwrites ``__len__``.
Notes
-----
- Cell count available
- ImageJ RoI available for 3 tiles
- CPvalid1_48_40x_Tiles_p0151DAPI_ROIs.zip
- CPvalid1_340_40x_Tiles_p1175DAPI_ROIs.zip
- CPvalid1_nodsRNA_40x_Tiles_p0219DAPI_ROIs.zip
References
----------
.. [1] https://bbbc.broadinstitute.org/BBBC002
See Also
--------
Dataset : Base class
DatasetInterface : Interface
"""
# Dataset's acronym
acronym = 'BBBC002'
def __init__(
self,
root_dir: str,
*,
transforms: Optional[albumentations.Compose] = None,
num_samples: Optional[int] = None,
**kwargs
):
self._root_dir = root_dir
self._transforms = transforms
self._num_samples = num_samples
[docs] def get_image(self, p: Path) -> np.ndarray:
img = tifffile.imread(p)
img = cv2.cvtColor(img, cv2.COLOR_GRAY2RGB)
return img_as_float32(img)
@cached_property
def file_list(self) -> List[Path]:
root_dir = self.root_dir
parent = 'drosophila_kc167_1_images'
file_list = sorted(root_dir.glob(f'{parent}/*.TIF'))
return file_list