deep_folding.preprocessing package

Submodules

deep_folding.preprocessing.create_sets module

The aim of this script is to create pytorch dataloaders from MRIs saved as numpy arrays in a .pickle.

deep_folding.preprocessing.create_sets.create_benchmark_test(benchmark, side, handedness=1)

Creates test datasets from benchmark of altered skeletons (cf anatomist_tools.benchmark_generation module) IN: benchmark: int, number of benchmark

handedness: int, 1 if right handed, 2 if left handed

OUT: dataset_test_abnor_loader

deep_folding.preprocessing.create_sets.create_hcp_benchmark(side, benchmark, directory, batch_size, handedness=1)

Creates datasets from HCP data and depending on dataset split of benchmark generation (cf anatomist_tools.benchmark_generation module) /!ONLY DIFFERENCE FROM create_hcp_sets function is only that it creates sets from benchmark split. IN: side: str, ‘right’ or ‘left’

handedness: int, 1 if right handed, 2 if left handed directory: str, folder in which save the results batch_size: int, size of training batches
OUT: root_dir,
dataset_train_loader, dataset_val_loader, dataset_test_loader
deep_folding.preprocessing.create_sets.create_hcp_sets(skeleton, side, directory, batch_size, handedness=0)

Creates datasets from HCP data IN: skeleton: boolean, True if input is skeleton, False otherwise,

side: str, ‘right’ or ‘left’ handedness: int, 0 if mixed ind, 1 if right handed, 2 if left handed directory: str, folder in which save the results batch_size: int, size of training batches weights: list, list of weights to apply to skeleton values
OUT: root_dir: created directory where results will be stored
dataset_train_loader, dataset_val_loader, dataset_test_loader: loaders that will be used for training and testing
deep_folding.preprocessing.create_sets.create_left_handed_set(skeleton, side)

Creates dataset of left handed HCP individuals IN: skeleton: boolean, True if input is skeleton, False otherwise,

side: str, corresponds to hemisphere’s side ‘right’ or ‘left’

OUT:

deep_folding.preprocessing.create_sets.create_loader_from_csv(subject_list, side)

Creates a dataloader from a list of subjects IN: subject_list: list of subjects to put in loader, csv file

side: ‘left’ or ‘right’ hemisphere, str

OUT: dataloader

deep_folding.preprocessing.datasets module

Tools in order to create pytorch dataloaders

class deep_folding.preprocessing.datasets.AugDatasetTransformer(base_dataset)

Bases: torch.utils.data.dataset.Dataset

Custom dataset that applies data augmentation on a dataset processed through TensorDataset or Skeleton Dataset classes. Transformations are performed on CPU.

class deep_folding.preprocessing.datasets.SkeletonDataset(dataframe, filenames=None)

Bases: object

Custom dataset for skeleton images that includes image file paths. dataframe: dataframe containing training and testing arrays filenames: optional, list of corresponding filenames Works on CPUs

class deep_folding.preprocessing.datasets.TensorDataset(data_tensor, filenames, skeleton)

Bases: object

Custom dataset that includes image file paths. Applies different transformations to data depending on the type of input. IN: data_tensor: tensor containing MRIs as numpy arrays

filenames: list of subjects’ IDs skeleton: boolean, whether input is skeleton images or not

OUT: tensor of [batch, sample, subject ID]

deep_folding.preprocessing.generate_numpy_array module

Create numpy arrays from folders containing skeletons, distance maps…

Typical usage

You can use this program by first entering in the brainvisa environment (here brainvisa 5.0.0 installed with singurity) and launching the script from the terminal: >>> bv bash >>> python generate_numpy_array.py

deep_folding.preprocessing.generate_numpy_array.generate_np_array(src_dir)

Creates a numpy array of all nii.gz files from a given folder

deep_folding.preprocessing.generate_numpy_array.main()

deep_folding.preprocessing.pynet_transforms module

Module that defines common transformations that can be applied when the dataset is loaded.

class deep_folding.preprocessing.pynet_transforms.Downsample(scale, with_channels=True)

Bases: object

A class to downsample an array.

class deep_folding.preprocessing.pynet_transforms.DownsampleTensor(scale, with_channels=True)

Bases: object

A class to downsample a tensor.

class deep_folding.preprocessing.pynet_transforms.NormalizeHisto(arr, *args)

Bases: object

Class to normalize voxels’ intensity values to interval

class deep_folding.preprocessing.pynet_transforms.NormalizeSkeleton(nb_cls=3)

Bases: object

Class to normalize skeleton objects, black voxels: 0 grey and white voxels: 1

class deep_folding.preprocessing.pynet_transforms.Padding(shape, nb_channels=1, fill_value=0)

Bases: object

A class to pad an image.

class deep_folding.preprocessing.pynet_transforms.PaddingTensor(shape, nb_channels=1, fill_value=0)

Bases: object

A class to pad a tensor

deep_folding.preprocessing.transforms module

Module contents