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 |
5551316 | Joost van Griethuysen | 24 March 2017, 10:57:00 UTC | ENH: Add physical space check when resampling Add a check that ensures that the ROI defined in the mask occupies a physical space that is contained within the physical space of the image. If this is not the case, log an error and cancel extraction for that combination. Additionally, calculate the resampling grid using only the maskNode. This prevents unexpected behaviour of the defined resampling grid when image and mask with different geometry is used. Standardize use of quote and double quote when defining strings in PyRadiomics (use single quote to identify a string, 3 double quotes for a docstring) | 24 March 2017, 11:03:29 UTC |
817d4ff | Joost van Griethuysen | 21 March 2017, 17:42:51 UTC | ENH: Add checks for mask size and dimensions. Add function to check if ROI is large enough for computation. First checks if label is present in the mask, then checks if the number of dimensions in which the size > 1 is at least the minimum number of dimensions (default: 1). Finally an an optional check for a minimum number of voxels in the tumor region can be performed (switched off by default). This check is performed in `featureextractor` after the loading of the image and any image pre-processing steps (e.g. resampling), but before features are extracted or filters applied. | 24 March 2017, 11:01:03 UTC |
06ae23a | Joost van Griethuysen | 23 March 2017, 09:05:25 UTC | STYL: Update version in README | 23 March 2017, 09:05:25 UTC |
f8fe6c5 | Daniel Blezek | 22 March 2017, 20:26:47 UTC | Adds heatmap example | 22 March 2017, 20:26:47 UTC |
f7d5305 | Daniel Blezek | 22 March 2017, 20:26:31 UTC | Change ownership of working directory and trust notebooks | 22 March 2017, 20:26:31 UTC |
a951b8e | Daniel Blezek | 22 March 2017, 20:26:09 UTC | Documentation changes | 22 March 2017, 20:26:09 UTC |
f61a6c2 | Joost van Griethuysen | 22 March 2017, 15:54:56 UTC | Merge pull request #224 from JoostJM/update-reference Update reference | 22 March 2017, 15:54:56 UTC |
d7c8c56 | Joost van Griethuysen | 22 March 2017, 15:20:06 UTC | DOCS: Update reference Update reference to cite when using PyRadiomics. Include full list of authors and year. | 22 March 2017, 15:20:06 UTC |
8824cc6 | Joost van Griethuysen | 22 March 2017, 15:02:48 UTC | Merge pull request #215 from JoostJM/add-forced-2d-calculation Implement forced 2D texture extraction. | 22 March 2017, 15:02:48 UTC |
5b906ea | Joost van Griethuysen | 22 March 2017, 14:26:54 UTC | Merge pull request #219 from JoostJM/change-binning Change binning | 22 March 2017, 14:26:54 UTC |
28ac310 | Joost van Griethuysen | 17 March 2017, 12:54:46 UTC | DOCS: Add reference for gray level discretization method | 21 March 2017, 16:24:03 UTC |
9463381 | Joost van Griethuysen | 14 March 2017, 17:03:05 UTC | STYL: Add suggested value for voxelArrayShift Add '2000' as a suggested value for the `voxelArrayShift` parameter in firstorder when using CT data. Additionally, fix small bug in documentation of `getBinEdges` (correct last bin edge). | 21 March 2017, 16:24:03 UTC |
a761867 | Joost van Griethuysen | 14 March 2017, 08:41:21 UTC | STYL: Add discretization formula Add a math formula describing how image discretization is performed by `binImage` function. Add extra documentation and example on formation of bin edges by `getBinEdges` function. | 21 March 2017, 16:24:03 UTC |
70c3eae | Joost van Griethuysen | 14 March 2017, 08:39:55 UTC | MATH: Change default value of voxelArrayShift Set the default value to 0, which corresponds to most implementations of Energy, Total Energy and Root Mean Squared (RMS). This prevents users from accidentally using a too large array shift. Update the documentation, to better define the usage of this parameter, with additional suggestions as to how to use it. Update the formulas of features that incorporate this parameter to illustrate the effect this parameter has on the value. Add documentation to explicitly mention the volume-confounded nature of these features, and indicate that the voxelArrayShift parameter influences the size of the effect of volume on the feature value. | 21 March 2017, 16:24:03 UTC |
fc47893 | Joost van Griethuysen | 09 March 2017, 16:59:13 UTC | BUG: Change binning Remove the +1 to `binEdges` in `imageoperations.binImage()`. This produces unexpected behaviour in case of low values for binWidth. This means that the number of unique discretized values in the ROI can be 1 larger than number of bins computed by the histogram. This is due to the fact that in `numpy.histogram`, all bins are half-open, with the exception of the rightmost bin. If the maximum value in ROI is equally dividable by binWidth (max(X) mod binWidth = 0), voxel with this maximum value will be assigned to the topmost bin by the histogram, but assigned (numBins + 1) by `numpy.digitize`. Additionally, change the implementation of the functions in `imageoperations`. Instead of a function that calculates the histogram, use a function that calculates the bin edges. The histogram is then calculated using these edges where necessary (only in firstorder), whereas the the calculated bin edges can also be passed directly to `numpy.digitize` , removing unnecessary calculation of the histogram for texture classes. Use the maximum gray value inside the ROI after binning to determine number of gray values. This is due to the fact that this is either equal to the number of bins, or equal to the number of bins + 1 (when the max value is equal to the rightmost bin edge). This maximum gray value will always be the integer indicating the maximum number of unique gray values inside the ROI due to the binning, which is always applied. Update documentation to reflect changes in implementation. | 21 March 2017, 16:24:03 UTC |
91d3065 | Joost van Griethuysen | 21 March 2017, 15:22:08 UTC | STYL: Rename `force2Dextraction` to `force2D` As per @fedorov's suggestion, rename this parameter to prevent confusion. Additionally, add the default settings controlling forced 2D extraction to default parameters defined in `featureextractor`. Also update the param schema to allow these setting in the parameter file. | 21 March 2017, 16:13:10 UTC |
4787b35 | Joost van Griethuysen | 04 March 2017, 16:58:42 UTC | ENH: Enable forced 2D texture extraction. Add additional parameters to optionally force texture calculation to 2D. This is enabled by setting parameter `force2Dextraction` to True. Then, all angles moving across 'slices' are removed. The dimension which specifies the slice is defined in `force2Ddimension`. For example, if enabled and dimension is 0, texture is extracted only in the xy-plane (with dimension 0 specifying the 'z' dimension as slice-dimension). Forced 2D extraction is switched off by default. Additionally, enable specifying custom distances between center voxel and neighbors. These distances are specified in the `distances` parameter as a list of integers. By default `disances = [1]`. | 21 March 2017, 16:05:42 UTC |
9c03211 | Joost van Griethuysen | 21 March 2017, 15:13:01 UTC | Merge pull request #222 from JoostJM/update-requirements Add sphinx_rtd_theme to requirements | 21 March 2017, 15:13:01 UTC |
43153cf | Joost van Griethuysen | 21 March 2017, 09:15:46 UTC | ADD: sphinx_rtd_theme to requirements To build the documentation, both sphinx and the read the docs theme is necessary, but the latter was not specified in the requirements. | 21 March 2017, 09:15:46 UTC |
e0bc168 | Joost van Griethuysen | 21 March 2017, 08:07:28 UTC | Merge pull request #221 from JoostJM/missing-data-files Data_files not included in wheel distribution | 21 March 2017, 08:07:28 UTC |
18dfed3 | Daniel Blezek | 21 March 2017, 01:03:12 UTC | Removed verbosity setting, it's unused | 21 March 2017, 01:03:12 UTC |
218954d | Joost van Griethuysen | 20 March 2017, 16:40:48 UTC | BUG: Data_files not included in wheel distribution When building the wheel, parameter schema file was not included in the install. Move these files to a new subdirectory of pyradiomics and include them as "package_data". | 20 March 2017, 17:21:48 UTC |
d9dd283 | Joost van Griethuysen | 20 March 2017, 16:07:23 UTC | BUG: Remove 'Roundness` from Params.yaml `Roundness` feature is removed from the shape features, but was still mentioned in the parameter file. This throws a pykwalify error when used during loading of the extractor. | 20 March 2017, 16:07:23 UTC |
0a223d8 | Joost van Griethuysen | 20 March 2017, 10:44:15 UTC | Merge pull request #220 from JoostJM/update-logging Update PyRadiomics Logging | 20 March 2017, 10:44:15 UTC |
557293d | Joost van Griethuysen | 16 March 2017, 10:00:08 UTC | STYL: Update debug log message for empty angles | 20 March 2017, 09:26:05 UTC |
748b6ab | Joost van Griethuysen | 14 March 2017, 16:53:16 UTC | STYL: Remove calls to 'print' and remove 'verbose' keyword Restructure progress reporting in PyRadiomics to make use of logging package. Add a function `setVerbosity` to control verbosity level of the toolbox (level is specified as a logging level). Replace calls to the `print` function by calls to `logger.info`. This also removes the need for the `verbose` keyword in the settings. When PyRadiomics is used in interactive python, a more verbose output can be obtained via the new `setVerbosity` function, defined at the module level. From the commandline, add an new optional argument (`--verbosity / -v`) to control verbosity (default level: WARNING, and when the argument is added without a value, level is set to INFO. | 20 March 2017, 09:26:05 UTC |
82768cd | Joost van Griethuysen | 06 March 2017, 16:43:50 UTC | STYL: Update PyRadiomics Logging Update logging, with mainly added debug messages on various functions throughout the toolbox. Additionally, change how logging is set up in the various scripts used to run PyRadiomics. Instead of using a root logger, keep 'radiomics' logger as 'root' logger, with script/batch specific log messages in the 'radiomics.script' and 'radiomics.batch' logger. This excludes the PyKwalify debug messages from the PyRadiomics log when level is set to DEBUG. | 20 March 2017, 09:14:40 UTC |
f5286f9 | Joost van Griethuysen | 17 March 2017, 21:03:24 UTC | DOCS: Correct small error in Home document | 17 March 2017, 21:03:24 UTC |