aim-harvard / slicerradiomics Goto Github PK
View Code? Open in Web Editor NEWA Slicer extension to provide a GUI around pyradiomics
License: BSD 3-Clause "New" or "Revised" License
A Slicer extension to provide a GUI around pyradiomics
License: BSD 3-Clause "New" or "Revised" License
@jcfr, it appears the generic module test for slicer radiomics failed. It is complaining about a call to VC with python arguments.
test_widgetRepresentation (qSlicerSlicerRadiomicsModuleGenericTest.qSlicerSlicerRadiomicsModuleGenericTest) ... Traceback (most recent call last):
File "C:/D/N/E-0/Radiomics-build/inner-build/lib/Slicer-4.9/qt-scripted-modules/SlicerRadiomics.py", line 61, in setup
self._addCustomizationSection()
File "C:/D/N/E-0/Radiomics-build/inner-build/lib/Slicer-4.9/qt-scripted-modules/SlicerRadiomics.py", line 295, in _addCustomizationSection
self.parameterFilePathLineEdit = ctk.ctkPathLineEdit(filters=ctk.ctkPathLineEdit.Files)
ValueError: Calling C++ functions with Python keywords is not supported! Function: ctkPathLineEdit(QWidget parent) Keywords: {'filters': 2}
ok
http://slicer.cdash.org/testDetails.php?test=8615594&build=1191518
Moreove, the unit-tests on windows also appear to be failing, but I don't see any output. The Linux/Mac tests pass, but they are tested using an earlier commit.
The SlicerRadiomics extension has had build errors since March 31st, 2023 that has made it unavailable on macOS
https://slicer.cdash.org/viewBuildError.php?buildid=2985286
It is unable to build a macOS whl of pyradiomics
. Around the time when this extension started to fail,
Hello,
When I use Jupyter lab to run helloRadiomics.py, I am getting the following error. The samething happens when I open python helloRadiomics.py in Gitbash. How can I resolve this?
ModuleNotFoundError Traceback (most recent call last)
in
7 import SimpleITK as sitk
8
----> 9 import radiomics
10 from radiomics import featureextractor
11
ModuleNotFoundError: No module named 'radiomics'
Thanks
As suggested by @rkikinis , it could be listed on the top banner of https://www.slicer.org/
In the Slicer built tree, the python interpreter is found by #!/usr/bin/env python
, whereas in the installed tree this should be #!/usr/bin/env python-real
Moreover, #!/usr/bin/env SlicerPython
does not work, as it tries to start bin/python-real
which does not work, as the current working directory is already the /bin
folder in that case.
Currently errors are caught but no diagnostic info is printed. Perhaps conditionally on the logging level we should include code like the following.
except:
import traceback
traceback.print_exc()
Dear sirs I would like to know if Slicer radiomics works on windows 7 64 bit. thanks. Giordano
Hi, I've been trying to use the newly updated SlicerRadiomics package to extract radiomics features, but the error below prompted every time I clicked apply. There were only table titles in the tables. At first I thought it was due to the setting of my machine. But after I tried 3 different machines, including win and linux, the same thing happened. I've tried Slicer 5.3-5.6, and even manually changed the py files but nothing worked. Hope someone could help me fix this problem. Thanks!!
[2023-12-04 00:42:47] I: radiomics.script: Processing input...
[2023-12-04 00:42:47] E: radiomics.script: Error extracting features!
Traceback (most recent call last):
File "/home/ubuntu/Slicer-5.6.0-linux-amd64/slicer.org/Extensions-32390/SlicerRadiomics/lib/python3.9/site-packages/radiomics/scripts/init.py", line 135, in run
results = self._processCases(caseGenerator)
File "/home/ubuntu/Slicer-5.6.0-linux-amd64/slicer.org/Extensions-32390/SlicerRadiomics/lib/python3.9/site-packages/radiomics/scripts/init.py", line 233, in _processCases
setting_overrides = self._parseOverrides()
File "/home/ubuntu/Slicer-5.6.0-linux-amd64/slicer.org/Extensions-32390/SlicerRadiomics/lib/python3.9/site-packages/radiomics/scripts/init.py", line 353, in _parseOverrides
settingsSchema = yaml.safe_load(schema)['mapping']['setting']['mapping']
File "/home/ubuntu/Slicer-5.6.0-linux-amd64/slicer.org/Extensions-32390/SlicerRadiomics/lib/python3.9/site-packages/ruamel/yaml/main.py", line 1105, in safe_load
error_deprecation('safe_load', 'load', arg="typ='safe', pure=True")
File "/home/ubuntu/Slicer-5.6.0-linux-amd64/slicer.org/Extensions-32390/SlicerRadiomics/lib/python3.9/site-packages/ruamel/yaml/main.py", line 1037, in error_deprecation
raise AttributeError(s)
AttributeError:
"safe_load()" has been removed, use
yaml = YAML(typ='safe', pure=True)
yaml.load(...)
instead of file "/home/ubuntu/Slicer-5.6.0-linux-amd64/slicer.org/Extensions-32390/SlicerRadiomics/lib/python3.9/site-packages/radiomics/scripts/init.py", line 353
settingsSchema = yaml.safe_load(schema)['mapping']['setting']['mapping']
Hello,
I'm a beginner at pyRadiomics. I've installed radiomics module in the slicer.
The steps I used for the feature extraction:
Imported the 2D Dicom image (one slice) for the test.
Drew an ROI on the tumor (label)
Open the module Radiomics in the slicer.
Select All features, apply
Export as a table. 118 features were extracted.
Am I doing it correctly? If the above method is wrong, can anyone guide me through this? Also, is there any way to export the table from the slicer as a CSV file?
I would really appreciate the help!
Thanks,
Durgesh
Hi! I want to use the SlicerRadiomics From 3D Slicer but i can't find the version of MAC.I have tried the methods with source code but failed.Can you provide a install-archive for me? So I can install from file.THANKS!!!
Any idea why the SlicerRadiomics extension isn't available for installation in the Extensions Manager on Slicer for the current nightly build version?
Previously I was using an older build; decided to upgrade to the nightly build of Slicer 4.11.0 and the extension is not available any longer.
I am on a Macbook Pro with Mojave 10.14.4.
Thanks for your help.
Excuse my question, but I really do not know what to do.
As you mentioned on GitHub-Website, Radiomics should be installed on 3D-Slicer Version 4.13 (unstable).
I followed your description, but it is not possible installing any extension.
Additionally, DICOM-Data cannot be downloaded in 3D-Slicer, because "unfortunately, this request module is not available in this Slicer session".
Because of that I tried installing 3D-Slicer Verion 4.11, but I just can install "RadiomicsCLI", which works differently, as I noticed.
I have a Macbook (macOS Catalina, Version 10.15.7) and would be very pleasant for your help!
To make it easier to debug and to file issues, add a gui option to run in verbose debugging mode.
Hello! I am new to Radiomics and Segmentation. I have some dicom images depicting lung tissues. How can I manually segment the tissues and save a mask file for each dicom, in the supported format nrrd? I tried several tools but it all seems very confusing! Anyone?
tried SlicerRadiomics in 3D slicer. Successfully installed. But keep getting the following message. Try it in both 4.10 stable release and 4.11 nightly build. Also tried pip to install pywavelets. The python console shows it has been installed.
==================================================================
Requirement already satisfied: pywavelets in c:\users\usersname\appdata\roaming\na-mic\extensions-27501\slicerradiomics\lib\site-packages (1.0.0)
Requirement already satisfied: numpy>=1.9.1 in c:\program files\slicer 4.10.0\lib\python\lib\site-packages\numpy-1.13.1-py2.7-win-amd64.egg (from pywavelets) (1.13.1)
0
===============================================================
**RadiomicsCLI standard error:
Traceback (most recent call last):
File "C:/Users/usersname/AppData/Roaming/NA-MIC/Extensions-27501/SlicerRadiomics/lib/Slicer-4.10/cli-modules/SlicerRadiomicsCLI.py", line 6, in
from radiomics.scripts import parse_args
File "C:\Users\usersname\AppData\Roaming\NA-MIC\Extensions-27501\SlicerRadiomics\Lib\site-packages\radiomics_init_.py", line 15, in
from . import imageoperations
File "C:\Users\usersname\AppData\Roaming\NA-MIC\Extensions-27501\SlicerRadiomics\Lib\site-packages\radiomics\imageoperations.py", line 6, in
import pywt
File "C:\Users\usersname\AppData\Roaming\NA-MIC\Extensions-27501\SlicerRadiomics\Lib\site-packages\pywt_init_.py", line 16, in
from ._extensions._pywt import *
ImportError: DLL load failed: The specified module could not be found.**
The SlicerRadiomics package for Windows has been unavailable due to a build error that has been present since January 20th, 2021. This means SlicerRadiomics is unavailable on the latest stable Slicer release which is Slicer 4.11.20210226 and also unavailable in the latest preview.
First build error
Generate version-python-pyradiomics.txt and license-python-pyradiomics.txt
No configure step for 'python-pyradiomics'
No build step for 'python-pyradiomics'
Performing install step for 'python-pyradiomics'
Collecting PyYAML>=3.12
Downloading PyYAML-5.4.tar.gz (174 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'error'
D:\D\P\Slicer-0-build\python-install\Lib\site-packages\pip\_internal\commands\install.py:234: UserWarning: Disabling all use of wheels due to the use of --build-option / --global-option / --install-option.
cmdoptions.check_install_build_global(options)
Starting build failure on January 20th, 2021: https://slicer.cdash.org/viewBuildError.php?buildid=2125897
Current build failure for Slicer stable: https://slicer.cdash.org/viewBuildError.php?buildid=2174728
Compiler environment needs to be set to ensure compilation from python package built from source succeeds and is done with a compiler matching the one user for the extension.
This user report below summarizes the issue, which is reproducible with the latest nightly and stable releases of Slicer. It appears that the generator succeeds in creating a label node representation in https://github.com/AIM-Harvard/SlicerRadiomics/blob/master/SlicerRadiomics/SlicerRadiomics.py#L544-L550, and also if the segmentation is exported into a labelmap node, then feature extraction works with that labelmap node defining the mask.
https://discourse.slicer.org/t/support-3d-slicer-and-pyradiomics/18474
As discussed, we will at least initially have documentation page in md as part of the main repository.
Copied from #37
Feature requested by the user via email:
I have read a number of papers in the field of radiomics and found resamlping and normalization of image volume as a standard of operation in many papers. And I found resamlping as an option in the Radiomics plug-in but normalization not involved. I am wondering if normalization is as the SOP that the plug-in code runs. If not, how can I use the 3D slicer software to perform normalize.
I am trying to create a volume with the voxel based Radiomic features? Does anyone know what I may be doing incorrectly.. (see yaml input parameters below).
imageType:
Original: {}
featureClass:
ngtdm:
voxelSetting:
kernelRadius: 3
maskedKernel: True
initValue: nan
I am thinking that it may be that pyradiomics had a bug..
AIM-Harvard/pyradiomics#456
Thanks,
AC
When installing SlicerRadiomics from extension manager, installation works, however, the module cannot be loaded due to an error with the pyYAML library. When you comment out import pykwalify
in featureextractor.py
(in the installed site-packages), module loads fine and works without issue (pykwalify not needed in slicer extension)
When I try to extract features using resampling and LoG filtering, I cannot get values for the filtered images. However, when I try to use only LoG filtering, there is no problem.
Build on Win fails, but as discussed that is expected.. See #20
Linux: cmake issues http://slicer.cdash.org/viewBuildError.php?buildid=1014261
@jcfr ?
This is happening both for the nightly and 4.8 stable:
Hello,
i have installed the latest nightly build of 3D slicer (Version 4.5.0-1 r24735) and searched for this extension, but no results were found. A local build is the only way to use it in windows? thanks for the answer!
Best,
Lei
Currently, customization of the extraction is very limited in SlicerRadiomics. Moreover, Yaml parsing using PyYaml doesn't work currently on windows (see #23), which means SlicerRadiomics cannot use the parameterfile.
This issue is created to make a list of GUI elements that should be made to expose the most important customization features of PyRadiomics.
Current suggestions:
cc @Radiomics/developers
Hi, I install the slicerRadiomics on 3D Slicer by extensions manager. But it occurs the following errors when I use it to extract the brain tumor features.
Feature calculation failed.
Feature calculation failed.
Traceback (most recent call last):
File "C:/Users/15526/AppData/Roaming/NA-MIC/Extensions-27931/SlicerRadiomics/lib/Slicer-4.10/qt-scripted-modules/SlicerRadiomics.py", line 405, in onApplyButton
self.onFinished)
File "C:/Users/15526/AppData/Roaming/NA-MIC/Extensions-27931/SlicerRadiomics/lib/Slicer-4.10/qt-scripted-modules/SlicerRadiomics.py", line 735, in runCLI
self.runCLIWithParameterFile(imageNode, maskNode, tableNode, parameterFile, callback)
File "C:/Users/15526/AppData/Roaming/NA-MIC/Extensions-27931/SlicerRadiomics/lib/Slicer-4.10/qt-scripted-modules/SlicerRadiomics.py", line 773, in runCLIWithParameterFile
self._startCLI(firstRun=True)
File "C:/Users/15526/AppData/Roaming/NA-MIC/Extensions-27931/SlicerRadiomics/lib/Slicer-4.10/qt-scripted-modules/SlicerRadiomics.py", line 531, in _startCLI
labelName, labelNode, label_idx, imageNode = self._labelGenerators.next()
AttributeError: 'itertools.chain' object has no attribute 'next'
I tried to download and build from source on linux. It doesn't load, with the following error. Any idea? Is it because linux-related issue on the main page?
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/PHShome/gcs6/build/slicer-4/SlicerRadiomics-build/inner-build/lib/Slicer-4.7/qt-scripted-modules/SlicerRadiomics.py", line 5, in <module>
from radiomics import featureextractor, getFeatureClasses, setVerbosity
ImportError: No module named radiomics
loadSourceAsModule - Failed to load file "/PHShome/gcs6/build/slicer-4/SlicerRadiomics-build/inner-build/lib/Slicer-4.7/qt-scripted-modules/SlicerRadiomics.py" as module "SlicerRadiomics" !
Fail to instantiate module "SlicerRadiomics"
From https://discourse.slicer.org/t/why-is-slicerradiomics-only-partly-functional/24449
the SlicerRadiomics is devoid of a BATCH function.
I don't know if I did something wrong, or if there any dependency missing. But I couldn't find the Radiomics in the 3D Slicer extensions manager.
I tried the search mode in All, and looking for it into the Informatics category.
I am using windows 10, and tried using stable(4.10) and nightly (4.11)
See user request in https://discourse.slicer.org/t/why-is-slicerradiomics-only-partly-functional/24449
Thereby, only LoG, Wavelet and Original image types can be activated. That leaves seven other image transformations unavailable, such as exponential, logarithm, square etc… I know that a full array of image modifications can be achieved by using a Parameters file but such a file in YAML is extremely user-unfriendly for anyone who is not seasoned code developer.
I have 2 questions
Is there a command line way to extract radiomics of one specific structure using an RT-Struct file with many contours.
Also is it possible to do this as a batch process for many patients using command line
Thanks
When the segmentation is large computation can take a long time and the application hangs with no feedback to the user.
Even as we optimize the implementation in #256 there will always be situations that require progress reporting.
This may be challenging with the current design, because all computation is done in the main thread without progress events no mechanisms to abort a computation. That is, the ITK code to compute Feret diameter is a tight loop and our proposed replacement cmatrices code follows the same pattern as a single python call that enters a tight C loop.
I suggest we follow the threading pattern in SimpleFilters.
Tested Slicer 4.8.1 and it has an old version. Once we are comfortable with the CLI we should update the version of SlicerRadiomics for the stable release.
Currently the mac nightly is not available due to the qt5 transition, so there's no version for mac at the moment.
RadiomicsCLI standard error:
Traceback (most recent call last):
File "/Applications/Slicer-4.8.1.app/Contents/Extensions-26813/SlicerRadiomics/lib/Slicer-4.8/cli-modules/SlicerRadiomicsCLIScript", line 6, in <module>
from radiomics.scripts import commandline
File "/Applications/Slicer-4.8.1.app/Contents/Extensions-26813/SlicerRadiomics/lib/python2.7/site-packages/radiomics/__init__.py", line 4, in <module>
import collections # noqa: F401
File "/Applications/Slicer-4.8.1.app/Contents/lib/Python/lib/python2.7/collections.py", line 20, in <module>
from _collections import deque, defaultdict
ImportError: No module named _collections
RadiomicsCLI completed with errors
Hello,
I downloaded both stable and nightly versions (5.4.0 and 5.5.0) of Slicer, installed and opened the software according to the instruction. (without any problem)
But, in the extension manager I could not find "SlicerRadiomics" extension to install on my macbook air M2, Ventura 13.2.1
On the website, the "SlicerRadiomics" can be found for Linux and Windows but not Mac OS.
I would be grateful to instruct me what should I do to be able to download and use this extension.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.