https://github.com/Radiomics/pyradiomics

sort by:
Revision Author Date Message Commit Date
f268b92 DOCS: Update version in README 06 October 2017, 15:51:40 UTC
ee56ab5 PyRadiomics 1.3.0 06 October 2017, 13:50:42 UTC
403cb74 Merge pull request #295 from JoostJM/add-gldm Add Gray Level Dependence Matrix (GLDM) 06 October 2017, 13:21:05 UTC
531e886 ENH: Add Gray Level Depende Matrix (GLDM) 06 October 2017, 12:31:49 UTC
fda2a25 Merge pull request #296 from JoostJM/add-ngtdm Add Neighbouring Gray Tone Difference Matrix (NGTDM) 06 October 2017, 12:24:51 UTC
6933258 ENH: Add Neighbouring Gray Tone Difference Matrix (NGTDM) 13 September 2017, 00:56:08 UTC
0a0eb4f Merge pull request #302 from JoostJM/add-resegementation Add optional resegmentation of mask 12 September 2017, 23:07:39 UTC
4022f56 Merge pull request #301 from fedorov/add-docker ENH: update cli-docker to use CentOS 6 07 September 2017, 16:48:35 UTC
8fc0a41 ENH: update cli-docker to use CentOS 6 07 September 2017, 16:47:35 UTC
5da1850 DOCS: Update reference to getImageTypes() function to reflect change by #291 PR 291 changed the name of the function, but failed to correct the reference to it in the developers section of the documentation. 07 September 2017, 15:59:05 UTC
390aff4 ENH: Add resegmentation Add functionality to resegment the mask prior to calculation of features (ony applies to firstorder / texture, no resegmentation possible prior to shape feature calculation). Introduces new parameter `resegmentRange`, a list of 2 floats which define the lower and upper threshold, respectively. Values outside the range specified are removed from the mask. When the resultant size is too small (parameter `minimumROISize`, default 1), an error is logged and the original mask is used. A value of None (the default value) for the parameter `resegmentRange` disables resegmentation. 07 September 2017, 15:36:06 UTC
4f9abf1 Merge pull request #299 from JoostJM/update-resampling Allow a 0 value for output spacing when resampling 07 September 2017, 15:31:40 UTC
0f6a0d1 ENH: Allow a 0 value for output spacing when resampling When resampling, allow the output spacing for any dimension to be set to 0 (the parameter 'resampledPixelSpacing' still needs to be a sequence of 3 elements, but the value of any element can be 0). Doing so will enable 'preserving' the original spacing, as 0 values are replaced with the original spacing for that dimension (original spacing of the mask). This way, it is possible to only resample in-plane (by setting the out-of-plane output spacing to 0). Additionally, move the check between original and resampled spacing to after the size check (no resampling over dimensions for which bounding box size = 1) and build in a tolerance (1e-5 + 1e-8 * abs(resampledspacing)). Finally, fix data type for resampled spacing in the validation schema for parameter files (change from integer to float). 06 September 2017, 14:49:00 UTC
1c52a10 Merge pull request #297 from fedorov/add-docker ENH: add a dockerfile that exposes command line tools 06 September 2017, 14:43:34 UTC
c8aab69 Merge pull request #300 from JoostJM/remove-duplicate-features Remove Sum Variance 06 September 2017, 14:33:40 UTC
70f1c48 Fix typos in CHANGES.rst 05 September 2017, 00:30:55 UTC
147c1c8 STYL: Correct difference variance formula (docs) Correct error in difference variance formula as pointed out by @clarehchao. Additionally, fix an error in the exampleCT settings (enabled shape features erroneously listed as glcm features). 05 September 2017, 00:15:31 UTC
81f32fd Update baseline 04 September 2017, 21:19:41 UTC
de633a9 Remove Sum Variance feature Sum Variance is mathematically equal to Cluster Tendency, therefore remove Sum Variance from PyRadiomics. Add a new section to the documentation that lists removed features with the reason why this was done (here including the proof that Sum Variance and Cluster Tendency are equal). Additionally, Sum Average is very similar to Joint Average (if and only if the GLCM is symmetrical, Sum Average = 2 * Joint Average). As there is a difference possible between these features, but not in the case of 'default' settings, Sum Average is not removed, but disabled in the default parameter files. 04 September 2017, 20:52:10 UTC
b5bddb5 STYL: Update feature function names to better reflect feature names Some feature function names differed from the feature name due to changes to enhance comparability to IBSI defined features. Update the function names to reflect the feature names. 04 September 2017, 20:14:12 UTC
956175e DOCS: Update GLCM formula documentation u_x and u_y are represented in the documentation as being a function of i and j, respectively. However, these variables are both scalars. Update the documentation to reflect this. 04 September 2017, 20:09:18 UTC
26b9ef3 BUG: Fix name of force2D when generating angles (GLRLM and GLSZM) Because GLRLM and GLSZM are forced with distance 1, other parameters are passed manually to the generate angles function. However, the `force2D` parameter was named incorrectly and as such, ignored. Fix the name to enable forced 2D extraction for GLRLM and GLSZM. 04 September 2017, 17:43:49 UTC
5ce9f48 DOCS: Fix error in usage documentation In the documentation on using the feature classes directly, the line to enable all features in the first order feature class was missing. This resulted in no features being calculated, as on the feature class level, all features are disabled by default. 01 September 2017, 15:42:16 UTC
7dcc2a9 Change license in setup.py to reflect change by #272 31 August 2017, 13:40:53 UTC
1675ac7 DOCS: Add changes of #294 to changelog 29 August 2017, 19:35:22 UTC
ef2c40f Merge pull request #294 from JoostJM/docs-add-contributing Add contributing to documentation 29 August 2017, 19:29:22 UTC
96da6ae ENH: add a dockerfile that exposes command line tools 23 August 2017, 15:03:22 UTC
c73e7e3 DOCS: Update reference to SlicerRadiomics in the readme 23 August 2017, 08:59:55 UTC
d1c5bf4 DOCS: Update links to contributing guidlines from documentation and readme 23 August 2017, 08:55:42 UTC
0dca895 DOCS: Add contributing to documentation Change CONRTRIBUTING.md to restructured text and include it in the sphinx generated documentation. Additionally, add a section to encourage users to share their parameter files in the PyRadiomics repository. 23 August 2017, 08:38:10 UTC
de5e977 TEST: Add test for example settings Add a nosetest that checks all yaml structured files (= files with `.yaml` or `. yml` extension) in `examples/exampleSettings`. All found files are validated using PyKwalify and the paramSchema and functions in PyRadiomics Additionally, add a simple python script to manually test a parameter file (`bin/testParams`). 23 August 2017, 08:16:41 UTC
7db7798 DOCS: Update Changes.rst 23 August 2017, 08:16:05 UTC
9ae44b2 STYL: Update log messages to better reflect changes made by #291 23 August 2017, 08:11:24 UTC
425c7e9 Merge pull request #291 from JoostJM/revert-280 Revert 280 and 281, update customization names and documentation 23 August 2017, 07:59:17 UTC
ff622d8 STYL: Revise parameter naming Make distinction between different categories of parameters more explicit, and rename categories to better reflect their definition. PyRadiomics can be customized via 3 categories of *parameters*: 1. "imageType": specifies filters / image types that can be used to extract features from 2. "featureClass": specifies which feature classes and features should be extracted 3. "setting": specifies all setting to customize how the extraction is done. In PyRadiomics, "parameter" refers to one or more customization categories and "setting" refers explicitly to type 3 customization. Furthermore, document that only type 3 parameters can be provided at initialization when not using the parameter file (type 1 and 2 have to be changed using dedicated functions in featureextractor (type 1 and 2) or the individual feature classes (type 2). Especially for type 1, this includes renaming of various variables, including the name used in the parameter file ("imageType" in stead of "inputImage"). Finally, expand documentation on making the parameter file, including an example directly in the documentation (instead of just referring to the repository). 21 August 2017, 13:30:23 UTC
fd36b18 Revert 280 / 280 Reverts #280 / #281, as this change introduces some confusion into the what goes into `**kwargs` for initialization of featureextractor (or one of the feature classes). `**kwargs` only contains settings (i.e. one of the three categories of customization). PRs #280 and #281 included `inputImages` (one of the other categories) to enable customizing the enabled input image types in the slicer extension. However, the functionality to customize this is already present in featureextractor through function calls (such as `enableAllInputImages()`). Therefore, revert these PRs and update the slicer extension to make use of this API. 21 August 2017, 08:04:27 UTC
a3fa6c7 Merge pull request #290 from fabianbalsiger/master Fixes typos 21 August 2017, 06:16:33 UTC
a8d63c9 Merge branch 'master' into master 18 August 2017, 13:52:33 UTC
462f347 DOCS: typo Volum to Volume 18 August 2017, 13:36:06 UTC
aa51f3f DOCS: typo Volum to Volume 18 August 2017, 13:35:05 UTC
df8d79d BUG: Fix capitalization error in example settings Filter should be "Wavelet", not "wavelet" 18 August 2017, 10:28:40 UTC
181e599 Merge pull request #284 from JoostJM/document-ibsi-compliance Add reference to IBSI feature definitions 16 August 2017, 14:53:00 UTC
e0cba85 Merge pull request #274 from JoostJM/revise-base-initialization Revise style in base initialization 16 August 2017, 14:48:48 UTC
3288643 Merge pull request #288 from JoostJM/document-log Make sigma documentation more clear 16 August 2017, 14:48:32 UTC
f496d40 STYL: Make sigma documentation more clear 16 August 2017, 10:05:37 UTC
4ca4ead STYL: Update some variable and function names for clarity ROICoordinates --> labelledVoxelCoordinates size --> boundingBoxSize _initLesionWiseCalculation() --> _initSegementBasedCalculation() Additionally, add feature class name to log message when feature class is initialized. 16 August 2017, 09:58:01 UTC
d41028a STYL: Revise style in base initialization 16 August 2017, 09:58:01 UTC
f75de97 DOCS: Add reference to IBSI feature definitions Add a reference to the feature definitions by IBSI, and document where PyRadiomics features differ. 16 August 2017, 09:57:23 UTC
8e01df7 Merge pull request #287 from JoostJM/add-python2-docker Fix missing python 2 environment 16 August 2017, 09:55:24 UTC
d2126d1 BUG: Fix loading parameter file in notebooks. Some recent changes broke source code in some notebooks (wrong/missing imports, missing new lines). 16 August 2017, 09:39:55 UTC
968a962 BUG: Fix missing python 2 environment See also [#433](https://github.com/jupyter/docker-stacks/pull/433) on jupyter/docker-stack. Python 2 support is now removed from jupyter/datascience-notebook. Update dockerfile and config.yml to install python2 kernel manually. 16 August 2017, 09:06:34 UTC
cb17d65 BUG: Fix JSON error in RadiomicsExample.ipynb Similar error and fix as previous 2 commits; missing comma in notebook breaks JSON decoding. 16 August 2017, 09:04:08 UTC
1043547 BUG: Fix JSON error in FilteringEffects.ipynb Similar error and fix as previous commit; missing comma in notebook breaks JSON decoding. 16 August 2017, 08:59:06 UTC
c8fa6ae BUG: Fix JSON error in feature visualization notebooks In FeatureVisualization.ipynb and FeatureVisualizationWithClustering.ipynb, a missing comma caused a JSON decode error, breaking the notebook. Insert missing commas to fix. 16 August 2017, 08:06:43 UTC
73233c6 Merge pull request #285 from JoostJM/fix-urllib-python3-compatibility Fix python3 incompatibility when getting a test case 16 August 2017, 06:38:33 UTC
511d02d TEST: Update dockerfile only run certain notebooks Only run helloRadiomics.ipynb, helloFeatureClass.ipynb and PyRadiomicsExample.ipynb, as these extensively test PyRadiomics, but are not dependent on 3rd party URLs to run correctly. Additionally, update the paths to ensure correct relative paths. 16 August 2017, 06:23:18 UTC
9d278bb BUG: Add directory check when downloading example data When downloading example data, the feature visualization notebooks assumes a directory called `example_data` exists. However, if this is not the case, an error is thrown when trying to download the example_data zip file. Add a check to determine if the directory exists and if not, create a directory. Fixes #276 16 August 2017, 06:23:18 UTC
f1550c6 BUG: Fix python3 incompatibility when getting a test case In python 3, the function `urlretrieve` is moved. Prevent incompatibility by using implementation in `six.moves`. 16 August 2017, 06:23:18 UTC
8c4313d Fix url path for data and citation in notebook example 15 August 2017, 18:18:03 UTC
35dbff6 Fix Params.yaml path in notebook examples 15 August 2017, 18:17:43 UTC
8b73d4c fix download links in notebook example 15 August 2017, 18:06:03 UTC
9e73788 Merge pull request #273 from JoostJM/add-example-settings Add example settings 15 August 2017, 08:00:02 UTC
13274ff Merge pull request #280 from fedorov/update-inputImage BUG: initialize inputImage from kwargs 01 August 2017, 23:14:59 UTC
214b848 BUG: remove inputImage from settings It appears that the presence of this attribute in settings causes feature calculation failure in https://github.com/Radiomics/SlicerRadiomics/pull/26 01 August 2017, 23:02:10 UTC
c1eb7ec BUG: fix logger call 01 August 2017, 21:31:34 UTC
c3abc7e BUG: initialize inputImage from kwargs 'inputImage' parameter passed to the constructor in kwargs was ignored 01 August 2017, 21:20:07 UTC
9542d76 Merge pull request #277 from fabianbalsiger/normalizeImage-fix BUG: outlier removal not working 21 July 2017, 15:04:06 UTC
7ee35d9 BUG: outlier removal not working 21 July 2017, 13:39:48 UTC
f2cbd3d Merge pull request #272 from JoostJM/update-license Update license to 3-clause BSD 17 July 2017, 07:44:33 UTC
a49797a ENH: Add example settings for CT and MRI 14 July 2017, 12:32:29 UTC
e047068 LICENSE: Add "not intended for clinical use" disclaimer 14 July 2017, 08:11:21 UTC
b2fe09b LICENSE: Update license to 3-clause BSD 14 July 2017, 08:03:46 UTC
32da2c9 Merge pull request #271 from JoostJM/update-ref Update reference, move section customization 12 July 2017, 18:12:28 UTC
8ec05ab 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 Merge pull request #270 from JoostJM/Remove-circular-import Remove circular import 12 July 2017, 14:44:21 UTC
17ec108 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 Merge pull request #265 from JoostJM/remove-empty-row-column-texture Remove empty row column texture 28 June 2017, 15:42:43 UTC
8dcfc68 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 STYL: Remove unused variable 27 June 2017, 15:08:33 UTC
01dd85f DOCS: Document changes 16 June 2017, 08:00:13 UTC
6fa4bcf DOCS: Document changes 16 June 2017, 07:58:53 UTC
e4045b2 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 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 Merge pull request #262 from JoostJM/script-update Add case-specific labels in batchprocessing 07 June 2017, 10:56:16 UTC
2a4a427 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 Merge pull request #261 from JoostJM/symmetrical-glcm-bug Fix bug when creating symmetrical GLCM 01 June 2017, 11:08:33 UTC
9aa8c01 DOCS: Document symmetrical GLCM bugfix 31 May 2017, 13:11:26 UTC
d8032f3 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 PyRadiomics 1.2.0 30 May 2017, 08:12:25 UTC
737ac26 PyRadiomics 1.2.0 30 May 2017, 07:45:16 UTC
f8f65df Merge pull request #260 from fedorov/use-corrected-mask BUG: use resampled mask for analysis 29 May 2017, 18:42:48 UTC
405f77b 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 BUG: update test 29 May 2017, 18:16:36 UTC
7233b77 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 Merge pull request #257 from JoostJM/update-c-glszm Enhance C GLSZM 29 May 2017, 06:49:23 UTC
1555f0e DOCS: Document changes 24 May 2017, 15:00:18 UTC
267d04d 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 DOCS: Update requirements in documentation Update documentation to reflect changes made in #231 24 May 2017, 12:07:22 UTC
2184ba0 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 Merge pull request #255 from JoostJM/add-changelog Add changelog 24 May 2017, 09:14:02 UTC
back to top