# Prostate Nomograms
A simple implementation of prostate cancer nomograms.
> Prostate cancer nomograms are prediction tools designed to help patients and their physicians understand the nature of their prostate cancer, assess risk based on specific characteristics of a patient and his disease, and predict the likely outcomes of treatment. <sup>[1][1]</sup>
## Installation
### Latest stable version :
```
pip install prostate-nomograms
```
### Latest (possibly unstable) version :
```
pip install git+https://github.com/MaxenceLarose/prostate-cancer-nomograms
```
## Quick usage preview
```python
import pandas as pd
from prostate_nomograms import MskccPreRadicalProstatectomyNomogram, ClassificationOutcome
mskcc_nomogram = MskccPreRadicalProstatectomyNomogram(outcome=ClassificationOutcome.LYMPH_NODE_INVOLVEMENT)
dataframe = pd.read_csv("data.csv")
probability = mskcc_nomogram.predict_proba(dataframe)
```
## Motivation
Nomograms are typically implemented as web-based applications in which a physician must fill in certain boxes using a patient's medical information. Once all the boxes are filled in, the prediction tool can either calculate the probability of several clinical outcomes or calculate a risk score associated with the patient's health status, depending on the type of nomogram. The **purpose** of this application is to speed up the process for a very large number of patients. Indeed, the statistical models of the nomograms are reproduced in Python which allows to calculate in a few seconds the probabilities and the scores of thousands of patients. The coefficients of the models are read from the web sites, then used for the calculations.
## Which nomograms are currently implemented?
Currently, the nomograms of two major centers are implemented, namely :
1. Memorial Sloan Kettering Cancer Center (MSKCC)
- [Pre-Radical Prostatectomy](https://www.mskcc.org/nomograms/prostate/pre_op)
2. UCSF - CAPRA
- [CAPRA Score](https://urology.ucsf.edu/research/cancer/prostate-cancer-risk-assessment-and-the-ucsf-capra-score#.YS1Kqo5KiUk)
The MSKCC nomogram directly gives the probability and risk of different outcomes. The UCSF one gives a CAPRA score, which is then converted to probability using logistic regression or cox regression on patient data.
Note that a custom nomogram is also implemented, i.e. a simple logistic regression or cox regression using arbitrary variables.
## Getting started
You can find examples [here](https://github.com/MaxenceLarose/ProstateCancerNomograms/tree/main/examples).
## License
This code is provided under the [Apache License 2.0](https://github.com/MaxenceLarose/delia/blob/main/LICENSE).
## Citation
```
@misc{prostate-nomograms,
title={prostate-nomograms: Prediction tools based on existing prostate cancer nomograms},
author={Maxence Larose},
year={2022},
publisher={Université Laval},
url={https://github.com/MaxenceLarose/prostate-nomograms},
}
```
## Contact
Maxence Larose, B. Ing., [maxence.larose.1@ulaval.ca](mailto:maxence.larose.1@ulaval.ca)
[comment]: REFERENCES>
[1]: <https://www.mskcc.org/nomograms/prostate> "MSKCC - Prostate Cancer Nomograms"
Raw data
{
"_id": null,
"home_page": "https://github.com/MaxenceLarose/prostate-nomograms",
"name": "prostate-nomograms",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": "",
"keywords": "cancer medical nomogram prediction prostate python3",
"author": "Maxence Larose",
"author_email": "maxence.larose.1@ulaval.ca",
"download_url": "https://files.pythonhosted.org/packages/ce/1c/42f7fb4a653a43815264f8d986daa5b0d6be00b97f79144c44ebd2ef6b33/prostate-nomograms-0.0.9.tar.gz",
"platform": null,
"description": "# Prostate Nomograms\r\n\r\nA simple implementation of prostate cancer nomograms.\r\n\r\n> Prostate cancer nomograms are prediction tools designed to help patients and their physicians understand the nature of their prostate cancer, assess risk based on specific characteristics of a patient and his disease, and predict the likely outcomes of treatment. <sup>[1][1]</sup>\r\n\r\n## Installation\r\n\r\n### Latest stable version :\r\n\r\n```\r\npip install prostate-nomograms\r\n```\r\n\r\n### Latest (possibly unstable) version :\r\n\r\n```\r\npip install git+https://github.com/MaxenceLarose/prostate-cancer-nomograms\r\n```\r\n\r\n## Quick usage preview\r\n\r\n```python\r\nimport pandas as pd\r\n\r\nfrom prostate_nomograms import MskccPreRadicalProstatectomyNomogram, ClassificationOutcome\r\n\r\nmskcc_nomogram = MskccPreRadicalProstatectomyNomogram(outcome=ClassificationOutcome.LYMPH_NODE_INVOLVEMENT)\r\n\r\ndataframe = pd.read_csv(\"data.csv\")\r\n\r\nprobability = mskcc_nomogram.predict_proba(dataframe)\r\n```\r\n\r\n## Motivation\r\n\r\nNomograms are typically implemented as web-based applications in which a physician must fill in certain boxes using a patient's medical information. Once all the boxes are filled in, the prediction tool can either calculate the probability of several clinical outcomes or calculate a risk score associated with the patient's health status, depending on the type of nomogram. The **purpose** of this application is to speed up the process for a very large number of patients. Indeed, the statistical models of the nomograms are reproduced in Python which allows to calculate in a few seconds the probabilities and the scores of thousands of patients. The coefficients of the models are read from the web sites, then used for the calculations.\r\n\r\n## Which nomograms are currently implemented?\r\n\r\nCurrently, the nomograms of two major centers are implemented, namely :\r\n\r\n1. Memorial Sloan Kettering Cancer Center (MSKCC)\r\n - [Pre-Radical Prostatectomy](https://www.mskcc.org/nomograms/prostate/pre_op)\r\n2. UCSF - CAPRA\r\n - [CAPRA Score](https://urology.ucsf.edu/research/cancer/prostate-cancer-risk-assessment-and-the-ucsf-capra-score#.YS1Kqo5KiUk)\r\n\r\nThe MSKCC nomogram directly gives the probability and risk of different outcomes. The UCSF one gives a CAPRA score, which is then converted to probability using logistic regression or cox regression on patient data.\r\n\r\nNote that a custom nomogram is also implemented, i.e. a simple logistic regression or cox regression using arbitrary variables. \r\n\r\n## Getting started\r\n\r\nYou can find examples [here](https://github.com/MaxenceLarose/ProstateCancerNomograms/tree/main/examples).\r\n\r\n## License\r\n\r\nThis code is provided under the [Apache License 2.0](https://github.com/MaxenceLarose/delia/blob/main/LICENSE).\r\n\r\n## Citation\r\n\r\n```\r\n@misc{prostate-nomograms,\r\n title={prostate-nomograms: Prediction tools based on existing prostate cancer nomograms},\r\n author={Maxence Larose},\r\n year={2022},\r\n publisher={Universit\u00e9 Laval},\r\n url={https://github.com/MaxenceLarose/prostate-nomograms},\r\n}\r\n```\r\n\r\n## Contact\r\n\r\nMaxence Larose, B. Ing., [maxence.larose.1@ulaval.ca](mailto:maxence.larose.1@ulaval.ca)\r\n\r\n[comment]: REFERENCES>\r\n[1]: <https://www.mskcc.org/nomograms/prostate> \"MSKCC - Prostate Cancer Nomograms\"\r\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Prediction tools based on existing prostate cancer nomograms.",
"version": "0.0.9",
"project_urls": {
"Homepage": "https://github.com/MaxenceLarose/prostate-nomograms"
},
"split_keywords": [
"cancer",
"medical",
"nomogram",
"prediction",
"prostate",
"python3"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e8e5c506cf1384be33dd2b86975c93296e3324e45af716a2a75c80281c1884d3",
"md5": "df68552758335a00277e6ceced238aec",
"sha256": "1e136c55abfa26b3f5a3740b3a0854cc5c366d3a4246f64b282c341bd1e92619"
},
"downloads": -1,
"filename": "prostate_nomograms-0.0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "df68552758335a00277e6ceced238aec",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 27575,
"upload_time": "2023-06-19T17:15:27",
"upload_time_iso_8601": "2023-06-19T17:15:27.440280Z",
"url": "https://files.pythonhosted.org/packages/e8/e5/c506cf1384be33dd2b86975c93296e3324e45af716a2a75c80281c1884d3/prostate_nomograms-0.0.9-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ce1c42f7fb4a653a43815264f8d986daa5b0d6be00b97f79144c44ebd2ef6b33",
"md5": "1848159a6f7e5bae47cee7584cab9079",
"sha256": "5057fcdb3a9cf76a12e93b8d60d099e2efaab51da1159158e4df4841fb1d64ec"
},
"downloads": -1,
"filename": "prostate-nomograms-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "1848159a6f7e5bae47cee7584cab9079",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 18748,
"upload_time": "2023-06-19T17:15:28",
"upload_time_iso_8601": "2023-06-19T17:15:28.837464Z",
"url": "https://files.pythonhosted.org/packages/ce/1c/42f7fb4a653a43815264f8d986daa5b0d6be00b97f79144c44ebd2ef6b33/prostate-nomograms-0.0.9.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-19 17:15:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MaxenceLarose",
"github_project": "prostate-nomograms",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "prostate-nomograms"
}