Coder Social home page Coder Social logo

nathanwangai / brain_cancer_oct Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 60.42 MB

๐Ÿ”ฌ๐Ÿง  Intraoperative deep learning-based detection of high grade glioma with optical coherence tomography

Home Page: https://doi.org/10.1364/BOE.477311

Jupyter Notebook 22.87% PureBasic 74.42% Python 2.71%
convolutional-neural-network deep-learning optical-coherence-tomography intraoperative-imaging brain-cancer

brain_cancer_oct's Introduction

Deep learning-based optical coherence tomography image analysis of human brain cancer

Please cite as:
Nathan Wang, Cheng-Yu Lee, Hyeon-Cheol Park, David W. Nauen, Kaisorn L. Chaichana, Alfredo Quinones-Hinojosa, Chetan Bettegowda, and Xingde Li, "Deep learning-based optical coherence tomography image analysis of human brain cancer," Biomed. Opt. Express 14, 81-88 (2023)
read here

For dataset requests, please contact Prof. Xingde Li at [email protected].
For other questions, please also contact Nathan Wang at [email protected].

Table of Contents:

  1. Abstract
  2. Model Architecture
  3. Quick Setup
  4. Content Description

Abstract

Real-time intraoperative delineation of cancer and non-cancer brain tissues, especially in the eloquent cortex, is critical for thorough cancer resection, lengthening survival, and improving quality of life. Prior studies have established that thresholding optical attenuation values reveals cancer regions with high sensitivity and specificity. However, threshold of a single value disregards local information important to making more robust predictions. Hence, we propose deep convolutional neural networks (CNNs) trained on labeled OCT images and co-occurrence matrix features extracted from these images to synergize attenuation characteristics and texture features. Specifically, we adapt a deep ensemble model trained on 5,831 examples in a training dataset of 7 patients. We obtain 93.31% sensitivity and 97.04% specificity on a holdout set of 4 patients without the need for beam profile normalization using a reference phantom. The segmentation maps produced by parsing the OCT volume and tiling the outputs of our model are in excellent agreement with attenuation mapping-based methods. Our new approach for this important application has considerable implications for clinical translation.

Model Architecture

Fig. 2. Ensemble learning architecture integrating B-frame slice pixels and texture features for OCT cancer tissue analysis. The dimension of each layer is indicated, where the two dimensions outside each layer are the feature map shape and the number inside each layer is the number of maps/filters. The B-frame Slices CNN and Texture CNN are trained separately. Once they have converged, they are used to create embeddings of their respective inputs, which are linked to a fully connected network that makes the final classification.

Quick Setup

conda create --name my_env pip python=3.9
conda activate my_env
conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
cd path\to\brain_cancer_oct
pip install -r requirements.txt

Note: As of 09/13/23, only TensorFlow version <2.11, which requires Python <=3.9, is GPU-enabled. Please refer to the official instructions for up to date compatability details.

Once the dataset has been requested and organized according to the structure in Content Description below, you can run the train_neural_networks.ipynb and analyze_neural_networks.ipynb notebooks to replicate our results.

Content Description

  • manuscript/: original figures and iterations of the published manuscript
  • margin_data/:* OCT scan of tumor margin tissues (mixed cancer and non-cancer regions)
  • project_scripts/: contains functions and objects that are imported into the Jupyter notebooks, where the training and analysis is performed
    • data_loading.py: defines scripts for loading data
    • neural_networks.py: defines the neural network models as classes
    • pre-processing.py: defines functions to pre-process data
    • widgets.py: defines widgets for visualizing data and results
  • saved_models/: trained TensorFlow models that can be loaded for inference
    • final_models/: trained models that are used to produce the results in the manuscript
      • bframe_cnn/
      • texture_cnn/
      • ensemble_mlp/
    • models_history/: models saved by the callback during training. Probably won't be useful to you.
      • ...
  • testing_data/:* OCT scan testing dataset from _ patients
    • cancer/
    • non_cancer/
  • training_data/:* OCT scan training dataset from _ patients
    • cancer/
    • non_cancer/
  • analyze_neural_networks.ipynb: Python notebook for analyzing the neural network performance
  • train_neural_networks.ipynb: Python notebook for training the neural networks

* Please request these data from Prof. Xingde Li at [email protected]

brain_cancer_oct's People

Contributors

nathanwangai avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.