https://github.com/Radiomics/pyradiomics

sort by:
Revision Author Date Message Commit Date
8ea8868 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 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 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 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 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 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 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 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 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 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 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 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 Merge pull request #254 from JoostJM/restructure-folders Restructure folders 15 May 2017, 11:55:25 UTC
b2bbe1c 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 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 Fix subclass name in custom feature example Plus some extra edits to clarify the example. 28 April 2017, 13:48:35 UTC
df82481 STYL: Correct typo 26 April 2017, 08:41:08 UTC
8345a25 Merge pull request #249 from Radiomics/doc-update-simpleitk-install-instructions docs/installation: Remove SimpleITK workaround 26 April 2017, 08:33:27 UTC
87b7db4 Merge pull request #246 from JoostJM/update-csv-generators Update CSV Generators 26 April 2017, 06:49:46 UTC
7760927 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 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 Merge pull request #233 from JoostJM/update-documentation Update documentation 24 April 2017, 16:27:45 UTC
209b4ab DOCS: Update number of features Reflects recent changes to features. 24 April 2017, 09:30:26 UTC
b6d5c5e FAQ: Add a FAQ about the cmatrices lib path (#244) 24 April 2017, 09:28:15 UTC
dee1738 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 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 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 Merge pull request #234 from JoostJM/shape-features Changes to shape features 24 April 2017, 09:23:31 UTC
90efc86 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 TEST: Update CircleCI config to include requirements-dev Needed to run tests. 24 April 2017, 08:47:10 UTC
17000a6 STYL: update manifest to not include `docs` folder 24 April 2017, 08:35:21 UTC
5849b72 requirements: Move nose and sphinx to dev requirements. See #230 24 April 2017, 08:35:21 UTC
b820c48 Merge pull request #235 from JoostJM/downloadable-testcase Add function to get test case 24 April 2017, 08:18:13 UTC
dfc164f Merge pull request #245 from Radiomics/pieper-patch-1-install-step Add extra install step 24 April 2017, 07:59:40 UTC
0b99b20 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 DOCS: Correct number of dockers in README 21 April 2017, 09:30:06 UTC
8fa3670 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 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 Merge pull request #238 from blezek/restore_notebook Restore accidentally removed file 19 April 2017, 14:05:17 UTC
e5c9ddb Fix broken tests by specifying only certain notebooks to execute 11 April 2017, 02:46:28 UTC
6dc2efb Restore accidentally removed file Accidentally removed "bin/Notebooks/PyRadiomics Example.ipynb", restoring. 11 April 2017, 02:27:07 UTC
d151d44 Merge pull request #236 from blezek/add-docker Add docker 09 April 2017, 12:27:58 UTC
c134e38 Add missing clustering file 07 April 2017, 20:28:48 UTC
f81430a 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 Have to set the working directory after all... 07 April 2017, 19:49:02 UTC
7b4c812 Don't set the working directory 07 April 2017, 19:45:46 UTC
368cb38 Tests by building against the base Docker 07 April 2017, 19:35:23 UTC
b09910f Install SSH in docker for testing 07 April 2017, 17:10:00 UTC
2a87b4c Proper syntax on CircleCI v2 build file 07 April 2017, 16:43:23 UTC
672e7b2 Migrating to CircleCI 2 07 April 2017, 16:40:02 UTC
1d76e30 Migrating Dockerfiles 07 April 2017, 16:39:23 UTC
6fd6f54 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 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 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 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 Merge pull request #232 from JoostJM/remove-tqdm-dependency Remove dependency for `tqdm` 05 April 2017, 15:01:38 UTC
afcb64c 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 Merge pull request #228 from JoostJM/add-pandas-revised Add pandas revised 04 April 2017, 06:46:37 UTC
c5620fc 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 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 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 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 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 Merge pull request #229 from JoostJM/weighting-bug-glrlm BUG: Correct Np when weighting is applied 29 March 2017, 12:33:53 UTC
348ea21 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 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 Merge pull request #227 from JoostJM/bug-roi-check BUG: Error in geometry check during resampling 28 March 2017, 07:36:14 UTC
b4f5f34 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 Changed clustermap plotting to show feature names horizontally on y axis 26 March 2017, 02:57:48 UTC
e9fc87a Updated example Notebooks 24 March 2017, 19:31:34 UTC
ec8720b Merge pull request #223 from JoostJM/add-roi-checks Add checks for mask size and dimensions. 24 March 2017, 14:44:47 UTC
04c4a9e 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 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 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 STYL: Update version in README 23 March 2017, 09:05:25 UTC
f8fe6c5 Adds heatmap example 22 March 2017, 20:26:47 UTC
f7d5305 Change ownership of working directory and trust notebooks 22 March 2017, 20:26:31 UTC
a951b8e Documentation changes 22 March 2017, 20:26:09 UTC
f61a6c2 Merge pull request #224 from JoostJM/update-reference Update reference 22 March 2017, 15:54:56 UTC
d7c8c56 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 Merge pull request #215 from JoostJM/add-forced-2d-calculation Implement forced 2D texture extraction. 22 March 2017, 15:02:48 UTC
5b906ea Merge pull request #219 from JoostJM/change-binning Change binning 22 March 2017, 14:26:54 UTC
28ac310 DOCS: Add reference for gray level discretization method 21 March 2017, 16:24:03 UTC
9463381 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 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 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 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 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 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 Merge pull request #222 from JoostJM/update-requirements Add sphinx_rtd_theme to requirements 21 March 2017, 15:13:01 UTC
43153cf 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 Merge pull request #221 from JoostJM/missing-data-files Data_files not included in wheel distribution 21 March 2017, 08:07:28 UTC
18dfed3 Removed verbosity setting, it's unused 21 March 2017, 01:03:12 UTC
218954d 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 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 Merge pull request #220 from JoostJM/update-logging Update PyRadiomics Logging 20 March 2017, 10:44:15 UTC
557293d STYL: Update debug log message for empty angles 20 March 2017, 09:26:05 UTC
748b6ab 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 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 DOCS: Correct small error in Home document 17 March 2017, 21:03:24 UTC
back to top