32da2c9 | Joost van Griethuysen | 12 July 2017, 18:12:28 UTC | Merge pull request #271 from JoostJM/update-ref Update reference, move section customization | 12 July 2017, 18:12:28 UTC |
8ec05ab | Joost van Griethuysen | 12 July 2017, 15:52:00 UTC | DOCS: Update reference, move section customization Update the reference to reflect it is accepted for pulication in Cancer Research. Move the section on customizing the extraction (and structuring the parameter file) to the top level to make it more visible. | 12 July 2017, 15:58:10 UTC |
21375ab | Joost van Griethuysen | 12 July 2017, 14:44:21 UTC | Merge pull request #270 from JoostJM/Remove-circular-import Remove circular import | 12 July 2017, 14:44:21 UTC |
17ec108 | Joost van Griethuysen | 05 July 2017, 15:44:23 UTC | ENH: Remove circular import `__init__.py` imports `base`, while `base` imports `radiomics` (`__init__.py`). However, base is only needed for the inheritance check in `getFeatureClasses`, change this to allow removal of the circular import. | 05 July 2017, 15:44:23 UTC |
3e09103 | Joost van Griethuysen | 28 June 2017, 15:42:43 UTC | Merge pull request #265 from JoostJM/remove-empty-row-column-texture Remove empty row column texture | 28 June 2017, 15:42:43 UTC |
8dcfc68 | Joost van Griethuysen | 28 June 2017, 15:34:13 UTC | Merge pull request #264 from JoostJM/update-eigenvector-decomposition Replace SimpleITK's eigenvalue decomposition with a python one | 28 June 2017, 15:34:13 UTC |
586718c | Joost van Griethuysen | 27 June 2017, 15:08:33 UTC | STYL: Remove unused variable | 27 June 2017, 15:08:33 UTC |
01dd85f | Joost van Griethuysen | 01 June 2017, 08:21:08 UTC | DOCS: Document changes | 16 June 2017, 08:00:13 UTC |
6fa4bcf | Joost van Griethuysen | 16 June 2017, 07:53:29 UTC | DOCS: Document changes | 16 June 2017, 07:58:53 UTC |
e4045b2 | Joost van Griethuysen | 12 June 2017, 16:10:32 UTC | BUG: Replace SimpleITK's eigenvalue decomposition with a python one The eigenvalue decomposition calculation does not account for non-consecutive voxels in a line (along x dimension), causing the calculated values for the principal moments to be erroneous when a lesion has 'holes' in it. Furthermore, it assumes that all voxels on line x = i have identical y and z coordinates, but this is not necessarily the case. | 16 June 2017, 07:49:34 UTC |
e3a6240 | Joost van Griethuysen | 30 May 2017, 09:35:37 UTC | ENH: Remove unsused rows and columns from texture matrices Before computing features, remove unused rows and columns from the texture matrices and update the i and j vectors accordingly. This reduces the size of the matrices, thereby both reducing the computation time for very large segmentations and reducing the memory requirements. | 09 June 2017, 08:51:00 UTC |
0c0d2fd | Joost van Griethuysen | 07 June 2017, 10:56:16 UTC | Merge pull request #262 from JoostJM/script-update Add case-specific labels in batchprocessing | 07 June 2017, 10:56:16 UTC |
2a4a427 | Joost van Griethuysen | 29 May 2017, 16:07:56 UTC | ENH: Add case-specific labels in batchprocessing Add functionality to allow users to specify different labels for different combinations in the input file for batchprocessing. This is achieved through an additonal (optional) column ``Label``. Integer values in this column then take precedence over any other form of label customization (e.g. specifying the label on the command line or in the parameter file). | 01 June 2017, 11:10:14 UTC |
1d8e74e | Joost van Griethuysen | 01 June 2017, 11:08:33 UTC | Merge pull request #261 from JoostJM/symmetrical-glcm-bug Fix bug when creating symmetrical GLCM | 01 June 2017, 11:08:33 UTC |
9aa8c01 | Joost van Griethuysen | 31 May 2017, 13:11:01 UTC | DOCS: Document symmetrical GLCM bugfix | 31 May 2017, 13:11:26 UTC |
d8032f3 | Joost van Griethuysen | 30 May 2017, 13:44:53 UTC | BUG: Fix symmetrical GLCM To make GLCM symmetrical, the python code performed an inplace addition: `P_glcm += numpy.transpose(P_glcm, (1, 0, 2))`. However, when the matrix exceeds a certain size, this produces buggy behaviour, where for some elements, the calculated value equals `P_glcm += P_glcm + numpy.transpose(P_glcm, (1, 0, 2))`. This is caused by the fact that numpy.transpose returns a *view*, and not a copy of the array. Then, if the additions have to be processed in multiple chunks, the addition will become erroneous. Use `numpy.copy` to get a transposed copy of the GLCM and not just a view of the GLCM. | 30 May 2017, 13:57:00 UTC |
fd8abd4 | Joost van Griethuysen | 30 May 2017, 08:12:25 UTC | PyRadiomics 1.2.0 | 30 May 2017, 08:12:25 UTC |
737ac26 | Joost van Griethuysen | 30 May 2017, 07:40:06 UTC | PyRadiomics 1.2.0 | 30 May 2017, 07:45:16 UTC |
f8f65df | Andrey Fedorov | 29 May 2017, 18:42:48 UTC | Merge pull request #260 from fedorov/use-corrected-mask BUG: use resampled mask for analysis | 29 May 2017, 18:42:48 UTC |
405f77b | Joost van Griethuysen | 29 May 2017, 16:28:07 UTC | BUG: Correct style, apply changes to examples Apply style changes to prevent flake8 errors. Apply changes in usage to the respective examples / scripts that make use of the `checkMask` function. Additionally, document the changes this PR makes to PyRadiomics in the changelog. | 29 May 2017, 18:16:36 UTC |
c40939e | Andrey Fedorov | 25 May 2017, 20:24:10 UTC | BUG: update test | 29 May 2017, 18:16:36 UTC |
7233b77 | Andrey Fedorov | 25 May 2017, 20:07:18 UTC | BUG: use resampled mask for analysis This resolves #259 In the situation when the mask was corrected to compensate for the differences between the image and mask geometry, the updated mask was not propagated to be used for feature calculation. | 29 May 2017, 18:16:35 UTC |
75baf7b | Joost van Griethuysen | 29 May 2017, 06:49:23 UTC | Merge pull request #257 from JoostJM/update-c-glszm Enhance C GLSZM | 29 May 2017, 06:49:23 UTC |
1555f0e | Joost van Griethuysen | 24 May 2017, 15:00:18 UTC | DOCS: Document changes | 24 May 2017, 15:00:18 UTC |
267d04d | Joost van Griethuysen | 23 May 2017, 15:16:47 UTC | ENH: Implement C extension for diameters Add a C extension function to calculate maximum diameters in 2D and 3D. Additionally, python implementation of maximum diameter can return incorrect values in some edge cases. After discussion, we decided to remove support for python calculation of maximum diameters and have PyRadiomics return NaN when a user tries to compute these features in full-python mode. | 24 May 2017, 14:57:51 UTC |
a88ae7d | Joost van Griethuysen | 24 May 2017, 12:07:22 UTC | DOCS: Update requirements in documentation Update documentation to reflect changes made in #231 | 24 May 2017, 12:07:22 UTC |
2184ba0 | Joost van Griethuysen | 22 May 2017, 13:05:59 UTC | ENH: Enhance C GLSZM Enhance C extension algorithm for calculating GLSZM. Instead of searching over entire image for voxels to process when growing a region, instantiate a stack (max size equal to number of voxels) to hold indices for voxels that have to be processed for the current region. When an unprocessed voxel, belonging to the ROI is found, a region is started by pushing the index of that voxels to the stack. Then a loop is started where the last added voxel in the stack is popped and its neighbours are checked. If unprocessed and belonging to the same region (same gray level), indices for those voxels are also pushed to the stack. The loop then runs until stack is exhausted (i.e. no new neighbours available, indicating the region is complete). The number of loops are counted and are equal to the size of the zone. Reset data type for mask from signed char back to char, as negative values are not needed anymore. | 24 May 2017, 09:15:24 UTC |
1b7810d | Joost van Griethuysen | 24 May 2017, 09:14:02 UTC | Merge pull request #255 from JoostJM/add-changelog Add changelog | 24 May 2017, 09:14:02 UTC |
8ea8868 | Joost van Griethuysen | 22 May 2017, 09:18:52 UTC | DOCS: Update CONTRIBUTING Update `CONTRIBUTING.md` to instruct developers to add their changes to the changelog. Also update to reflect updated testing, changes in documenation, etc. | 22 May 2017, 14:34:03 UTC |
bc91e7d | Joost van Griethuysen | 16 May 2017, 12:58:29 UTC | DOCS: Add changelog Add CHANGES.rst containing the release notes of the different PyRadiomics versions. Add changelog.rst to enable linking to the release notes when autogenerating the documentation. | 22 May 2017, 14:34:03 UTC |
ab0c8fa | Joost van Griethuysen | 22 May 2017, 14:30:41 UTC | BUG: Fix incorrect name for settings in feature extractor In `batchprocessing.py` is a call to get the current enabled settings. However, this variable name has been changed recently (0602089). Change the name in batchprocessing accordingly. | 22 May 2017, 14:30:41 UTC |
23cb5de | Joost van Griethuysen | 17 May 2017, 14:45:49 UTC | Merge pull request #248 from JoostJM/NA-feature-handling Define return values for 0-division errors etc | 17 May 2017, 14:45:49 UTC |
49390c7 | Joost van Griethuysen | 25 April 2017, 14:44:34 UTC | ENH: Define return values for 0-division errors For some features the formula would return NaN in specific cases (e.g. a flat region). Document and return predefined values in these cases. | 16 May 2017, 08:20:29 UTC |
cb35d66 | Joost van Griethuysen | 16 May 2017, 07:52:24 UTC | Merge pull request #252 from JoostJM/checkMask-update Catch error in case of image/mask geometry mismatch | 16 May 2017, 07:52:24 UTC |
1b69bdd | Joost van Griethuysen | 15 May 2017, 15:30:15 UTC | BUG: notebook in python 3 failing The helloRadiomics notebook was failing due to an error that was thrown by the Click progressbar. Remove the Click progressbar example, as it also does not render the progressbar if the output is not a terminal (as is the case in a jupyter notebook). | 16 May 2017, 06:39:08 UTC |
5f83aba | Joost van Griethuysen | 11 May 2017, 07:41:36 UTC | ENH: Add mask correction and customizable tolerance Add two parameter to specify how to handle geometry mismatch between image and mask. `geometryTolerance` controls the default global tolerance used by SimpleITK and set in ProcessObject. `correctMask` will attempt to resample the mask to the image geometry if a mismatch occurs. Prior to resampling, the mask is checked for ROI validity. Update documentation accordingly. | 15 May 2017, 13:05:45 UTC |
9be3459 | Jean-Baptiste VIMORT | 08 May 2017, 19:47:14 UTC | STYLE: Correction of the Short Run Emphasis formula Correction of a i that should be a j in the SRE formula in the documentation. | 15 May 2017, 12:01:45 UTC |
0602089 | Joost van Griethuysen | 10 May 2017, 15:47:21 UTC | DOCS: Restructure documentation on customization Add section on customizing the extraction in the "Usage" section. Here, specify what and how the extraction can be customized in PyRadiomics. For this, move the documentation of the possible settings from the docstring in the featureextractor module to this new section. Also move the documentation that explains how the parameter file works. Change the name of `self.kwargs` to `self.settings` in the feature extractor module, this better reflects what that variable holds. Make the distances setting only affect the GLCM (distance to neighbor should always be 1 in GLRLM and GLSZM). | 15 May 2017, 11:56:51 UTC |
1cca7c7 | Joost van Griethuysen | 09 May 2017, 10:19:42 UTC | DOCS: Document geometry errors and setting up logging Add documentation on what goes wrong in case of geometry errors and how to fix it. Also include reference to this in the error message that is logged. Add the SimpleITK stacktrace as a debug-level log message in case of geometry errors. Additionally, add more extensive documentation on how to set up logging (both to output and/or log file) in interactive and commandline usage of PyRadiomics. Remove global PyRadiomics Function `debug`, the functionality exposed by this function is already covered by `setVerbosity`. | 15 May 2017, 11:56:51 UTC |
328ee02 | Joost van Griethuysen | 03 May 2017, 14:59:28 UTC | ENH: Catch error in case of image/mask geometry mismatch Catch the error in checkMask and print out user-friendly error message. Then return None to prevent further feature extraction with this invalid image/mask combination. | 15 May 2017, 11:56:50 UTC |
e047557 | Joost van Griethuysen | 15 May 2017, 11:55:25 UTC | Merge pull request #254 from JoostJM/restructure-folders Restructure folders | 15 May 2017, 11:55:25 UTC |
b2bbe1c | Joost van Griethuysen | 09 May 2017, 07:23:19 UTC | TEST: Use different Notebooks while testing in CircleCI Update the config.yml to test the hello* notebooks and the PyRadiomicsExample.ipynb, which more extensively tests different parts of the toolbox and different ways the toolbox can be used. | 11 May 2017, 14:29:37 UTC |
b668158 | Joost van Griethuysen | 08 May 2017, 14:00:41 UTC | ENH: Restructure Folders Restructure folders to better catalog the scripts and jupyter notebooks not part of the pyradiomics core code. Example scripts, notebooks and example parameter files are now stored in the directory tree under `examples`. The `bin` folder now only contains some scripts useful for developers and for specific use cases. These include a script to generate and add a baseline for a new featureclass and a script to resample a mask to the image geometry. Update the references to these files where necessary in the documentation. | 09 May 2017, 07:31:07 UTC |
9e1e847 | Steve Pieper | 28 April 2017, 13:48:35 UTC | Fix subclass name in custom feature example Plus some extra edits to clarify the example. | 28 April 2017, 13:48:35 UTC |
df82481 | Joost van Griethuysen | 26 April 2017, 08:41:08 UTC | STYL: Correct typo | 26 April 2017, 08:41:08 UTC |
8345a25 | Joost van Griethuysen | 26 April 2017, 08:33:27 UTC | Merge pull request #249 from Radiomics/doc-update-simpleitk-install-instructions docs/installation: Remove SimpleITK workaround | 26 April 2017, 08:33:27 UTC |
87b7db4 | Joost van Griethuysen | 26 April 2017, 06:49:46 UTC | Merge pull request #246 from JoostJM/update-csv-generators Update CSV Generators | 26 April 2017, 06:49:46 UTC |
7760927 | Jean-Christophe Fillion-Robin | 25 April 2017, 22:35:26 UTC | docs/installation: Remove SimpleITK workaround Wheels are now available on PyPI for all supported architectures. Fixes #247 | 25 April 2017, 22:35:26 UTC |
a056b96 | Joost van Griethuysen | 25 April 2017, 11:32:53 UTC | BUG: Update CSV Generators Update scripts for generating input CSV to reflect recent changes made to the expected format for input CSV. | 25 April 2017, 11:32:53 UTC |
0d350fc | Joost van Griethuysen | 24 April 2017, 16:27:45 UTC | Merge pull request #233 from JoostJM/update-documentation Update documentation | 24 April 2017, 16:27:45 UTC |
209b4ab | Joost van Griethuysen | 24 April 2017, 09:30:26 UTC | DOCS: Update number of features Reflects recent changes to features. | 24 April 2017, 09:30:26 UTC |
b6d5c5e | Joost van Griethuysen | 24 April 2017, 08:17:24 UTC | FAQ: Add a FAQ about the cmatrices lib path (#244) | 24 April 2017, 09:28:15 UTC |
dee1738 | Joost van Griethuysen | 24 April 2017, 08:07:26 UTC | DOCS: Remove use of sudo In the installation intstructions on the README, index and installation sections, python installation commands used `sudo`, however this is not recommended and PyRadiomics should work with normal user level privileges. Therefore, remove the `sudo` command from the Linux command lines. | 24 April 2017, 09:28:15 UTC |
2042e27 | Joost van Griethuysen | 21 April 2017, 09:14:18 UTC | MATH: Remove SumVariance, rename SumVariance2 Remove the SumVariance feature and rename SumVariance2 to SumVariance. This is due to the fact that the original SumVariance in PyRadiomics was based on a literal interpretation of the definition in the Haralick paper, where it is possible that the reference to entropy instead of average was a typo (as in f7, it referred to f8 instead of f6). | 24 April 2017, 09:28:15 UTC |
ca7e30c | Joost van Griethuysen | 24 March 2017, 14:14:03 UTC | DOCS: Update documentation Change style of feature documentation to be more easily adaptable for a article supplement. Update ReadMe files in `ROOT` and in `ROOT\data`. Add additional FAQs. | 24 April 2017, 09:28:15 UTC |
2b72568 | Joost van Griethuysen | 24 April 2017, 09:23:31 UTC | Merge pull request #234 from JoostJM/shape-features Changes to shape features | 24 April 2017, 09:23:31 UTC |
90efc86 | Joost van Griethuysen | 24 April 2017, 09:17:27 UTC | Merge pull request #231 from Radiomics/reorganize-requirements requirements: Move nose and sphinx to dev requirements. See #230 | 24 April 2017, 09:17:27 UTC |
be2214c | Joost van Griethuysen | 24 April 2017, 08:47:10 UTC | TEST: Update CircleCI config to include requirements-dev Needed to run tests. | 24 April 2017, 08:47:10 UTC |
17000a6 | Joost van Griethuysen | 24 April 2017, 08:29:00 UTC | STYL: update manifest to not include `docs` folder | 24 April 2017, 08:35:21 UTC |
5849b72 | Jean-Christophe Fillion-Robin | 29 March 2017, 14:21:11 UTC | requirements: Move nose and sphinx to dev requirements. See #230 | 24 April 2017, 08:35:21 UTC |
b820c48 | Joost van Griethuysen | 24 April 2017, 08:18:13 UTC | Merge pull request #235 from JoostJM/downloadable-testcase Add function to get test case | 24 April 2017, 08:18:13 UTC |
dfc164f | Joost van Griethuysen | 24 April 2017, 07:59:40 UTC | Merge pull request #245 from Radiomics/pieper-patch-1-install-step Add extra install step | 24 April 2017, 07:59:40 UTC |
0b99b20 | Steve Pieper | 21 April 2017, 13:03:31 UTC | Add extra install step Set up developer mode so cmatrices shared library is accessible. Addresses [issue #244](https://github.com/Radiomics/pyradiomics/issues/244) | 21 April 2017, 13:03:31 UTC |
0dd46a7 | Joost van Griethuysen | 21 April 2017, 09:30:06 UTC | DOCS: Correct number of dockers in README | 21 April 2017, 09:30:06 UTC |
8fa3670 | Joost van Griethuysen | 21 April 2017, 09:02:14 UTC | STYL: Incorporate 'getTestCase' into examples Add use of the `getTestCase` function in the PyRadiomics example scripts and notebooks. This also enables the examples to be run if the repository is not available locally. | 21 April 2017, 09:02:14 UTC |
9ecf64c | Joost van Griethuysen | 21 April 2017, 08:31:06 UTC | DOCS: Document and test `getTestCase` function Also add additional logging calls. Also includes some minor bugfixes and a try-except block around the URLretrieve (can fail when run locally with no internet available). | 21 April 2017, 08:31:06 UTC |
974c476 | Joost van Griethuysen | 19 April 2017, 14:05:17 UTC | Merge pull request #238 from blezek/restore_notebook Restore accidentally removed file | 19 April 2017, 14:05:17 UTC |
e5c9ddb | Daniel Blezek | 11 April 2017, 02:46:28 UTC | Fix broken tests by specifying only certain notebooks to execute | 11 April 2017, 02:46:28 UTC |
6dc2efb | Daniel Blezek | 11 April 2017, 02:27:07 UTC | Restore accidentally removed file Accidentally removed "bin/Notebooks/PyRadiomics Example.ipynb", restoring. | 11 April 2017, 02:27:07 UTC |
d151d44 | Andrey Fedorov | 09 April 2017, 12:27:58 UTC | Merge pull request #236 from blezek/add-docker Add docker | 09 April 2017, 12:27:58 UTC |
c134e38 | Daniel Blezek | 07 April 2017, 20:28:48 UTC | Add missing clustering file | 07 April 2017, 20:28:48 UTC |
f81430a | Daniel Blezek | 07 April 2017, 19:53:23 UTC | Specify a nonexistent directory as a working directory Keep getting errors such as: `Directory (/) you are trying to checkout to is not empty and not git repository` Apparently, have to specify an empty directory for CircleCI. | 07 April 2017, 19:53:23 UTC |
2419c69 | Daniel Blezek | 07 April 2017, 19:49:02 UTC | Have to set the working directory after all... | 07 April 2017, 19:49:02 UTC |
7b4c812 | Daniel Blezek | 07 April 2017, 19:45:46 UTC | Don't set the working directory | 07 April 2017, 19:45:46 UTC |
368cb38 | Daniel Blezek | 07 April 2017, 19:35:23 UTC | Tests by building against the base Docker | 07 April 2017, 19:35:23 UTC |
b09910f | Daniel Blezek | 07 April 2017, 17:10:00 UTC | Install SSH in docker for testing | 07 April 2017, 17:10:00 UTC |
2a87b4c | Daniel Blezek | 07 April 2017, 16:43:23 UTC | Proper syntax on CircleCI v2 build file | 07 April 2017, 16:43:23 UTC |
672e7b2 | Daniel Blezek | 07 April 2017, 16:40:02 UTC | Migrating to CircleCI 2 | 07 April 2017, 16:40:02 UTC |
1d76e30 | Daniel Blezek | 07 April 2017, 16:39:23 UTC | Migrating Dockerfiles | 07 April 2017, 16:39:23 UTC |
6fd6f54 | Daniel Blezek | 05 April 2017, 18:16:38 UTC | Merge branch 'master' into add-docker * master: (42 commits) ENH: Small bugfix in commandlinebatch.py DOCS: Document adding a progress reporter ENH: Simplify specifying a progress reporter ENH: Remove dependency for `tqdm` ENH: Add pandas example ENH: Allow variable number of columns in input CSV BUG: Correct Np when weighting is applied STYL: Don't replace , with ; in output of general info BUG: Error in geometry check during resampling STYL: Add FAQ for image and mask of different geometry ENH: Add physical space check when resampling ENH: Add checks for mask size and dimensions. STYL: Update version in README DOCS: Update reference DOCS: Add reference for gray level discretization method STYL: Add suggested value for voxelArrayShift STYL: Add discretization formula MATH: Change default value of voxelArrayShift BUG: Change binning STYL: Rename `force2Dextraction` to `force2D` ... | 05 April 2017, 18:16:38 UTC |
6e387f2 | Joost van Griethuysen | 05 April 2017, 15:55:24 UTC | ENH: Add function to get test case This function is available in the radiomics namespace and takes the test case name as an argument. Optionally the location of the repository can also be specified, in which case the test files of the repository are used. If test files cannot be found, the are downloaded from github and stored in a temporary folder. This function returns a tuple of 2 strings representing the paths to the (downloaded) image and segmentation files. | 05 April 2017, 15:55:24 UTC |
28791f0 | Joost van Griethuysen | 05 April 2017, 15:26:12 UTC | TEST: Update baseline Update baseline for Shape to reflect changes in formulas for Elongation and Flatness, and add baseline for Major, Minor and Least axis | 05 April 2017, 15:26:12 UTC |
881e4fa | Joost van Griethuysen | 03 April 2017, 15:11:42 UTC | ENH: Changes to shape features Define Elongation and Flatness as the inverse of the SimpleITK definition. This prevents a NaN value in case of flat or totally elongated shapes (for flatness and elongation, respectively). Add feature definition for Major, Minor and Least axis lengths. | 05 April 2017, 15:05:00 UTC |
913473e | Joost van Griethuysen | 05 April 2017, 15:01:38 UTC | Merge pull request #232 from JoostJM/remove-tqdm-dependency Remove dependency for `tqdm` | 05 April 2017, 15:01:38 UTC |
afcb64c | Joost van Griethuysen | 04 April 2017, 07:06:23 UTC | ENH: Small bugfix in commandlinebatch.py Instantiate the featureVector using the dictionary read from the input, to ensure input is copied to the output. | 04 April 2017, 07:06:23 UTC |
3ac3e35 | Joost van Griethuysen | 04 April 2017, 06:46:37 UTC | Merge pull request #228 from JoostJM/add-pandas-revised Add pandas revised | 04 April 2017, 06:46:37 UTC |
c5620fc | Joost van Griethuysen | 30 March 2017, 11:28:04 UTC | DOCS: Document adding a progress reporter Add documentation on how to add a progress reporter in the developers section of the documentation. The `_DummyProgressReporter` class and `_getProgressReporter` function also have documentation, but these are not included in the sphinx-generated documentation. | 30 March 2017, 11:45:23 UTC |
ea0bd46 | Joost van Griethuysen | 30 March 2017, 10:05:44 UTC | ENH: Simplify specifying a progress reporter As @jcfr showed in #230, the progress reporting can be simplified, requiring the user only to specify one variable that holds a progress reporter. Update PyRadiomics to this implementation and add examples for both use with `tqdm.tqdm` (which can be used directly) or `click.progressbar` (which requires a simple wrapper class). Examples are provided in both the helloRadiomics script and notebook. Progress reporting in full-python mode in GLCM and GLSZM now uses a progress reporter that is instantiated with an interator (as opposed to a length) and uses this progress reporter in the loop to iterate over the gray levels. This is encapsulated in a `with` statement to ensure correct closure. Finally, a dummy progress reporter is provided for the cases where no progressbar is needed (none specified or verbosity level > INFO). In those cases the `_dummyProgressReporter` (defined in `__init__.py`) is used, which accepts the arguments from PyRadiomics and iterates over the gray levels passed in the iterable, but does not report any progress back to the user. | 30 March 2017, 10:05:44 UTC |
d4f8837 | Joost van Griethuysen | 29 March 2017, 16:39:46 UTC | ENH: Remove dependency for `tqdm` Remove dependency for the tqdm package, as this is rarely used (only for GLCM and GLSZM in full-python mode). Instead provide 3 variables which can hold function definitions used for instantiating and interacting with a progress bar. In the helloRadiomics script and notebook, this changed functionality is illustrated with a commented out section in the script and a separate cell in the notebook. This section and cell assume the `tqdm` package is installed and use it to show a progressbar during calculation of the glcm matrix in full-python mode. | 29 March 2017, 16:39:46 UTC |
c5fab34 | Joost van Griethuysen | 29 March 2017, 15:45:58 UTC | ENH: Add pandas example Add an example to show how pandas can be used to handle data returned by PyRadiomics. Pandas is not needed to handle data inside PyRadiomics, and therefore does not have to be a dependency. The result from pyradiomics can be converted to pandas by using it to instantiate a pandas Series. The example shows how to use pandas for batchprocessing and storing the result, which users can adapt to suit their own needs. | 29 March 2017, 15:45:58 UTC |
e7e2fe6 | Joost van Griethuysen | 28 March 2017, 09:38:42 UTC | ENH: Allow variable number of columns in input CSV Affects batchprocessing.py and commandlinebatch.py (used from command line as `pyradiomicsbatch`). The csv file used to define all combinations of image and mask should start now with a header line, which should contain at least the columns 'Image' and 'Mask' (specifying the location of image and mask, respectively). Additional columns can be added, these will be copied to the output. Additionally, fix some small bugs in the command line scripts, and add option to shorten image and mask path in output to just the file name (by default stores full path as defined in the CSV). | 29 March 2017, 15:25:01 UTC |
d00212c | Joost van Griethuysen | 29 March 2017, 12:33:53 UTC | Merge pull request #229 from JoostJM/weighting-bug-glrlm BUG: Correct Np when weighting is applied | 29 March 2017, 12:33:53 UTC |
348ea21 | Joost van Griethuysen | 28 March 2017, 12:43:36 UTC | BUG: Correct Np when weighting is applied Every voxel in the ROI is considered once per angle in GLRLM. When weighting is applied in GLRLM, Np has to be corrected, as all angles are combined into one matrix, which mean Np has to reflect the number of voxels assessed (equals number of voxels in ROI * number of times each voxel is assessed). | 28 March 2017, 12:43:36 UTC |
0c928b7 | Joost van Griethuysen | 27 March 2017, 07:50:04 UTC | STYL: Don't replace , with ; in output of general info Replacement was added to prevent column misalignment when output is formatted as CSV (with `,` delimiter). However this replacement is not necessary, as the csv writers handle this with quotes. Furthermore, this allows to store these values in their original type, which enables storage as JSON formatted strings when using the JSON format. | 28 March 2017, 08:42:11 UTC |
3f7abee | Joost van Griethuysen | 28 March 2017, 07:36:14 UTC | Merge pull request #227 from JoostJM/bug-roi-check BUG: Error in geometry check during resampling | 28 March 2017, 07:36:14 UTC |
b4f5f34 | Joost van Griethuysen | 27 March 2017, 12:27:41 UTC | BUG: Error in geometry check during resampling When checking if the ROI physical space is contained within the image physical space, direction is not taken into account when comparing in the physical space. Therefore, instead of bringing both the ROI and image bounds to the physical space, bring the ROI bounds first to the physical space and then to the image coordinate space. Then, compare those bounds with the minimum (always [-0.5, -0.5, -0.5]) and the maximum (image.GetSize() - 0.5) image bounds. Additionally, add a tolerance to prevent machine precision errors (set at 1e-3). | 27 March 2017, 12:40:02 UTC |
2aecfb0 | Daniel Blezek | 26 March 2017, 02:57:48 UTC | Changed clustermap plotting to show feature names horizontally on y axis | 26 March 2017, 02:57:48 UTC |
e9fc87a | Daniel Blezek | 24 March 2017, 19:31:34 UTC | Updated example Notebooks | 24 March 2017, 19:31:34 UTC |
ec8720b | Joost van Griethuysen | 24 March 2017, 14:44:47 UTC | Merge pull request #223 from JoostJM/add-roi-checks Add checks for mask size and dimensions. | 24 March 2017, 14:44:47 UTC |
04c4a9e | Joost van Griethuysen | 24 March 2017, 10:59:11 UTC | STYL: Add FAQ for image and mask of different geometry Add FAQ explaining PyRadiomics behavior when using image and mask with different geometry. Additionally, add an example script, usable from the commandline, that resamples a mask to a reference image. This allows users to force a mask to the same geometry as the image, so it can be used in PyRadiomics without resampling. | 24 March 2017, 11:03:29 UTC |