Skip to content

Commit 611a929

Browse files
committed
deploy: 1fb6406
1 parent f699a47 commit 611a929

2 files changed

Lines changed: 2 additions & 2 deletions

File tree

quick_start/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,7 @@ <h2 id="installation">Installation<a class="headerlink" href="#installation" tit
515515
</div>
516516
</details>
517517
<h2 id="quick-start-guide">Quick Start Guide<a class="headerlink" href="#quick-start-guide" title="Permanent link">&para;</a></h2>
518-
<p>The easiest way to start is through the PorPy following Jupiter Notebook examples. </p>
518+
<p>The easiest way to start is through the PorPy following Jupiter Notebook examples:</p>
519519
<table>
520520
<thead>
521521
<tr>

search/search_index.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"What is PortPy?","text":"<p>PortPy, short for Planning and Optimization for Radiation Therapy, is an open-source Python library designed to advance cancer radiotherapy treatment planning optimization. Radiotherapy plays a critical role in treating over half of all cancer patients, whether as a standalone treatment or in combination with surgery, chemotherapy, or immunotherapy. It works by delivering high-energy radiation beams to tumors, aiming to destroy cancerous cells while minimizing damage to the surrounding healthy tissues. Since every patient has a unique anatomy, the radiation beam\u2019s shape, angle, and intensity must be carefully customized. The objective is to maximize tumor dose while minimizing exposure to nearby organs at risk\u2014a challenge that translates into solving large-scale, patient-specific mathematical optimization problems.</p> <p>PortPy aims to accelerate research in this interdisciplinary field by providing tools and algorithms to model and solve these complex optimization problems, as well as to visualize and quantitatively evaluate the resulting treatment plans (see image below).</p> <p></p>"},{"location":"#portpy-main-features","title":"\ud83d\ude80 PortPy Main Features","text":"<ul> <li> <p>IMRT/VMAT Planning Optimization (including AI): Includes support for IMRT fluence map optimization and leaf sequencing (see notebook), VMAT direct aperture optimization (see notebook), AI-based dose-prediction IMRT (see notebook) and VMAT (see notebook) planning. </p> </li> <li> <p>Integration with Commercial TPS: PortPy outputs IMRT/VMAT plans in DICOM-RT format which can be exported into commercial TPSs (see notebook). For Eclipse TPS users:</p> <ul> <li>PortPy outputs IMRT optimal fluence maps in an Eclipse-compatible format (see notebook).</li> <li>It supports automated data extraction (e.g., beamlets, voxels, dose influence matrix) from Eclipse via its scripting API in a PortPy-compatible format (see notebook).</li> </ul> </li> <li> <p>Benchmark Datasets: Provides access to a curated dataset of 100 lung cancer patients with all necessary components for treatment planning optimization (beamlet, voxel, pre-computed dose influence matrix). IMRT plans generated using our in-house automated planning system, ECHO, are included for benchmarking </p> </li> <li> <p>Globally Optimal IMRT/VMAT Plans: Implements slow but exact algorithms (e.g., Mixed-Integer Programming) to compute globally optimal plans, useful for benchmarking and validating heuristic algorithms.</p> </li> </ul>"},{"location":"#news","title":"\ud83d\udce2 News","text":"<ul> <li> <p>[PortPy v1.1.0 released] The following features have been added:</p> <ul> <li>Eclipse users can use their own dataset: For more info, see notebook.</li> <li>Lung benchmark dataset expanded: Lung dataset expanded to 100 patients and is now hosted on HuggingFace, making it easier to access and use them in your research (see notebook).</li> <li>VMAT column generation algorithm added: It finds a \"warm start\" (i.e., good but not neceassirily optimal) solution quickly for the current VMAT SCP (Sequential Convex Programming) optimization algorithm (see notebook).</li> <li>Enhanced visualization: The evaluation table has been improved for better readability and analysis (see notebook). </li> </ul> </li> </ul>"},{"location":"FAQ/","title":"FAQ","text":""},{"location":"FAQ/#what-kind-of-license-does-portpy-use","title":"What kind of license does PortPy use?","text":"<p>PortPy code is distributed under the Apache 2.0 license with the Commons Clause. It is available free for non-commercial academic purposes. For commercial use, please contact the PortPy PI, Masoud Zarepisheh at zarepism@mskcc.org.</p>"},{"location":"FAQ/#how-can-i-use-my-own-patient-data","title":"How can I use my own patient data?","text":"<p>PortPy currently supports importing patient data only from the Eclipse TPS using its API (see notebook). This includes extracting all necessary data for optimization, such as the dose influence matrix (i.e., a 2D matrix representing 3D dose distributions from thousands of beamlets).</p>"},{"location":"FAQ/#can-i-use-other-open-source-software-for-dose-calculation-and-portpy-for-planning-optimization","title":"Can I use other open-source software for dose calculation and PortPy for planning optimization?","text":"<p>One of PortPy\u2019s goals is to generate clinically usable, deliverable plans with dose calculations that match commercial TPS accuracy. This focus makes PortPy not only a clinically relevant platform but also a powerful research tool for benchmarking optimization algorithms and their resultant treatment plans against the clinical plans. Therefore, we currently do not support integrating other open-source dose engines into PortPy. However, users are welcome to use PortPy solely for planning optimization and perform dose calculations using other software, provided this setup meets the needs of their research or application.</p>"},{"location":"FAQ/#can-i-do-proton-therapy-optimization-with-portpy","title":"Can I do proton therapy optimization with PortPy?","text":"<p>PortPy currently only supports photon planning optimization. Proton therapy support is expected to be released in 2026.</p>"},{"location":"FAQ/#i-have-a-medical-physics-background-but-not-in-mathematical-optimization-can-i-still-use-portpy","title":"I have a medical physics background but not in mathematical optimization. Can I still use PortPy?","text":"<p>Absolutely. PortPy is designed to be user-friendly and accessible. You can get started using our ready-made Jupyter Notebooks and tutorials without needing a deep understanding of optimization theory.</p>"},{"location":"FAQ/#i-have-a-mathematical-optimization-background-but-not-in-medical-physics-can-i-still-use-portpy","title":"I have a mathematical optimization background but not in medical physics. Can I still use PortPy?","text":"<p>Yes. Many PortPy contributors come from optimization and engineering backgrounds. The benchmark datasets and baseline algorithms are designed to help users without medical physics expertise explore radiotherapy treatment planning.</p>"},{"location":"FAQ/#i-have-an-engineeringsoftware-development-background-can-i-contribute-to-portpy","title":"I have an engineering/software development background. Can I contribute to PortPy?","text":"<p>Yes! PortPy is an open-source project and welcomes community contributions. Please reach out to Gourav Jhanwar, Lead Developer (jhanwarg@mskcc.org).</p>"},{"location":"contact_us/","title":"Contact Us","text":"<p>If you encounter a bug or have questions about using PortPy, we recommend creating an Issue on GitHub: \ud83d\udc49 GitHub Issues This ensures your question is tracked and helps other users who may face similar issues.</p> <p>If you prefer to communicate via email:</p> <ul> <li> <p>For technical questions, contact the lead developer: Gourav Jhanwar \u2014 jhanwarg@mskcc.org</p> </li> <li> <p>For general inquiries (e.g., colaboration, tutorial for your group, licensing), contact the PI: Masoud Zarepisheh \u2014 zarepism@mskcc.org</p> </li> </ul>"},{"location":"quick_start/","title":"Quick Start","text":""},{"location":"quick_start/#installation","title":"Installation","text":"Installing PortPy pip/condaFrom source <p>To install PortPy with all its dependecies (recommonded). <pre><code>pip install portpy[all]\n</code></pre> To install PortPy with only optional dependencies. <pre><code>pip install portpy[ai, mosek, pydicom]\n</code></pre> To install PortPy with only the core dependencies. <pre><code>pip install portpy\n</code></pre></p> <p>1- Clone this repository <pre><code>git clone https://github.com/PortPy-Project/PortPy.git\n</code></pre> 2- Navigate to the repository <pre><code>cd portpy\n</code></pre> 3- Install the dependencies within a Python/Anaconda virtual environment <pre><code>pip install -r requirements.txt\n</code></pre></p>"},{"location":"quick_start/#quick-start-guide","title":"Quick Start Guide","text":"<p>The easiest way to start is through the PorPy following Jupiter Notebook examples. </p> Example File Description 1_basic_tutorial.ipynb Demonstrates the main functionalities of PortPy (e.g., Access data, create an IMRT plan, visualize) eclipse_photon_dose_calculation.ipynb Demonstrates the capability of running dose calculation for patients outside PortPy dataset using Varian's photon dose calculation module and perform optimization in PortPy vmat_scp_tutorial.ipynb Creates a VMAT plan using sequential convex programming vmat_scp_dose_prediction.ipynb Predicts 3D dose distribution using deep learning and converts it into a deliverable VMAT plan 3d_slicer_integration.ipynb Creates an IMRT plan and visualizes it in 3D-Slicer imrt_tps_import.ipynb 1. Outputs IMRT plan in DICOM RT format and imports it into TPS. 2. Outputs IMRT plan optimal fluence in an Eclipse-compatable format and imports it into Eclipse vmat_tps_import.ipynb Outputs VMAT plan in DICOM RT format and imports it into TPS imrt_dose_prediction.ipynb Predicts 3D dose distribution using deep learning and converts it into a deliverable IMRT plan vmat_global_optimal.ipynb Finds a globally optimal VMAT plan beam_orientation_global_optimal.ipynb Finds globally optimal beam angles for IMRT dvh_constraint_global_optimal.ipynb Finds a globally optimal plan meeting Dose Volume Histogram (DVH) constraints"},{"location":"resources/","title":"Resources","text":"<p>Additional learning materials, tutorials, and external tools will be added here soon. Stay tuned!</p>"}]}
1+
{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"What is PortPy?","text":"<p>PortPy, short for Planning and Optimization for Radiation Therapy, is an open-source Python library designed to advance cancer radiotherapy treatment planning optimization. Radiotherapy plays a critical role in treating over half of all cancer patients, whether as a standalone treatment or in combination with surgery, chemotherapy, or immunotherapy. It works by delivering high-energy radiation beams to tumors, aiming to destroy cancerous cells while minimizing damage to the surrounding healthy tissues. Since every patient has a unique anatomy, the radiation beam\u2019s shape, angle, and intensity must be carefully customized. The objective is to maximize tumor dose while minimizing exposure to nearby organs at risk\u2014a challenge that translates into solving large-scale, patient-specific mathematical optimization problems.</p> <p>PortPy aims to accelerate research in this interdisciplinary field by providing tools and algorithms to model and solve these complex optimization problems, as well as to visualize and quantitatively evaluate the resulting treatment plans (see image below).</p> <p></p>"},{"location":"#portpy-main-features","title":"\ud83d\ude80 PortPy Main Features","text":"<ul> <li> <p>IMRT/VMAT Planning Optimization (including AI): Includes support for IMRT fluence map optimization and leaf sequencing (see notebook), VMAT direct aperture optimization (see notebook), AI-based dose-prediction IMRT (see notebook) and VMAT (see notebook) planning. </p> </li> <li> <p>Integration with Commercial TPS: PortPy outputs IMRT/VMAT plans in DICOM-RT format which can be exported into commercial TPSs (see notebook). For Eclipse TPS users:</p> <ul> <li>PortPy outputs IMRT optimal fluence maps in an Eclipse-compatible format (see notebook).</li> <li>It supports automated data extraction (e.g., beamlets, voxels, dose influence matrix) from Eclipse via its scripting API in a PortPy-compatible format (see notebook).</li> </ul> </li> <li> <p>Benchmark Datasets: Provides access to a curated dataset of 100 lung cancer patients with all necessary components for treatment planning optimization (beamlet, voxel, pre-computed dose influence matrix). IMRT plans generated using our in-house automated planning system, ECHO, are included for benchmarking </p> </li> <li> <p>Globally Optimal IMRT/VMAT Plans: Implements slow but exact algorithms (e.g., Mixed-Integer Programming) to compute globally optimal plans, useful for benchmarking and validating heuristic algorithms.</p> </li> </ul>"},{"location":"#news","title":"\ud83d\udce2 News","text":"<ul> <li> <p>[PortPy v1.1.0 released] The following features have been added:</p> <ul> <li>Eclipse users can use their own dataset: For more info, see notebook.</li> <li>Lung benchmark dataset expanded: Lung dataset expanded to 100 patients and is now hosted on HuggingFace, making it easier to access and use them in your research (see notebook).</li> <li>VMAT column generation algorithm added: It finds a \"warm start\" (i.e., good but not neceassirily optimal) solution quickly for the current VMAT SCP (Sequential Convex Programming) optimization algorithm (see notebook).</li> <li>Enhanced visualization: The evaluation table has been improved for better readability and analysis (see notebook). </li> </ul> </li> </ul>"},{"location":"FAQ/","title":"FAQ","text":""},{"location":"FAQ/#what-kind-of-license-does-portpy-use","title":"What kind of license does PortPy use?","text":"<p>PortPy code is distributed under the Apache 2.0 license with the Commons Clause. It is available free for non-commercial academic purposes. For commercial use, please contact the PortPy PI, Masoud Zarepisheh at zarepism@mskcc.org.</p>"},{"location":"FAQ/#how-can-i-use-my-own-patient-data","title":"How can I use my own patient data?","text":"<p>PortPy currently supports importing patient data only from the Eclipse TPS using its API (see notebook). This includes extracting all necessary data for optimization, such as the dose influence matrix (i.e., a 2D matrix representing 3D dose distributions from thousands of beamlets).</p>"},{"location":"FAQ/#can-i-use-other-open-source-software-for-dose-calculation-and-portpy-for-planning-optimization","title":"Can I use other open-source software for dose calculation and PortPy for planning optimization?","text":"<p>One of PortPy\u2019s goals is to generate clinically usable, deliverable plans with dose calculations that match commercial TPS accuracy. This focus makes PortPy not only a clinically relevant platform but also a powerful research tool for benchmarking optimization algorithms and their resultant treatment plans against the clinical plans. Therefore, we currently do not support integrating other open-source dose engines into PortPy. However, users are welcome to use PortPy solely for planning optimization and perform dose calculations using other software, provided this setup meets the needs of their research or application.</p>"},{"location":"FAQ/#can-i-do-proton-therapy-optimization-with-portpy","title":"Can I do proton therapy optimization with PortPy?","text":"<p>PortPy currently only supports photon planning optimization. Proton therapy support is expected to be released in 2026.</p>"},{"location":"FAQ/#i-have-a-medical-physics-background-but-not-in-mathematical-optimization-can-i-still-use-portpy","title":"I have a medical physics background but not in mathematical optimization. Can I still use PortPy?","text":"<p>Absolutely. PortPy is designed to be user-friendly and accessible. You can get started using our ready-made Jupyter Notebooks and tutorials without needing a deep understanding of optimization theory.</p>"},{"location":"FAQ/#i-have-a-mathematical-optimization-background-but-not-in-medical-physics-can-i-still-use-portpy","title":"I have a mathematical optimization background but not in medical physics. Can I still use PortPy?","text":"<p>Yes. Many PortPy contributors come from optimization and engineering backgrounds. The benchmark datasets and baseline algorithms are designed to help users without medical physics expertise explore radiotherapy treatment planning.</p>"},{"location":"FAQ/#i-have-an-engineeringsoftware-development-background-can-i-contribute-to-portpy","title":"I have an engineering/software development background. Can I contribute to PortPy?","text":"<p>Yes! PortPy is an open-source project and welcomes community contributions. Please reach out to Gourav Jhanwar, Lead Developer (jhanwarg@mskcc.org).</p>"},{"location":"contact_us/","title":"Contact Us","text":"<p>If you encounter a bug or have questions about using PortPy, we recommend creating an Issue on GitHub: \ud83d\udc49 GitHub Issues This ensures your question is tracked and helps other users who may face similar issues.</p> <p>If you prefer to communicate via email:</p> <ul> <li> <p>For technical questions, contact the lead developer: Gourav Jhanwar \u2014 jhanwarg@mskcc.org</p> </li> <li> <p>For general inquiries (e.g., colaboration, tutorial for your group, licensing), contact the PI: Masoud Zarepisheh \u2014 zarepism@mskcc.org</p> </li> </ul>"},{"location":"quick_start/","title":"Quick Start","text":""},{"location":"quick_start/#installation","title":"Installation","text":"Installing PortPy pip/condaFrom source <p>To install PortPy with all its dependecies (recommonded). <pre><code>pip install portpy[all]\n</code></pre> To install PortPy with only optional dependencies. <pre><code>pip install portpy[ai, mosek, pydicom]\n</code></pre> To install PortPy with only the core dependencies. <pre><code>pip install portpy\n</code></pre></p> <p>1- Clone this repository <pre><code>git clone https://github.com/PortPy-Project/PortPy.git\n</code></pre> 2- Navigate to the repository <pre><code>cd portpy\n</code></pre> 3- Install the dependencies within a Python/Anaconda virtual environment <pre><code>pip install -r requirements.txt\n</code></pre></p>"},{"location":"quick_start/#quick-start-guide","title":"Quick Start Guide","text":"<p>The easiest way to start is through the PorPy following Jupiter Notebook examples:</p> Example File Description 1_basic_tutorial.ipynb Demonstrates the main functionalities of PortPy (e.g., Access data, create an IMRT plan, visualize) eclipse_photon_dose_calculation.ipynb Demonstrates the capability of running dose calculation for patients outside PortPy dataset using Varian's photon dose calculation module and perform optimization in PortPy vmat_scp_tutorial.ipynb Creates a VMAT plan using sequential convex programming vmat_scp_dose_prediction.ipynb Predicts 3D dose distribution using deep learning and converts it into a deliverable VMAT plan 3d_slicer_integration.ipynb Creates an IMRT plan and visualizes it in 3D-Slicer imrt_tps_import.ipynb 1. Outputs IMRT plan in DICOM RT format and imports it into TPS. 2. Outputs IMRT plan optimal fluence in an Eclipse-compatable format and imports it into Eclipse vmat_tps_import.ipynb Outputs VMAT plan in DICOM RT format and imports it into TPS imrt_dose_prediction.ipynb Predicts 3D dose distribution using deep learning and converts it into a deliverable IMRT plan vmat_global_optimal.ipynb Finds a globally optimal VMAT plan beam_orientation_global_optimal.ipynb Finds globally optimal beam angles for IMRT dvh_constraint_global_optimal.ipynb Finds a globally optimal plan meeting Dose Volume Histogram (DVH) constraints"},{"location":"resources/","title":"Resources","text":"<p>Additional learning materials, tutorials, and external tools will be added here soon. Stay tuned!</p>"}]}

0 commit comments

Comments
 (0)