From e4e777496010b2fc259c346e9c8da9e74a4bac56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lodie=20Monod?= Date: Thu, 18 Jul 2024 17:34:18 +0100 Subject: [PATCH 01/22] Create draft-pdf.yml --- .github/workflows/draft-pdf.yml | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/draft-pdf.yml diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml new file mode 100644 index 0000000..8ec7d31 --- /dev/null +++ b/.github/workflows/draft-pdf.yml @@ -0,0 +1,34 @@ +name: Draft PDF +on: [push] + push: + paths: + - paper/** + - .github/workflows/draft-pdf.yml + +jobs: + paper: + runs-on: ubuntu-latest + name: Paper Draft + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@master + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: paper.md + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: paper + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper/paper.pdf + - name: Commit PDF to repository + uses: EndBug/add-and-commit@v9 + with: + message: '(auto) Paper PDF Draft' + # This should be the path to the paper within your repo. + add: 'paper.pdf' # 'paper/*.pdf' to commit all PDFs in the paper directory From 19f3f5739ef24ad433dba59e7e95b60df21e4915 Mon Sep 17 00:00:00 2001 From: melodiemonod Date: Thu, 18 Jul 2024 17:40:48 +0100 Subject: [PATCH 02/22] add paper joss --- paper/paper.bib | 59 ++++++++++++++++++++++++++ paper/paper.md | 107 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 166 insertions(+) create mode 100644 paper/paper.bib create mode 100644 paper/paper.md diff --git a/paper/paper.bib b/paper/paper.bib new file mode 100644 index 0000000..72e3977 --- /dev/null +++ b/paper/paper.bib @@ -0,0 +1,59 @@ +@article{Pearson:2017, + url = {http://adsabs.harvard.edu/abs/2017arXiv170304627P}, + Archiveprefix = {arXiv}, + Author = {{Pearson}, S. and {Price-Whelan}, A.~M. and {Johnston}, K.~V.}, + Eprint = {1703.04627}, + Journal = {ArXiv e-prints}, + Keywords = {Astrophysics - Astrophysics of Galaxies}, + Month = mar, + Title = {{Gaps in Globular Cluster Streams: Pal 5 and the Galactic Bar}}, + Year = 2017 +} + +@book{Binney:2008, + url = {http://adsabs.harvard.edu/abs/2008gady.book.....B}, + Author = {{Binney}, J. and {Tremaine}, S.}, + Booktitle = {Galactic Dynamics: Second Edition, by James Binney and Scott Tremaine.~ISBN 978-0-691-13026-2 (HB).~Published by Princeton University Press, Princeton, NJ USA, 2008.}, + Publisher = {Princeton University Press}, + Title = {{Galactic Dynamics: Second Edition}}, + Year = 2008 +} + +@article{gaia, + author = {{Gaia Collaboration}}, + title = "{The Gaia mission}", + journal = {Astronomy and Astrophysics}, + archivePrefix = "arXiv", + eprint = {1609.04153}, + primaryClass = "astro-ph.IM", + keywords = {space vehicles: instruments, Galaxy: structure, astrometry, parallaxes, proper motions, telescopes}, + year = 2016, + month = nov, + volume = 595, + doi = {10.1051/0004-6361/201629272}, + url = {http://adsabs.harvard.edu/abs/2016A%26A...595A...1G}, +} + +@article{astropy, + author = {{Astropy Collaboration}}, + title = "{Astropy: A community Python package for astronomy}", + journal = {Astronomy and Astrophysics}, + archivePrefix = "arXiv", + eprint = {1307.6212}, + primaryClass = "astro-ph.IM", + keywords = {methods: data analysis, methods: miscellaneous, virtual observatory tools}, + year = 2013, + month = oct, + volume = 558, + doi = {10.1051/0004-6361/201322068}, + url = {http://adsabs.harvard.edu/abs/2013A%26A...558A..33A} +} + +@misc{fidgit, + author = {A. M. Smith and K. Thaney and M. Hahnel}, + title = {Fidgit: An ungodly union of GitHub and Figshare}, + year = {2020}, + publisher = {GitHub}, + journal = {GitHub repository}, + url = {https://github.com/arfon/fidgit} +} \ No newline at end of file diff --git a/paper/paper.md b/paper/paper.md new file mode 100644 index 0000000..40b1b79 --- /dev/null +++ b/paper/paper.md @@ -0,0 +1,107 @@ +--- +title: '\texttt{TorchSurv}: A Lightweight Package for Deep Survival Analysis' +tags: + - Python + - radiomics + - medical imaging +authors: + - name: Alex Zwanenburg + orcid: 0000-0002-0342-9545 + affiliation: "1, 2" + - name: Steffen Löck + orcid: 0000-0002-7017-3738 + affiliation: "2, 3, 4" +affiliations: + - name: "National Center for Tumor Diseases Dresden (NCT/UCC), Germany: German Cancer Research Center (DKFZ), Heidelberg, Germany; Faculty of Medicine and University Hospital Carl Gustav Carus, TUD Dresden University of Technology, Dresden, Germany; Helmholtz-Zentrum Dresden-Rossendorf (HZDR), Dresden, Germany" + index: 1 + - name: OncoRay – National Center for Radiation Research in Oncology, Faculty of Medicine and University Hospital Carl + Gustav Carus, TUD Dresden University of Technology, Helmholtz-Zentrum Dresden-Rossendorf, Dresden, Germany + index: 2 + - name: German Cancer Consortium (DKTK), Partner Site Dresden, and German Cancer Research Center (DKFZ), Heidelberg, Germany + index: 3 + - name: Department of Radiotherapy and Radiation Oncology, Faculty of Medicine and University Hospital Carl Gustav Carus, TUD Dresden University of Technology, Dresden, Germany + index: 4 +date: 7 February 2024 +bibliography: paper.bib +--- + +# Summary + +The forces on stars, galaxies, and dark matter under external gravitational +fields lead to the dynamical evolution of structures in the universe. The orbits +of these bodies are therefore key to understanding the formation, history, and +future state of galaxies. The field of "galactic dynamics," which aims to model +the gravitating components of galaxies to study their structure and evolution, +is now well-established, commonly taught, and frequently used in astronomy. +Aside from toy problems and demonstrations, the majority of problems require +efficient numerical tools, many of which require the same base code (e.g., for +performing numerical orbit integration). + +# Statement of need + +`Gala` is an Astropy-affiliated Python package for galactic dynamics. Python +enables wrapping low-level languages (e.g., C) for speed without losing +flexibility or ease-of-use in the user-interface. The API for `Gala` was +designed to provide a class-based and user-friendly interface to fast (C or +Cython-optimized) implementations of common operations such as gravitational +potential and force evaluation, orbit integration, dynamical transformations, +and chaos indicators for nonlinear dynamics. `Gala` also relies heavily on and +interfaces well with the implementations of physical units and astronomical +coordinate systems in the `Astropy` package [@astropy] (`astropy.units` and +`astropy.coordinates`). + +`Gala` was designed to be used by both astronomical researchers and by +students in courses on gravitational dynamics or astronomy. It has already been +used in a number of scientific publications [@Pearson:2017] and has also been +used in graduate courses on Galactic dynamics to, e.g., provide interactive +visualizations of textbook material [@Binney:2008]. The combination of speed, +design, and support for Astropy functionality in `Gala` will enable exciting +scientific explorations of forthcoming data releases from the *Gaia* mission +[@gaia] by students and experts alike. + +# Mathematics + +Single dollars ($) are required for inline mathematics e.g. $f(x) = e^{\pi/x}$ + +Double dollars make self-standing equations: + +$$\Theta(x) = \left\{\begin{array}{l} +0\textrm{ if } x < 0\cr +1\textrm{ else} +\end{array}\right.$$ + +You can also use plain \LaTeX for equations +\begin{equation}\label{eq:fourier} +\hat f(\omega) = \int_{-\infty}^{\infty} f(x) e^{i\omega x} dx +\end{equation} +and refer to \autoref{eq:fourier} from text. + +# Citations + +Citations to entries in paper.bib should be in +[rMarkdown](http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html) +format. + +If you want to cite a software repository URL (e.g. something on GitHub without a preferred +citation) then you can do it with the example BibTeX entry below for @fidgit. + +For a quick reference, the following citation commands can be used: +- `@author:2001` -> "Author et al. (2001)" +- `[@author:2001]` -> "(Author et al., 2001)" +- `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)" + +# Figures + +Figures can be included like this: +![Caption for example figure.\label{fig:example}](figure.png) +and referenced from text using \autoref{fig:example}. + +Figure sizes can be customized by adding an optional second parameter: +![Caption for example figure.](figure.png){ width=20% } + +# Acknowledgements + +We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong +Oh, and support from Kathryn Johnston during the genesis of this project. + +# References From 66285a48efbdc32651a35bcccaf775cdac057e03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lodie=20Monod?= Date: Thu, 18 Jul 2024 17:44:37 +0100 Subject: [PATCH 03/22] Update draft-pdf.yml --- .github/workflows/draft-pdf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index 8ec7d31..c7ff936 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -1,5 +1,5 @@ name: Draft PDF -on: [push] +on: push: paths: - paper/** From 9d596f4165465688017f305b3bfb9ffb87c7ef8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lodie=20Monod?= Date: Thu, 18 Jul 2024 17:45:42 +0100 Subject: [PATCH 04/22] Update draft-pdf.yml --- .github/workflows/draft-pdf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index c7ff936..231eae8 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -17,7 +17,7 @@ jobs: with: journal: joss # This should be the path to the paper within your repo. - paper-path: paper.md + paper-path: paper/paper.md - name: Upload uses: actions/upload-artifact@v4 with: From 831c6a8a0eb77bd79c180a0cc6281a95aa5461b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lodie=20Monod?= Date: Thu, 18 Jul 2024 17:48:51 +0100 Subject: [PATCH 05/22] Update draft-pdf.yml --- .github/workflows/draft-pdf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index 231eae8..cb23d1e 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -25,7 +25,7 @@ jobs: # This is the output path where Pandoc will write the compiled # PDF. Note, this should be the same directory as the input # paper.md - path: paper/paper.pdf + path: paper.pdf - name: Commit PDF to repository uses: EndBug/add-and-commit@v9 with: From dce716d632ab1bec53b227997df86ace1d6dba40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lodie=20Monod?= Date: Thu, 18 Jul 2024 17:50:57 +0100 Subject: [PATCH 06/22] Update draft-pdf.yml --- .github/workflows/draft-pdf.yml | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index cb23d1e..196d07a 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -1,10 +1,6 @@ name: Draft PDF -on: - push: - paths: - - paper/** - - .github/workflows/draft-pdf.yml - +on: [push] + jobs: paper: runs-on: ubuntu-latest @@ -26,9 +22,3 @@ jobs: # PDF. Note, this should be the same directory as the input # paper.md path: paper.pdf - - name: Commit PDF to repository - uses: EndBug/add-and-commit@v9 - with: - message: '(auto) Paper PDF Draft' - # This should be the path to the paper within your repo. - add: 'paper.pdf' # 'paper/*.pdf' to commit all PDFs in the paper directory From 90fd07faec139b8f3f62267b3ddce6899485c3c4 Mon Sep 17 00:00:00 2001 From: melodiemonod Date: Thu, 18 Jul 2024 18:56:47 +0100 Subject: [PATCH 07/22] first draft of paper --- paper/paper.bib | 421 +++++++++++++++++++++++++++++++++++++++++------- paper/paper.md | 214 +++++++++++++++--------- 2 files changed, 501 insertions(+), 134 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 72e3977..549469a 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -1,59 +1,364 @@ -@article{Pearson:2017, - url = {http://adsabs.harvard.edu/abs/2017arXiv170304627P}, - Archiveprefix = {arXiv}, - Author = {{Pearson}, S. and {Price-Whelan}, A.~M. and {Johnston}, K.~V.}, - Eprint = {1703.04627}, - Journal = {ArXiv e-prints}, - Keywords = {Astrophysics - Astrophysics of Galaxies}, - Month = mar, - Title = {{Gaps in Globular Cluster Streams: Pal 5 and the Galactic Bar}}, - Year = 2017 -} - -@book{Binney:2008, - url = {http://adsabs.harvard.edu/abs/2008gady.book.....B}, - Author = {{Binney}, J. and {Tremaine}, S.}, - Booktitle = {Galactic Dynamics: Second Edition, by James Binney and Scott Tremaine.~ISBN 978-0-691-13026-2 (HB).~Published by Princeton University Press, Princeton, NJ USA, 2008.}, - Publisher = {Princeton University Press}, - Title = {{Galactic Dynamics: Second Edition}}, - Year = 2008 -} - -@article{gaia, - author = {{Gaia Collaboration}}, - title = "{The Gaia mission}", - journal = {Astronomy and Astrophysics}, - archivePrefix = "arXiv", - eprint = {1609.04153}, - primaryClass = "astro-ph.IM", - keywords = {space vehicles: instruments, Galaxy: structure, astrometry, parallaxes, proper motions, telescopes}, - year = 2016, - month = nov, - volume = 595, - doi = {10.1051/0004-6361/201629272}, - url = {http://adsabs.harvard.edu/abs/2016A%26A...595A...1G}, -} - -@article{astropy, - author = {{Astropy Collaboration}}, - title = "{Astropy: A community Python package for astronomy}", - journal = {Astronomy and Astrophysics}, - archivePrefix = "arXiv", - eprint = {1307.6212}, - primaryClass = "astro-ph.IM", - keywords = {methods: data analysis, methods: miscellaneous, virtual observatory tools}, - year = 2013, - month = oct, - volume = 558, - doi = {10.1051/0004-6361/201322068}, - url = {http://adsabs.harvard.edu/abs/2013A%26A...558A..33A} -} - -@misc{fidgit, - author = {A. M. Smith and K. Thaney and M. Hahnel}, - title = {Fidgit: An ungodly union of GitHub and Figshare}, - year = {2020}, - publisher = {GitHub}, - journal = {GitHub repository}, - url = {https://github.com/arfon/fidgit} +@article{davidson2019lifelines, + title={lifelines: survival analysis in Python}, + author={Davidson-Pilon, Cameron}, + journal={Journal of Open Source Software}, + volume={4}, + number={40}, + pages={1317}, + year={2019} +} + +@article{therneau2015survival, + title={Package ‘survival’}, + author={Therneau, Terry M and Lumley, Thomas}, + journal={R Top Doc}, + volume={128}, + number={10}, + pages={28--33}, + year={2015} +} + +@article{paszke2019pytorch, + title={Pytorch: An imperative style, high-performance deep learning library}, + author={Paszke, Adam and Gross, Sam and Massa, Francisco and Lerer, Adam and Bradbury, James and Chanan, Gregory and Killeen, Trevor and Lin, Zeming and Gimelshein, Natalia and Antiga, Luca and others}, + journal={Advances in neural information processing systems}, + volume={32}, + year={2019} +} + +@article{polsterl2020scikit, + title={scikit-survival: A Library for Time-to-Event Analysis Built on Top of scikit-learn}, + author={P{\"o}lsterl, Sebastian}, + journal={The Journal of Machine Learning Research}, + volume={21}, + number={1}, + pages={8747--8752}, + year={2020}, + publisher={JMLRORG} +} + +@article{potapov2023packagesurvAUC, + title={Package ‘survAUC’}, + author={Potapov, Sergej and Adler, Werner and Schmid, Matthias and Potapov, Maintainer Sergej}, + journal={Statistics in Medicine}, + volume={25}, + pages={3474--3486}, + year={2023} +} + +@inproceedings{he2020momentum, + title={Momentum contrast for unsupervised visual representation learning}, + author={He, Kaiming and Fan, Haoqi and Wu, Yuxin and Xie, Saining and Girshick, Ross}, + booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition}, + pages={9729--9738}, + year={2020} +} + +@article{katzman2018deepsurv, + title={DeepSurv: personalized treatment recommender system using a Cox proportional hazards deep neural network}, + author={Katzman, Jared L and Shaham, Uri and Cloninger, Alexander and Bates, Jonathan and Jiang, Tingting and Kluger, Yuval}, + journal={BMC medical research methodology}, + volume={18}, + number={1}, + pages={1--12}, + year={2018}, + publisher={BioMed Central} +} + +@article{Kvamme2019pycox, + author = {H{{\aa}}vard Kvamme and {{\O}}rnulf Borgan and Ida Scheel}, + title = {Time-to-Event Prediction with Neural Networks and Cox Regression}, + journal = {Journal of Machine Learning Research}, + year = {2019}, + volume = {20}, + number = {129}, + pages = {1--30}, + url = {http://jmlr.org/papers/v20/18-424.html} +} + +@inproceedings{nagpal2022auton, + title={auton-survival: An open-source package for regression, counterfactual estimation, evaluation and phenotyping with censored time-to-event data}, + author={Nagpal, Chirag and Potosnak, Willa and Dubrawski, Artur}, + booktitle={Machine Learning for Healthcare Conference}, + pages={585--608}, + year={2022}, + organization={PMLR} +} + +@article{Cox1972, + title = {Regression Models and Life‐Tables}, + volume = {34}, + ISSN = {2517-6161}, + number = {2}, + journal = {Journal of the Royal Statistical Society: Series B (Methodological)}, + publisher = {Wiley}, + author = {Cox, D. R.}, + year = {1972}, + month = jan, + pages = {187–202} +} + +@article{Kzlers2018, + title = {The Weibull Distribution}, + volume = {15}, + ISSN = {1740-9713}, + number = {2}, + journal = {Significance}, + publisher = {Oxford University Press (OUP)}, + author = {Kızılers\"{u}, Ayşe and Kreer, Markus and Thomas, Anthony W.}, + year = {2018}, + month = apr, + pages = {10–11} +} + +@article{Carroll2003, + title = {On the use and utility of the Weibull model in the analysis of survival data}, + volume = {24}, + ISSN = {0197-2456}, + url = {http://dx.doi.org/10.1016/S0197-2456(03)00072-2}, + DOI = {10.1016/s0197-2456(03)00072-2}, + number = {6}, + journal = {Controlled Clinical Trials}, + publisher = {Elsevier BV}, + author = {Carroll, Kevin J.}, + year = {2003}, + month = dec, + pages = {682–701} +} + +@Manual{survivalpackage, + title = {A Package for Survival Analysis in R}, + author = {Terry M Therneau}, + year = {2024}, + note = {R package version 3.5-8}, + url = {https://CRAN.R-project.org/package=survival}, + } + +@Manual{torchlifeAbeywardana, + title = {torchlife: Survival Analysis using pytorch}, + author = {Sachinthaka Abeywardana}, + year = {2021}, + url = {https://sachinruk.github.io/torchlife//index.html}, + } + +@Manual{survAUCpackage, + title = {Estimators of prediction accuracy for time-to-event data}, + author = {Sergej Potapov and Werner Adler and Matthias Schmid}, + year = {2023}, + note = {R package version 1.2-0}, + url = {https://CRAN.R-project.org/package=survAUC}, + } + +@Manual{timeROCpackage, + title = {Time-Dependent ROC Curve and AUC for Censored Survival Data}, + author = {Paul Blanche}, + year = {2019}, + note = {R package version 0.4}, + url = {https://CRAN.R-project.org/package=timeROC}, + } + +@Manual{risksetROCpackage, + title = {Riskset ROC Curve Estimation from Censored Survival Data}, + author = {Patrick J. Heagerty}, + year = {2022}, + note = {R package version 1.0.4.1}, + url = {https://CRAN.R-project.org/package=risksetROC}, + } + +@Manual{survivalROCpackage, + title = {Time-Dependent ROC Curve Estimation from Censored Survival Data}, + author = {Patrick J. Heagerty}, + year = {2022}, + note = {R package version 1.0.3.1}, + url = {https://CRAN.R-project.org/package=survivalROC}, + } + +@article{survcomppackage, + title = {survcomp: an R/Bioconductor package for performance assessment and comparison of survival models}, + volume = {27}, + ISSN = {1367-4803}, + url = {http://dx.doi.org/10.1093/bioinformatics/btr511}, + DOI = {10.1093/bioinformatics/btr511}, + number = {22}, + journal = {Bioinformatics}, + publisher = {Oxford University Press (OUP)}, + author = {Schr\"{o}der, Markus S. and Culhane, Aedín C. and Quackenbush, John and Haibe-Kains, Benjamin}, + year = {2011}, + month = sep, + pages = {3206–3208} +} + +@Manual{riskRegressionpackage, + title = {Risk Regression Models and Prediction Scores for Survival Analysis with Competing Risks}, + author = {Thomas Alexander Gerds and Johan Sebastian Ohlendorff and Paul Blanche and Rikke Mortensen and Marvin Wright and Nikolaj Tollenaar and John Muschelli and Ulla Brasch Mogensen and Brice Ozenne}, + year = {2023}, + note = {R package version 2023.12.21}, + url = {https://CRAN.R-project.org/package=riskRegression}, + } + +@Manual{SurvMetricspackage, + title = {Predictive Evaluation Metrics in Survival Analysis}, + author = {Hanpu Zhou and Xuewei Cheng and Sizheng Wang and Yi Zou and Hong Wang}, + year = {2022}, + note = {R package version 0.5.0}, + url = {https://CRAN.R-project.org/package=SurvMetrics}, + } + +@Manual{pecpackage, + title = {Prediction Error Curves for Risk Prediction Models in Survival Analysis}, + author = {Thomas A. Gerds}, + year = {2023}, + note = {R package version 2023.04.12}, + url = {https://CRAN.R-project.org/package=pec}, + } + +@article{Heagerty2000, + title = {Time‐Dependent ROC Curves for Censored Survival Data and a Diagnostic Marker}, + volume = {56}, + ISSN = {1541-0420}, + url = {http://dx.doi.org/10.1111/j.0006-341x.2000.00337.x}, + DOI = {10.1111/j.0006-341x.2000.00337.x}, + number = {2}, + journal = {Biometrics}, + publisher = {Oxford University Press (OUP)}, + author = {Heagerty, Patrick J. and Lumley, Thomas and Pepe, Margaret S.}, + year = {2000}, + month = jun, + pages = {337–344} +} + +@article{Heagerty2005, + author = {Heagerty, Patrick J. and Zheng, Yingye}, + doi = {10.1111/j.0006-341x.2005.030814.x}, + issn = {1541-0420}, + journal = {Biometrics}, + month = {February}, + number = {1}, + pages = {92–105}, + publisher = {Oxford University Press (OUP)}, + title = {Survival Model Predictive Accuracy and ROC Curves}, + url = {http://dx.doi.org/10.1111/j.0006-341x.2005.030814.x}, + volume = {61}, + year = {2005} +} + + +@article{Blanche2013, + title = {Review and comparison of ROC curve estimators for a time‐dependent outcome with marker‐dependent censoring}, + volume = {55}, + ISSN = {1521-4036}, + url = {http://dx.doi.org/10.1002/bimj.201200045}, + DOI = {10.1002/bimj.201200045}, + number = {5}, + journal = {Biometrical Journal}, + publisher = {Wiley}, + author = {Blanche, Paul and Dartigues, Jean‐Fran\c{c}ois and Jacqmin‐Gadda, Hélène}, + year = {2013}, + month = jun, + pages = {687–704} +} + +@article{Uno2007, + title = {Evaluating Prediction Rules fort-Year Survivors With Censored Regression Models}, + volume = {102}, + ISSN = {1537-274X}, + url = {http://dx.doi.org/10.1198/016214507000000149}, + DOI = {10.1198/016214507000000149}, + number = {478}, + journal = {Journal of the American Statistical Association}, + publisher = {Informa UK Limited}, + author = {Uno, Hajime and Cai, Tianxi and Tian, Lu and Wei, L. J}, + year = {2007}, + month = jun, + pages = {527–537} +} + +@article{Blanche2018, + author = {Blanche, Paul and Kattan, Michael W and Gerds, Thomas A}, + doi = {10.1093/biostatistics/kxy006}, + issn = {1468-4357}, + journal = {Biostatistics}, + month = {February}, + number = {2}, + pages = {347–357}, + publisher = {Oxford University Press (OUP)}, + title = {The c-index is not proper for the evaluation of $t$-year predicted risks}, + url = {http://dx.doi.org/10.1093/biostatistics/kxy006}, + volume = {20}, + year = {2018} +} + +@article{Uno_2011, + author = {Uno, Hajime and Cai, Tianxi and Pencina, Michael J. and D’Agostino, Ralph B. and Wei, L. J.}, + doi = {10.1002/sim.4154}, + issn = {1097-0258}, + journal = {Statistics in Medicine}, + month = {January}, + number = {10}, + pages = {1105–1117}, + publisher = {Wiley}, + title = {On the C‐statistics for evaluating overall adequacy of risk prediction procedures with censored survival data}, + url = {http://dx.doi.org/10.1002/sim.4154}, + volume = {30}, + year = {2011} +} + +@article{Harrell1996, + author = {Harrell, Frank E. and Lee, Kerry L. and Mark, Daniel B.}, + doi = {10.1002/(sici)1097-0258(19960229)15:4<361::aid-sim168>3.0.co;2-4}, + issn = {1097-0258}, + journal = {Statistics in Medicine}, + month = {February}, + number = {4}, + pages = {361–387}, + publisher = {Wiley}, + title = {Multivariate Prognostic Models: Issues in Developing models, Evaluating Assumptions and Adequacy, and Measuring and Reducing Errors}, + url = {http://dx.doi.org/10.1002/(SICI)1097-0258(19960229)15:4<361::AID-SIM168>3.0.CO;2-4}, + volume = {15}, + year = {1996} +} + +@article{Graf_1999, + author = {Graf, Erika and Schmoor, Claudia and Sauerbrei, Willi and Schumacher, Martin}, + doi = {10.1002/(sici)1097-0258(19990915/30)18:17/18<2529::aid-sim274>3.0.co;2-5}, + issn = {1097-0258}, + journal = {Statistics in Medicine}, + month = {September}, + number = {17–18}, + pages = {2529–2545}, + publisher = {Wiley}, + title = {Assessment and comparison of prognostic classification schemes for survival data}, + url = {http://dx.doi.org/10.1002/(SICI)1097-0258(19990915/30)18:17/18<2529::AID-SIM274>3.0.CO;2-5}, + volume = {18}, + year = {1999} +} + +@article{Efron1977, + title = {The Efficiency of Cox’s Likelihood Function for Censored Data}, + volume = {72}, + ISSN = {1537-274X}, + url = {http://dx.doi.org/10.1080/01621459.1977.10480613}, + DOI = {10.1080/01621459.1977.10480613}, + number = {359}, + journal = {Journal of the American Statistical Association}, + publisher = {Informa UK Limited}, + author = {Efron, Bradley}, + year = {1977}, + month = sep, + pages = {557–565} +} + +@article{Breslow1975, + title = {Analysis of Survival Data under the Proportional Hazards Model}, + volume = {43}, + ISSN = {0306-7734}, + url = {http://dx.doi.org/10.2307/1402659}, + DOI = {10.2307/1402659}, + number = {1}, + journal = {International Statistical Review / Revue Internationale de Statistique}, + publisher = {JSTOR}, + author = {Breslow, N. E.}, + year = {1975}, + month = apr, + pages = {45} } \ No newline at end of file diff --git a/paper/paper.md b/paper/paper.md index 40b1b79..bff1cae 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -1,107 +1,169 @@ --- -title: '\texttt{TorchSurv}: A Lightweight Package for Deep Survival Analysis' +title: 'TorchSurv: A Lightweight Package for Deep Survival Analysis' tags: - - Python - - radiomics - - medical imaging + - Python package + - Deep Survival Analysis + - PyTorch + - TorchSurv authors: - - name: Alex Zwanenburg - orcid: 0000-0002-0342-9545 - affiliation: "1, 2" - - name: Steffen Löck - orcid: 0000-0002-7017-3738 - affiliation: "2, 3, 4" -affiliations: - - name: "National Center for Tumor Diseases Dresden (NCT/UCC), Germany: German Cancer Research Center (DKFZ), Heidelberg, Germany; Faculty of Medicine and University Hospital Carl Gustav Carus, TUD Dresden University of Technology, Dresden, Germany; Helmholtz-Zentrum Dresden-Rossendorf (HZDR), Dresden, Germany" + - name: Mélodie Monod + orcid: 0000-0001-6448-2051 + affiliation: "1" + - name: Peter Krusche + affiliation: "1" + - name: Qian Cao + affiliation: "2" + - name: Berkman Sahiner + affiliation: "2" + - name: Nicholas Petrick + affiliation: "2" + - name: David Ohlssen + affiliation: "3" + - name: Thibaud Coroller + orcid: 0000-0001-7662-8724 + affiliation: "3" +affiliations:Pm + - name: Novartis Pharma AG, Switzerland index: 1 - - name: OncoRay – National Center for Radiation Research in Oncology, Faculty of Medicine and University Hospital Carl - Gustav Carus, TUD Dresden University of Technology, Helmholtz-Zentrum Dresden-Rossendorf, Dresden, Germany + - name: Center for Devices and Radiological Health, Food and Drug Administration, MD, USA index: 2 - - name: German Cancer Consortium (DKTK), Partner Site Dresden, and German Cancer Research Center (DKFZ), Heidelberg, Germany + - name: Novartis Pharmaceuticals Corporation, NJ, USA index: 3 - - name: Department of Radiotherapy and Radiation Oncology, Faculty of Medicine and University Hospital Carl Gustav Carus, TUD Dresden University of Technology, Dresden, Germany - index: 4 -date: 7 February 2024 +date: 18 July 2024 bibliography: paper.bib --- # Summary -The forces on stars, galaxies, and dark matter under external gravitational -fields lead to the dynamical evolution of structures in the universe. The orbits -of these bodies are therefore key to understanding the formation, history, and -future state of galaxies. The field of "galactic dynamics," which aims to model -the gravitating components of galaxies to study their structure and evolution, -is now well-established, commonly taught, and frequently used in astronomy. -Aside from toy problems and demonstrations, the majority of problems require -efficient numerical tools, many of which require the same base code (e.g., for -performing numerical orbit integration). +`TorchSurv` (available on GitHub and PyPI) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive survival model parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex input data scenarios. +`TorchSurv` has undergone rigorous testing on open source data and synthetically generated survival data that include edge cases. The package is comprehensively documented and contains illustrative examples. The latest documentation of `TorchSurv` can be found on [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). + +`TorchSurv` provides a user-friendly workflow for defining a survival model with parameters specified by a `PyTorch`-based (deep) neural network. At the core of `TorchSurv` lies its `PyTorch`-based calculation of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. +In survival analysis, each observation is associated with survival data denoted by $y$ (comprising the event indicator and the time-to-event or censoring) and covariates denoted by $x$. A survival model that is able to capture the complexity of the survival data $y$, is parametrized by parameters denoted by $\theta$. For instance, in the Cox proportional hazards model, the survival model parameters $\theta$ are the relative hazards. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the survival model parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. +Additionally, `TorchSurv` offers evaluation metrics (the time-dependent Area Under the cure (AUC) under the Receiver operating characteristic curve (ROC), the Concordance index (C-index) and the Brier Score) to characterize the predictive performance of survival models. +Below is an overview of the workflow for model inference and evaluation with `TorchSurv`: + +1. Initialize a `PyTorch`-based neural network that defines the function from the covariates to the survival model's parameters. In the context of the Cox relative hazards model for example, the parameters are the log relative hazards. +2. Initiate training: For each epoch on the training set, + - Draw survival data $y^{\text{train}}$ (i.e., event indicator and time-to-event or censoring) and covariates $x^{\text{train}}$ from the training set. + - Obtain parameters $\theta^{\text{train}}$ based on drawn covariates $x^{\text{train}}$ using `PyTorch`-based neural network. + - Calculate the loss given survival data $y^{\text{train}}$ and parameters $\theta^{\text{train}}$ using `TorchSurv`'s loss function. In the context of the Cox relative hazards model for example, the loss function is equal to the negative of the log partial likelihood. + - Utilize backpropagation to update parameters $\theta^{\text{train}}$. +3. Obtain parameters $\theta^{\text{test}}$ based on covariates from the test set $x^{\text{test}}$ using the trained `PyTorch`-based neural network. +4. Evaluate the predictive performance of the model using `TorchSurv`'s evaluation metric functions (e.g., C-index) given parameters $\theta^{\text{test}}$ and survival data from the test set $y^{\text{test}}$. + + # Statement of need -`Gala` is an Astropy-affiliated Python package for galactic dynamics. Python -enables wrapping low-level languages (e.g., C) for speed without losing -flexibility or ease-of-use in the user-interface. The API for `Gala` was -designed to provide a class-based and user-friendly interface to fast (C or -Cython-optimized) implementations of common operations such as gravitational -potential and force evaluation, orbit integration, dynamical transformations, -and chaos indicators for nonlinear dynamics. `Gala` also relies heavily on and -interfaces well with the implementations of physical units and astronomical -coordinate systems in the `Astropy` package [@astropy] (`astropy.units` and -`astropy.coordinates`). +Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning offers promising avenues for building complex survival models. However, existing libraries often restrict users to predefined parameter forms and limit seamless integration with `PyTorch`. + +Table 1 compares the functionalities of `TorchSurv` with those of +`auton-survival` [@nagpal2022auton], +`pycox` [@Kvamme2019pycox], +`torchlife` [@torchlifeAbeywardana], +`scikit-survival` [@polsterl2020scikit], +`lifelines` [@davidson2019lifelines], and +`deepsurv` [@katzman2018deepsurv]. +While several libraries offer survival modelling functionalities, as shown in Table 1, no existing library provides the flexibility to use a custom `PyTorch`-based neural network to define the survival model parameters $\theta$ given a set of covariates $x$. In existing libraries, users are limited to specific forms to define $\theta$ (e.g., linear function of covariates) and the log-likelihood functions available cannot be leveraged because they do not allow for seamless integration with `PyTorch`. +Specifically, the limitations on the log-likelihood functions include protected functions, specialized input requirements (format or class type), and reliance on external libraries like `NumPy` or `Pandas`. Dependence on external libraries hinders automatic gradient calculation within `PyTorch`. Additionally, the implementation of likelihood functions instead of log-likelihood functions, as done by some packages, introduces potential numerical instability. +With respect to the evaluation metrics, `scikit-survival` stands out as a comprehensive library. However, it lacks certain desirable features, including confidence intervals and comparison of the evaluation metric between two different models, and it is implemented with `NumPy`. +Our package, `TorchSurv`, is specifically designed for use in Python, but we also provide a comparative analysis of its functionalities with popular `R` packages for survival analysis in Table 2. `R` packages do not make log-likelihood functions readily accessible and restrict users to specific forms to define $\theta$. However, `R` has extensive libraries for evaluation metrics, such as the `RiskRegression` library [@riskRegressionpackage]. `TorchSurv` offers a comparable range of evaluation metrics, ensuring comprehensive model evaluation regardless of the chosen programming environment. + +The outputs of both the log-likelihood functions and the evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is summarized in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). + +# Functionality + +## Loss functions + +**Cox loss function.** The Cox loss function is defined as the negative of the Cox proportional hazards model's partial log-likelihood [@Cox1972]. The function requires the subject-specific log relative hazards and the survival data (i.e., event indicator and time-to-event or censoring). The log relative hazards should be obtained from a `PyTorch`-based model pre-specified by the user. In case of ties in the event times, the user can choose between the Breslow [@Breslow1975] and the Efron method [@Efron1977] to approximate the Cox partial log likelihood. We illustrate the use of the Cox loss function for a pseudo training loop in the code snippet below. -`Gala` was designed to be used by both astronomical researchers and by -students in courses on gravitational dynamics or astronomy. It has already been -used in a number of scientific publications [@Pearson:2017] and has also been -used in graduate courses on Galactic dynamics to, e.g., provide interactive -visualizations of textbook material [@Binney:2008]. The combination of speed, -design, and support for Astropy functionality in `Gala` will enable exciting -scientific explorations of forthcoming data releases from the *Gaia* mission -[@gaia] by students and experts alike. +```python +from torchsurv.loss import cox +my_model = MyPyTorchModel() # PyTorch model for log hazards (1 output) +for data in dataloader: + x, event, time = data + log_hzs = my_model(x) # torch.Size([64, 1]), if batch size is 64 + loss = cox.neg_partial_log_likelihood(log_hzs, event, time) + loss.backward() # native torch backend +``` -# Mathematics +**Weibull loss function.** The Weibull loss function is defined as the negative of the Weibull AFT's log-likelihood [@Carroll2003]. The function requires the subject-specific log parameters of the Weibull distribution (i.e., the log scale and the log shape) and the survival data. The log parameters of the Weibull distribution should be obtained from a `PyTorch`-based model pre-specified by the user. We illustrate the use of the Weibull loss function for a pseudo training loop in the code snippet below. -Single dollars ($) are required for inline mathematics e.g. $f(x) = e^{\pi/x}$ +```python +from torchsurv.loss import weibull +my_model = MyPyTorchModel() # PyTorch model for log parameters (2 outputs) +for data in dataloader: + x, event, time = data + log_params = my_model(x) # torch.Size([64, 2]), if batch size is 64 + loss = weibull.neg_log_likelihood(log_params, event, time) + loss.backward() # native torch backend +``` -Double dollars make self-standing equations: +**Momentum** + When training a model with a large file, the batch size is greatly limited by computational resources. This impacts the stability of model optimization, especially when rank-based loss is used. Inspired from MoCO \citep{he2020momentum}, we implemented a momentum loss that decouples batch size from survival loss, increasing the effective batch size and allowing robust train of a model, even when using a very limited batch size (e.g., $batch_{size} \leq 16$). We illustrate the use of momentum for a pseudo training loop in the code +snippet below. -$$\Theta(x) = \left\{\begin{array}{l} -0\textrm{ if } x < 0\cr -1\textrm{ else} -\end{array}\right.$$ +```python +from torchsurv.loss import Momentum +my_model = MyPyTorchModel() # PyTorch model for log hazards (1 output) +my_loss = cox.neg_partial_log_likelihood # any torchsurv loss +momentum = Momentum(backbone=my_model, loss=my_loss) -You can also use plain \LaTeX for equations -\begin{equation}\label{eq:fourier} -\hat f(\omega) = \int_{-\infty}^{\infty} f(x) e^{i\omega x} dx -\end{equation} -and refer to \autoref{eq:fourier} from text. +for data in dataloader: + x, event, time = data + loss = model_momentum(x, event, time) # torch.Size([64, 1]) + loss.backward() # native torch backend -# Citations +# Inference is computed with target network (k) +log_hzs = model_momentum.infer(x) # torch.Size([64, 1]) +``` -Citations to entries in paper.bib should be in -[rMarkdown](http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html) -format. +## Evaluation Metrics Functions -If you want to cite a software repository URL (e.g. something on GitHub without a preferred -citation) then you can do it with the example BibTeX entry below for @fidgit. +The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the AUC, C-index, and Brier score. The inputs of the evaluation metrics functions are the individual risk score estimated on the test set and the survival data on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. -For a quick reference, the following citation commands can be used: -- `@author:2001` -> "Author et al. (2001)" -- `[@author:2001]` -> "(Author et al., 2001)" -- `[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)" +**AUC.** The AUC measures the discriminatory capacity of a model at a given time $t$, i.e., the model’s ability to provide a reliable ranking of times-to-event based on estimated individual risk scores [@Heagerty2005;@Uno2007;@Blanche2013]. -# Figures +```python +from torchsurv.metrics import Auc +auc = Auc() +auc(log_hzs, event, time) # AUC at each time +auc(log_hzs, event, time, new_time=torch.tensor(10.)) # AUC at time 10 +``` -Figures can be included like this: -![Caption for example figure.\label{fig:example}](figure.png) -and referenced from text using \autoref{fig:example}. +**C-index.** The C-index is a generalization of the AUC that represents the assessment of the discriminatory capacity of the model over time [@Harrell1996;@Uno_2011]. -Figure sizes can be customized by adding an optional second parameter: -![Caption for example figure.](figure.png){ width=20% } +```python +from torchsurv.metrics import ConcordanceIndex +cindex = ConcordanceIndex() +cindex(log_hzs, event, time) # c-index +``` -# Acknowledgements +**Brier Score.** The Brier score evaluates the accuracy of a model at a given time $t$. It represents the average squared distance between the observed survival status and the predicted survival probability [@Graf_1999]. The Brier score cannot be obtained for the Cox model because the survival function is not available, but it can be obtained for the Weibull model. + +```python +from torchsurv.metrics import Brier +surv = survival_function(log_params, time) +brier = Brier() +brier(surv, event, time) # Brier score at each time +brier.integral() # integrated brier score +``` + + +**Additional features.** In \texttt{TorchSurv}, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). +Lastly, functionalities including the confidence interval, one-sample hypothesis test to determine whether the metric is better than that of a random predictor, and two-sample hypothesis test to compare two evaluation metrics between different models are implemented. For the hypothesis tests, the significance level, typically referred to as $\alpha$, can be modified as needed. The following code snippet exemplifies the aforementioned functionalities for the C-index. + +```python +cindex.confidence_interval() # CI, default alpha = .05 +cindex.p_value(alternative='greater') # pvalue, H0: c = 0.5, HA: c > 0.5 +cindex.compare(cindex_other) # pvalue, H0: c1 = c2, HA: c1 > c2 +``` + +# Conflicts of interest + +MM, PK, DO and TC are employees and stockholders of Novartis, a global pharmaceutical company. -We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong -Oh, and support from Kathryn Johnston during the genesis of this project. # References + From 0ef1fe345aa1fd922175d4cbd2840bc309c0747d Mon Sep 17 00:00:00 2001 From: melodiemonod Date: Thu, 18 Jul 2024 19:00:08 +0100 Subject: [PATCH 08/22] fix bug in header --- paper/paper.md | 1 - 1 file changed, 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index bff1cae..1c77620 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -22,7 +22,6 @@ authors: - name: Thibaud Coroller orcid: 0000-0001-7662-8724 affiliation: "3" -affiliations:Pm - name: Novartis Pharma AG, Switzerland index: 1 - name: Center for Devices and Radiological Health, Food and Drug Administration, MD, USA From 503fc41365ff55b84b1f1f041a0fde3928192e65 Mon Sep 17 00:00:00 2001 From: melodiemonod Date: Thu, 18 Jul 2024 19:02:47 +0100 Subject: [PATCH 09/22] fix bug with citep --- paper/paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 1c77620..270cbc2 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -100,7 +100,7 @@ for data in dataloader: ``` **Momentum** - When training a model with a large file, the batch size is greatly limited by computational resources. This impacts the stability of model optimization, especially when rank-based loss is used. Inspired from MoCO \citep{he2020momentum}, we implemented a momentum loss that decouples batch size from survival loss, increasing the effective batch size and allowing robust train of a model, even when using a very limited batch size (e.g., $batch_{size} \leq 16$). We illustrate the use of momentum for a pseudo training loop in the code + When training a model with a large file, the batch size is greatly limited by computational resources. This impacts the stability of model optimization, especially when rank-based loss is used. Inspired from MoCO [@he2020momentum], we implemented a momentum loss that decouples batch size from survival loss, increasing the effective batch size and allowing robust train of a model, even when using a very limited batch size (e.g., $batch_{size} \leq 16$). We illustrate the use of momentum for a pseudo training loop in the code snippet below. ```python @@ -150,7 +150,7 @@ brier.integral() # integrated brier score ``` -**Additional features.** In \texttt{TorchSurv}, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). +**Additional features.** In `TorchSurv`, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). Lastly, functionalities including the confidence interval, one-sample hypothesis test to determine whether the metric is better than that of a random predictor, and two-sample hypothesis test to compare two evaluation metrics between different models are implemented. For the hypothesis tests, the significance level, typically referred to as $\alpha$, can be modified as needed. The following code snippet exemplifies the aforementioned functionalities for the C-index. ```python From 20918912894ec04d891e5c947467c7ed2daae93d Mon Sep 17 00:00:00 2001 From: corolth1 Date: Fri, 19 Jul 2024 10:06:31 -0400 Subject: [PATCH 10/22] fixed typos --- paper/paper.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 270cbc2..6c4c539 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -37,14 +37,15 @@ bibliography: paper.bib `TorchSurv` (available on GitHub and PyPI) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive survival model parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex input data scenarios. `TorchSurv` has undergone rigorous testing on open source data and synthetically generated survival data that include edge cases. The package is comprehensively documented and contains illustrative examples. The latest documentation of `TorchSurv` can be found on [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). -`TorchSurv` provides a user-friendly workflow for defining a survival model with parameters specified by a `PyTorch`-based (deep) neural network. At the core of `TorchSurv` lies its `PyTorch`-based calculation of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. +`TorchSurv` provides a user-friendly workflow for defining a survival model with parameters specified by a `PyTorch`-based (deep) neural network. At the core of `TorchSurv` lies its `PyTorch`-based calculation of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. + In survival analysis, each observation is associated with survival data denoted by $y$ (comprising the event indicator and the time-to-event or censoring) and covariates denoted by $x$. A survival model that is able to capture the complexity of the survival data $y$, is parametrized by parameters denoted by $\theta$. For instance, in the Cox proportional hazards model, the survival model parameters $\theta$ are the relative hazards. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the survival model parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. Additionally, `TorchSurv` offers evaluation metrics (the time-dependent Area Under the cure (AUC) under the Receiver operating characteristic curve (ROC), the Concordance index (C-index) and the Brier Score) to characterize the predictive performance of survival models. Below is an overview of the workflow for model inference and evaluation with `TorchSurv`: 1. Initialize a `PyTorch`-based neural network that defines the function from the covariates to the survival model's parameters. In the context of the Cox relative hazards model for example, the parameters are the log relative hazards. 2. Initiate training: For each epoch on the training set, - - Draw survival data $y^{\text{train}}$ (i.e., event indicator and time-to-event or censoring) and covariates $x^{\text{train}}$ from the training set. + - Draw survival data $y^{\text{train}}$ (i.e., event indicator and time-to-event or censoring) and covariates $x^{\text{train}}$ from the training set. - Obtain parameters $\theta^{\text{train}}$ based on drawn covariates $x^{\text{train}}$ using `PyTorch`-based neural network. - Calculate the loss given survival data $y^{\text{train}}$ and parameters $\theta^{\text{train}}$ using `TorchSurv`'s loss function. In the context of the Cox relative hazards model for example, the loss function is equal to the negative of the log partial likelihood. - Utilize backpropagation to update parameters $\theta^{\text{train}}$. @@ -52,7 +53,6 @@ Below is an overview of the workflow for model inference and evaluation with `To 4. Evaluate the predictive performance of the model using `TorchSurv`'s evaluation metric functions (e.g., C-index) given parameters $\theta^{\text{test}}$ and survival data from the test set $y^{\text{test}}$. - # Statement of need Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning offers promising avenues for building complex survival models. However, existing libraries often restrict users to predefined parameter forms and limit seamless integration with `PyTorch`. @@ -120,9 +120,9 @@ log_hzs = model_momentum.infer(x) # torch.Size([64, 1]) ## Evaluation Metrics Functions -The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the AUC, C-index, and Brier score. The inputs of the evaluation metrics functions are the individual risk score estimated on the test set and the survival data on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. +The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the AUC, C-index, and Brier score. The inputs of the evaluation metrics functions are the individual risk score estimated on the test set and the survival data on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. -**AUC.** The AUC measures the discriminatory capacity of a model at a given time $t$, i.e., the model’s ability to provide a reliable ranking of times-to-event based on estimated individual risk scores [@Heagerty2005;@Uno2007;@Blanche2013]. +**AUC.** The AUC measures the discriminatory capacity of a model at a given time $t$, i.e., the model’s ability to provide a reliable ranking of times-to-event based on estimated individual risk scores [@Heagerty2005;@Uno2007;@Blanche2013]. ```python from torchsurv.metrics import Auc @@ -149,7 +149,6 @@ brier(surv, event, time) # Brier score at each time brier.integral() # integrated brier score ``` - **Additional features.** In `TorchSurv`, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). Lastly, functionalities including the confidence interval, one-sample hypothesis test to determine whether the metric is better than that of a random predictor, and two-sample hypothesis test to compare two evaluation metrics between different models are implemented. For the hypothesis tests, the significance level, typically referred to as $\alpha$, can be modified as needed. The following code snippet exemplifies the aforementioned functionalities for the C-index. From de450c6c661bd18d26b7fa7679983d3fd6392692 Mon Sep 17 00:00:00 2001 From: melodiemonod Date: Fri, 19 Jul 2024 16:57:30 +0100 Subject: [PATCH 11/22] add table to paper --- paper/paper.md | 71 ++++++++++++++++++++++++++-------------------- paper/table_1.png | Bin 0 -> 243356 bytes paper/table_2.png | Bin 0 -> 237894 bytes 3 files changed, 41 insertions(+), 30 deletions(-) create mode 100644 paper/table_1.png create mode 100644 paper/table_2.png diff --git a/paper/paper.md b/paper/paper.md index 270cbc2..327f35d 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -35,72 +35,83 @@ bibliography: paper.bib # Summary `TorchSurv` (available on GitHub and PyPI) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive survival model parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex input data scenarios. -`TorchSurv` has undergone rigorous testing on open source data and synthetically generated survival data that include edge cases. The package is comprehensively documented and contains illustrative examples. The latest documentation of `TorchSurv` can be found on [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). +`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the[`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). -`TorchSurv` provides a user-friendly workflow for defining a survival model with parameters specified by a `PyTorch`-based (deep) neural network. At the core of `TorchSurv` lies its `PyTorch`-based calculation of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. -In survival analysis, each observation is associated with survival data denoted by $y$ (comprising the event indicator and the time-to-event or censoring) and covariates denoted by $x$. A survival model that is able to capture the complexity of the survival data $y$, is parametrized by parameters denoted by $\theta$. For instance, in the Cox proportional hazards model, the survival model parameters $\theta$ are the relative hazards. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the survival model parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. -Additionally, `TorchSurv` offers evaluation metrics (the time-dependent Area Under the cure (AUC) under the Receiver operating characteristic curve (ROC), the Concordance index (C-index) and the Brier Score) to characterize the predictive performance of survival models. +`TorchSurv` provides a user-friendly workflow for training and evaluating a `PyTorch`-based deep survival model. +At its core, `TorchSurv` features `PyTorch`-based calculations of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. +In survival analysis, each observation is associated with survival reponse, denoted by $y$ (comprising the event indicator and the time-to-event or censoring), and covariates denoted by $x$. A survival model is parametrized by parameters, denoted by $\theta$. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. +Additionally, `TorchSurv` offers evaluation metrics, including the time-dependent Area Under the cure (AUC) under the Receiver operating characteristic (ROC) curve, the Concordance index (C-index) and the Brier Score, to characterize the predictive performance of survival models. Below is an overview of the workflow for model inference and evaluation with `TorchSurv`: -1. Initialize a `PyTorch`-based neural network that defines the function from the covariates to the survival model's parameters. In the context of the Cox relative hazards model for example, the parameters are the log relative hazards. +1. Initialize a `PyTorch`-based neural network that defines the function from the covariates $x$ to the parameters $\theta$. In the context of the Cox proportional hazards model for example, the parameters are the log relative hazards. 2. Initiate training: For each epoch on the training set, - - Draw survival data $y^{\text{train}}$ (i.e., event indicator and time-to-event or censoring) and covariates $x^{\text{train}}$ from the training set. - - Obtain parameters $\theta^{\text{train}}$ based on drawn covariates $x^{\text{train}}$ using `PyTorch`-based neural network. - - Calculate the loss given survival data $y^{\text{train}}$ and parameters $\theta^{\text{train}}$ using `TorchSurv`'s loss function. In the context of the Cox relative hazards model for example, the loss function is equal to the negative of the log partial likelihood. - - Utilize backpropagation to update parameters $\theta^{\text{train}}$. -3. Obtain parameters $\theta^{\text{test}}$ based on covariates from the test set $x^{\text{test}}$ using the trained `PyTorch`-based neural network. -4. Evaluate the predictive performance of the model using `TorchSurv`'s evaluation metric functions (e.g., C-index) given parameters $\theta^{\text{test}}$ and survival data from the test set $y^{\text{test}}$. + - Draw survival response $y^{\text{train}}$ and covariates $x^{\text{train}}$ from the training set. + - Obtain parameters $\theta^{\text{train}}$ given covariates $x^{\text{train}}$ using the neural network. + - Calculate the loss as the negative log-likelihood of survival response $y^{\text{train}}$ given parameters $\theta^{\text{train}}$. This calculation is facilitated by `TorchSurv`'s loss function. + - Utilize backpropagation to update the neural network's parameters. +3. Obtain parameters $\theta^{\text{test}}$ given covariates from the test set $x^{\text{test}}$ using the trained neural network. +4. Evaluate the predictive performance of the model using `TorchSurv`'s evaluation metric functions given parameters $\theta^{\text{test}}$ and survival response from the test set $y^{\text{test}}$. # Statement of need -Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning offers promising avenues for building complex survival models. However, existing libraries often restrict users to predefined parameter forms and limit seamless integration with `PyTorch`. +Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning presents promising opportunities for developing sophisticated survival models, where the parameters depend on covariates through complex functions. However, no existing library provides the flexibility to define survival model parameters using a custom `PyTorch`-based neural network. -Table 1 compares the functionalities of `TorchSurv` with those of +Figure \autoref{tab:bibliography} compares the functionalities of `TorchSurv` with those of `auton-survival` [@nagpal2022auton], `pycox` [@Kvamme2019pycox], `torchlife` [@torchlifeAbeywardana], `scikit-survival` [@polsterl2020scikit], `lifelines` [@davidson2019lifelines], and -`deepsurv` [@katzman2018deepsurv]. -While several libraries offer survival modelling functionalities, as shown in Table 1, no existing library provides the flexibility to use a custom `PyTorch`-based neural network to define the survival model parameters $\theta$ given a set of covariates $x$. In existing libraries, users are limited to specific forms to define $\theta$ (e.g., linear function of covariates) and the log-likelihood functions available cannot be leveraged because they do not allow for seamless integration with `PyTorch`. -Specifically, the limitations on the log-likelihood functions include protected functions, specialized input requirements (format or class type), and reliance on external libraries like `NumPy` or `Pandas`. Dependence on external libraries hinders automatic gradient calculation within `PyTorch`. Additionally, the implementation of likelihood functions instead of log-likelihood functions, as done by some packages, introduces potential numerical instability. +`deepsurv` [@katzman2018deepsurv]. +Existing libraries constrain users to predefined forms for defining the parameters (e.g., linear function of covariates). While there exist log-likelihood functions in the libraries, they cannot be leveraged. +Specifically, the limitations on the log-likelihood functions include protected functions, specialized input requirements (format or class type), and reliance on external libraries like `NumPy` or `Pandas`. Dependence on external libraries hinders automatic gradient calculation within `PyTorch`. Additionally, the implementation of likelihood functions instead of log-likelihood functions, as done by some packages, introduces numerical instability. With respect to the evaluation metrics, `scikit-survival` stands out as a comprehensive library. However, it lacks certain desirable features, including confidence intervals and comparison of the evaluation metric between two different models, and it is implemented with `NumPy`. -Our package, `TorchSurv`, is specifically designed for use in Python, but we also provide a comparative analysis of its functionalities with popular `R` packages for survival analysis in Table 2. `R` packages do not make log-likelihood functions readily accessible and restrict users to specific forms to define $\theta$. However, `R` has extensive libraries for evaluation metrics, such as the `RiskRegression` library [@riskRegressionpackage]. `TorchSurv` offers a comparable range of evaluation metrics, ensuring comprehensive model evaluation regardless of the chosen programming environment. +Our package, `TorchSurv`, is specifically designed for use in Python, but we also provide a comparative analysis of its functionalities with popular `R` packages for survival analysis in Table 2. `R` packages also restrict users to specific forms to define the parameters and do not make log-likelihood functions readily accessible. However, `R` has extensive libraries for evaluation metrics, such as the `RiskRegression` library [@riskRegressionpackage]. `TorchSurv` offers a comparable range of evaluation metrics, ensuring comprehensive model evaluation regardless of the chosen programming environment. + +The outputs of both the log-likelihood functions and the evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is presented in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). + +![**Survival analysis libraries in Python.** +$^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. indicates a fully supported feature, indicates an unsupported feature, indicates a partially supported feature. +For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival `impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time, while it lacks the Efron approximation.\label{tab:bibliography}](table_1.png) + +![**Survival analysis libraries in R.** +$^1$[@survivalpackage], $^{2}$[@survAUCpackage], $^{3}$[@timeROCpackage], $^{4}$[@risksetROCpackage], $^{5}$[@survcomppackage], $^{6}$[@survivalROCpackage], $^{7}$[@riskRegressionpackage], $^{8}$[@SurvMetricspackage], $^{9}$[@pecpackage]. indicates a fully supported feature, indicates an unsupported feature, indicates a partially supported feature. +For obtaining the evaluation metrics, packages `survival`, `riskRegression`, `SurvMetrics` and `pec` require the fitted model object as input (a specific object format) and `RisksetROC` imposes a smoothing method. Packages `timeROC`, `riskRegression` and `pec` force the user to choose a form for subject-specific weights (e.g., inverse probability of censoring weighting (IPCW)). Packages `survcomp` and `SurvivalROC` do not implement the general AUC but the censoring-adjusted AUC estimator proposed by @Heagerty2000.](table_2.png) + -The outputs of both the log-likelihood functions and the evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is summarized in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). # Functionality ## Loss functions -**Cox loss function.** The Cox loss function is defined as the negative of the Cox proportional hazards model's partial log-likelihood [@Cox1972]. The function requires the subject-specific log relative hazards and the survival data (i.e., event indicator and time-to-event or censoring). The log relative hazards should be obtained from a `PyTorch`-based model pre-specified by the user. In case of ties in the event times, the user can choose between the Breslow [@Breslow1975] and the Efron method [@Efron1977] to approximate the Cox partial log likelihood. We illustrate the use of the Cox loss function for a pseudo training loop in the code snippet below. +**Cox loss function.** The Cox loss function is defined as the negative of the Cox proportional hazards model's partial log-likelihood [@Cox1972]. The function requires the subject-specific log relative hazards and the survival response (i.e., event indicator and time-to-event or censoring). The log relative hazards are obtained from a `PyTorch`-based model pre-specified by the user. In case of ties in the event times, the user can choose between the Breslow [@Breslow1975] and the Efron method [@Efron1977] to approximate the Cox partial log-likelihood. We illustrate the use of the Cox loss function for a pseudo training loop in the code snippet below. ```python from torchsurv.loss import cox my_model = MyPyTorchModel() # PyTorch model for log hazards (1 output) for data in dataloader: - x, event, time = data + x, event, time = data # covariate, event indicator, time log_hzs = my_model(x) # torch.Size([64, 1]), if batch size is 64 loss = cox.neg_partial_log_likelihood(log_hzs, event, time) loss.backward() # native torch backend ``` -**Weibull loss function.** The Weibull loss function is defined as the negative of the Weibull AFT's log-likelihood [@Carroll2003]. The function requires the subject-specific log parameters of the Weibull distribution (i.e., the log scale and the log shape) and the survival data. The log parameters of the Weibull distribution should be obtained from a `PyTorch`-based model pre-specified by the user. We illustrate the use of the Weibull loss function for a pseudo training loop in the code snippet below. +**Weibull loss function.** The Weibull loss function is defined as the negative of the Weibull AFT's log-likelihood [@Carroll2003]. The function requires the subject-specific log parameters of the Weibull distribution (i.e., the log scale and the log shape) and the survival response. The log parameters of the Weibull distribution should be obtained from a `PyTorch`-based model pre-specified by the user. We illustrate the use of the Weibull loss function for a pseudo training loop in the code snippet below. ```python from torchsurv.loss import weibull my_model = MyPyTorchModel() # PyTorch model for log parameters (2 outputs) for data in dataloader: - x, event, time = data + x, event, time = data # covariate, event indicator, time log_params = my_model(x) # torch.Size([64, 2]), if batch size is 64 loss = weibull.neg_log_likelihood(log_params, event, time) loss.backward() # native torch backend ``` **Momentum** - When training a model with a large file, the batch size is greatly limited by computational resources. This impacts the stability of model optimization, especially when rank-based loss is used. Inspired from MoCO [@he2020momentum], we implemented a momentum loss that decouples batch size from survival loss, increasing the effective batch size and allowing robust train of a model, even when using a very limited batch size (e.g., $batch_{size} \leq 16$). We illustrate the use of momentum for a pseudo training loop in the code + When training a model with a large file, the batch size is greatly limited by computational resources. This impacts the stability of model optimization, especially when rank-based loss is used. Inspired from MoCO [@he2020momentum], we implemented a momentum loss that decouples batch size from survival loss, increasing the effective batch size and allowing robust train of a model, even when using a very limited batch size (e.g., $\leq 16$). We illustrate the use of momentum for a pseudo training loop in the code snippet below. ```python @@ -110,12 +121,12 @@ my_loss = cox.neg_partial_log_likelihood # any torchsurv loss momentum = Momentum(backbone=my_model, loss=my_loss) for data in dataloader: - x, event, time = data - loss = model_momentum(x, event, time) # torch.Size([64, 1]) + x, event, time = data # covariate, event indicator, time + loss = model_momentum(x, event, time) # torch.Size([16, 1]) loss.backward() # native torch backend # Inference is computed with target network (k) -log_hzs = model_momentum.infer(x) # torch.Size([64, 1]) +log_hzs = model_momentum.infer(x) # torch.Size([16, 1]) ``` ## Evaluation Metrics Functions @@ -136,7 +147,7 @@ auc(log_hzs, event, time, new_time=torch.tensor(10.)) # AUC at time 10 ```python from torchsurv.metrics import ConcordanceIndex cindex = ConcordanceIndex() -cindex(log_hzs, event, time) # c-index +cindex(log_hzs, event, time) # C-index ``` **Brier Score.** The Brier score evaluates the accuracy of a model at a given time $t$. It represents the average squared distance between the observed survival status and the predicted survival probability [@Graf_1999]. The Brier score cannot be obtained for the Cox model because the survival function is not available, but it can be obtained for the Weibull model. @@ -146,12 +157,12 @@ from torchsurv.metrics import Brier surv = survival_function(log_params, time) brier = Brier() brier(surv, event, time) # Brier score at each time -brier.integral() # integrated brier score +brier.integral() # Integrated Brier score over time ``` -**Additional features.** In `TorchSurv`, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). -Lastly, functionalities including the confidence interval, one-sample hypothesis test to determine whether the metric is better than that of a random predictor, and two-sample hypothesis test to compare two evaluation metrics between different models are implemented. For the hypothesis tests, the significance level, typically referred to as $\alpha$, can be modified as needed. The following code snippet exemplifies the aforementioned functionalities for the C-index. +**Additional features.** In `TorchSurv`, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally, subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). +Lastly, functionalities including the confidence interval, one-sample hypothesis test to determine whether the metric is better than that of a random predictor, and two-sample hypothesis test to compare two evaluation metrics between different models are implemented. The following code snippet exemplifies the aforementioned functionalities for the C-index. ```python cindex.confidence_interval() # CI, default alpha = .05 diff --git a/paper/table_1.png b/paper/table_1.png new file mode 100644 index 0000000000000000000000000000000000000000..efac5e0f00535b21deadb4b4a2f90c53cacb3249 GIT binary patch literal 243356 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%0A!JHW%V`iLh| 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�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 HeGlb2G>q`7HTQ- z{(E%{HW4n&?e?%2Ii9f}w1S>X8oIe1<-F+{ZH^IlHHFL%W@o-tze+_@l^D2X@1VBJ znIyF$BltqZc*g%|PKsJuxp7oAMU%jHAv0L@dAHSih-1XLhZC()n<7K4Wmyf)r~xoQ zd0MR^e%cY@4LdrKy;kFX7O?}n?Te@m6m8&ouavfQCPS$vQq0X*yqFJ*Z+Z5G&^(+> z-=TK#)&z5#;q+mg`3zoJoZnut1)CU(2m4uOi{RXm^2yE2Z#BJl7*)?Pk>#-7rgEE( zvMC9k0c7tb1wNi3^C+CB1@E%fYXD)~`nD}d*V{4?)E1#n=s>vjq>hjZ9aEDl(3l$+ z<9GeBQrlOxE~CQr&t&N&3`*U6i0=6w4HXE56cm}VvNiSqlL#5HnH8YHMM{#llI}8) z0L0Zw0t1gaNxl?oT?@6q$rxzU;mRBHSc1co*FZ*6 zUUM%2XlqcAdU|>mP#1U!M~5Ym;+U}m9j&U1y>N*n(6xUy8jBT|+m=v-o?n!jw*`16 z6l0&17!C+Z%8Zw=Uwg9=(+C0hc!h4?~5Ytu{B0weN!h5bK2ICrXFwbO7D&H zzc3$354*{K3+w-yn{)AU=8>>Om0u_-R++q z$O^p?T1trl>!}F`q3@*DopDE6dprqaTw7;Tw1Rg2Ypd0J^x-(hA? zo73rB>Xr)kS+AcX!G5&%xWdBE+W(#!bD$Cjut(daR8g`(tiFu0y}X0p{u$%=XxcH_ z>mmhlWn0?BykTLpMO!P0ct#&MB@dPA?&J19Ra8@XI{adsqG`yvkFzGiYvLUl?cP%y zjUO0x{*KK)t`-6stfk6gHfJ@H>c@~PgpqJm)qpIj_b-`(SKI!qtpoJDOaHgnR|{yX@K)&$2hyE=)tSof%c9qOcjb* z4BeMX8_&MGD!*im$3}DWxk%VDu2$H%{w}9p+PPSF-(n!)&#ewwU;3{vNpMNwFZLJ} zpvMr>+4a$9+{TTFP_)>o)ia?sul93-AD~!6HroP|W<;udrTd*t7(Y&n>SE$oxItKS z3l-Vs;l2;QK~7h%s8By&dz(sd$fK{_HZ$_Sf6{;ZVEOE)7^;vG@>sp;UO+|WMD|G! z-T_ya$#q^^7K4FEv(jfCN(@Mi)^8xj?I2yejBv(i0c6!=;Do|EoN|*pU7<+4ci zS^=bN^#BRbx_SQk>bL;Ji?VP`l0E4l+IRqfQfTqJd+lAjwO_=BkAvh4_Ky%xfG< z{vHrxtO9uu{^M2@fB<>TqB3CJvZap~PV`5i`QLsGWMc#uj%7BH0?e3q{rmP7+Y5ly zt7V*iga80DSJ+N)v9hrxTGmgj0Eo4*!F!F><&L>#B;#jgeZ3C||Dokn(nZicf`-$A zXxK^!2<8<42RtotaW{F?gIz%tyucqSPKI%CZxKh4Vg%?zR{~LetjjA$O z*?pMtV}Im-e{m1sbN;`)jb9c-j1YjFdo2A(^Y=3Rzj!i%F=z`wpcQCxbGV2O_(-oL~{?dD{r_ z{0Bpf9A!fWD2m`jiQu~8f3`5=tC7dxcEM`LUoV&6E7SQE2+$21meRTZdc=@J3LOWf zfb{Cr6e5QIc^3bxpY-s7RqV1I< Date: Fri, 19 Jul 2024 17:08:56 +0100 Subject: [PATCH 12/22] fix typo --- paper/paper.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index ed361c5..21e186c 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -35,7 +35,7 @@ bibliography: paper.bib # Summary `TorchSurv` (available on GitHub and PyPI) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive survival model parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex input data scenarios. -`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the[`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). +`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). `TorchSurv` provides a user-friendly workflow for defining a survival model with parameters specified by a `PyTorch`-based (deep) neural network. At the core of `TorchSurv` lies its `PyTorch`-based calculation of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. In survival analysis, each observation is associated with survival data denoted by $y$ (comprising the event indicator and the time-to-event or censoring) and covariates denoted by $x$. A survival model that is able to capture the complexity of the survival data $y$, is parametrized by parameters denoted by $\theta$. For instance, in the Cox proportional hazards model, the survival model parameters $\theta$ are the relative hazards. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the survival model parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. @@ -71,13 +71,9 @@ Our package, `TorchSurv`, is specifically designed for use in Python, but we als The outputs of both the log-likelihood functions and the evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is presented in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). -![**Survival analysis libraries in Python.** -$^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. indicates a fully supported feature, indicates an unsupported feature, indicates a partially supported feature. -For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival `impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time, while it lacks the Efron approximation.\label{tab:bibliography}](table_1.png) +![**Survival analysis libraries in Python.** $^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. indicates a fully supported feature, indicates an unsupported feature, indicates a partially supported feature. For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival `impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time, while it lacks the Efron approximation.\label{tab:bibliography}](table_1.png) -![**Survival analysis libraries in R.** -$^1$[@survivalpackage], $^{2}$[@survAUCpackage], $^{3}$[@timeROCpackage], $^{4}$[@risksetROCpackage], $^{5}$[@survcomppackage], $^{6}$[@survivalROCpackage], $^{7}$[@riskRegressionpackage], $^{8}$[@SurvMetricspackage], $^{9}$[@pecpackage]. indicates a fully supported feature, indicates an unsupported feature, indicates a partially supported feature. -For obtaining the evaluation metrics, packages `survival`, `riskRegression`, `SurvMetrics` and `pec` require the fitted model object as input (a specific object format) and `RisksetROC` imposes a smoothing method. Packages `timeROC`, `riskRegression` and `pec` force the user to choose a form for subject-specific weights (e.g., inverse probability of censoring weighting (IPCW)). Packages `survcomp` and `SurvivalROC` do not implement the general AUC but the censoring-adjusted AUC estimator proposed by @Heagerty2000.](table_2.png) +![**Survival analysis libraries in R.** $^1$[@survivalpackage], $^{2}$[@survAUCpackage], $^{3}$[@timeROCpackage], $^{4}$[@risksetROCpackage], $^{5}$[@survcomppackage], $^{6}$[@survivalROCpackage], $^{7}$[@riskRegressionpackage], $^{8}$[@SurvMetricspackage], $^{9}$[@pecpackage]. indicates a fully supported feature, indicates an unsupported feature, indicates a partially supported feature. For obtaining the evaluation metrics, packages `survival`, `riskRegression`, `SurvMetrics` and `pec` require the fitted model object as input (a specific object format) and `RisksetROC` imposes a smoothing method. Packages `timeROC`, `riskRegression` and `pec` force the user to choose a form for subject-specific weights (e.g., inverse probability of censoring weighting (IPCW)). Packages `survcomp` and `SurvivalROC` do not implement the general AUC but the censoring-adjusted AUC estimator proposed by @Heagerty2000.](table_2.png) From ec6b55dd99a8f948d101b6bb26a7286f77dcc801 Mon Sep 17 00:00:00 2001 From: melodiemonod Date: Fri, 19 Jul 2024 17:15:32 +0100 Subject: [PATCH 13/22] fix typo --- paper/paper.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 21e186c..61195e3 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -57,7 +57,7 @@ Below is an overview of the workflow for model inference and evaluation with `To Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning presents promising opportunities for developing sophisticated survival models, where the parameters depend on covariates through complex functions. However, no existing library provides the flexibility to define survival model parameters using a custom `PyTorch`-based neural network. -Figure \autoref{tab:bibliography} compares the functionalities of `TorchSurv` with those of +\autoref{tab:bibliography} compares the functionalities of `TorchSurv` with those of `auton-survival` [@nagpal2022auton], `pycox` [@Kvamme2019pycox], `torchlife` [@torchlifeAbeywardana], @@ -67,13 +67,13 @@ Figure \autoref{tab:bibliography} compares the functionalities of `TorchSurv` wi Existing libraries constrain users to predefined forms for defining the parameters (e.g., linear function of covariates). While there exist log-likelihood functions in the libraries, they cannot be leveraged. Specifically, the limitations on the log-likelihood functions include protected functions, specialized input requirements (format or class type), and reliance on external libraries like `NumPy` or `Pandas`. Dependence on external libraries hinders automatic gradient calculation within `PyTorch`. Additionally, the implementation of likelihood functions instead of log-likelihood functions, as done by some packages, introduces numerical instability. With respect to the evaluation metrics, `scikit-survival` stands out as a comprehensive library. However, it lacks certain desirable features, including confidence intervals and comparison of the evaluation metric between two different models, and it is implemented with `NumPy`. -Our package, `TorchSurv`, is specifically designed for use in Python, but we also provide a comparative analysis of its functionalities with popular `R` packages for survival analysis in Table 2. `R` packages also restrict users to specific forms to define the parameters and do not make log-likelihood functions readily accessible. However, `R` has extensive libraries for evaluation metrics, such as the `RiskRegression` library [@riskRegressionpackage]. `TorchSurv` offers a comparable range of evaluation metrics, ensuring comprehensive model evaluation regardless of the chosen programming environment. +Our package, `TorchSurv`, is specifically designed for use in Python, but we also provide a comparative analysis of its functionalities with popular `R` packages for survival analysis in \autoref{tab:bibliography_R}. `R` packages also restrict users to specific forms to define the parameters and do not make log-likelihood functions readily accessible. However, `R` has extensive libraries for evaluation metrics, such as the `RiskRegression` library [@riskRegressionpackage]. `TorchSurv` offers a comparable range of evaluation metrics, ensuring comprehensive model evaluation regardless of the chosen programming environment. The outputs of both the log-likelihood functions and the evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is presented in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). -![**Survival analysis libraries in Python.** $^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. indicates a fully supported feature, indicates an unsupported feature, indicates a partially supported feature. For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival `impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time, while it lacks the Efron approximation.\label{tab:bibliography}](table_1.png) +![**Survival analysis libraries in Python.** $^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival `impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time, while it lacks the Efron approximation.\label{tab:bibliography}](table_1.png) -![**Survival analysis libraries in R.** $^1$[@survivalpackage], $^{2}$[@survAUCpackage], $^{3}$[@timeROCpackage], $^{4}$[@risksetROCpackage], $^{5}$[@survcomppackage], $^{6}$[@survivalROCpackage], $^{7}$[@riskRegressionpackage], $^{8}$[@SurvMetricspackage], $^{9}$[@pecpackage]. indicates a fully supported feature, indicates an unsupported feature, indicates a partially supported feature. For obtaining the evaluation metrics, packages `survival`, `riskRegression`, `SurvMetrics` and `pec` require the fitted model object as input (a specific object format) and `RisksetROC` imposes a smoothing method. Packages `timeROC`, `riskRegression` and `pec` force the user to choose a form for subject-specific weights (e.g., inverse probability of censoring weighting (IPCW)). Packages `survcomp` and `SurvivalROC` do not implement the general AUC but the censoring-adjusted AUC estimator proposed by @Heagerty2000.](table_2.png) +![**Survival analysis libraries in R.** $^1$[@survivalpackage], $^{2}$[@survAUCpackage], $^{3}$[@timeROCpackage], $^{4}$[@risksetROCpackage], $^{5}$[@survcomppackage], $^{6}$[@survivalROCpackage], $^{7}$[@riskRegressionpackage], $^{8}$[@SurvMetricspackage], $^{9}$[@pecpackage]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For obtaining the evaluation metrics, packages `survival`, `riskRegression`, `SurvMetrics` and `pec` require the fitted model object as input (a specific object format) and `RisksetROC` imposes a smoothing method. Packages `timeROC`, `riskRegression` and `pec` force the user to choose a form for subject-specific weights (e.g., inverse probability of censoring weighting (IPCW)). Packages `survcomp` and `SurvivalROC` do not implement the general AUC but the censoring-adjusted AUC estimator proposed by @Heagerty2000.\label{tab:bibliography_R}](table_2.png) From a449e7472e6e6d45450728ea5d41b1e4f6a244f9 Mon Sep 17 00:00:00 2001 From: melodiemonod Date: Fri, 19 Jul 2024 17:35:34 +0100 Subject: [PATCH 14/22] improve tex --- paper/paper.md | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 61195e3..381708b 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -34,22 +34,23 @@ bibliography: paper.bib # Summary -`TorchSurv` (available on GitHub and PyPI) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive survival model parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex input data scenarios. -`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). +`TorchSurv` (available on GitHub and PyPI) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex data scenarios. +`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the[`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). -`TorchSurv` provides a user-friendly workflow for defining a survival model with parameters specified by a `PyTorch`-based (deep) neural network. At the core of `TorchSurv` lies its `PyTorch`-based calculation of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. -In survival analysis, each observation is associated with survival data denoted by $y$ (comprising the event indicator and the time-to-event or censoring) and covariates denoted by $x$. A survival model that is able to capture the complexity of the survival data $y$, is parametrized by parameters denoted by $\theta$. For instance, in the Cox proportional hazards model, the survival model parameters $\theta$ are the relative hazards. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the survival model parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. -Additionally, `TorchSurv` offers evaluation metrics (the time-dependent Area Under the cure (AUC) under the Receiver operating characteristic curve (ROC), the Concordance index (C-index) and the Brier Score) to characterize the predictive performance of survival models. +`TorchSurv` provides a user-friendly workflow for training and evaluating `PyTorch`-based deep survival models. +At its core, `TorchSurv` features `PyTorch`-based calculations of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. +In survival analysis, each observation is associated with survival reponse, denoted by $y$ (comprising the event indicator and the time-to-event or censoring), and covariates denoted by $x$. A survival model is parametrized by parameters, denoted by $\theta$. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. +Additionally, `TorchSurv` offers evaluation metrics, including the time-dependent Area Under the cure (AUC) under the Receiver operating characteristic (ROC) curve, the Concordance index (C-index) and the Brier Score, to characterize the predictive performance of survival models. Below is an overview of the workflow for model inference and evaluation with `TorchSurv`: 1. Initialize a `PyTorch`-based neural network that defines the function from the covariates $x$ to the parameters $\theta$. In the context of the Cox proportional hazards model for example, the parameters are the log relative hazards. 2. Initiate training: For each epoch on the training set, - - Draw survival data $y^{\text{train}}$ (i.e., event indicator and time-to-event or censoring) and covariates $x^{\text{train}}$ from the training set. - - Obtain parameters $\theta^{\text{train}}$ based on drawn covariates $x^{\text{train}}$ using `PyTorch`-based neural network. - - Calculate the loss given survival data $y^{\text{train}}$ and parameters $\theta^{\text{train}}$ using `TorchSurv`'s loss function. In the context of the Cox relative hazards model for example, the loss function is equal to the negative of the log partial likelihood. - - Utilize backpropagation to update parameters $\theta^{\text{train}}$. -3. Obtain parameters $\theta^{\text{test}}$ based on covariates from the test set $x^{\text{test}}$ using the trained `PyTorch`-based neural network. -4. Evaluate the predictive performance of the model using `TorchSurv`'s evaluation metric functions (e.g., C-index) given parameters $\theta^{\text{test}}$ and survival data from the test set $y^{\text{test}}$. + - Draw survival response $y^{\text{train}}$ and covariates $x^{\text{train}}$ from the training set. + - Obtain parameters $\theta^{\text{train}}$ given covariates $x^{\text{train}}$ using the neural network. + - Calculate the loss as the negative log-likelihood of survival response $y^{\text{train}}$ given parameters $\theta^{\text{train}}$. This calculation is facilitated by `TorchSurv`'s loss function. + - Utilize backpropagation to update the neural network's parameters. +3. Obtain parameters $\theta^{\text{test}}$ given covariates from the test set $x^{\text{test}}$ using the trained neural network. +4. Evaluate the predictive performance of the model using `TorchSurv`'s evaluation metric functions given parameters $\theta^{\text{test}}$ and survival response from the test set $y^{\text{test}}$. @@ -69,7 +70,7 @@ Specifically, the limitations on the log-likelihood functions include protected With respect to the evaluation metrics, `scikit-survival` stands out as a comprehensive library. However, it lacks certain desirable features, including confidence intervals and comparison of the evaluation metric between two different models, and it is implemented with `NumPy`. Our package, `TorchSurv`, is specifically designed for use in Python, but we also provide a comparative analysis of its functionalities with popular `R` packages for survival analysis in \autoref{tab:bibliography_R}. `R` packages also restrict users to specific forms to define the parameters and do not make log-likelihood functions readily accessible. However, `R` has extensive libraries for evaluation metrics, such as the `RiskRegression` library [@riskRegressionpackage]. `TorchSurv` offers a comparable range of evaluation metrics, ensuring comprehensive model evaluation regardless of the chosen programming environment. -The outputs of both the log-likelihood functions and the evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is presented in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). +`TorchSurv`'s log-likelihood and evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is presented in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). ![**Survival analysis libraries in Python.** $^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival `impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time, while it lacks the Efron approximation.\label{tab:bibliography}](table_1.png) @@ -81,7 +82,7 @@ The outputs of both the log-likelihood functions and the evaluation metrics func ## Loss functions -**Cox loss function.** The Cox loss function is defined as the negative of the Cox proportional hazards model's partial log-likelihood [@Cox1972]. The function requires the subject-specific log relative hazards and the survival response (i.e., event indicator and time-to-event or censoring). The log relative hazards are obtained from a `PyTorch`-based model pre-specified by the user. In case of ties in the event times, the user can choose between the Breslow [@Breslow1975] and the Efron method [@Efron1977] to approximate the Cox partial log-likelihood. We illustrate the use of the Cox loss function for a pseudo training loop in the code snippet below. +**Cox loss function.** The Cox loss function is defined as the negative of the Cox proportional hazards model's partial log-likelihood [@Cox1972]. The function requires the subject-specific log relative hazards and the survival response (i.e., event indicator and time-to-event or censoring). The log relative hazards are obtained from a `PyTorch`-based model pre-specified by the user. In case of ties in the event times, the user can choose between the Breslow method [@Breslow1975] and the Efron method [@Efron1977] to approximate the Cox partial log-likelihood. We illustrate the use of the Cox loss function for a pseudo training loop in the code snippet below. ```python from torchsurv.loss import cox @@ -126,7 +127,7 @@ log_hzs = model_momentum.infer(x) # torch.Size([16, 1]) ## Evaluation Metrics Functions -The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the AUC, C-index, and Brier score. The inputs of the evaluation metrics functions are the individual risk score estimated on the test set and the survival data on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. +The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the AUC, C-index, and Brier score. The inputs of the evaluation metrics functions are the individual risk score estimated on the test set and the survival response on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. **AUC.** The AUC measures the discriminatory capacity of a model at a given time $t$, i.e., the model’s ability to provide a reliable ranking of times-to-event based on estimated individual risk scores [@Heagerty2005;@Uno2007;@Blanche2013]. @@ -137,7 +138,7 @@ auc(log_hzs, event, time) # AUC at each time auc(log_hzs, event, time, new_time=torch.tensor(10.)) # AUC at time 10 ``` -**C-index.** The C-index is a generalization of the AUC that represents the assessment of the discriminatory capacity of the model over time [@Harrell1996;@Uno_2011]. +**C-index.** The C-index is a generalization of the AUC that represents the assessment of the discriminatory capacity of the model across the time period [@Harrell1996;@Uno_2011]. ```python from torchsurv.metrics import ConcordanceIndex @@ -145,7 +146,7 @@ cindex = ConcordanceIndex() cindex(log_hzs, event, time) # C-index ``` -**Brier Score.** The Brier score evaluates the accuracy of a model at a given time $t$. It represents the average squared distance between the observed survival status and the predicted survival probability [@Graf_1999]. The Brier score cannot be obtained for the Cox model because the survival function is not available, but it can be obtained for the Weibull model. +**Brier Score.** The Brier score evaluates the accuracy of a model at a given time $t$. It represents the average squared distance between the observed survival status and the predicted survival probability [@Graf_1999]. The Brier score cannot be obtained for the Cox proportional hazards model because the survival function is not available, but it can be obtained for the Weibull ATF model. ```python from torchsurv.metrics import Brier From aabed1c1bf335ef07aceb6348f43598b8c2dd620 Mon Sep 17 00:00:00 2001 From: corolth1 Date: Wed, 24 Jul 2024 10:00:53 -0400 Subject: [PATCH 15/22] edits --- paper/paper.md | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 381708b..62954dd 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -38,7 +38,7 @@ bibliography: paper.bib `TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the[`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). `TorchSurv` provides a user-friendly workflow for training and evaluating `PyTorch`-based deep survival models. -At its core, `TorchSurv` features `PyTorch`-based calculations of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. +At its core, `TorchSurv` features `PyTorch`-based calculations of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. In survival analysis, each observation is associated with survival reponse, denoted by $y$ (comprising the event indicator and the time-to-event or censoring), and covariates denoted by $x$. A survival model is parametrized by parameters, denoted by $\theta$. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. Additionally, `TorchSurv` offers evaluation metrics, including the time-dependent Area Under the cure (AUC) under the Receiver operating characteristic (ROC) curve, the Concordance index (C-index) and the Brier Score, to characterize the predictive performance of survival models. Below is an overview of the workflow for model inference and evaluation with `TorchSurv`: @@ -56,15 +56,15 @@ Below is an overview of the workflow for model inference and evaluation with `To # Statement of need -Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning presents promising opportunities for developing sophisticated survival models, where the parameters depend on covariates through complex functions. However, no existing library provides the flexibility to define survival model parameters using a custom `PyTorch`-based neural network. +Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning presents promising opportunities for developing sophisticated survival models, where the parameters depend on covariates through complex functions. However, no existing library provides the flexibility to define survival model parameters using a custom `PyTorch`-based neural network. -\autoref{tab:bibliography} compares the functionalities of `TorchSurv` with those of -`auton-survival` [@nagpal2022auton], -`pycox` [@Kvamme2019pycox], +\autoref{tab:bibliography} compares the functionalities of `TorchSurv` with those of +`auton-survival` [@nagpal2022auton], +`pycox` [@Kvamme2019pycox], `torchlife` [@torchlifeAbeywardana], `scikit-survival` [@polsterl2020scikit], -`lifelines` [@davidson2019lifelines], and -`deepsurv` [@katzman2018deepsurv]. +`lifelines` [@davidson2019lifelines], and +`deepsurv` [@katzman2018deepsurv]. Existing libraries constrain users to predefined forms for defining the parameters (e.g., linear function of covariates). While there exist log-likelihood functions in the libraries, they cannot be leveraged. Specifically, the limitations on the log-likelihood functions include protected functions, specialized input requirements (format or class type), and reliance on external libraries like `NumPy` or `Pandas`. Dependence on external libraries hinders automatic gradient calculation within `PyTorch`. Additionally, the implementation of likelihood functions instead of log-likelihood functions, as done by some packages, introduces numerical instability. With respect to the evaluation metrics, `scikit-survival` stands out as a comprehensive library. However, it lacks certain desirable features, including confidence intervals and comparison of the evaluation metric between two different models, and it is implemented with `NumPy`. @@ -77,7 +77,6 @@ Our package, `TorchSurv`, is specifically designed for use in Python, but we als ![**Survival analysis libraries in R.** $^1$[@survivalpackage], $^{2}$[@survAUCpackage], $^{3}$[@timeROCpackage], $^{4}$[@risksetROCpackage], $^{5}$[@survcomppackage], $^{6}$[@survivalROCpackage], $^{7}$[@riskRegressionpackage], $^{8}$[@SurvMetricspackage], $^{9}$[@pecpackage]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For obtaining the evaluation metrics, packages `survival`, `riskRegression`, `SurvMetrics` and `pec` require the fitted model object as input (a specific object format) and `RisksetROC` imposes a smoothing method. Packages `timeROC`, `riskRegression` and `pec` force the user to choose a form for subject-specific weights (e.g., inverse probability of censoring weighting (IPCW)). Packages `survcomp` and `SurvivalROC` do not implement the general AUC but the censoring-adjusted AUC estimator proposed by @Heagerty2000.\label{tab:bibliography_R}](table_2.png) - # Functionality ## Loss functions @@ -86,11 +85,12 @@ Our package, `TorchSurv`, is specifically designed for use in Python, but we als ```python from torchsurv.loss import cox -my_model = MyPyTorchModel() # PyTorch model for log hazards (1 output) +my_model = MyPyTorchCoxModel() # PyTorch model outputs one (1) log hazards for Cox model + for data in dataloader: - x, event, time = data # covariate, event indicator, time + x, event, time = data # covariate, event indicator, time log_hzs = my_model(x) # torch.Size([64, 1]), if batch size is 64 - loss = cox.neg_partial_log_likelihood(log_hzs, event, time) + loss = cox.neg_partial_log_likelihood(log_hzs, event, time) loss.backward() # native torch backend ``` @@ -98,11 +98,12 @@ for data in dataloader: ```python from torchsurv.loss import weibull -my_model = MyPyTorchModel() # PyTorch model for log parameters (2 outputs) +my_model = MyPyTorcWeibullhModel() # PyTorch model outputs two (2) log parameters for Weibull model + for data in dataloader: - x, event, time = data # covariate, event indicator, time + x, event, time = data # covariate, event indicator, time log_params = my_model(x) # torch.Size([64, 2]), if batch size is 64 - loss = weibull.neg_log_likelihood(log_params, event, time) + loss = weibull.neg_log_likelihood(log_params, event, time) loss.backward() # native torch backend ``` @@ -112,9 +113,9 @@ snippet below. ```python from torchsurv.loss import Momentum -my_model = MyPyTorchModel() # PyTorch model for log hazards (1 output) -my_loss = cox.neg_partial_log_likelihood # any torchsurv loss -momentum = Momentum(backbone=my_model, loss=my_loss) +my_model = MyPyTorchXCoxModel() # PyTorch model outputs one (1) log hazards for Cox model +my_loss = cox.neg_partial_log_likelihood # Works with any TorchSurv loss +momentum = Momentum(backbone=my_model, loss=my_loss) for data in dataloader: x, event, time = data # covariate, event indicator, time @@ -153,7 +154,7 @@ from torchsurv.metrics import Brier surv = survival_function(log_params, time) brier = Brier() brier(surv, event, time) # Brier score at each time -brier.integral() # Integrated Brier score over time +brier.integral() # Integrated Brier score over time ``` **Additional features.** In `TorchSurv`, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally, subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). From 60b3f54ecad9467de7f2dbacfab4436a68aff739 Mon Sep 17 00:00:00 2001 From: corolth1 Date: Wed, 24 Jul 2024 10:03:22 -0400 Subject: [PATCH 16/22] added links to TorchSurv intro --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index 62954dd..3c6fd15 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -34,7 +34,7 @@ bibliography: paper.bib # Summary -`TorchSurv` (available on GitHub and PyPI) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex data scenarios. +`TorchSurv` ([GitHub](https://github.com/Novartis/torchsurv) and [PyPI](https://pypi.org/project/torchsurv/)) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex data scenarios. `TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the[`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). `TorchSurv` provides a user-friendly workflow for training and evaluating `PyTorch`-based deep survival models. From 32963b4fbe07efcafb661199f3da72fc9303c923 Mon Sep 17 00:00:00 2001 From: melodiemonod Date: Wed, 24 Jul 2024 15:35:42 +0100 Subject: [PATCH 17/22] ready for submission --- paper/paper.md | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 3c6fd15..fc0c339 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -35,12 +35,12 @@ bibliography: paper.bib # Summary `TorchSurv` ([GitHub](https://github.com/Novartis/torchsurv) and [PyPI](https://pypi.org/project/torchsurv/)) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex data scenarios. -`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the[`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). +`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). `TorchSurv` provides a user-friendly workflow for training and evaluating `PyTorch`-based deep survival models. At its core, `TorchSurv` features `PyTorch`-based calculations of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. -In survival analysis, each observation is associated with survival reponse, denoted by $y$ (comprising the event indicator and the time-to-event or censoring), and covariates denoted by $x$. A survival model is parametrized by parameters, denoted by $\theta$. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation facilitated by backpropagation. -Additionally, `TorchSurv` offers evaluation metrics, including the time-dependent Area Under the cure (AUC) under the Receiver operating characteristic (ROC) curve, the Concordance index (C-index) and the Brier Score, to characterize the predictive performance of survival models. +In survival analysis, each observation is associated with a survival reponse, denoted by $y$ (comprising the event indicator and the time-to-event or censoring), and covariates, denoted by $x$. A survival model is parametrized by parameters $\theta$. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation. +Additionally, `TorchSurv` offers evaluation metrics, including the time-dependent Area Under under the Receiver operating characteristic (ROC) curve (AUC), the Concordance index (C-index) and the Brier Score, to characterize the predictive performance of survival models. Below is an overview of the workflow for model inference and evaluation with `TorchSurv`: 1. Initialize a `PyTorch`-based neural network that defines the function from the covariates $x$ to the parameters $\theta$. In the context of the Cox proportional hazards model for example, the parameters are the log relative hazards. @@ -56,7 +56,7 @@ Below is an overview of the workflow for model inference and evaluation with `To # Statement of need -Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning presents promising opportunities for developing sophisticated survival models, where the parameters depend on covariates through complex functions. However, no existing library provides the flexibility to define survival model parameters using a custom `PyTorch`-based neural network. +Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning presents promising opportunities for developing sophisticated survival models, where the parameters depend on covariates through complex functions. However, no existing library provides the flexibility to define the survival model's parameters using a custom `PyTorch`-based neural network. \autoref{tab:bibliography} compares the functionalities of `TorchSurv` with those of `auton-survival` [@nagpal2022auton], @@ -72,9 +72,9 @@ Our package, `TorchSurv`, is specifically designed for use in Python, but we als `TorchSurv`'s log-likelihood and evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is presented in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). -![**Survival analysis libraries in Python.** $^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival `impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time, while it lacks the Efron approximation.\label{tab:bibliography}](table_1.png) +![**Survival analysis libraries in Python.** $^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival` impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time.\label{tab:bibliography}](table_1.png) -![**Survival analysis libraries in R.** $^1$[@survivalpackage], $^{2}$[@survAUCpackage], $^{3}$[@timeROCpackage], $^{4}$[@risksetROCpackage], $^{5}$[@survcomppackage], $^{6}$[@survivalROCpackage], $^{7}$[@riskRegressionpackage], $^{8}$[@SurvMetricspackage], $^{9}$[@pecpackage]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For obtaining the evaluation metrics, packages `survival`, `riskRegression`, `SurvMetrics` and `pec` require the fitted model object as input (a specific object format) and `RisksetROC` imposes a smoothing method. Packages `timeROC`, `riskRegression` and `pec` force the user to choose a form for subject-specific weights (e.g., inverse probability of censoring weighting (IPCW)). Packages `survcomp` and `SurvivalROC` do not implement the general AUC but the censoring-adjusted AUC estimator proposed by @Heagerty2000.\label{tab:bibliography_R}](table_2.png) +![**Survival analysis libraries in R.** $^1$[@survivalpackage], $^{2}$[@survAUCpackage], $^{3}$[@timeROCpackage], $^{4}$[@risksetROCpackage], $^{5}$[@survcomppackage], $^{6}$[@survivalROCpackage], $^{7}$[@riskRegressionpackage], $^{8}$[@SurvMetricspackage], $^{9}$[@pecpackage]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For obtaining the evaluation metrics, packages `survival`, `riskRegression`, `SurvMetrics` and `pec` require the fitted model object as input (a specific object format) and `RisksetROC` imposes to use a smoothing method. Packages `timeROC`, `riskRegression` and `pec` force the user to choose a form for subject-specific weights (e.g., inverse probability of censoring weighting (IPCW)). Packages `survcomp` and `SurvivalROC` do not implement the general AUC but the censoring-adjusted AUC estimator proposed by @Heagerty2000.\label{tab:bibliography_R}](table_2.png) # Functionality @@ -85,7 +85,9 @@ Our package, `TorchSurv`, is specifically designed for use in Python, but we als ```python from torchsurv.loss import cox -my_model = MyPyTorchCoxModel() # PyTorch model outputs one (1) log hazards for Cox model + +# PyTorch model outputs one log hazard by observation +my_model = MyPyTorchCoxModel() for data in dataloader: x, event, time = data # covariate, event indicator, time @@ -98,7 +100,9 @@ for data in dataloader: ```python from torchsurv.loss import weibull -my_model = MyPyTorcWeibullhModel() # PyTorch model outputs two (2) log parameters for Weibull model + +# PyTorch model outputs two Weibull parameters by observation +my_model = MyPyTorcWeibullhModel() for data in dataloader: x, event, time = data # covariate, event indicator, time @@ -113,7 +117,7 @@ snippet below. ```python from torchsurv.loss import Momentum -my_model = MyPyTorchXCoxModel() # PyTorch model outputs one (1) log hazards for Cox model +my_model = MyPyTorchXCoxModel() my_loss = cox.neg_partial_log_likelihood # Works with any TorchSurv loss momentum = Momentum(backbone=my_model, loss=my_loss) @@ -128,9 +132,9 @@ log_hzs = model_momentum.infer(x) # torch.Size([16, 1]) ## Evaluation Metrics Functions -The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the AUC, C-index, and Brier score. The inputs of the evaluation metrics functions are the individual risk score estimated on the test set and the survival response on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. +The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the AUC, C-index, and Brier score. The inputs of the evaluation metrics functions are the subject-specific risk score estimated on the test set and the survival response on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. -**AUC.** The AUC measures the discriminatory capacity of a model at a given time $t$, i.e., the model’s ability to provide a reliable ranking of times-to-event based on estimated individual risk scores [@Heagerty2005;@Uno2007;@Blanche2013]. +**AUC.** The AUC measures the discriminatory capacity of the survival model at a given time $t$, i.e., the ability to provide a reliable ranking of times-to-event based on estimated subject-specific risk scores [@Heagerty2005;@Uno2007;@Blanche2013]. ```python from torchsurv.metrics import Auc @@ -139,7 +143,7 @@ auc(log_hzs, event, time) # AUC at each time auc(log_hzs, event, time, new_time=torch.tensor(10.)) # AUC at time 10 ``` -**C-index.** The C-index is a generalization of the AUC that represents the assessment of the discriminatory capacity of the model across the time period [@Harrell1996;@Uno_2011]. +**C-index.** The C-index is a generalization of the AUC that represents the assessment of the discriminatory capacity of the survival model across the entire time period [@Harrell1996;@Uno_2011]. ```python from torchsurv.metrics import ConcordanceIndex @@ -147,7 +151,7 @@ cindex = ConcordanceIndex() cindex(log_hzs, event, time) # C-index ``` -**Brier Score.** The Brier score evaluates the accuracy of a model at a given time $t$. It represents the average squared distance between the observed survival status and the predicted survival probability [@Graf_1999]. The Brier score cannot be obtained for the Cox proportional hazards model because the survival function is not available, but it can be obtained for the Weibull ATF model. +**Brier Score.** The Brier score evaluates the accuracy of a model at a given time $t$ [@Graf_1999]. It represents the average squared distance between the observed survival status and the predicted survival probability. The Brier score cannot be obtained for the Cox proportional hazards model because the survival function is not available, but it can be obtained for the Weibull ATF model. ```python from torchsurv.metrics import Brier From 4280ee83da75da2a4a35c3b3a85022932e642008 Mon Sep 17 00:00:00 2001 From: corolth1 Date: Mon, 29 Jul 2024 09:21:44 -0400 Subject: [PATCH 18/22] fixed DOIs --- paper/paper.bib | 30 ++++++++++++++++++++++++------ paper/paper.md | 6 ++---- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 549469a..dbe2944 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -3,6 +3,7 @@ @article{davidson2019lifelines author={Davidson-Pilon, Cameron}, journal={Journal of Open Source Software}, volume={4}, + doi={https://doi.org/10.21105/joss.01317}, number={40}, pages={1317}, year={2019} @@ -13,17 +14,21 @@ @article{therneau2015survival author={Therneau, Terry M and Lumley, Thomas}, journal={R Top Doc}, volume={128}, + doi={10.32614/CRAN.package.survival}, number={10}, pages={28--33}, year={2015} } -@article{paszke2019pytorch, - title={Pytorch: An imperative style, high-performance deep learning library}, - author={Paszke, Adam and Gross, Sam and Massa, Francisco and Lerer, Adam and Bradbury, James and Chanan, Gregory and Killeen, Trevor and Lin, Zeming and Gimelshein, Natalia and Antiga, Luca and others}, - journal={Advances in neural information processing systems}, - volume={32}, - year={2019} +@misc{paszke2019pytorch, + title={PyTorch: An Imperative Style, High-Performance Deep Learning Library}, + author={Adam Paszke and Sam Gross and Francisco Massa and Adam Lerer and James Bradbury and Gregory Chanan and Trevor Killeen and Zeming Lin and Natalia Gimelshein and Luca Antiga and Alban Desmaison and Andreas Köpf and Edward Yang and Zach DeVito and Martin Raison and Alykhan Tejani and Sasank Chilamkurthy and Benoit Steiner and Lu Fang and Junjie Bai and Soumith Chintala}, + year={2019}, + eprint={1912.01703}, + archivePrefix={arXiv}, + primaryClass={cs.LG}, + doi={https://doi.org/10.48550/arXiv.1912.01703}, + url={https://arxiv.org/abs/1912.01703}, } @article{polsterl2020scikit, @@ -42,6 +47,7 @@ @article{potapov2023packagesurvAUC author={Potapov, Sergej and Adler, Werner and Schmid, Matthias and Potapov, Maintainer Sergej}, journal={Statistics in Medicine}, volume={25}, + doi={10.32614/CRAN.package.survAUC}, pages={3474--3486}, year={2023} } @@ -50,6 +56,7 @@ @inproceedings{he2020momentum title={Momentum contrast for unsupervised visual representation learning}, author={He, Kaiming and Fan, Haoqi and Wu, Yuxin and Xie, Saining and Girshick, Ross}, booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition}, + doi={10.1109/cvpr42600.2020.00975}, pages={9729--9738}, year={2020} } @@ -60,6 +67,7 @@ @article{katzman2018deepsurv journal={BMC medical research methodology}, volume={18}, number={1}, + doi={10.1186/s12874-018-0482-1}, pages={1--12}, year={2018}, publisher={BioMed Central} @@ -82,6 +90,7 @@ @inproceedings{nagpal2022auton booktitle={Machine Learning for Healthcare Conference}, pages={585--608}, year={2022}, + doi={https://doi.org/10.48550/arXiv.2204.07276}, organization={PMLR} } @@ -94,6 +103,7 @@ @article{Cox1972 publisher = {Wiley}, author = {Cox, D. R.}, year = {1972}, + doi={10.1007/978-1-4612-4380-9_37}, month = jan, pages = {187–202} } @@ -139,6 +149,7 @@ @Manual{torchlifeAbeywardana author = {Sachinthaka Abeywardana}, year = {2021}, url = {https://sachinruk.github.io/torchlife//index.html}, + doi={10.32614/CRAN.package.survival}, } @Manual{survAUCpackage, @@ -146,6 +157,7 @@ @Manual{survAUCpackage author = {Sergej Potapov and Werner Adler and Matthias Schmid}, year = {2023}, note = {R package version 1.2-0}, + doi={10.32614/CRAN.package.survAUC}, url = {https://CRAN.R-project.org/package=survAUC}, } @@ -155,6 +167,7 @@ @Manual{timeROCpackage year = {2019}, note = {R package version 0.4}, url = {https://CRAN.R-project.org/package=timeROC}, + doi={10.32614/CRAN.package.timeROC} } @Manual{risksetROCpackage, @@ -163,6 +176,7 @@ @Manual{risksetROCpackage year = {2022}, note = {R package version 1.0.4.1}, url = {https://CRAN.R-project.org/package=risksetROC}, + doi={10.32614/CRAN.package.risksetROC} } @Manual{survivalROCpackage, @@ -171,6 +185,7 @@ @Manual{survivalROCpackage year = {2022}, note = {R package version 1.0.3.1}, url = {https://CRAN.R-project.org/package=survivalROC}, + doi={10.32614/CRAN.package.survivalROC} } @article{survcomppackage, @@ -194,6 +209,7 @@ @Manual{riskRegressionpackage year = {2023}, note = {R package version 2023.12.21}, url = {https://CRAN.R-project.org/package=riskRegression}, + doi={10.32614/CRAN.package.riskRegression} } @Manual{SurvMetricspackage, @@ -202,6 +218,7 @@ @Manual{SurvMetricspackage year = {2022}, note = {R package version 0.5.0}, url = {https://CRAN.R-project.org/package=SurvMetrics}, + doi={10.32614/CRAN.package.SurvMetrics} } @Manual{pecpackage, @@ -210,6 +227,7 @@ @Manual{pecpackage year = {2023}, note = {R package version 2023.04.12}, url = {https://CRAN.R-project.org/package=pec}, + doi={10.32614/CRAN.package.pec} } @article{Heagerty2000, diff --git a/paper/paper.md b/paper/paper.md index fc0c339..3b291d8 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -34,11 +34,9 @@ bibliography: paper.bib # Summary -`TorchSurv` ([GitHub](https://github.com/Novartis/torchsurv) and [PyPI](https://pypi.org/project/torchsurv/)) is a Python package that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex data scenarios. -`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/). +`TorchSurv` is a Python [package](https://pypi.org/project/torchsurv/) that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex data scenarios. At its core, `TorchSurv` features `PyTorch`-based calculations of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. +`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on our [website](https://opensource.nibr.com/torchsurv/). -`TorchSurv` provides a user-friendly workflow for training and evaluating `PyTorch`-based deep survival models. -At its core, `TorchSurv` features `PyTorch`-based calculations of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. In survival analysis, each observation is associated with a survival reponse, denoted by $y$ (comprising the event indicator and the time-to-event or censoring), and covariates, denoted by $x$. A survival model is parametrized by parameters $\theta$. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation. Additionally, `TorchSurv` offers evaluation metrics, including the time-dependent Area Under under the Receiver operating characteristic (ROC) curve (AUC), the Concordance index (C-index) and the Brier Score, to characterize the predictive performance of survival models. Below is an overview of the workflow for model inference and evaluation with `TorchSurv`: From 842828e30675f2677b165b8cdcee442b50681fb8 Mon Sep 17 00:00:00 2001 From: corolth1 Date: Mon, 29 Jul 2024 10:27:44 -0400 Subject: [PATCH 19/22] new DOIs, trimmed text --- paper/paper.bib | 10 +++++--- paper/paper.md | 67 ++++++++++++++++--------------------------------- 2 files changed, 27 insertions(+), 50 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index dbe2944..ca86c9d 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -3,7 +3,7 @@ @article{davidson2019lifelines author={Davidson-Pilon, Cameron}, journal={Journal of Open Source Software}, volume={4}, - doi={https://doi.org/10.21105/joss.01317}, + doi={10.21105/joss.01317}, number={40}, pages={1317}, year={2019} @@ -27,7 +27,7 @@ @misc{paszke2019pytorch eprint={1912.01703}, archivePrefix={arXiv}, primaryClass={cs.LG}, - doi={https://doi.org/10.48550/arXiv.1912.01703}, + doi={10.48550/arXiv.1912.01703}, url={https://arxiv.org/abs/1912.01703}, } @@ -39,7 +39,8 @@ @article{polsterl2020scikit number={1}, pages={8747--8752}, year={2020}, - publisher={JMLRORG} + publisher={JMLRORG}, + doi={10.5281/zenodo.3352342} } @article{potapov2023packagesurvAUC, @@ -90,7 +91,7 @@ @inproceedings{nagpal2022auton booktitle={Machine Learning for Healthcare Conference}, pages={585--608}, year={2022}, - doi={https://doi.org/10.48550/arXiv.2204.07276}, + doi={10.48550/arXiv.2204.07276}, organization={PMLR} } @@ -142,6 +143,7 @@ @Manual{survivalpackage year = {2024}, note = {R package version 3.5-8}, url = {https://CRAN.R-project.org/package=survival}, + doi={10.32614/CRAN.package.survival}, } @Manual{torchlifeAbeywardana, diff --git a/paper/paper.md b/paper/paper.md index 3b291d8..d5d6b67 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -28,33 +28,18 @@ authors: index: 2 - name: Novartis Pharmaceuticals Corporation, NJ, USA index: 3 -date: 18 July 2024 +date: 29 July 2024 bibliography: paper.bib --- # Summary -`TorchSurv` is a Python [package](https://pypi.org/project/torchsurv/) that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex data scenarios. At its core, `TorchSurv` features `PyTorch`-based calculations of log-likelihoods for prominent survival models, including the Cox proportional hazards model [@Cox1972] and the Weibull Accelerated Time Failure (AFT) model [@Carroll2003]. -`TorchSurv` has been rigorously tested using both open-source and synthetically generated survival data. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on our [website](https://opensource.nibr.com/torchsurv/). - -In survival analysis, each observation is associated with a survival reponse, denoted by $y$ (comprising the event indicator and the time-to-event or censoring), and covariates, denoted by $x$. A survival model is parametrized by parameters $\theta$. Within the `TorchSurv` framework, a `PyTorch`-based neural network is defined to act as a flexible function that takes the covariates $x$ as input and outputs the parameters $\theta$. Estimation of the parameters $\theta$ is achieved via maximum likelihood estimation. -Additionally, `TorchSurv` offers evaluation metrics, including the time-dependent Area Under under the Receiver operating characteristic (ROC) curve (AUC), the Concordance index (C-index) and the Brier Score, to characterize the predictive performance of survival models. -Below is an overview of the workflow for model inference and evaluation with `TorchSurv`: - -1. Initialize a `PyTorch`-based neural network that defines the function from the covariates $x$ to the parameters $\theta$. In the context of the Cox proportional hazards model for example, the parameters are the log relative hazards. -2. Initiate training: For each epoch on the training set, - - Draw survival response $y^{\text{train}}$ and covariates $x^{\text{train}}$ from the training set. - - Obtain parameters $\theta^{\text{train}}$ given covariates $x^{\text{train}}$ using the neural network. - - Calculate the loss as the negative log-likelihood of survival response $y^{\text{train}}$ given parameters $\theta^{\text{train}}$. This calculation is facilitated by `TorchSurv`'s loss function. - - Utilize backpropagation to update the neural network's parameters. -3. Obtain parameters $\theta^{\text{test}}$ given covariates from the test set $x^{\text{test}}$ using the trained neural network. -4. Evaluate the predictive performance of the model using `TorchSurv`'s evaluation metric functions given parameters $\theta^{\text{test}}$ and survival response from the test set $y^{\text{test}}$. - - +`TorchSurv` is a Python [package](https://pypi.org/project/torchsurv/) that serves as a companion tool to perform deep survival modeling within the `PyTorch` environment [@paszke2019pytorch]. With its lightweight design, minimal input requirements, full `PyTorch` backend, and freedom from restrictive parameterizations, `TorchSurv` facilitates efficient deep survival model implementation and is particularly beneficial for high-dimensional and complex data scenarios. At its core, `TorchSurv` features calculations of log-likelihoods for prominent survival models (Cox proportional hazards model [@Cox1972], Weibull Accelerated Time Failure (AFT) model [@Carroll2003]) and offers evaluation metrics, including the time-dependent Area Under under the Receiver operating characteristic (ROC) curve (AUC), the Concordance index (C-index) and the Brier Score. +`TorchSurv` has been rigorously [tested](https://opensource.nibr.com/torchsurv/benchmarks.html) using both open-source and synthetically generated survival data, against R and python packages. The package is thoroughly documented and includes illustrative examples. The latest documentation for TorchSurv can be found on our [website](https://opensource.nibr.com/torchsurv/). # Statement of need -Survival analysis plays a crucial role in various domains, such as medicine and engineering. Deep learning presents promising opportunities for developing sophisticated survival models, where the parameters depend on covariates through complex functions. However, no existing library provides the flexibility to define the survival model's parameters using a custom `PyTorch`-based neural network. +Survival analysis plays a crucial role in various domains, such as medicine, economics or engineering. Thus, sophisticated survival models sugin deep learning opens new opportunities to leverage complex dataset and relationships. However, no existing library provides the flexibility to define the survival model's parameters using a custom `PyTorch`-based neural network. \autoref{tab:bibliography} compares the functionalities of `TorchSurv` with those of `auton-survival` [@nagpal2022auton], @@ -64,11 +49,7 @@ Survival analysis plays a crucial role in various domains, such as medicine and `lifelines` [@davidson2019lifelines], and `deepsurv` [@katzman2018deepsurv]. Existing libraries constrain users to predefined forms for defining the parameters (e.g., linear function of covariates). While there exist log-likelihood functions in the libraries, they cannot be leveraged. -Specifically, the limitations on the log-likelihood functions include protected functions, specialized input requirements (format or class type), and reliance on external libraries like `NumPy` or `Pandas`. Dependence on external libraries hinders automatic gradient calculation within `PyTorch`. Additionally, the implementation of likelihood functions instead of log-likelihood functions, as done by some packages, introduces numerical instability. -With respect to the evaluation metrics, `scikit-survival` stands out as a comprehensive library. However, it lacks certain desirable features, including confidence intervals and comparison of the evaluation metric between two different models, and it is implemented with `NumPy`. -Our package, `TorchSurv`, is specifically designed for use in Python, but we also provide a comparative analysis of its functionalities with popular `R` packages for survival analysis in \autoref{tab:bibliography_R}. `R` packages also restrict users to specific forms to define the parameters and do not make log-likelihood functions readily accessible. However, `R` has extensive libraries for evaluation metrics, such as the `RiskRegression` library [@riskRegressionpackage]. `TorchSurv` offers a comparable range of evaluation metrics, ensuring comprehensive model evaluation regardless of the chosen programming environment. - -`TorchSurv`'s log-likelihood and evaluation metrics functions have undergone thorough comparison with benchmarks generated with Python packages and R packages on open-source data and synthetic data. High agreement between the outputs is consistently observed, providing users with confidence in the accuracy and reliability of `TorchSurv`'s functionalities. The comparison is presented in the [`TorchSurv`'s website](https://opensource.nibr.com/torchsurv/benchmarks.html). +The limitations on the log-likelihood functions include protected functions (locked model architecture), specialized input requirements (format or class type), and reliance on external libraries like `NumPy` or `Pandas`. Dependence on external libraries hinders automatic gradient calculation within `PyTorch`. Additionally, the implementation of likelihood functions instead of log-likelihood functions, as done by some packages, introduces numerical instability. ![**Survival analysis libraries in Python.** $^1$[@nagpal2022auton], $^{2}$[@Kvamme2019pycox], $^{3}$[@torchlifeAbeywardana], $^{4}$[@polsterl2020scikit], $^{5}$[@davidson2019lifelines], $^{6}$[@katzman2018deepsurv]. A green tick indicates a fully supported feature, a red cross indicates an unsupported feature, a blue crossed tick indicates a partially supported feature. For computing the concordance index, `pycox` requires the use of the estimated survival function as the risk score and does not support other types of time-dependent risk scores. `scikit-survival` does not support time-dependent risk scores in both the concordance index and AUC computation. Additionally, both `pycox` and `scikit-survival` impose the use of inverse probability of censoring weighting (IPCW) for subject-specific weights. `scikit-survival` only offers the Breslow approximation of the Cox partial log-likelihood in case of ties in the event time.\label{tab:bibliography}](table_1.png) @@ -79,13 +60,12 @@ Our package, `TorchSurv`, is specifically designed for use in Python, but we als ## Loss functions -**Cox loss function.** The Cox loss function is defined as the negative of the Cox proportional hazards model's partial log-likelihood [@Cox1972]. The function requires the subject-specific log relative hazards and the survival response (i.e., event indicator and time-to-event or censoring). The log relative hazards are obtained from a `PyTorch`-based model pre-specified by the user. In case of ties in the event times, the user can choose between the Breslow method [@Breslow1975] and the Efron method [@Efron1977] to approximate the Cox partial log-likelihood. We illustrate the use of the Cox loss function for a pseudo training loop in the code snippet below. - +**Cox loss function** is defined as the negative of the Cox proportional hazards model's partial log-likelihood [@Cox1972]. The function requires the subject-specific log relative hazards and the survival response (i.e., event indicator and time-to-event or censoring). In case of ties in the event times, the user can choose between the Breslow method [@Breslow1975] and the Efron method [@Efron1977] to approximate the Cox partial log-likelihood. ```python from torchsurv.loss import cox -# PyTorch model outputs one log hazard by observation -my_model = MyPyTorchCoxModel() +# PyTorch model outputs ONE log hazard per observation +my_model = MyPyTorchCoxModel() for data in dataloader: x, event, time = data # covariate, event indicator, time @@ -94,24 +74,22 @@ for data in dataloader: loss.backward() # native torch backend ``` -**Weibull loss function.** The Weibull loss function is defined as the negative of the Weibull AFT's log-likelihood [@Carroll2003]. The function requires the subject-specific log parameters of the Weibull distribution (i.e., the log scale and the log shape) and the survival response. The log parameters of the Weibull distribution should be obtained from a `PyTorch`-based model pre-specified by the user. We illustrate the use of the Weibull loss function for a pseudo training loop in the code snippet below. +**Weibull loss function** is defined as the negative of the Weibull AFT's log-likelihood [@Carroll2003]. The function requires the subject-specific log parameters of the Weibull distribution (i.e., the log scale and the log shape) and the survival response. The log parameters of the Weibull distribution should be obtained from a `PyTorch`-based model pre-specified by the user. ```python from torchsurv.loss import weibull -# PyTorch model outputs two Weibull parameters by observation +# PyTorch model outputs TWO Weibull parameters per observation my_model = MyPyTorcWeibullhModel() for data in dataloader: - x, event, time = data # covariate, event indicator, time + x, event, time = data log_params = my_model(x) # torch.Size([64, 2]), if batch size is 64 loss = weibull.neg_log_likelihood(log_params, event, time) - loss.backward() # native torch backend + loss.backward() ``` -**Momentum** - When training a model with a large file, the batch size is greatly limited by computational resources. This impacts the stability of model optimization, especially when rank-based loss is used. Inspired from MoCO [@he2020momentum], we implemented a momentum loss that decouples batch size from survival loss, increasing the effective batch size and allowing robust train of a model, even when using a very limited batch size (e.g., $\leq 16$). We illustrate the use of momentum for a pseudo training loop in the code -snippet below. +**Momentum** helps training model when the batch size is greatly limited by computational resources (i.e. large files). This impacts the stability of model optimization, especially when rank-based loss is used. Inspired from MoCO [@he2020momentum], we implemented a momentum loss that decouples batch size from survival loss, increasing the effective batch size and allowing robust train of a model, even when using a very limited batch size (e.g., $\leq 16$). ```python from torchsurv.loss import Momentum @@ -120,9 +98,9 @@ my_loss = cox.neg_partial_log_likelihood # Works with any TorchSurv loss momentum = Momentum(backbone=my_model, loss=my_loss) for data in dataloader: - x, event, time = data # covariate, event indicator, time + x, event, time = data loss = model_momentum(x, event, time) # torch.Size([16, 1]) - loss.backward() # native torch backend + loss.backward() # Inference is computed with target network (k) log_hzs = model_momentum.infer(x) # torch.Size([16, 1]) @@ -130,7 +108,7 @@ log_hzs = model_momentum.infer(x) # torch.Size([16, 1]) ## Evaluation Metrics Functions -The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the AUC, C-index, and Brier score. The inputs of the evaluation metrics functions are the subject-specific risk score estimated on the test set and the survival response on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. +The `TorchSurv` package offers a comprehensive set of metrics to evaluate the predictive performance of survival models, including the `AUC`, `C-index`, and `Brier score`. The inputs of the evaluation metrics functions are the subject-specific risk score estimated on the test set and the survival response on the test set. The risk score measures the risk (or a proxy thereof) that a subject has an event. We provide definitions for each metric and demonstrate their use through illustrative code snippets. **AUC.** The AUC measures the discriminatory capacity of the survival model at a given time $t$, i.e., the ability to provide a reliable ranking of times-to-event based on estimated subject-specific risk scores [@Heagerty2005;@Uno2007;@Blanche2013]. @@ -146,7 +124,7 @@ auc(log_hzs, event, time, new_time=torch.tensor(10.)) # AUC at time 10 ```python from torchsurv.metrics import ConcordanceIndex cindex = ConcordanceIndex() -cindex(log_hzs, event, time) # C-index +cindex(log_hzs, event, time) ``` **Brier Score.** The Brier score evaluates the accuracy of a model at a given time $t$ [@Graf_1999]. It represents the average squared distance between the observed survival status and the predicted survival probability. The Brier score cannot be obtained for the Cox proportional hazards model because the survival function is not available, but it can be obtained for the Weibull ATF model. @@ -159,19 +137,16 @@ brier(surv, event, time) # Brier score at each time brier.integral() # Integrated Brier score over time ``` -**Additional features.** In `TorchSurv`, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally, subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). -Lastly, functionalities including the confidence interval, one-sample hypothesis test to determine whether the metric is better than that of a random predictor, and two-sample hypothesis test to compare two evaluation metrics between different models are implemented. The following code snippet exemplifies the aforementioned functionalities for the C-index. +**Additional features.** In `TorchSurv`, the evaluation metrics can be obtained for time-dependent and time-independent risk scores (e.g., for proportional and non-proportional hazards). Additionally, subjects can be optionally weighted (e.g., by the inverse probability of censoring weighting (IPCW)). Lastly, functionalities including the confidence interval, one-sample hypothesis test to determine whether the metric is better than that of a random predictor, and two-sample hypothesis test to compare two evaluation metrics between different models are implemented. The following code snippet exemplifies the aforementioned functionalities for the C-index. ```python -cindex.confidence_interval() # CI, default alpha = .05 -cindex.p_value(alternative='greater') # pvalue, H0: c = 0.5, HA: c > 0.5 -cindex.compare(cindex_other) # pvalue, H0: c1 = c2, HA: c1 > c2 +cindex.confidence_interval() # CI, default alpha=.05 +cindex.p_value(alternative='greater') # pvalue, H0:c=0.5, HA:c>0.5 +cindex.compare(cindex_other) # pvalue, H0:c1=c2, HA:c1>c2 ``` # Conflicts of interest MM, PK, DO and TC are employees and stockholders of Novartis, a global pharmaceutical company. - # References - From 29e35c87ae3d78f6b8263ec73b3af5406944ddeb Mon Sep 17 00:00:00 2001 From: corolth1 Date: Mon, 29 Jul 2024 13:48:43 -0400 Subject: [PATCH 20/22] JOSS tag --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 48ee8f3..e7d69ca 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ ![Docs](https://github.com/Novartis/torchsurv/actions/workflows/docs.yml/badge.svg?branch=main) [![PyPI - Version](https://img.shields.io/pypi/v/torchsurv)](https://pypi.org/project/torchsurv/) [![arXiv](https://img.shields.io/badge/arXiv-2404.10761-f9f107.svg)](https://arxiv.org/abs/2404.10761) +[![status](https://camo.githubusercontent.com/22fa65b2a659780cddfac609463c5fe719e3ea82a28eb7a61e24b7c4e40eb56d/68747470733a2f2f6a6f73732e7468656f6a2e6f72672f7061706572732f30326437343936646132623963633334663961366530346361626632323938642f7374617475732e737667)](https://joss.theoj.org/papers/02d7496da2b9cc34f9a6e04cabf2298d) [![Documentation](https://img.shields.io/badge/GithubPage-Sphinx-blue)](https://opensource.nibr.com/torchsurv/) [![Downloads](https://static.pepy.tech/badge/torchsurv)](https://pepy.tech/project/torchsurv) From 5cac910c96d7d43994b6f1e279094017fc5f17da Mon Sep 17 00:00:00 2001 From: corolth1 Date: Wed, 31 Jul 2024 09:41:15 -0400 Subject: [PATCH 21/22] fixing affiliation issue --- paper/paper.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index d5d6b67..62f1aed 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -1,27 +1,27 @@ --- title: 'TorchSurv: A Lightweight Package for Deep Survival Analysis' tags: - - Python package - - Deep Survival Analysis + - Python + - Deep Learning + - Survival Analysis - PyTorch - - TorchSurv authors: - name: Mélodie Monod orcid: 0000-0001-6448-2051 - affiliation: "1" + affiliation: 1 - name: Peter Krusche - affiliation: "1" + affiliation: 1 - name: Qian Cao - affiliation: "2" + affiliation: 2 - name: Berkman Sahiner - affiliation: "2" + affiliation: 2 - name: Nicholas Petrick - affiliation: "2" + affiliation: 2 - name: David Ohlssen - affiliation: "3" + affiliation: 3 - name: Thibaud Coroller orcid: 0000-0001-7662-8724 - affiliation: "3" + affiliation: 3 - name: Novartis Pharma AG, Switzerland index: 1 - name: Center for Devices and Radiological Health, Food and Drug Administration, MD, USA From ba6ffb5f68d4cc4d4b7445a0239139cb502974e5 Mon Sep 17 00:00:00 2001 From: corolth1 Date: Wed, 31 Jul 2024 09:44:16 -0400 Subject: [PATCH 22/22] fixing affiliation issue --- paper/paper.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paper/paper.md b/paper/paper.md index 62f1aed..cc21d58 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -21,7 +21,9 @@ authors: affiliation: 3 - name: Thibaud Coroller orcid: 0000-0001-7662-8724 + corresponding: true affiliation: 3 +affiliations: - name: Novartis Pharma AG, Switzerland index: 1 - name: Center for Devices and Radiological Health, Food and Drug Administration, MD, USA