Giter Site home page Giter Site logo

jxlin / densesharp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from duducheng/densesharp

0.0 1.0 0.0 3.55 MB

3D Deep Learning from CT Scans Predicts Tumor Invasiveness of Subcentimeter Pulmonary Adenocarcinomas

License: Apache License 2.0

Jupyter Notebook 83.65% Python 16.35%

densesharp's Introduction

DenseSharp Networks

DenseSharp Networks are very parameter-efficient 3D DenseNet-based deep neural networks, with multi-task learning the nodule classification labels and segmentation masks. Segmentation (top-down path) learning elegantly guides classification (bottom-top path) to learn better. In this study, our networks learn to classify early-stage lung cancer from CT scans on pathological level. The deep learning models outperforms the radiologists (2 senior and 2 junior) in our observer study, which indicates the potentials to facilitate precision medicine.

Graphical Abstract

More details, please refer to our paper:

3D Deep Learning from CT Scans Predicts Tumor Invasiveness of Subcentimeter Pulmonary Adenocarcinomas. Cancer Research. (DOI: 10.1158/0008-5472.CAN-18-0696)

Wei Zhao, Jiancheng Yang, Yingli Sun, Cheng Li, Weilan Wu, Liang Jin, Zhiming Yang, Bingbing Ni, Pan Gao, Peijun Wang, Yanqing Hua and Ming Li (indicates equal contribution.)

Code Structure

  • mylib/:
    • dataloader/: PyTorch-like datasets and dataloaders for Keras.
    • models/: 3D DenseSharp and DenseNet models togethor with the losses and metrics.
    • utils/: plot and multi-processing utils.
  • explore.ipynb: plots and basic views of networks.
  • train.py: the training script.

Requirements

  • Python 3 (Anaconda 3.6.3 specifically)
  • TensorFlow==1.4.0
  • Keras==2.1.5
  • To plot the 3D mesh, you may also need plotly installed.

Higher versions should also work (perhaps with minor modifications).

Data samples

Unfortunately, our dataset is not available publicly considering the patients' privacy, and restrictions apply to the use.

However, you can still run the code using the sample dataset (download). Please note, the sample dataset is just demonstrating the code functionality. Unzip the sample dataset, then modify the "DATASET" in mylib/dataloader/ENVIRON.

The DenseSharp Networks are generally designed for 3D data, with classification and segmentation labels. You can run the code on your own data if your dataset are processed following the sample data format.

Each sample (e.g., demo1.npz) is a nodule-centered patch with a size of 80mm x 80mm x 80mm, which is larger than the actual input size to ease the data augmentation implementation. Each npz file contains a voxel (a 3D patch of pre-processed CT scan, as described in the paper) and a seg (the corresponding manual segmentation masked by the radiologists). The csv file contains the classification information.

3D Nodule Mesh Plots

The 3D mesh plots are used for illustration interactively. See the following example: 3d nodule mesh plot

The helper functions are provided in mylib/utils/plot3d.py.

See explore.ipynb for the demo code. Control the mesh step by setting step_size.

LICENSE

The code is under Apache-2.0 License.

The sample dataset is just for demonstration, neither commercial nor academic use is allowed.

densesharp's People

Contributors

duducheng avatar

Watchers

Jensen Lin 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.