Skip to content

Automatic end-to-end lung tumor segmentation from CT images.

License

Notifications You must be signed in to change notification settings

VemundFredriksen/LungTumorMask

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

title colorFrom colorTo sdk app_port emoji pinned license app_file
LungTumorMask: Automatic lung tumor segmentation in CT
indigo
indigo
docker
7860
🔎
false
mit
demo/app.py

Automatic lung tumor segmentation in CT

license Build Actions Status Paper

This is the official repository for the paper "Teacher-student approach for lung tumor segmentation from mixed-supervised datasets", published in PLOS ONE.

A pretrained model is made available in a command line tool and can be used as you please. However, the current model is not intended for clinical use. The model is the result of a proof-of-concept study. An improved model will be made available in the future, when more training data is made available.

The source code used to train the model and conduct the experiments presented in the paper, are available in the training directory. The code is provided as is and is not meant to directly applicable to new setups, cohorts, and use cases. It should however contain all the necessary details to reproduce the experiments in the study.

An online version of the tool has been made openly available at Hugging Face spaces, to enable researchers to easily test the software on their own data without downloading it. To access it, click on the badge above.

381534051_1449704982474782_2203714937846032529_n

Software has been tested against Python 3.8-3.10.

Stable latest release:

pip install https://github.com/VemundFredriksen/LungTumorMask/releases/download/v1.3.1/lungtumormask-1.3.1-py2.py3-none-any.whl

Or from source:

pip install git+https://github.com/VemundFredriksen/LungTumorMask

After install, the software can be used as a command line tool. Simply specify the input and output filenames to run:

# Format
lungtumormask input_file output_file

# Example
lungtumormask patient_01.nii.gz mask_01.nii.gz

# Custom arguments
lungtumormask patient_01.nii.gz mask_01.nii.gz --lung-filter --threshold 0.3 --radius 3 --batch-size 8 --cpu

In the last example, we filter tumor candidates outside the lungs, use a lower probability threshold to boost recall, use a morphological smoothing step to fill holes inside segmentations using a disk kernel of radius 3, and --cpu to disable the GPU during computation.

You can also output the raw probability map (without any post-processing), by setting --threshold -1 instead. By default a threshold of 0.5 is used.

  • Kim et al., "Deep learning–radiomics integrated noninvasive detection of epidermal growth factor receptor mutations in non-small cell lung cancer patients" (2024), Scientific Reports, https://doi.org/10.1038/s41598-024-51630-6
  • A web demo application was developed and hosted on Hugging Face (see here)
  • LungTumorMask CLI integrated into Fraxinus

If you found this repository useful in your study, please, cite the following paper:

@article{fredriksen2021teacherstudent,
  title = {Teacher-student approach for lung tumor segmentation from mixed-supervised datasets},
  author = {Fredriksen, Vemund AND Sevle, Svein Ole M. AND Pedersen, André AND Langø, Thomas AND Kiss, Gabriel AND Lindseth, Frank},
  journal = {PLOS ONE},
  publisher = {Public Library of Science},
  year = {2022},
  month = {04},
  doi = {10.1371/journal.pone.0266147},
  volume = {17},
  url = {https://doi.org/10.1371/journal.pone.0266147},
  pages = {1-14},
  number = {4}
}