Diff of /README.md [000000] .. [b596db]

Switch to unified view

a b/README.md
1
# DenseSharp Networks 
2
*DenseSharp* Networks are parameter-efficient 3D DenseNet-based deep neural networks, with multi-task
3
learning the nodule **classification** labels and **segmentation** masks. Segmentation (top-down path) 
4
learning elegantly guides classification (bottom-top path) to learn better. In this study, our networks learn to 
5
classify early-stage lung cancer from **CT** scans on **pathological** level. The deep learning models outperforms the 
6
radiologists (2 senior and 2 junior) in our observer study, which indicates the potentials to facilitate
7
precision medicine.
8
9
![Graphical Abstract](GraphicalAbstract.png)
10
11
More details, please refer to our paper:
12
13
**3D Deep Learning from CT Scans Predicts Tumor Invasiveness of Subcentimeter Pulmonary Adenocarcinomas**
14
15
Wei Zhao<sup>†</sup>, Jiancheng Yang<sup>†</sup>, Yingli Sun, Cheng Li, Weilan Wu, Liang Jin, Zhiming Yang, Bingbing Ni, Pan Gao, Peijun Wang, Yanqing Hua and Ming Li (<sup>†</sup>indicates equal contribution)
16
17
*[Cancer Research](http://cancerres.aacrjournals.org/content/78/24/6881.full)* (DOI: 10.1158/0008-5472.CAN-18-0696)
18
19
# Code Structure
20
* [`mylib/`](mylib/):
21
    * [`dataloader/`](mylib/dataloader): PyTorch-like datasets and dataloaders for Keras.
22
    * [`models/`](mylib/models): 3D *DenseSharp* and *DenseNet* models together with the losses and metrics.
23
    * [`utils/`](mylib/utils): plot and multi-processing utils.
24
* [`explore.ipynb`](explore.ipynb): plots and basic views of networks.
25
* [`train.py`](train.py): the training script.
26
27
# Requirements
28
* Python 3 (Anaconda 3.6.3 specifically)
29
* TensorFlow==1.4.0
30
* Keras==2.1.5
31
* To plot the 3D mesh, you may also need [`plotly`](https://plot.ly/python/) installed. 
32
33
Higher versions should also work (perhaps with minor modifications).
34
35
# Data samples
36
Unfortunately, our dataset is not available publicly considering the patients' 
37
privacy, and restrictions apply to the use. 
38
39
However, you can still run the code using the sample dataset 
40
([download](https://drive.google.com/open?id=1c-suZobPIH-DSE99zspPb098jEiDqRGa)).
41
Please note, the sample dataset is just demonstrating the code functionality.
42
Unzip the sample dataset, then modify the `"DATASET"` in 
43
[`mylib/dataloader/ENVIRON`](mylib/dataloader/ENVIRON).
44
45
The *DenseSharp* Networks are generally designed for 3D data,
46
with classification and segmentation labels. You can run the code
47
on your own data if your dataset are processed following the sample data format.
48
49
Each sample (e.g., `demo1.npz`) is a nodule-centered patch with a size of 80mm x 80mm x 80mm, 
50
which is larger than the actual input size to ease the data augmentation implementation.
51
Each `npz` file contains a `voxel` (a 3D patch of pre-processed CT scan, as described in the paper)
52
and a `seg` (the corresponding manual segmentation masked by the radiologists). The `csv` file contains
53
the classification information. 
54
55
# 3D Nodule Mesh Plots
56
The 3D mesh plots are used for illustration interactively. See the following example:
57
![3d nodule mesh plot](3dmesh.gif)
58
59
The helper functions are provided in [`mylib/utils/plot3d.py`](mylib/utils/plot3d.py).
60
61
See [`explore.ipynb`](explore.ipynb) for the demo code. 
62
Control the mesh step by setting `step_size`.
63
64
# LICENSE
65
The code is under Apache-2.0 License.
66
67
The sample dataset is just for demonstration, neither commercial nor 
68
academic use is allowed.
69