From b02d2c38be20b844a3a40fac7e3947ba9aa0db21 Mon Sep 17 00:00:00 2001 From: alexandergetka Date: Mon, 12 Sep 2022 14:02:22 -0400 Subject: [PATCH 1/5] 1.9.1 changes to fix space-in-paths issue --- CMakeLists.txt | 2 +- .../brainTumorSegmentation/VERSION.yaml | 6 +- .../saved_models/skullStripping/VERSION.yaml | 6 +- src/applications/BraTSPipeline.cxx | 65 ++++++++++--------- src/view/gui/fMainWindow.cpp | 13 ++-- 5 files changed, 47 insertions(+), 45 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87501e673..90e5fb9ea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,7 @@ SET( ${PROJECT_NAME}_Variant "Full" ) # the particular variant of CaPTk (Full/Ne SET( PROJECT_VERSION_MAJOR 1 ) SET( PROJECT_VERSION_MINOR 9 ) -SET( PROJECT_VERSION_PATCH 0 ) +SET( PROJECT_VERSION_PATCH 1 ) SET( PROJECT_VERSION_TWEAK ) # check for the string "nonRelease" in the PROJECT_VERSION_PATCH variable diff --git a/data/deepMedic/saved_models/brainTumorSegmentation/VERSION.yaml b/data/deepMedic/saved_models/brainTumorSegmentation/VERSION.yaml index 176dee1b5..556d3ee34 100644 --- a/data/deepMedic/saved_models/brainTumorSegmentation/VERSION.yaml +++ b/data/deepMedic/saved_models/brainTumorSegmentation/VERSION.yaml @@ -1,3 +1,3 @@ -Version: 1.9.0 -Minimum: 1.9.0 -Maximum: 1.9.0 \ No newline at end of file +Version: 1.9.1 +Minimum: 1.9.1 +Maximum: 1.9.1 \ No newline at end of file diff --git a/data/deepMedic/saved_models/skullStripping/VERSION.yaml b/data/deepMedic/saved_models/skullStripping/VERSION.yaml index 176dee1b5..556d3ee34 100644 --- a/data/deepMedic/saved_models/skullStripping/VERSION.yaml +++ b/data/deepMedic/saved_models/skullStripping/VERSION.yaml @@ -1,3 +1,3 @@ -Version: 1.9.0 -Minimum: 1.9.0 -Maximum: 1.9.0 \ No newline at end of file +Version: 1.9.1 +Minimum: 1.9.1 +Maximum: 1.9.1 \ No newline at end of file diff --git a/src/applications/BraTSPipeline.cxx b/src/applications/BraTSPipeline.cxx index 61048a93f..a65126ad6 100644 --- a/src/applications/BraTSPipeline.cxx +++ b/src/applications/BraTSPipeline.cxx @@ -92,7 +92,7 @@ int main(int argc, char** argv) { std::cerr << "The BraTS pipeline is only valid for 3D images, whereas the image '" << it->second << "' for modality '" << it->first << "' has " << - inputImageInfo.GetImageDimensions() << " dimentions.\n"; + inputImageInfo.GetImageDimensions() << " dimensions.\n"; return EXIT_FAILURE; } } @@ -140,7 +140,7 @@ int main(int argc, char** argv) } else { - std::cerr << "Something went wrong with reading the raw input image, please re-try or contact sofware@cbica.upenn.edu.\n"; + std::cerr << "Something went wrong with reading the raw input image, please re-try or contact software@cbica.upenn.edu.\n"; return EXIT_FAILURE; } } @@ -156,7 +156,7 @@ int main(int argc, char** argv) inputImages_processed[modality] = temp.second; if (inputImages_processed[modality].IsNull()) { - std::cerr << "Something went wrong with re-orienting the input image, please re-try or contact sofware@cbica.upenn.edu.\n"; + std::cerr << "Something went wrong with re-orienting the input image, please re-try or contact software@cbica.upenn.edu.\n"; return EXIT_FAILURE; } else @@ -198,7 +198,7 @@ int main(int argc, char** argv) } else { - std::cerr << "Something went wrong with bias-correcting the re-oriented image, please re-try or contact sofware@cbica.upenn.edu.\n"; + std::cerr << "Something went wrong with bias-correcting the re-oriented image, please re-try or contact software@cbica.upenn.edu.\n"; return EXIT_FAILURE; } } @@ -222,7 +222,7 @@ int main(int argc, char** argv) std::cout << "Registering T1CE to SRI atlas.\n"; } - auto greedyPathAndDim = getApplicationPath("greedy") + " -d 3"; + auto greedyPathAndDim = "\"" + getApplicationPath("greedy") + "\"" + " -d 3"; auto captkDataDir = getCaPTkDataDir(); auto atlasImage = captkDataDir + "/sri24/atlastImage.nii.gz"; @@ -234,8 +234,8 @@ int main(int argc, char** argv) if (!cbica::exists(outputMatFiles["T1CE"])) { - fullCommand = " -a -m NMI -i " + atlasImage + " " + inputReorientedBiasFiles["T1CE"] - + " -o " + outputMatFiles["T1CE"] + " -ia-image-centers -n 100x50x10 -dof 6"; + fullCommand = " -a -m NMI -i " + std::string("\"") + atlasImage + "\"" + " " + "\"" + inputReorientedBiasFiles["T1CE"] + "\"" + + " -o " + "\"" + outputMatFiles["T1CE"] + "\"" + " -ia-image-centers -n 100x50x10 -dof 6"; if (debug) { @@ -243,16 +243,16 @@ int main(int argc, char** argv) } if (std::system((greedyPathAndDim + fullCommand).c_str()) != 0) { - std::cerr << "Something went wrong when registering T1CE image to SRI atlas, please re-try or contact sofware@cbica.upenn.edu.\n"; + std::cerr << "Something went wrong when registering T1CE image to SRI atlas, please re-try or contact software@cbica.upenn.edu.\n"; return EXIT_FAILURE; } } // end outputMatFiles["T1CE"] check if (!cbica::exists(outputRegisteredImages["T1CE"])) { - fullCommand = " -rf " + atlasImage + " -ri LINEAR -rm " + - inputReorientedFiles["T1CE"] + " " + outputRegisteredImages["T1CE"] + " -r " + - outputMatFiles["T1CE"]; + fullCommand = " -rf " + std::string("\"") + atlasImage + "\"" + " -ri LINEAR -rm " + + "\"" + inputReorientedFiles["T1CE"] + "\"" + " " + "\"" + outputRegisteredImages["T1CE"]+ "\"" + " -r " + + "\"" + outputMatFiles["T1CE"] + "\""; if (debug) { @@ -278,8 +278,8 @@ int main(int argc, char** argv) if (!cbica::exists(outputMatFiles[modality])) { // we use the bias-corrected image for registration as it is easier localize transformations - fullCommand = " -a -m NMI -i " + inputReorientedBiasFiles["T1CE"] + " " + inputReorientedBiasFiles[modality] - + " -o " + outputMatFiles[modality] + " -ia-image-centers -n 100x50x10 -dof 6"; + fullCommand = " -a -m NMI -i " + std::string("\"") + inputReorientedBiasFiles["T1CE"] + "\"" + " " + "\"" + inputReorientedBiasFiles[modality] + "\"" + + " -o " + "\"" + outputMatFiles[modality] + "\"" + " -ia-image-centers -n 100x50x10 -dof 6"; if (debug) { std::cout << "Registering " << modality << " to T1CE.\n"; @@ -304,10 +304,10 @@ int main(int argc, char** argv) { // the final registration is applied on the original image after re-orientation (not bias-corrected) to // ensure maximum fidelity with original image - fullCommand = " -rf " + atlasImage + " -ri LINEAR -rm " + inputReorientedFiles[modality] + " " + - outputRegisteredImages[modality] + " -r " - + outputMatFiles["T1CE"] + " " - + outputMatFiles[modality]; + fullCommand = " -rf " + std::string("\"") +atlasImage + "\"" + " -ri LINEAR -rm " + "\"" + inputReorientedFiles[modality] + "\"" + " " + + "\"" + outputRegisteredImages[modality] + "\"" + " -r " + + "\"" + outputMatFiles["T1CE"] + "\"" + " " + + "\"" + outputMatFiles[modality] + "\""; if (std::system((greedyPathAndDim + fullCommand).c_str()) != 0) { @@ -320,7 +320,7 @@ int main(int argc, char** argv) // variables that are used later on auto finalBrainMask = cbica::normalizePath(outputDir + "/brainMask_SRI.nii.gz"); - auto deepMedicExe = getApplicationPath("DeepMedic"); + auto deepMedicExe = "\"" + getApplicationPath("DeepMedic") + "\""; auto brainMaskFile = outputDir + "/dmOut_skull/brainMask_SRI.nii.gz"; if (skullStrip) @@ -333,12 +333,12 @@ int main(int argc, char** argv) if (!cbica::exists(brainMaskFile)) { - fullCommand = " -md " + captkDataDir + "/deepMedic/saved_models/skullStripping/ " + - "-i " + outputRegisteredImages["T1"] + "," + - outputRegisteredImages["T1CE"] + "," + - outputRegisteredImages["T2"] + "," + - outputRegisteredImages["FL"] + " -o " + - brainMaskFile; + fullCommand = " -md " + std::string("\"") + captkDataDir + "/deepMedic/saved_models/skullStripping/ " + "\"" + + "-i " + "\"" + outputRegisteredImages["T1"] + "\"" + "," + + "\"" + outputRegisteredImages["T1CE"] + "\"" + "," + + "\"" + outputRegisteredImages["T2"] + "\"" + "," + + "\"" + outputRegisteredImages["FL"] + "\"" + " -o " + + "\"" + brainMaskFile + "\""; if (debug) { @@ -347,7 +347,7 @@ int main(int argc, char** argv) if (std::system((deepMedicExe + fullCommand).c_str()) != 0) { - std::cerr << "Something went wrong when performing skull-stripping using DeepMedic, please re-try or contact sofware@cbica.upenn.edu.\n"; + std::cerr << "Something went wrong when performing skull-stripping using DeepMedic, please re-try or contact software@cbica.upenn.edu.\n"; return EXIT_FAILURE; } } // end brainMask check @@ -394,12 +394,13 @@ int main(int argc, char** argv) if (!cbica::exists(brainTumorMaskFile)) { - fullCommand = " -md " + captkDataDir + "/deepMedic/saved_models/brainTumorSegmentation/ " + - "-i " + outputRegisteredMaskedImages["T1"] + "," + - outputRegisteredMaskedImages["T1CE"] + "," + - outputRegisteredMaskedImages["T2"] + "," + - outputRegisteredMaskedImages["FL"] + " -m " + finalBrainMask + - " -o " + brainTumorMaskFile; + fullCommand = " -md " + std::string("\"") + captkDataDir + "/deepMedic/saved_models/brainTumorSegmentation/ " + "\"" + + "-i " + "\"" + outputRegisteredMaskedImages["T1"] + "\"" + "," + + "\"" + outputRegisteredMaskedImages["T1CE"] + "\"" + "," + + "\"" + outputRegisteredMaskedImages["T2"] + "\"" + "," + + "\"" + outputRegisteredMaskedImages["FL"] + "\"" + + " -m " + "\"" + finalBrainMask + "\"" + + " -o " + "\"" + brainTumorMaskFile + "\""; if (debug) { @@ -408,7 +409,7 @@ int main(int argc, char** argv) if (std::system((deepMedicExe + fullCommand).c_str()) != 0) { - std::cerr << "Something went wrong when performing skull-stripping using DeepMedic, please re-try or contact sofware@cbica.upenn.edu.\n"; + std::cerr << "Something went wrong when performing skull-stripping using DeepMedic, please re-try or contact software@cbica.upenn.edu.\n"; return EXIT_FAILURE; } } // end brainTumorMaskFile check diff --git a/src/view/gui/fMainWindow.cpp b/src/view/gui/fMainWindow.cpp index 39dfafa31..c411c291c 100644 --- a/src/view/gui/fMainWindow.cpp +++ b/src/view/gui/fMainWindow.cpp @@ -8959,7 +8959,8 @@ void fMainWindow::CallBraTSPipeline(const std::string t1ceImage, const std::stri { if (!t1ceImage.empty() && !t1Image.empty() && !t2Image.empty() && !flImage.empty() && !outputDir.empty()) { - auto bratsPipelineExe = getApplicationPath("BraTSPipeline"); + // Escaped in quotes in case CaPTk is installed in a path with spaces (todo: verify this for all apps called via cli from gui) + auto bratsPipelineExe = "\"" + getApplicationPath("BraTSPipeline") + "\""; if (!cbica::exists(bratsPipelineExe)) { ShowErrorMessage("Could not find the BraTSPipeline executable"); @@ -8967,11 +8968,11 @@ void fMainWindow::CallBraTSPipeline(const std::string t1ceImage, const std::stri } QStringList args; - args << "-t1" << t1Image.c_str() << - "-t1c" << t1ceImage.c_str() << - "-t2" << t2Image.c_str() << - "-fl" << flImage.c_str() << - "-o" << outputDir.c_str(); + args << "-t1" << "\"" << t1Image.c_str() << "\"" << + "-t1c" << "\"" << t1ceImage.c_str() << "\"" << + "-t2" << "\"" << t2Image.c_str() << "\"" << + "-fl" << "\"" << flImage.c_str() << "\"" << + "-o" << "\"" << outputDir.c_str() << "\""; QMessageBox *box = new QMessageBox(QMessageBox::Question, "Long running Application", "BraTS Pipeline takes ~30 minutes to run, during which CaPTk will not be responsive; press OK to continue...", From 519303affe4bb5a64db027e941fef8bddd7be57f Mon Sep 17 00:00:00 2001 From: alexandergetka Date: Mon, 12 Sep 2022 14:28:26 -0400 Subject: [PATCH 2/5] Update linux-makeself to avoid weirdness --- scripts/linux-makeself | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/linux-makeself b/scripts/linux-makeself index 92a5e27ab..d819628c6 100755 --- a/scripts/linux-makeself +++ b/scripts/linux-makeself @@ -121,7 +121,8 @@ install_captk () { printf "\n" fi - # Last case + # Last case -- need to sleep first to avoid some weird behavior where it doesn't catch the existence of the file + sleep 3 chmod +x ${target_dir}/CaPTk/${ver}/CaPTk-${ver}.bin if [ $? -ne 0 ]; then echo "WARNING: It appears as if something is wrong with your installation. Please make sure there is enough room on your disk, and that CaPTk-${ver}.bin is present under ./CaPTk" 1>&2 From c8054fb510bd5c23ce816b5d313502186c07c515 Mon Sep 17 00:00:00 2001 From: alexandergetka Date: Mon, 12 Sep 2022 14:45:36 -0400 Subject: [PATCH 3/5] Update docs --- 3_HowToGuides.txt | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/3_HowToGuides.txt b/3_HowToGuides.txt index 42296a488..5752d832f 100644 --- a/3_HowToGuides.txt +++ b/3_HowToGuides.txt @@ -616,6 +616,33 @@ This application provides the detection of EGFRvIII mutation status of de nov -# Co-registered Multimodal MRI: T1, T1-Gd, T2, T2-FLAIR, DTI-AX, DTI-FA, DTI-RAD, DTI-TR, DSC-PH, DSC-PSR, DSC-rCBV. -# Segmentation labels of the tumor sub-regions: Non-enhancing tumor core (Label=1), Enhancing tumor core (Label=4), as well as the Edema (Label=2) -# Segmentation labels in a common atlas space: Non-enhancing tumor core (Label=1), Enhancing tumor core (Label=4), Edema (Label=2), as well as the Ventricle (Label=7) + +Standard Atlas reference: + +Value | Region +--------|------------- +1 | Right frontal lobe +2 | Right temporal lobe +3 | Left temporal lobe +4 | Left thalamus +5 | Right parietal lobe +6 | Left insula +7 | Right basal ganglia +8 | Right occipital lobe +9 | Left basal ganglia +10 | corpus callosum +11 | Left frontal lobe +12 | Left parietal lobe +13 | Left occipital lobe +14 | brain stem +15 | Right thalamus +16 | Right fornix +17 | Left cingulate region +18 | Left fornix +19 | Right insula +20 | cerebellum +21 | Right cingulate region + -# Clinical data: A csv file having patient's demographics (Note that the CSV file should be in ASCII format). Should have age (in first column) and EGFRvIII status (in second column, binarized values like 0 and 1) for training a new model, and age only for mutation detection of new patients. -# The data for each patient should be organized in the following directory structure. When running in the command-line, filenames must include words in BOLD to be identified as respective required files. - Subject_ID @@ -681,6 +708,33 @@ This application facilitates the users to generate population atlases for patien REQUIREMENTS: -# Segmentation labels of the tumor sub-regions: Non-enhancing tumor core (Label=1), Enhancing tumor core (Label=4) -# Standard atlas: A standard atlas to map all the patients in a unified space. Atlas should have region numbers in the ascending order, such as 1,2,3,...,n. + +Standard Atlas reference: + +Value | Region +--------|------------- +1 | Right frontal lobe +2 | Right temporal lobe +3 | Left temporal lobe +4 | Left thalamus +5 | Right parietal lobe +6 | Left insula +7 | Right basal ganglia +8 | Right occipital lobe +9 | Left basal ganglia +10 | corpus callosum +11 | Left frontal lobe +12 | Left parietal lobe +13 | Left occipital lobe +14 | brain stem +15 | Right thalamus +16 | Right fornix +17 | Left cingulate region +18 | Left fornix +19 | Right insula +20 | cerebellum +21 | Right cingulate region + -# Batch File: A csv file having patients' IDs, group (atlas) number, and path to the actual segmented image. Atlas numbers should be in the ascending order, such as 1,2,3,...,n. Segmentation images should be in the same space as the standard atlas (Note that the CSV file should be in ASCII format, and the CSV file should have the following column headers in any sequence: PATIENT_IDS,IMAGES, ATLAS_LABELS). USAGE: From 167b06b85cd001f74170d1662c71c52869446e0e Mon Sep 17 00:00:00 2001 From: alexandergetka Date: Mon, 12 Sep 2022 14:46:03 -0400 Subject: [PATCH 4/5] Update docs --- docs/1_credits.html | 2 +- docs/BraTS_Metrics.html | 2 +- docs/BreastCancer_LIBRA.html | 2 +- docs/BreastCancer_breastSegmentation.html | 2 +- docs/BreastCancer_texture.html | 2 +- docs/Diffusion_Derivatives.html | 2 +- docs/Download.html | 2 +- docs/FAQ.html | 2 +- docs/Getting_Started.html | 2 +- docs/Glioblastoma_Atlas.html | 51 ++++++++++++++++++++++- docs/Glioblastoma_Confetti.html | 2 +- docs/Glioblastoma_Directionality.html | 2 +- docs/Glioblastoma_EGFRvIII.html | 51 ++++++++++++++++++++++- docs/Glioblastoma_PHI.html | 2 +- docs/Glioblastoma_Pseudoprogression.html | 2 +- docs/Glioblastoma_Recurrence.html | 2 +- docs/Glioblastoma_Survival.html | 2 +- docs/Glioblastoma_WhiteStripe.html | 2 +- docs/How_To_Guides.html | 2 +- docs/ITCR_Connectivity.html | 2 +- docs/Installation.html | 2 +- docs/LungCancer_SBRT.html | 2 +- docs/PCA_Extraction.html | 2 +- docs/People.html | 2 +- docs/Perfusion_Alignment.html | 2 +- docs/Perfusion_Derivatives.html | 2 +- docs/ReleaseNotes.html | 2 +- docs/Science.html | 2 +- docs/Technical_Reference.html | 2 +- docs/Training_Module.html | 2 +- docs/ht_FeatureExtraction.html | 2 +- docs/ht_Preprocessing.html | 2 +- docs/ht_Segmentation.html | 2 +- docs/ht_SpecialApps.html | 2 +- docs/ht_utilities.html | 2 +- docs/index.html | 2 +- docs/index.qhp | 2 +- docs/pages.html | 2 +- docs/preprocessing_bias.html | 2 +- docs/preprocessing_brats.html | 2 +- docs/preprocessing_dcm2nii.html | 2 +- docs/preprocessing_histoMatch.html | 2 +- docs/preprocessing_reg.html | 2 +- docs/preprocessing_susan.html | 2 +- docs/preprocessing_zScoreNorm.html | 2 +- docs/seg_DL.html | 2 +- docs/seg_GeoTrain.html | 2 +- docs/seg_Geodesic.html | 2 +- docs/seg_SNAP.html | 2 +- docs/tr_FeatureExtraction.html | 2 +- docs/tr_integration.html | 2 +- 51 files changed, 149 insertions(+), 51 deletions(-) diff --git a/docs/1_credits.html b/docs/1_credits.html index 83079519c..f69ec3c71 100644 --- a/docs/1_credits.html +++ b/docs/1_credits.html @@ -12,7 +12,7 @@

- Cancer Imaging Phenomics Toolkit (CaPTk) v.1.9.0  | Contact: software@cbica.upenn.edu + Cancer Imaging Phenomics Toolkit (CaPTk) v.1.9.1  | Contact: software@cbica.upenn.edu
Disclaimer: CaPTk has been designed for non-commercial research purposes only and has not been reviewed or approved by the Food and Drug Administration (FDA). It is not intended or recommended for clinical application.
diff --git a/docs/BraTS_Metrics.html b/docs/BraTS_Metrics.html index fa613d9e8..222f64a49 100644 --- a/docs/BraTS_Metrics.html +++ b/docs/BraTS_Metrics.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
diff --git a/docs/BreastCancer_LIBRA.html b/docs/BreastCancer_LIBRA.html index 13833544f..e0fc6c6ae 100644 --- a/docs/BreastCancer_LIBRA.html +++ b/docs/BreastCancer_LIBRA.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
diff --git a/docs/BreastCancer_breastSegmentation.html b/docs/BreastCancer_breastSegmentation.html index a1204b9ec..85ea5d8c9 100644 --- a/docs/BreastCancer_breastSegmentation.html +++ b/docs/BreastCancer_breastSegmentation.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
diff --git a/docs/BreastCancer_texture.html b/docs/BreastCancer_texture.html index 025e5928e..9b19b0d8b 100644 --- a/docs/BreastCancer_texture.html +++ b/docs/BreastCancer_texture.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
diff --git a/docs/Diffusion_Derivatives.html b/docs/Diffusion_Derivatives.html index 09396d439..e49e99339 100644 --- a/docs/Diffusion_Derivatives.html +++ b/docs/Diffusion_Derivatives.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
diff --git a/docs/Download.html b/docs/Download.html index 085a0c7f6..8aeba0103 100644 --- a/docs/Download.html +++ b/docs/Download.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
diff --git a/docs/FAQ.html b/docs/FAQ.html index 1d9d112ed..2c5ff08b1 100644 --- a/docs/FAQ.html +++ b/docs/FAQ.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
diff --git a/docs/Getting_Started.html b/docs/Getting_Started.html index 4312f9d7f..78953e76f 100644 --- a/docs/Getting_Started.html +++ b/docs/Getting_Started.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
diff --git a/docs/Glioblastoma_Atlas.html b/docs/Glioblastoma_Atlas.html index c784cee1e..479f0c633 100644 --- a/docs/Glioblastoma_Atlas.html +++ b/docs/Glioblastoma_Atlas.html @@ -30,7 +30,7 @@
Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
@@ -65,6 +65,55 @@

REQUIREMENTS:

  1. Segmentation labels of the tumor sub-regions: Non-enhancing tumor core (Label=1), Enhancing tumor core (Label=4)
  2. Standard atlas: A standard atlas to map all the patients in a unified space. Atlas should have region numbers in the ascending order, such as 1,2,3,...,n.
  3. +
+

Standard Atlas reference:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value Region
1 Right frontal lobe
2 Right temporal lobe
3 Left temporal lobe
4 Left thalamus
5 Right parietal lobe
6 Left insula
7 Right basal ganglia
8 Right occipital lobe
9 Left basal ganglia
10 corpus callosum
11 Left frontal lobe
12 Left parietal lobe
13 Left occipital lobe
14 brain stem
15 Right thalamus
16 Right fornix
17 Left cingulate region
18 Left fornix
19 Right insula
20 cerebellum
21 Right cingulate region
+
  1. Batch File: A csv file having patients' IDs, group (atlas) number, and path to the actual segmented image. Atlas numbers should be in the ascending order, such as 1,2,3,...,n. Segmentation images should be in the same space as the standard atlas (Note that the CSV file should be in ASCII format, and the CSV file should have the following column headers in any sequence: PATIENT_IDS,IMAGES, ATLAS_LABELS).

USAGE:

    diff --git a/docs/Glioblastoma_Confetti.html b/docs/Glioblastoma_Confetti.html index a9565733a..46d5d0600 100644 --- a/docs/Glioblastoma_Confetti.html +++ b/docs/Glioblastoma_Confetti.html @@ -30,7 +30,7 @@
    Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
    diff --git a/docs/Glioblastoma_Directionality.html b/docs/Glioblastoma_Directionality.html index ae0b7e008..746b65bbe 100644 --- a/docs/Glioblastoma_Directionality.html +++ b/docs/Glioblastoma_Directionality.html @@ -30,7 +30,7 @@
    Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
    diff --git a/docs/Glioblastoma_EGFRvIII.html b/docs/Glioblastoma_EGFRvIII.html index a79417a49..a7303cbbb 100644 --- a/docs/Glioblastoma_EGFRvIII.html +++ b/docs/Glioblastoma_EGFRvIII.html @@ -30,7 +30,7 @@
    Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
    @@ -66,6 +66,55 @@
  1. Co-registered Multimodal MRI: T1, T1-Gd, T2, T2-FLAIR, DTI-AX, DTI-FA, DTI-RAD, DTI-TR, DSC-PH, DSC-PSR, DSC-rCBV.
  2. Segmentation labels of the tumor sub-regions: Non-enhancing tumor core (Label=1), Enhancing tumor core (Label=4), as well as the Edema (Label=2)
  3. Segmentation labels in a common atlas space: Non-enhancing tumor core (Label=1), Enhancing tumor core (Label=4), Edema (Label=2), as well as the Ventricle (Label=7)
  4. +
+

Standard Atlas reference:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Value Region
1 Right frontal lobe
2 Right temporal lobe
3 Left temporal lobe
4 Left thalamus
5 Right parietal lobe
6 Left insula
7 Right basal ganglia
8 Right occipital lobe
9 Left basal ganglia
10 corpus callosum
11 Left frontal lobe
12 Left parietal lobe
13 Left occipital lobe
14 brain stem
15 Right thalamus
16 Right fornix
17 Left cingulate region
18 Left fornix
19 Right insula
20 cerebellum
21 Right cingulate region
+
  1. Clinical data: A csv file having patient's demographics (Note that the CSV file should be in ASCII format). Should have age (in first column) and EGFRvIII status (in second column, binarized values like 0 and 1) for training a new model, and age only for mutation detection of new patients.
  2. The data for each patient should be organized in the following directory structure. When running in the command-line, filenames must include words in BOLD to be identified as respective required files.
    • Subject_ID
        diff --git a/docs/Glioblastoma_PHI.html b/docs/Glioblastoma_PHI.html index 9b7b69175..bfcbc3a43 100644 --- a/docs/Glioblastoma_PHI.html +++ b/docs/Glioblastoma_PHI.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Glioblastoma_Pseudoprogression.html b/docs/Glioblastoma_Pseudoprogression.html index ee86844b4..d951fa527 100644 --- a/docs/Glioblastoma_Pseudoprogression.html +++ b/docs/Glioblastoma_Pseudoprogression.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Glioblastoma_Recurrence.html b/docs/Glioblastoma_Recurrence.html index 8871995ce..b0feb1f9c 100644 --- a/docs/Glioblastoma_Recurrence.html +++ b/docs/Glioblastoma_Recurrence.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Glioblastoma_Survival.html b/docs/Glioblastoma_Survival.html index 2bd1a05de..f4a65adaf 100644 --- a/docs/Glioblastoma_Survival.html +++ b/docs/Glioblastoma_Survival.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Glioblastoma_WhiteStripe.html b/docs/Glioblastoma_WhiteStripe.html index c5bf0e7e9..2875fcafc 100644 --- a/docs/Glioblastoma_WhiteStripe.html +++ b/docs/Glioblastoma_WhiteStripe.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/How_To_Guides.html b/docs/How_To_Guides.html index cdae2756e..0a2b7f553 100644 --- a/docs/How_To_Guides.html +++ b/docs/How_To_Guides.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/ITCR_Connectivity.html b/docs/ITCR_Connectivity.html index f6eebcf9c..abafdd169 100644 --- a/docs/ITCR_Connectivity.html +++ b/docs/ITCR_Connectivity.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Installation.html b/docs/Installation.html index 136f4b57e..c252c0987 100644 --- a/docs/Installation.html +++ b/docs/Installation.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/LungCancer_SBRT.html b/docs/LungCancer_SBRT.html index 67157568b..73fee3af5 100644 --- a/docs/LungCancer_SBRT.html +++ b/docs/LungCancer_SBRT.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/PCA_Extraction.html b/docs/PCA_Extraction.html index 286e23609..535d436b6 100644 --- a/docs/PCA_Extraction.html +++ b/docs/PCA_Extraction.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/People.html b/docs/People.html index 49e165b1c..6cbe70533 100644 --- a/docs/People.html +++ b/docs/People.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Perfusion_Alignment.html b/docs/Perfusion_Alignment.html index 726cd9434..1f8bfb29f 100644 --- a/docs/Perfusion_Alignment.html +++ b/docs/Perfusion_Alignment.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Perfusion_Derivatives.html b/docs/Perfusion_Derivatives.html index 3e019c949..0c6825d55 100644 --- a/docs/Perfusion_Derivatives.html +++ b/docs/Perfusion_Derivatives.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index aa08ca074..19fb36a47 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Science.html b/docs/Science.html index efa6af3f8..f79a83e45 100644 --- a/docs/Science.html +++ b/docs/Science.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Technical_Reference.html b/docs/Technical_Reference.html index 12a27ef48..13ebce539 100644 --- a/docs/Technical_Reference.html +++ b/docs/Technical_Reference.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/Training_Module.html b/docs/Training_Module.html index 115247749..9b6b76629 100644 --- a/docs/Training_Module.html +++ b/docs/Training_Module.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/ht_FeatureExtraction.html b/docs/ht_FeatureExtraction.html index 5962eb40d..ecbcdbb4e 100644 --- a/docs/ht_FeatureExtraction.html +++ b/docs/ht_FeatureExtraction.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/ht_Preprocessing.html b/docs/ht_Preprocessing.html index 840b3293c..535bb6ed6 100644 --- a/docs/ht_Preprocessing.html +++ b/docs/ht_Preprocessing.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/ht_Segmentation.html b/docs/ht_Segmentation.html index d1cbc3f1e..2b60234c1 100644 --- a/docs/ht_Segmentation.html +++ b/docs/ht_Segmentation.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/ht_SpecialApps.html b/docs/ht_SpecialApps.html index cf80084b6..74deba9e9 100644 --- a/docs/ht_SpecialApps.html +++ b/docs/ht_SpecialApps.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/ht_utilities.html b/docs/ht_utilities.html index f6fcbd4a2..e0c00e44f 100644 --- a/docs/ht_utilities.html +++ b/docs/ht_utilities.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/index.html b/docs/index.html index 01608f1b6..2cf2c07a2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/index.qhp b/docs/index.qhp index 9f1c795ae..ead072b86 100644 --- a/docs/index.qhp +++ b/docs/index.qhp @@ -5,7 +5,7 @@ doxygen -
        +
        diff --git a/docs/pages.html b/docs/pages.html index 8381f268f..cadea5529 100644 --- a/docs/pages.html +++ b/docs/pages.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/preprocessing_bias.html b/docs/preprocessing_bias.html index 8d42030ba..516d80356 100644 --- a/docs/preprocessing_bias.html +++ b/docs/preprocessing_bias.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/preprocessing_brats.html b/docs/preprocessing_brats.html index 3a165dffa..8d403b09d 100644 --- a/docs/preprocessing_brats.html +++ b/docs/preprocessing_brats.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/preprocessing_dcm2nii.html b/docs/preprocessing_dcm2nii.html index a7085606d..0167af2e4 100644 --- a/docs/preprocessing_dcm2nii.html +++ b/docs/preprocessing_dcm2nii.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/preprocessing_histoMatch.html b/docs/preprocessing_histoMatch.html index f9cf6510a..e3298bd68 100644 --- a/docs/preprocessing_histoMatch.html +++ b/docs/preprocessing_histoMatch.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/preprocessing_reg.html b/docs/preprocessing_reg.html index d11f2ce1b..c8959b24e 100644 --- a/docs/preprocessing_reg.html +++ b/docs/preprocessing_reg.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/preprocessing_susan.html b/docs/preprocessing_susan.html index f7b60cd2a..e11066b5b 100644 --- a/docs/preprocessing_susan.html +++ b/docs/preprocessing_susan.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/preprocessing_zScoreNorm.html b/docs/preprocessing_zScoreNorm.html index b8cbc785f..6fa1ae339 100644 --- a/docs/preprocessing_zScoreNorm.html +++ b/docs/preprocessing_zScoreNorm.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/seg_DL.html b/docs/seg_DL.html index 42f197457..d40d1af37 100644 --- a/docs/seg_DL.html +++ b/docs/seg_DL.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/seg_GeoTrain.html b/docs/seg_GeoTrain.html index c30276c7e..553784c33 100644 --- a/docs/seg_GeoTrain.html +++ b/docs/seg_GeoTrain.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/seg_Geodesic.html b/docs/seg_Geodesic.html index 209f3f1d1..b410655b7 100644 --- a/docs/seg_Geodesic.html +++ b/docs/seg_Geodesic.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/seg_SNAP.html b/docs/seg_SNAP.html index b849e8675..9ea23ef44 100644 --- a/docs/seg_SNAP.html +++ b/docs/seg_SNAP.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/tr_FeatureExtraction.html b/docs/tr_FeatureExtraction.html index 4ef19fa89..08e612097 100644 --- a/docs/tr_FeatureExtraction.html +++ b/docs/tr_FeatureExtraction.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        diff --git a/docs/tr_integration.html b/docs/tr_integration.html index f0f81a151..fa710d865 100644 --- a/docs/tr_integration.html +++ b/docs/tr_integration.html @@ -30,7 +30,7 @@
        Cancer Imaging Phenomics Toolkit (CaPTk) -  1.9.0 +  1.9.1
        From 0986e704a274016d449a0feac88cbf092b13362a Mon Sep 17 00:00:00 2001 From: alexandergetka Date: Mon, 12 Sep 2022 16:15:46 -0400 Subject: [PATCH 5/5] fixes to argument passing --- src/applications/BraTSPipeline.cxx | 4 ++-- src/view/gui/fMainWindow.cpp | 17 +++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/applications/BraTSPipeline.cxx b/src/applications/BraTSPipeline.cxx index a65126ad6..ebf234e3d 100644 --- a/src/applications/BraTSPipeline.cxx +++ b/src/applications/BraTSPipeline.cxx @@ -44,7 +44,7 @@ int main(int argc, char** argv) parser.getParameterValue("fl", inputFiles["FL"]); parser.getParameterValue("o", outputDir); - if (!cbica::isDir) + if (!cbica::isDir(outputDir)) { cbica::createDir(outputDir); } @@ -289,7 +289,7 @@ int main(int argc, char** argv) if (std::system((greedyPathAndDim + fullCommand).c_str()) != 0) { std::cerr << "Something went wrong when registering " << modality - << "to T1CE image, please re-try or contact sofware@cbica.upenn.edu.\n"; + << "to T1CE image, please re-try or contact software@cbica.upenn.edu.\n"; return EXIT_FAILURE; } } // end outputMatFiles[modality] check diff --git a/src/view/gui/fMainWindow.cpp b/src/view/gui/fMainWindow.cpp index c411c291c..4215fceaf 100644 --- a/src/view/gui/fMainWindow.cpp +++ b/src/view/gui/fMainWindow.cpp @@ -8959,20 +8959,21 @@ void fMainWindow::CallBraTSPipeline(const std::string t1ceImage, const std::stri { if (!t1ceImage.empty() && !t1Image.empty() && !t2Image.empty() && !flImage.empty() && !outputDir.empty()) { - // Escaped in quotes in case CaPTk is installed in a path with spaces (todo: verify this for all apps called via cli from gui) - auto bratsPipelineExe = "\"" + getApplicationPath("BraTSPipeline") + "\""; + + auto bratsPipelineExe = getApplicationPath("BraTSPipeline"); if (!cbica::exists(bratsPipelineExe)) { ShowErrorMessage("Could not find the BraTSPipeline executable"); return; } - + // Escaped in quotes in case CaPTk is installed in a path with spaces (todo: verify this for all apps called via cli from gui) + //bratsPipelineExe = "\"" + bratsPipelineExe + "\""; QStringList args; - args << "-t1" << "\"" << t1Image.c_str() << "\"" << - "-t1c" << "\"" << t1ceImage.c_str() << "\"" << - "-t2" << "\"" << t2Image.c_str() << "\"" << - "-fl" << "\"" << flImage.c_str() << "\"" << - "-o" << "\"" << outputDir.c_str() << "\""; + args << "-t1" << QString::fromStdString(std::string("\"") + t1Image.c_str() + "\"") << + "-t1c" << QString::fromStdString(std::string("\"") + t1ceImage.c_str() + "\"") << + "-t2" << QString::fromStdString(std::string("\"") + t2Image.c_str() + "\"") << + "-fl" << QString::fromStdString(std::string("\"") + flImage.c_str() + "\"") << + "-o" << QString::fromStdString(std::string("\"") + outputDir.c_str() + "\""); QMessageBox *box = new QMessageBox(QMessageBox::Question, "Long running Application", "BraTS Pipeline takes ~30 minutes to run, during which CaPTk will not be responsive; press OK to continue...",