/pnet_prostate_paper

P-NET, Biologically informed deep neural network for prostate cancer classification and discovery

Primary LanguageHTMLGNU General Public License v2.0GPL-2.0

Contributors Forks Stargazers Issues GPL-2.0 License LinkedIn


Logo

P-NET

P-NET, Biologically informed deep neural network for prostate cancer classification and discovery


view interactive network architecture · ·

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. References
  5. License
  6. Contact
  7. Acknowledgements

About The Project

Logo

Biologically informed deep neural network for prostate cancer classification and discovery

Getting Started

To get a local copy up and running, follow these simple steps

Prerequisites

  • python 2.7, check environments.yml for list of needed packages

Installation

  1. Clone the repo

    git clone https://github.com/marakeby/pnet_prostate_paper.git
  2. Create conda environment

    conda env create --name pnet_env --file=environment.yml
  3. Based on your use, you may need to download one or more of the following

    a. Data files (needed to retrain models and generate figures). Extract the files under _database directory. If you like to store it somewhere else, you may need to set the DATA_PATH variable in config_path.py accordingly.

    b. Log files (needed to regenerate paper figures). Extract the files under _logs directory. If you like to store it somewhere else, you may need to set the LOG_PATH variable in config_path.py accordingly.

    c. Plots files (a copy of the paper images). Extract the files under _plots directory. If you like to store it somewhere else, you may need to set the PLOTS_PATH variable in config_path.py accordingly.

Usage

  1. Activate the created conda environment

    source activate pnet_env
  2. Add the current diretory to PYTHONPATH, e.g.

    export PYTHONPATH=~/pnet_prostate_paper:$PYTHONPATH
  3. To generate all paper figures, run

    cd ./analysis
    python run_it_all.py
  4. To generate individual paper figure run the different files under the 'analysis' directory, e.g.

    cd ./analysis
    python figure_1_d_auc_prc.py

    For Figure3 , make sure you run prepare_data.py before running other files

  5. To re-train a model from scratch run

    cd ./train
    python run_me.py

    This will run an experiment 'pnet/onsplit_average_reg_10_tanh_large_testing' which trains a P-NET model on a training-testing data split of Armenia et al data set and compare it to a simple logistic regression model. The results of the experiment will be stored under _logsin a directory with the same name as the experiment.
    To run another experiment, you may uncomment one of the lines in the run_me.py to run the corresponding experiment. Note that some models especially cross validation experiments may be time consuming.

License

Distributed under the GPL-2.0 License License. See LICENSE for more information.

Contact

Haitham - @HMarakeby

Project Link: https://github.com/marakeby/pnet_prostate_paper

References

  • Elmarakeby H, et al. "Biologically informed deep neural network for prostate cancer classification and discovery." Nature. Online September 22, 2021. DOI: 10.1038/s41586-021-03922-4
  • Armenia, Joshua, et al. "The long tail of oncogenic drivers in prostate cancer." Nature genetics 50.5 (2018): 645-651.
  • Robinson, Dan R., et al. "Integrative clinical genomics of metastatic cancer." Nature 548.7667 (2017): 297-303.
  • Fraser, Michael, et al. "Genomic hallmarks of localized, non-indolent prostate cancer." Nature 541.7637 (2017): 359-364.

Acknowledgements

This work was supported in part by the Fund for Innovation in Cancer Informatics, Mark Foundation, Prostate Cancer Foundation, Movember, and the National Cancer Institute at the National Institutes of Health.