Skip to main content

Automatic segmentation of epilepsy neurosurgery resection cavity.

Project description


Automatic segmentation of postoperative brain resection cavities from magnetic resonance images (MRI) using a convolutional neural network (CNN) trained with PyTorch 1.7.1.


It's recommended to use conda.

A 6-GB GPU is large enough to segment an image in an MNI space of size 193 × 229 × 193.

conda create -n resseg python=3.8 -y
conda activate resseg
pip install light-the-torch
ltt install torch
pip install resseg
resseg --help


Below are two examples of cavity segmentation for tumor and epilepsy surgery. The epilepsy example includes registration to the MNI space. Both examples can be run online using Google Colab:

Open in Colab


Example using an image from the Brain Images of Tumors for Evaluation database (BITE).

BITE=`resseg-download bite`
resseg $BITE -o bite_seg.nii.gz

Resection cavity segmented on an image from BITE


Example using an image from the EPISURG dataset. Segmentation works best when images are in the MNI space, so resseg includes a tool for this purpose (requires `antspyx).

pip install antspyx
EPISURG=`resseg-download episurg`
resseg-mni $EPISURG -t episurg_to_mni.tfm
resseg $EPISURG -o episurg_seg.nii.gz -t episurg_to_mni.tfm

Resection cavity segmented on an image from EPISURG

Trained model

The trained model can be used without installing resseg, but you'll need to install unet first:

pip install unet==0.7.7

Then, in Python:

import torch
repo = 'fepegar/resseg'
model_name = 'ressegnet'
model = torch.hub.load(repo, model_name, pretrained=True)

Graphical user interface using 3D Slicer

There is an experimental graphical user interface (GUI) built on top of 3D Slicer.

Visit this repository for additional information and installation instructions.

Resseg Slicer

Plotting resected structures

A quantitative analysis of the resected structures can be performed using a brain parcellation computed using GIF (3.0) or FreeSurfer.

from resseg.parcellation import GIFParcellation, FreeSurferParcellation
parcellation_path = 't1_seg_gif.nii.gz'
cavity_seg_on_preop_path = 'cavity_on_preop.nii.gz'
parcellation = GIFParcellation(parcellation_path)

I used a sphere near the hippocampus to simulate the resection cavity segmentation, and the GIF parcellation in the FPG dataset of TorchIO.

Percentage of each resected structure:
100% of Left vessel
 83% of Left Inf Lat Vent
 59% of Left Amygdala
 58% of Left Hippocampus
 26% of Left PIns posterior insula
 24% of Left PP planum polare
 21% of Left Basal Forebrain
 18% of Left Claustrum
 16% of Left PHG parahippocampal gyrus
 15% of Left Pallidum
 15% of Left Ent entorhinal area
 13% of Left FuG fusiform gyrus
 13% of Left Temporal White Matter
 11% of Left Putamen
 10% of Left Insula White Matter
  5% of Left ITG inferior temporal gyrus
  5% of Left periventricular white matter
  5% of Left Ventral DC

The resection volume is composed of:
 30% is Left Temporal White Matter
 12% is Left Hippocampus
 10% is Left Insula White Matter
  7% is Left FuG fusiform gyrus
  6% is Left Amygdala
  4% is Left ITG inferior temporal gyrus
  4% is Left PP planum polare
  3% is Left Putamen
  3% is Left Claustrum
  3% is Left PIns posterior insula
  3% is Left PHG parahippocampal gyrus
  2% is [Unkown label: 4]
  1% is Left Ent entorhinal area
  1% is Left Pallidum
  1% is Left Inf Lat Vent
  1% is Left Ventral DC





If you use this library for your research, please cite the following publications:

F. Pérez-García et al., 2020, Simulation of Brain Resection for Cavity Segmentation Using Self-Supervised and Semi-Supervised Learning.

F. Pérez-García et al., 2021, A self-supervised learning strategy for postoperative brain cavity segmentation simulating resections.

If you use the EPISURG dataset, which was used to train the model, please cite the following publication:

F. Pérez-García et al., 2020, EPISURG: a dataset of postoperative magnetic resonance images (MRI) for quantitative analysis of resection neurosurgery for refractory epilepsy. University College London. Dataset.

See also

  • resector was used to simulate brain resections during training
  • TorchIO was also used extensively. Both resseg and resector require this library.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

resseg-0.3.7.tar.gz (13.7 kB view hashes)

Uploaded Source

Built Distribution

resseg-0.3.7-py2.py3-none-any.whl (15.2 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page