Giter VIP home page Giter VIP logo

chestimagingplatform's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chestimagingplatform's Issues

Support for M1 mac

The TensorFlow library was compiled to use AVX instructions, but these aren't available on your machine.

$ python /ChestImagingPlatform/cip_python/dcnn/projects/lung_segmenter/lung_segmenter_dcnn.py --i /tmp/${cid}_resampled.nrrd --t combined  --o /tmp/${cid}_partialLungLabelMap_resampled.nrrd
2023-10-04 18:53:33.551479: F tensorflow/core/platform/cpu_feature_guard.cc:37] The TensorFlow library was compiled to use AVX instructions, but these aren't available on your machine.
qemu: uncaught target signal 6 (Aborted) - core dumped
Aborted

Maybe related tickets:
tensorflow/tensorflow#52845
tensorflow/tensorflow#52972
tensorflow/tensorflow#24548

gprobe giving function deprecation warnings

%run airway_particles.py -i /Users/jross/Downloads/ChestImagingPlatform/Testing/Data/Input/airway.nrrd -o /Users/jross/tmp/tmp.vtk -t /Users/jross/tmp/foo/

Produces the following output when gprobe is invoked:

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q totalcurv -v 0 -o /Users/jross/tmp/foo/totalcurv.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q meancurv -v 0 -o /Users/jross/tmp/foo/meancurv.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q hess -v 0 -o /Users/jross/tmp/foo/hess.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q val -v 0 -o /Users/jross/tmp/foo/val.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q hf -v 0 -o /Users/jross/tmp/foo/hf.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q flowlinecurv -v 0 -o /Users/jross/tmp/foo/flowlinecurv.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q 2dd -v 0 -o /Users/jross/tmp/foo/2dd.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q lapl -v 0 -o /Users/jross/tmp/foo/lapl.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q curvdir2 -v 0 -o /Users/jross/tmp/foo/curvdir2.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q curvdir1 -v 0 -o /Users/jross/tmp/foo/curvdir1.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q gausscurv -v 0 -o /Users/jross/tmp/foo/gausscurv.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q heval0 -v 0 -o /Users/jross/tmp/foo/heval0.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q heval1 -v 0 -o /Users/jross/tmp/foo/heval1.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q heval2 -v 0 -o /Users/jross/tmp/foo/heval2.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q kappa1 -v 0 -o /Users/jross/tmp/foo/kappa1.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q kappa2 -v 0 -o /Users/jross/tmp/foo/kappa2.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q gmag -v 0 -o /Users/jross/tmp/foo/gmag.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q hmode -v 0 -o /Users/jross/tmp/foo/hmode.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q gvec -v 0 -o /Users/jross/tmp/foo/gvec.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q hevec1 -v 0 -o /Users/jross/tmp/foo/hevec1.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q hevec0 -v 0 -o /Users/jross/tmp/foo/hevec0.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q hevec2 -v 0 -o /Users/jross/tmp/foo/hevec2.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q median -v 0 -o /Users/jross/tmp/foo/median.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q st -v 0 -o /Users/jross/tmp/foo/st.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

gprobe -i /Users/jross/tmp/foo/ct-deconv.nrrd -k scalar -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pi /Users/jross/tmp/foo/pass3.nrrd -q si -v 0 -o /Users/jross/tmp/foo/si.nrrd -ssn 5 -sso -ssr 0 006 -ssf /Users/jross/tmp/foo/V-%03u-005.nrrd -ssnd

gageStackBlurParmScaleSet: !!! This function is deprecated; use gageStackBlurParmSigmaSet instead !!!

finished probing

build issues on macos/ubuntu: cannot connect to github.com

Hi developers

I was trying to build the file, however, it showed up an error message says: "cannot connect to github.com"
I figured out by looking into the build folder, for example, there is a file called: /CIPPython-prefix/tmp/CIPPython.gitclone.cmake, then open this file and find the line says: clone --no--checkout * "git://github.com/" and replace the "git://" to "https://"
(no quotation needed in the actual code)

As I am new to git and make, so I am not sure is this the git setup issue or some make files need to be update or neither.

Looking forward to hearing any comments and suggestion.
Thanks

lobe segmentation workflow issue on docker version

Hello,

I am trying to run the lobe segmentation workflow from inside the container with:
python /ChestImagingPlatform/cip_python/nipype/workflows/lung_lobe_segmentation_workflow.py --in_ct /hdd_scratch3/br888855/own_nrrd_convert/test_write__20181017192209_3314255955.nrrd --out /hdd_scratch3/br888855/own_nrrd_convert/CIPlungSegWorkflow_labelmask.nrrd

The workflow throws the following error:

RuntimeError: Command:
GeneratePartialLungLabelMap --ict "/hdd_scratch3/br888855/own_nrrd_convert/test_write__20181017192209_3314255955.nrrd" --olm "/tmp/tmpQG60_7/cid_partialLungLabelMap.nrrd"
Standard output:
Clipping low CT image values...
Clipping upper CT image values...
Executing partial lung filter...
Standard error:
Exception caught segmenting lungs:
itk::ExceptionObject (0xd86be0)
Location: "unknown"
File: /ChestImagingPlatform-build/ITKv4/Modules/Core/Common/src/itkMultiThreader.cxx
Line: 399
Description: itk::ERROR: MultiThreader(0xc88700): Exception occurred during SingleMethodExecute
/ChestImagingPlatform-build/ITKv4/Modules/Segmentation/ConnectedComponents/include/itkConnectedComponentImageFilter.hxx:347:
itk::ERROR: ConnectedComponentImageFilter(0xcafe80): Number of objects greater than maximum of output pixel type

Return code: 15
Interface GeneratePartialLungLabelMap failed to run.

I think this happens because the image I am using is quite large (~1,000 slices) and the issue should be solvable by changing the output data type of itkConnectedComponentImageFilter. I am, however, not able to do this or edit the container.

Any help /advice greatly appreciated!

ERROR: error parsing "c:\users\administrator\appdata\local\temp\tmpttwliy\ct-deconv.nrrd:scalar:0-10-6.0-o:V"

@hi, i encountered a problem when using imagechest[latform in my own computer, and i don't know how to fix it. when i run the file test_airway_particle.py, and it goes like this
Resetting param groups...
Building param groups...
Starting pass 1...
puller -sscp c:\users\administrator\appdata\local\temp\tmpttwliy -cbst true -vol c:\users\administrator\appdata\local\temp\tmpttwliy\ct-deconv.nrrd:scalar:0-10-6.0-o:V c:\users\administrator\appdata\local\temp\tmpttwliy\ct-deconv.nrrd:scalar:0-10-6.0-on:VSN D:\workspace\2\cip_python\particles\tests/../../../Testing/Data/Input/vessel_vesselSeedsMask.nrrd:scalar:M -nave true -v 0 -pbm 0 -bsp bleed -info h-c:V:val:0:-1 hgvec:V:gvec hhess:V:hess tan1:V:hevec1 tan2:V:hevec2 sthr:VSN:heval1:-80:-1 lthr:VSN:heval1:-100:-1 strn:VSN:heval1:0:-1 spthr:M:val:0.5:1 -enr qwell:0.7 -ens bparab:10,0.7,-0.00 -enw butter:10,0.7 -efs false -int uni -irad 1.5 -srad 1.2 -alpha 1.0 -beta 0.77 -gamma 0.37 -ppv 2 -nss 2 -jit 1 -k00 c4h -k11 c4hd -k22 c4hdd -kssr hermite -kssb ds:1,5 -pcp 6 -edpcmin 0.1 -edmin 0.0000001 -eip 0.00001 -ess 0.5 -oss 2.0 -step 1 -maxci 10 -rng 45 -bws 1.3 -o _c:\users\administrator\appdata\local\temp\tmpttwliy\pass1.nrrd -maxi 100

ERROR: error parsing "c:\users\administrator\appdata\local\temp\tmpttwliy\ct-deconv.nrrd:scalar:0-10-6.0-o:V"_

(in "c:\users\administrator\appdata\local\temp\tmpttwliy\ct-deconv.nrrd:scalar:0-10-6.0-o:V c:\users\administrator\appdata\local\temp\tmpttwliy\ct-deconv.nrrd:scalar:0-10-6.0-on:VSN D:\workspace\2\cip_python\particles\tests/../../../Testing/Data/Input/vessel_vesselSeedsMask.nrrd:scalar:M") as meetPullVol for "-vol" option:
[meet] meetPullVolParse: couldn't parse "\users\administrator\appdata\local\temp\tmpttwliy\ct-deconv.nrrd" as kind

i install the software teem successfully, and other commands work well. the file ct-deconv.nrrd generated successfully in C:\Users\Administrator\AppData\Local\Temp\tmpttwliy. i don't konw what's wrong, can you help me ?
looking forward to your reply.

CIP develop branch build failure on windows and ubuntu

Hello,

I have been trying to build CIP on my windows computer with the develop branch. I have tried different versions of cmake including 3.5.2, 3.5, 3.15, and also tried different versions of gcc such as gcc 5.4, 7.4, 8.1. But I have not been able to successfully build it. I have also tried using the ubuntu WSL with ubuntu 18.04, 16.04 also with different cmake and gcc versions. It always keeps erroring out. Please let me know what I can do to solve this. Here is the error that I get:

HEAD is now at 31dc6a08b8 BUG: Ensure VTK_PYTHON_SITE_PACKAGES_SUFFIX is set in vtkInitializeWrapPython
Submodule 'VTK-m' (https://gitlab.kitware.com/vtk/vtk-m.git) registered for path 'ThirdParty/vtkm/vtk-m'
Cloning into 'C:/Users/pilht4/Desktop/CIP/ChestImagingPlatform-build/VTKv8/ThirdParty/vtkm/vtk-m'...
Updating files: 100% (8/8), done.
Already on 'master'
process_begin: CreateProcess(NULL, CIPPython-install\Scripts\conda install --yes -c conda-forge nipype==0.12.1, ...) failed.
make (e=2): The system cannot find the file specified.
make[2]: *** [CIPPython-prefix/src/CIPPython-stamp/CIPPython-installnipype] Error 2
make[1]: *** [CMakeFiles/CIPPython.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
In file included from C:/Users/pilht4/Desktop/CIP/ChestImagingPlatform-build/VTKv8/ThirdParty/lzma/vtklzma/src/liblzma/common/common.h:19:0,
from C:\Users\pilht4\Desktop\CIP\ChestImagingPlatform-build\VTKv8\ThirdParty\lzma\vtklzma\src\liblzma\check\check.h:16,
from C:\Users\pilht4\Desktop\CIP\ChestImagingPlatform-build\VTKv8\ThirdParty\lzma\vtklzma\src\liblzma\check\check.c:13:
C:/Users/pilht4/Desktop/CIP/ChestImagingPlatform-build/VTKv8/ThirdParty/lzma/vtklzma/src/common/mythread.h:138:33: error: unknown type name 'sigset_t'
mythread_sigmask(int how, const sigset_t *restrict set,
^
C:/Users/pilht4/Desktop/CIP/ChestImagingPlatform-build/VTKv8/ThirdParty/lzma/vtklzma/src/common/mythread.h:139:3: error: unknown type name 'sigset_t'
sigset_t *restrict oset)
^
C:/Users/pilht4/Desktop/CIP/ChestImagingPlatform-build/VTKv8/ThirdParty/lzma/vtklzma/src/common/mythread.h: In function 'mythread_create':
C:/Users/pilht4/Desktop/CIP/ChestImagingPlatform-build/VTKv8/ThirdParty/lzma/vtklzma/src/common/mythread.h:158:2: error: unknown type name 'sigset_t'
sigset_t old;
^
C:/Users/pilht4/Desktop/CIP/ChestImagingPlatform-build/VTKv8/ThirdParty/lzma/vtklzma/src/common/mythread.h:159:2: error: unknown type name 'sigset_t'
sigset_t all;
^
make[5]: *** [ThirdParty/lzma/vtklzma/CMakeFiles/vtklzma.dir/src/liblzma/check/check.c.obj] Error 1
make[4]: *** [ThirdParty/lzma/vtklzma/CMakeFiles/vtklzma.dir/all] Error 2
make[4]: *** Waiting for unfinished jobs....
CMakeFiles\vtkglew.dir/objects.a(glew.c.obj):glew.c:(.text+0x16ea0): multiple definition of `DllMainCRTStartup'
C:/ProgramData/chocolatey/lib/mingw/tools/install/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/5.4.0/../../../../x86_64-w64-mingw32/lib/../lib/dllcrt2.o:crtdll.c:(.text+0x3e0): first defined here
collect2.exe: error: ld returned 1 exit status
make[5]: *** [bin/libvtkglew-8.2.dll] Error 1
make[4]: *** [ThirdParty/glew/vtkglew/CMakeFiles/vtkglew.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [VTKv8-prefix/src/VTKv8-stamp/VTKv8-build] Error 2
make[1]: *** [CMakeFiles/VTKv8.dir/all] Error 2
make: *** [all] Error 2

Also attached is the cmakeOutputLog.
CMakeOutput.log
CMakeOutput.log

Please let me know if there are any solutions to this issue. Any help is appreciated. If anyone has built on windows please let me know what steps to follow. Thank you.

Exception in GeneratePartialLungLabelMap: Number of objects greater than maximum of output pixel type

I'm trying to extract a partial lung label map for each of ~1600 lung CT images using GeneratePartialLungLabelMap. The utility runs without a problem for all but about 20 subjects. For those 20 subjects, I get the following error:

$ GeneratePartialLungLabelMap --ict K0026/K0026_original_3D.nrrd -o K0026/K0026_partialLungLabelMap.nrrd
Clipping low CT image values...
Clipping upper CT image values...
Executing partial lung filter...
Exception caught segmenting lungs:
itk::ExceptionObject (0x2ccd880)
Location: "unknown" 
File: /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform/build/ITKv4/Modules/Core/Common/src/itkMultiThreader.cxx
Line: 420
Description: itk::ERROR: MultiThreader(0x2ab9040): Exception occurred during SingleMethodExecute
/pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform/build/ITKv4/Modules/Segmentation/ConnectedComponents/include/itkConnectedComponentImageFilter.hxx:347:
itk::ERROR: ConnectedComponentImageFilter(0x2abd880): Number of objects greater than maximum of output pixel type 

I've tried extracting the simple lung masks using GenerateSimpleLungMask and supplementing with them, but I get the same error.

Generating the simple lung masks: GenerateSimpleLungMask -i K0026/K0026_original_3D.nrrd -o K0026/K0026_simpleLungMask.nrrd

Generating the lung label map using the simple lung mask: GeneratePartialLungLabelMap --ict K0026/K0026_original_3D.nrrd --hm K0026/K0026_simpleLungMask.nrrd -o K0026/K0026_partialLungLabelMap.nrrd

I'm using the develop branch, and one of the images I'm having problems with can be found here: (https://www.dropbox.com/s/xbrupfheng6sw2m/K0026_original_3D.nrrd?dl=0).

Any help you can offer would be greatly appreciated.

Issues with Region/Type hierarchy

Just run into a Region/Type hierarchy issue. The issue can be reproduced as follows

GenerateSimpleLungMask -i <CIP_SOURCE_DIR>/Testing/Data/Input/ct-64.nrrd -o /tmp/kk.nrrd
ExtractChestLabelMap -r WholeLung -i /tmp/kk.nrrd -o /tmp/kk2.nrrd

I think the issue is related to the fact that Whole Lung has two potential hierarchical groups:
Left L + Right L
Upper Third + Middle Third + Lower Third

SimpleLungMask produces the second grouping that it does not seem to be properly addressed by itkCIPExtractChestLabelMapImageFilter

NOTE: This has to be tested in the release branch. GenerateSimpleLungMask is using the new convention in the Release Branch.

CommandLineTools/RegisterCT.cxx compile error in SlicerCIP superbuild

When CIP is built as a part of SlicerCIP superbuild, we get the following compile error (in OS X but similar in Windows as well):

/Users/jinho/Github/SlicerCIP-build/CIP/CommandLineTools/RegisterCT/RegisterCT.cxx:765:40: error: 
      no viable conversion from 'SmartPointer<class
      itk::MatrixOffsetTransformBase<double, 3, 3>>' to 'SmartPointer<class
      itk::Rigid3DTransform<double>>'
  ...RigidTransformType::Pointer rigidTransform = RigidTransformType::New();

After tracing it down, it turned out that CIP superbuild uses the following compiler flag to build ITK, while Slicer superbuild does not, which CIP in SlicerCIP uses for ITK.

-DITKV3_COMPATIBILITY:BOOL=ON (defined in External_ITKv4.cmake)

This flag is used in an ITK header file (itkv4/Modules/Core/Transform/include/itkRigid3DTransform.h) as following:

#ifdef ITKV3_COMPATIBILITY
  /** Run-time type information (and related methods).   */
  itkNewMacro(Self);
#endif

where the New() method is not included without this flag defined.

And, CIP CommandLineTools/RegisterCT.cxx uses the New() method that requires this flag (on line 765)

typename RigidTransformType::Pointer rigidTransform = RigidTransformType::New();

There may be other ways to resolve this error but a recommendation is to remove the dependency on the ITKV3_COMPATIBILITY in the CIP code (if feasible).

Particles lacking topology data

Some vtkPolyData filter does not produce the desire result with Particle vtk files because we are missing topology information.

We should consider adding single point vertex cells information to the particles vtk data to make it a full vtkPolyData dataset

lung_lobe_segmentation_workflow.py throws up ImportError

Hi,
I installed CIP on a ubuntu 16.04 machine using cmake 3.7.2. The installation completed without any errors. Now I want to do lung segmentation on my data, for which I use the following script:
$python ~/ChestImagingPlatform/ChestImagingPlatform-build/CIP-build/cip_python/nipype/workflows/lung_lobe_segmentation_workflow.py --in_ct ~/1700_img.nrrd --out ~/test.nrrd

But this throws up an Import error:
File "~/ChestImagingPlatform/ChestImagingPlatform-build/CIP-build/cip_python/nipype/workflows/lung_lobe_segmentation_workflow.py", line 4, in <module>
import cip_python.nipype.interfaces.cip as cip
ImportError: No module named cip_python.nipype.interfaces.cip

I see the __init__.py file in the cip_python, nipype and the interfaces folders and hence am confused about the reason for this error. Did anyone else encounter this issue?

PS: the CIP-build/bin folder is in my system path.

Resolve RASToIjk matrix when using ITKVtkGlue

vtkCIPNRRDReader provided RASToIjk. We need to get that info from ITKVtkGlue.

There is an additional problem. ITK in Slicer does not include this module. We might need to either reach an agreement or drop this option to keep compatibility with Slicer.

Installation issue on Linux Box/HPC cluster

Hi, I'm trying to install the CIP library and encountered the following errors. I've followed the github wiki and downloaded the develop branch. The problems are:

UPDATE: The first error only raises when I try to build on more than 2 cores (e.g. make -j 8 ). The second error persists.

  1. It seems to be missing the itkMultiThreaderBase.h file:
    [ 53%] Linking CXX executable ../../bin/ConvertDicom
    In file included from /hdd_scratch3/br888855/ChestImagingPlatform/CommandLineTools/ExampleCLI/Testing/ExampleCLITest.cxx:1:0:
    /hdd_scratch3/br888855/ChestImagingPlatform/CommandLineTools/Testing/itkTestMain.h:41:10: fatal error: itkMultiThreaderBase.h: No such file or directory
    #include "itkMultiThreaderBase.h"
    ^~~~~~~~~~~~~~~~~~~~~~~~

  2. It seems to be trying to use a C compiler to install C++ code:
    [ 54%] Built target ConvertDicom
    running build_ext
    skipping '/hdd_scratch3/br888855/ChestImagingPlatform/cip_python/utils/gco_python/gco_python.cpp' Cython extension (up-to-date)
    building 'pygco' extension
    /usr/bin/cc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/hdd_scratch3/br888855/ChestImagingPlatform/Utilities/GraphCutsOptimization -I/hdd_scratch3/br888855/ChestImagingPlatform-build/CIPPython-install/lib/python2.7/site-packages/numpy/core/include -I/hdd_scratch3/br888855/ChestImagingPlatform-build/CIPPython-install/include/python2.7 -c /hdd_scratch3/br888855/ChestImagingPlatform/cip_python/utils/gco_python/gco_python.cpp -o build/temp.linux-x86_64-2.7/hdd_scratch3/br888855/ChestImagingPlatform/cip_python/utils/gco_python/gco_python.o
    cc1plus: warning: command line option '-Wstrict-prototypes' is valid for C/ObjC but not for C++ [enabled by default]
    In file included from /hdd_scratch3/br888855/ChestImagingPlatform-build/CIPPython-install/include/python2.7/Python.h:19:0,
    from /hdd_scratch3/br888855/ChestImagingPlatform/cip_python/utils/gco_python/gco_python.cpp:4:
    /usr/include/limits.h:124:26: error: no include path in which to search for limits.h

include_next <limits.h>

                      ^

In file included from /hdd_scratch3/br888855/ChestImagingPlatform/cip_python/utils/gco_python/gco_python.cpp:4:0:
/hdd_scratch3/br888855/ChestImagingPlatform-build/CIPPython-install/include/python2.7/Python.h:22:2: error: #error "Something's broken. UCHAR_MAX should be defined in limits.h."
#error "Something's broken. UCHAR_MAX should be defined in limits.h."
^
/hdd_scratch3/br888855/ChestImagingPlatform-build/CIPPython-install/include/python2.7/Python.h:26:2: error: #error "Python's source code assumes C's unsigned char is an 8-bit type."
#error "Python's source code assumes C's unsigned char is an 8-bit type."
^
In file included from /hdd_scratch3/br888855/ChestImagingPlatform-build/CIPPython-install/include/python2.7/Python.h:33:0,
from /hdd_scratch3/br888855/ChestImagingPlatform/cip_python/utils/gco_python/gco_python.cpp:4:
/usr/include/stdio.h:33:21: fatal error: stddef.h: No such file or directory

include <stddef.h>

                 ^

compilation terminated.
error: command '/usr/bin/cc' failed with exit status 1
make[5]: *** [cip_python/CMakeFiles/CIP_PYTHON] Error 1
make[4]: *** [cip_python/CMakeFiles/CIP_PYTHON.dir/all] Error 2

Any help greatly appreciated, thanks!

CIP installation problem Windows 7 x64

I tried to use GitHub code for my purposes and after downloading it I wated to create a buld.

I used the command line cmake --build ../ChestImagingPlatform-build --target ALL_BUILD --config Release -j 2

During creating I had a problem.
-- [download 100% complete]
-- verifying file...
file='J:/CIP/ChestImagingPlatform-build/Boost-prefix/src/boost_1_72_0.tar.gz'
-- Downloading... done
-- extracting...
src='J:/CIP/ChestImagingPlatform-build/Boost-prefix/src/boost_1_72_0.tar.gz'
dst='J:/CIP/ChestImagingPlatform-build/Boost'
-- extracting... [tar xfz]
Already on 'master'
Your branch is up to date with 'origin/master'.
Performing update step for 'CIPPython'
No patch step for 'CIPPython'
No configure step for 'CIPPython'
No build step for 'CIPPython'
Performing install step for 'CIPPython'
J:\CIP\ChestImagingPlatform-build\CIPPython-install already exists. Miniconda will not be installed
Performing installnipype step for 'CIPPython'
-- extracting... [analysis]
-- extracting... [rename]
-- extracting... [clean up]
-- extracting... done
No update step for 'Boost'
No patch step for 'Boost'
Performing configure step for 'Boost'
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
Building Boost.Build engine
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.

Generating Boost.Build configuration in project-config.jam for msvc...

Bootstrapping is done. To build, run:

  .\b2

To adjust configuration, edit 'project-config.jam'.
Further information:

  - Command line help:
  .\b2 --help

  - Getting started guide:
  http://boost.org/more/getting_started/windows.html

  - Boost.Build documentation:
  http://www.boost.org/build/

╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
╨б╨╕╤Б╤В╨╡╨╝╨╡ ╨╜╨╡ ╤Г╨┤╨░╨╡╤В╤Б╤П ╨╜╨░╨╣╤В╨╕ ╤Г╨║╨░╨╖╨░╨╜╨╜╤Л╨╣ ╨┐╤Г╤В╤М.
CUSTOMBUILD : error : wrong library name 'signals' in the --without- option. [J:\CIP\ChestImagingPlatform-build\Boost.vcxproj]
Performing build step for 'Boost'
Usage

cmake [options] <path-to-source>
cmake [options] <path-to-existing-build>
cmake [options] -S <path-to-source> -B <path-to-build>

Specify a source directory to (re-)generate a build system for it in the
current working directory. Specify an existing build directory to
re-generate its build system.

Run 'cmake --help' for more information.

No install step for 'Boost'
Completed 'Boost'
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(238,5): error MSB8066: пользовательская сборка для "J:\CIP\ChestImagingPlatform-build\CMakeFiles\150e3443956cd5eaedc81639f599cd18\Boost-mkdir.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\150e3443956cd5eaedc81639f599cd18\Boost-download.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\150e3443956cd5eaedc81639f599cd18\Boost-update.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\150e3443956cd5eaedc81639f599cd18\Boost-patch.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\150e3443956cd5eaedc81639f599cd18\Boost-configure.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\150e3443956cd5eaedc81639f599cd18\Boost-build.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\150e3443956cd5eaedc81639f599cd18\Boost-install.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\ed2817e5f00d6cf49f637c94c942c5a1\Boost-complete.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\87db2e8d9fba28eceb454c94404c6981\Boost.rule" завершила работу с кодом -1. [J:\CIP\ChestImagingPlatform-build\Boost.vcxproj]
Creating directories for 'zlib'
Performing download step (git clone) for 'zlib'
Cloning into 'zlib'...
Note: switching to '66a753054b356da85e1838a081aa94287226823e'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c <new-branch-name>

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 66a7530 Add option ZLIB_MANGLE_PREFIX
Performing update step for 'zlib'
No patch step for 'zlib'
Performing configure step for 'zlib'
loading initial cache file J:/CIP/ChestImagingPlatform-build/zlib-prefix/tmp/zlib-cache-Release.cmake
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.

Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.

-- Selecting Windows SDK version 10.0.18362.0 to target Windows 6.1.7601.
-- The C compiler identification is MSVC 19.28.29334.0
-- The CXX compiler identification is MSVC 19.28.29334.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.28.29333/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: J:/CIP/ChestImagingPlatform-build/zlib-build
Performing build step for 'zlib'
Microsoft (R) Build Engine версии 16.8.2+25e4d540b для .NET Framework
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

Checking Build System

Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.
Building Custom Rule J:/CIP/ChestImagingPlatform-build/zlib/CMakeLists.txt
adler32.c
compress.c
crc32.c
deflate.c
gzio.c
J:\CIP\ChestImagingPlatform-build\zlib\gzio.c(131,11): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [J:\CIP\ChestImagingPlatform-build\zlib-build\zlib.vcxproj] [J:\CIP\ChestImagingPlatform-build\zlib.vcxproj]
J:\CIP\ChestImagingPlatform-build\zlib\gzio.c(181,24): warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [J:\CIP\ChestImagingPlatform-build\zlib-build\zlib.vcxproj] [J:\CIP\ChestImagingPlatform-build\zlib.vcxproj]
J:\CIP\ChestImagingPlatform-build\zlib\gzio.c(226,5): warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [J:\CIP\ChestImagingPlatform-build\zlib-build\zlib.vcxproj] [J:\CIP\ChestImagingPlatform-build\zlib.vcxproj]
J:\CIP\ChestImagingPlatform-build\zlib\gzio.c(627,11): warning C4996: '_vsnprintf': This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [J:\CIP\ChestImagingPlatform-build\zlib-build\zlib.vcxproj] [J:\CIP\ChestImagingPlatform-build\zlib.vcxproj]
J:\CIP\ChestImagingPlatform-build\zlib\gzio.c(1008,11): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [J:\CIP\ChestImagingPlatform-build\zlib-build\zlib.vcxproj] [J:\CIP\ChestImagingPlatform-build\zlib.vcxproj]
J:\CIP\ChestImagingPlatform-build\zlib\gzio.c(1009,11): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [J:\CIP\ChestImagingPlatform-build\zlib-build\zlib.vcxproj] [J:\CIP\ChestImagingPlatform-build\zlib.vcxproj]
J:\CIP\ChestImagingPlatform-build\zlib\gzio.c(1010,11): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [J:\CIP\ChestImagingPlatform-build\zlib-build\zlib.vcxproj] [J:\CIP\ChestImagingPlatform-build\zlib.vcxproj]
J:\CIP\ChestImagingPlatform-build\zlib\gzio.c(1001,38): warning C4996: 'strerror': This function or variable may be unsafe. Consider using strerror_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. [J:\CIP\ChestImagingPlatform-build\zlib-build\zlib.vcxproj] [J:\CIP\ChestImagingPlatform-build\zlib.vcxproj]
inffast.c
inflate.c
inftrees.c
trees.c
uncompr.c
zutil.c
Создание кода...
zlib.vcxproj -> J:\CIP\ChestImagingPlatform-build\zlib-build\Release\zlib.lib
Building Custom Rule J:/CIP/ChestImagingPlatform-build/zlib/CMakeLists.txt
Performing install step for 'zlib'
Microsoft (R) Build Engine версии 16.8.2+25e4d540b для .NET Framework
(C) Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

zlib.vcxproj -> J:\CIP\ChestImagingPlatform-build\zlib-build\Release\zlib.lib
-- Install configuration: "Release"
-- Installing: J:/CIP/ChestImagingPlatform-build/zlib-install/lib/zlib.lib
-- Installing: J:/CIP/ChestImagingPlatform-build/zlib-install/include/zlib.h
-- Installing: J:/CIP/ChestImagingPlatform-build/zlib-install/include/zconf.h
-- Installing: J:/CIP/ChestImagingPlatform-build/zlib-install/include/zlib_mangle.h
-- Installing: J:/CIP/ChestImagingPlatform-build/zlib-install/include/zlibDllConfig.h
-- Installing: J:/CIP/ChestImagingPlatform-build/zlib-install/doc/zlib-1.2.3/Copyright.txt

Completed 'zlib'
Building Custom Rule J:/CIP/ChestImagingPlatform/CMakeLists.txt
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... failed with initial frozen solve. Retrying with flexible solve.

Building graph of deps: 0%| | 0/5 [00:00<?, ?it/s]
Examining @/win-64::__win==0=0: 0%| | 0/5 [00:00<?, ?it/s]
Examining @/win-64::__archspec==1=x86_64: 20%|## | 1/5 [00:00<?, ?it/s]
Examining python=3.8: 40%|#### | 2/5 [00:00<00:00, 2000.14it/s]
Examining @/win-64::__cuda==11.0=0: 60%|###### | 3/5 [00:00<00:00, 7.16it/s]
Examining @/win-64::__cuda==11.0=0: 80%|######## | 4/5 [00:00<00:00, 9.55it/s]
Examining nipype==0.12.1: 80%|######## | 4/5 [00:00<00:00, 9.55it/s]

Determining conflicts: 0%| | 0/5 [00:00<?, ?it/s]
Examining conflict for nipype python: 0%| | 0/5 [00:00<?, ?it/s]
Solving environment: ...working...
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

- nipype==0.12.1 -> python[version='2.7.*|3.5.*|3.6.*|3.4.*']

Your python: python=3.8

If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(238,5): error MSB8066: пользовательская сборка для "J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-mkdir.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-download.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-update.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-patch.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-configure.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-build.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-install.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installnipype.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installnetworkx.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installscikit-image.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installpynrrd.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installpydicom.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installnibabel.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installnumpy.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installcython.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installscipy.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installvtk.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installpandas.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installnose.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installsphinx.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installsimpleitk.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installxml.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installscikit-learn.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installgitpython.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\05b38453cfc907ff0e9c8d93f54e76b3\CIPPython-installpytables.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\ed2817e5f00d6cf49f637c94c942c5a1\CIPPython-complete.rule;J:\CIP\ChestImagingPlatform-build\CMakeFiles\87db2e8d9fba28eceb454c94404c6981\CIPPython.rule" завершила работу с кодом 1. [J:\CIP\ChestImagingPlatform-build\CIPPython.vcxproj]

It looks like the code reqiers another lower python version. I have python 3.8.

After downgrading to the required version (i tried python 2.7 and python 3.6) the code asks for upper version in another line (3.7 or 3.8 and even 3.9). The error looks the same as above.
I tried to change conda version to 4.6.12 (Currently I am using Anaconda Navigator of 07.20).
I used the code from Develop branch. All these steps didn't succeed.

At that point I am stuck. Maybe I missed any dependencies or prerequisites (I used everuthing that was stated at GitHub lists of dependencies and prerequisites)?
Maybe anaconda Navigator is a wrong choice?

probably bug in the `lung_lobe_segmentation_workflow.py`

Hi,

I am trying to use the develop version to compute the lung partial volume mask. When I use lung_lobe_segmentation_workflow.py, it first complained that the cip (and a few other things) were not defined. I noticed that a few lines were commented out in the code. Is there any reason for that?

It seems it has issues with gprob. I added the teem-build/bin and CIP-build/bin to the PATH. Am I missing something?

Thanks,

170206-14:42:47,85 workflow INFO:
	 ['check', 'execution', 'logging']
170206-14:42:47,115 workflow INFO:
	 Running serially.
170206-14:42:47,116 workflow INFO:
	 Executing node generate_partial_lung_label_map in dir: /tmp/tmp1JwoPq/LungLobeSegmentationWorkflow/generate_partial_lung_label_map
170206-14:42:47,124 workflow INFO:
	 Running:  GeneratePartialLungLabelMap  --ict /home/batmangh/MyPylon2Space/LUNA16/noduleSegmentation/resample_imgs/resample_simpleMask/subset1/1.3.6.1.4.1.14519.5.2.1.6279.6001.100684836163890911914061745866resmpl1.0-1.0-1.0_lungMask.nii.gz --olm /tmp/tmpMmsd0b/cid_partialLungLabelMap.nrrd
170206-14:42:48,444 interface INFO:
	 stdout 2017-02-06T14:42:48.444537:Clipping low CT image values...
170206-14:42:48,445 interface INFO:
	 stdout 2017-02-06T14:42:48.444537:Clipping upper CT image values...
170206-14:42:48,445 interface INFO:
	 stdout 2017-02-06T14:42:48.444537:Executing partial lung filter...
170206-14:43:06,901 interface INFO:
	 stdout 2017-02-06T14:43:06.900896:Writing lung mask image...
170206-14:43:07,402 interface INFO:
	 stdout 2017-02-06T14:43:07.402132:DONE.
170206-14:43:07,931 workflow INFO:
	 Executing node fissure_particles_node in dir: /tmp/tmpuqJIBf/LungLobeSegmentationWorkflow/fissure_particles_node
unu 3op: error parsing "/home/batmangh/MyPylon2Space/LUNA16/noduleSegmentation/resample_imgs/resample_simpleMask/subset1/1.3.6.1.4.1.14519.5.2.1.6279.6001.100684836163890911914061745866resmpl1.0-1.0-1.0_lungMask.nii.gz" as nrrd/value for <in2> option:
[nrrd] nrrdLoad: trouble reading "/home/batmangh/MyPylon2Space/LUNA16/noduleSegmentation/resample_imgs/resample_simpleMask/subset1/1.3.6.1.4.1.14519.5.2.1.6279.6001.100684836163890911914061745866resmpl1.0-1.0-1.0_lungMask.nii.gz"
[nrrd] nrrdRead: trouble
[nrrd] _nrrdRead: couldn't parse "e0;'@ c" as magic or beginning of any recognized format


Usage: unu 3op <operator> <in1> <in2> <in3> [-t,--type <type>] \
       [-w,--which <arg>] [-o,--output <nout>]

<operator> = Ternary operator. Possibilities include:
             ��o "+", "x": sum or product of three values
             ��o "min", "max": minimum, maximum
             ��o "min_sm": smoothed minimum function; min_sm(x, w, M) is like
             min(x,M) but for x > M-w (with w > 0) there is a smooth
             transition from x to asymptotic to M
             ��o "max_sm": smoothed maximum function; max_sm(M, w, x) is like
             max(M,x) but for x < m+w (with w > m) there is a smooth
             transition from x to asymptotic to m
             ��o "lt_sm": 1st less than 3rd, smoothed by 2nd
             ��o "gt_sm": 1st greater than 3rd, smoothed by 2nd
             ��o "clamp": 2nd value is clamped to range between the 1st and
             the 3rd
             ��o "ifelse": if 1st value non-zero, then 2nd value, else 3rd
             value
             ��o "lerp": linear interpolation between the 2nd and 3rd values,
             as the 1st value varies between 0.0 and 1.0, respectively
             ��o "exists": if the 1st value exists, use the 2nd value,
             otherwise use the 3rd
             ��o "in_op": 1 iff 2nd value is > 1st and < 3rd, 0 otherwise
             ��o "in_cl": 1 iff 2nd value is >= 1st and <= 3rd, 0 otherwise
             ��o "gauss": evaluate (at 1st value) Gaussian with mean=2nd and
             stdv=3rd value
             ��o "rician": evaluate (at 1st value) Rician with mean=2nd and
             stdv=3rd value
     <in1> = First input. Can be a single value or a nrrd.
     <in2> = Second input. Can be a single value or a nrrd.
     <in3> = Third input. Can be a single value or a nrrd.
 -t <type> , --type <type> = type to convert all nrrd inputs to, prior to
             doing operation. This also determines output type. By default
             (not using this option), the types of the input nrrds are left
             unchanged.
  -w <arg> , --which <arg> = Which argument (0, 1, or 2) should be used to
             determine the shape of the output nrrd. By default (not using
             this option), the first non-constant argument is used. (int);
             default: "-1"
 -o <nout> , --output <nout> = output nrrd (string); default: "-"
unu resample: error parsing "-" as nrrd for -i,--input option:
[nrrd] nrrdLoad: trouble reading "-"
[nrrd] nrrdRead: trouble
[nrrd] _nrrdRead: immediately hit EOF


Usage: unu resample [-old] -s,--size <sz0 ...> [-off,--offset [<off0 ...>]] \
       [-min,--minimum [<min0 ...>]] [-max,--maximum [<max0 ...>]] \
       [-k,--kernel <kern>] [-nrn] [-ne,--nonexistent <behavior>] \
       [-b,--boundary <behavior>] [-v,--value <value>] [-t,--type <type>] \
       [-cheap] [-c,--center <center>] [-co,--center-override] [-verbose <v>] \
       [-i,--input <nin>] [-o,--output <nout>]

             -old = instead of using the new nrrdResampleContext
                    implementation, use the old nrrdSpatialResample
                    implementation
     -s <sz0 ...> , --size <sz0 ...> = For each axis, information about how
                    many samples in output:
                    ��o "=": leave this axis completely untouched: no
                    resampling whatsoever
                    ��o "x<float>": multiply the number of input samples by
                    <float>, and round to the nearest integer, to get the
                    number of output samples. Use "x1" to resample the axis
                    but leave the number of samples unchanged
                    ��o "/<float>": divide number of samples by <float>
                    ��o "+=<uint>", "-=<uint>": add <uint> to or subtract
                    <uint> from number input samples to get number output
                    samples
                    ��o "<uint>": exact number of output samples
                    ��o "a": resample this axis to whatever number of samples
                    preserves the aspect ratio of other resampled axes.
                    Currently needs to be used on all but one of the resampled
                    axes, if at all. 
                    (1 or more sampling specifications)
-off [<off0 ...>] , --offset [<off0 ...>] = For each axis, an offset or shift
                    to the position (in index space) of the lower end of the
                    sampling domain. Either -off can be used, or -min and -max
                    together, or none of these (so that, by default, the full
                    domain of the axis is resampled). (0 or more doubles);
                    default: ""
-min [<min0 ...>] , --minimum [<min0 ...>] = For each axis, the lower end (in
                    index space) of the domain of the resampling. Either -off
                    can be used, or -min and -max together, or none of these
                    (so that, by default, the full domain of the axis is
                    resampled). (0 or more doubles); default: ""
-max [<max0 ...>] , --maximum [<max0 ...>] = For each axis, the upper end (in
                    index space) of the domain of the resampling. Either -off
                    can be used, or -min and -max together, or none of these,
                    so that (by default), the full domain of the axis is
                    resampled. (0 or more doubles); default: ""
        -k <kern> , --kernel <kern> = The kernel to use for resampling.
                    Kernels logically live in the input index space for
                    upsampling, and in the output index space for
                    downsampling. Possibilities include:
                    ��o "box": nearest neighbor interpolation on upsampling,
                    and uniform averaging on downsampling
                    ��o "cheap": nearest neighbor interpolation for
                    upsampling, and non-blurring sub-sampling (pick subset of
                    input samples) on downsampling
                    ��o "tent": linear interpolation
                    ��o "cubic:B,C": Mitchell/Netravali BC-family of cubics:
                      "cubic:1,0": B-spline; maximal blurring
                      "cubic:0,0.5": Catmull-Rom; good interpolating kernel
                    ��o "c4h": 6-sample-support, C^4 continuous, accurate
                    ��o "c4hai": discrete pre-filter to make c4h interpolate
                    ��o "bspl3", "bspl5", "bspl7": cubic (same as cubic:1,0),
                    quintic, and 7th order B-spline
                    ��o "bspl3ai", "bspl5ai", "bspl7ai": discrete pre-filters
                    to make bspl3, bspl5, bspl7 interpolate
                    ��o "hann:R": Hann (cosine bell) windowed sinc, radius R
                    ��o "black:R": Blackman windowed sinc, radius R
                    ��o "gauss:S,C": Gaussian blurring, with standard
                    deviation S and cut-off at C standard deviations
                    ��o "dgauss:S,C": Lindeberg's discrete Gaussian.
                    default: "cubic:0,0.5"
             -nrn = do NOT do per-pass kernel weight renormalization. Doing
                    the renormalization is not a performance hit (hence is
                    enabled by default), and the renormalization is sometimes
                    needed to avoid "grating" on non-integral down-sampling.
                    Disabling the renormalization is needed for correct
                    results with artificially narrow kernels.
   -ne <behavior> , --nonexistent <behavior> = When resampling floating-point
                    values, how to handle non-existent values within kernel
                    support:
                    ��o "noop": do nothing; let them pollute result
                    ��o "renorm": ignore them and renormalize weights of
                    existent values
                    ��o "wght": ignore them and simply use weights of
                    existent values
                    default: "noop"
    -b <behavior> , --boundary <behavior> = How to handle samples beyond the
                    input bounds:
                    ��o "pad": use some specified value
                    ��o "bleed": extend border values outward
                    ��o "mirror": repeated reflections
                    ��o "wrap": wrap-around to other side
                    default: "bleed"
       -v <value> , --value <value> = for "pad" boundary behavior, pad with
                    this value (double); default: "0.0"
        -t <type> , --type <type> = type to save OUTPUT as. By default (not
                    using this option), the output type is the same as the
                    input type; default: "default"
           -cheap = [DEPRECATED: the "-k cheap" option is the new (and more
                    reliable) way to access this functionality. "-cheap" is
                    only here for legacy use in combination with "-old".]
                    When downsampling (reducing number of samples), don't try
                    to do correct filtering by scaling kernel to match new
                    (stretched) index space; keep it in old index space. When
                    used in conjunction with "-k box", this can implement
                    subsampling which chooses every Nth value.
      -c <center> , --center <center> = (not available with "-old") default
                    centering of axes when input nrrd axes don't have a known
                    centering: "cell" or "node" ; default: "cell"
              -co , --center-override = (not available with "-old") centering
                    info specified via "-c" should *over-ride* known
                    centering, rather than simply be used when centering is
                    unknown.
     -verbose <v> = (not available with "-old") verbosity level (int);
                    default: "0"
         -i <nin> , --input <nin> = input nrrd; default: "-"
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
unu resample: error parsing "/home/batmangh/MyPylon2Space/LUNA16/noduleSegmentation/resample_imgs/resample_simpleMask/subset1/1.3.6.1.4.1.14519.5.2.1.6279.6001.100684836163890911914061745866resmpl1.0-1.0-1.0_lungMask.nii.gz" as nrrd for -i,--input option:
[nrrd] nrrdLoad: trouble reading "/home/batmangh/MyPylon2Space/LUNA16/noduleSegmentation/resample_imgs/resample_simpleMask/subset1/1.3.6.1.4.1.14519.5.2.1.6279.6001.100684836163890911914061745866resmpl1.0-1.0-1.0_lungMask.nii.gz"
[nrrd] nrrdRead: trouble
[nrrd] _nrrdRead: couldn't parse "e0;'@ c" as magic or beginning of any recognized format


Usage: unu resample [-old] -s,--size <sz0 ...> [-off,--offset [<off0 ...>]] \
       [-min,--minimum [<min0 ...>]] [-max,--maximum [<max0 ...>]] \
       [-k,--kernel <kern>] [-nrn] [-ne,--nonexistent <behavior>] \
       [-b,--boundary <behavior>] [-v,--value <value>] [-t,--type <type>] \
       [-cheap] [-c,--center <center>] [-co,--center-override] [-verbose <v>] \
       [-i,--input <nin>] [-o,--output <nout>]

             -old = instead of using the new nrrdResampleContext
                    implementation, use the old nrrdSpatialResample
                    implementation
     -s <sz0 ...> , --size <sz0 ...> = For each axis, information about how
                    many samples in output:
                    ��o "=": leave this axis completely untouched: no
                    resampling whatsoever
                    ��o "x<float>": multiply the number of input samples by
                    <float>, and round to the nearest integer, to get the
                    number of output samples. Use "x1" to resample the axis
                    but leave the number of samples unchanged
                    ��o "/<float>": divide number of samples by <float>
                    ��o "+=<uint>", "-=<uint>": add <uint> to or subtract
                    <uint> from number input samples to get number output
                    samples
                    ��o "<uint>": exact number of output samples
                    ��o "a": resample this axis to whatever number of samples
                    preserves the aspect ratio of other resampled axes.
                    Currently needs to be used on all but one of the resampled
                    axes, if at all. 
                    (1 or more sampling specifications)
-off [<off0 ...>] , --offset [<off0 ...>] = For each axis, an offset or shift
                    to the position (in index space) of the lower end of the
                    sampling domain. Either -off can be used, or -min and -max
                    together, or none of these (so that, by default, the full
                    domain of the axis is resampled). (0 or more doubles);
                    default: ""
-min [<min0 ...>] , --minimum [<min0 ...>] = For each axis, the lower end (in
                    index space) of the domain of the resampling. Either -off
                    can be used, or -min and -max together, or none of these
                    (so that, by default, the full domain of the axis is
                    resampled). (0 or more doubles); default: ""
-max [<max0 ...>] , --maximum [<max0 ...>] = For each axis, the upper end (in
                    index space) of the domain of the resampling. Either -off
                    can be used, or -min and -max together, or none of these,
                    so that (by default), the full domain of the axis is
                    resampled. (0 or more doubles); default: ""
        -k <kern> , --kernel <kern> = The kernel to use for resampling.
                    Kernels logically live in the input index space for
                    upsampling, and in the output index space for
                    downsampling. Possibilities include:
                    ��o "box": nearest neighbor interpolation on upsampling,
                    and uniform averaging on downsampling
                    ��o "cheap": nearest neighbor interpolation for
                    upsampling, and non-blurring sub-sampling (pick subset of
                    input samples) on downsampling
                    ��o "tent": linear interpolation
                    ��o "cubic:B,C": Mitchell/Netravali BC-family of cubics:
                      "cubic:1,0": B-spline; maximal blurring
                      "cubic:0,0.5": Catmull-Rom; good interpolating kernel
                    ��o "c4h": 6-sample-support, C^4 continuous, accurate
                    ��o "c4hai": discrete pre-filter to make c4h interpolate
                    ��o "bspl3", "bspl5", "bspl7": cubic (same as cubic:1,0),
                    quintic, and 7th order B-spline
                    ��o "bspl3ai", "bspl5ai", "bspl7ai": discrete pre-filters
                    to make bspl3, bspl5, bspl7 interpolate
                    ��o "hann:R": Hann (cosine bell) windowed sinc, radius R
                    ��o "black:R": Blackman windowed sinc, radius R
                    ��o "gauss:S,C": Gaussian blurring, with standard
                    deviation S and cut-off at C standard deviations
                    ��o "dgauss:S,C": Lindeberg's discrete Gaussian.
                    default: "cubic:0,0.5"
             -nrn = do NOT do per-pass kernel weight renormalization. Doing
                    the renormalization is not a performance hit (hence is
                    enabled by default), and the renormalization is sometimes
                    needed to avoid "grating" on non-integral down-sampling.
                    Disabling the renormalization is needed for correct
                    results with artificially narrow kernels.
   -ne <behavior> , --nonexistent <behavior> = When resampling floating-point
                    values, how to handle non-existent values within kernel
                    support:
                    ��o "noop": do nothing; let them pollute result
                    ��o "renorm": ignore them and renormalize weights of
                    existent values
                    ��o "wght": ignore them and simply use weights of
                    existent values
                    default: "noop"
    -b <behavior> , --boundary <behavior> = How to handle samples beyond the
                    input bounds:
                    ��o "pad": use some specified value
                    ��o "bleed": extend border values outward
                    ��o "mirror": repeated reflections
                    ��o "wrap": wrap-around to other side
                    default: "bleed"
       -v <value> , --value <value> = for "pad" boundary behavior, pad with
                    this value (double); default: "0.0"
        -t <type> , --type <type> = type to save OUTPUT as. By default (not
                    using this option), the output type is the same as the
                    input type; default: "default"
           -cheap = [DEPRECATED: the "-k cheap" option is the new (and more
                    reliable) way to access this functionality. "-cheap" is
                    only here for legacy use in combination with "-old".]
                    When downsampling (reducing number of samples), don't try
                    to do correct filtering by scaling kernel to match new
                    (stretched) index space; keep it in old index space. When
                    used in conjunction with "-k box", this can implement
                    subsampling which chooses every Nth value.
      -c <center> , --center <center> = (not available with "-old") default
                    centering of axes when input nrrd axes don't have a known
                    centering: "cell" or "node" ; default: "cell"
              -co , --center-override = (not available with "-old") centering
                    info specified via "-c" should *over-ride* known
                    centering, rather than simply be used when centering is
                    unknown.
     -verbose <v> = (not available with "-old") verbosity level (int);
                    default: "0"
         -i <nin> , --input <nin> = input nrrd; default: "-"
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
puller: trouble with volumes or infos:
[meet] meetPullVolLoadMulti: trouble loading mpv[0]->nin ("V")
[meet] [nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/1.3.6.1.4.1.14519.5.2.1.6279.6001.100684836163890911914061745866resmpl1.0-1.0-1.0_lungMask.nii.gz","rb") failed: No such file or directory
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
unu 2op: error parsing "-" as nrrd/value for <in1> option:
[nrrd] nrrdLoad: trouble reading "-"
[nrrd] nrrdRead: trouble
[nrrd] _nrrdRead: immediately hit EOF


Usage: unu 2op <operator> <in1> <in2> [-s,--seed <seed>] [-t,--type <type>] \
       [-w,--which <arg>] [-o,--output <nout>]

<operator> = Binary operator. Possibilities include:
             ��o "+", "-", "x", "/": add, subtract, multiply, divide
             ��o "^": exponentiation (pow)
             ��o "spow": signed exponentiation: sgn(x)pow(abs(x),p)
             ��o "fpow": like spow but with curves flipped
             ��o "%": integer modulo
             ��o "fmod": same as fmod() in C
             ��o "atan2": same as atan2() in C
             ��o "min", "max": minimum, maximum
             ��o "lt", "lte", "gt", "gte": same as C's <, <=, >, <=
             ��o "eq", "neq": same as C's == and !=
             ��o "comp": -1, 0, or 1 if 1st value is less than, equal to, or
             greater than 2nd value
             ��o "if": if 1st value is non-zero, use it, else use 2nd value
             ��o "exists": if 1st value exists, use it, else use 2nd value
             ��o "nrand": scale unit-stdv Gaussian noise by 2nd value and add
             to first value
             ��o "rrand": sample Rician distribution with 1st value for
             "true" mean, and 2nd value for sigma
     <in1> = First input. Can be a single value or a nrrd.
     <in2> = Second input. Can be a single value or a nrrd.
 -s <seed> , --seed <seed> = seed value for RNG for nrand, so that you can
             get repeatable results between runs, or, by not using this
             option, the RNG seeding will be based on the current time
             (string)
 -t <type> , --type <type> = type to convert all INPUT nrrds to, prior to
             doing operation, useful for doing, for instance, the difference
             between two unsigned char nrrds. This will also determine output
             type. By default (not using this option), the types of the input
             nrrds are left unchanged.
  -w <arg> , --which <arg> = Which argument (0 or 1) should be used to
             determine the shape of the output nrrd. By default (not using
             this option), the first non-constant argument is used. (int);
             default: "-1"
 -o <nout> , --output <nout> = output nrrd (string); default: "-"
unu inset: error parsing "-" as nrrd for -s,--subset option:
[nrrd] nrrdLoad: trouble reading "-"
[nrrd] nrrdRead: trouble
[nrrd] _nrrdRead: immediately hit EOF


Usage: unu inset -min,--minimum <pos0 ...> -s,--subset <nsub> \
       [-i,--input <nin>] [-o,--output <nout>]

-min <pos0 ...> , --minimum <pos0 ...> = coordinates of where to locate
                  sub-volume within input nrrd.
                  ��o <int> gives 0-based index
                  ��o M, M+<int>, M-<int> give index relative to the last
                  sample on the axis (M == #samples-1).
                  (1 or more positions)
      -s <nsub> , --subset <nsub> = sub-region nrrd. This the data to be
                  inset in "nin"
       -i <nin> , --input <nin> = input nrrd
      -o <nout> , --output <nout> = output nrrd (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
unu crop: error parsing "/tmp/tmpF_O60K/pass3.nrrd" as nrrd for -i,--input option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/pass3.nrrd","rb") failed: No such file or directory


Usage: unu crop [-min,--minimum [<pos0 ...>]] [-max,--maximum [<pos0 ...>]] \
       [-b,--bounds <filename>] [-i,--input <nin>] [-o,--output <nout>]

-min [<pos0 ...>] , --minimum [<pos0 ...>] = low corner of bounding box.
                    ��o <int> gives 0-based index
                    ��o M, M+<int>, M-<int> give index relative to the last
                    sample on the axis (M == #samples-1).
                    (0 or more positions)
                    default: "0"
-max [<pos0 ...>] , --maximum [<pos0 ...>] = high corner of bounding box.
                    Besides the specification styles described above, there's
                    also:
                    ��o m+<int> give index relative to minimum.
                    (0 or more positions)
                    default: "0"
    -b <filename> , --bounds <filename> = a filename given here overrides the
                    -min and -max options (they don't need to be used) and
                    provides the cropping bounds as a 2-D array; first
                    scanline is for -min, second is for -max. Unfortunately
                    the "m" and "M" semantics (above) are currently not
                    supported in the bounds file.
         -i <nin> , --input <nin> = input nrrd
        -o <nout> , --output <nout> = output nrrd (string); default: "-"
ERROR: error parsing "/tmp/tmpF_O60K/ct-deconv.nrrd" as nrrd for "-i" option:
[nrrd] nrrdLoad: fopen("/tmp/tmpF_O60K/ct-deconv.nrrd","rb") failed: No such file or directory


Usage: gprobe -i <nin> -k <kind> [-v <verbosity>] -q <query> [-gmc <min \
       gradmag>] [-ofs] [-seed <N>] [-c <bool>] [-zz <bool>] [-k00 <kern00>] \
       [-k11 <kern11>] [-k22 <kern22>] [-rn] [-ssn <SS #>] [-ssr <scale \
       range>] [-ssu] [-sso] [-kssb <kernel>] [-sbp <blur spec>] [-ssnd] \
       [-ssnb <bias>] [-ssf <SS read/save format>] [-kssr <kernel>] [-s <sclX \
       sclY sxlZ>] [-ssp <pos>] [-pg <nrrd>] [-pi <nrrd>] [-pp <pos ...>] \
       [-eps <epsilon>] [-psi <p>] [-t <type>] [-o <nout>]

                  -i <nin> = input volume
                 -k <kind> = "kind" of volume ("scalar", "vector", "tensor",
                             or "dwi")
            -v <verbosity> = verbosity level (int); default: "1"
                -q <query> = the quantity (scalar, vector, or matrix) to learn
                             by probing (string)
        -gmc <min gradmag> = For curvature-based queries, use zero when
                             gradient magnitude is below this (double);
                             default: "0.0"
                      -ofs = If only per-axis spacing is available, use that
                             to contrive full orientation info
                 -seed <N> = RNG seed; mostly for debugging (unsigned int);
                             default: "42"
                 -c <bool> = clamp positions as part of probing (bool);
                             default: "false"
                -zz <bool> = enable "zeroZ" behavior in gage that partially
                             implements working with 3D images as if they are
                             2D (bool); default: "false"
             -k00 <kern00> = kernel for gageKernel00; default: "tent"
             -k11 <kern11> = kernel for gageKernel11; default: "cubicd:1,0"
             -k22 <kern22> = kernel for gageKernel22; default: "cubicdd:1,0"
                       -rn = renormalize kernel weights at each new sample
                             location. "Accurate" kernels don't need this;
                             doing it always makes things go slower
               -ssn <SS #> = how many scale-space samples to evaluate, or, 0
                             to turn-off all scale-space behavior (unsigned
                             int); default: "0"
        -ssr <scale range> = range of scales in scale-space (2 doubles);
                             default: "nan nan"
                      -ssu = do uniform samples along sigma, and not (by
                             default) samples according to the effective
                             diffusion scale
                      -sso = if not using "-ssu", use pre-computed optimal
                             sigmas when possible
            -kssb <kernel> = blurring kernel, to sample scale space;
                             default: "dgauss:1,5"
          -sbp <blur spec> = complete specification of stack blur parms;
                             over-rides all previous "ss" options; default: ""
                     -ssnd = normalize derivatives by scale
              -ssnb <bias> = bias on scale-based derivative normalization
                             (double); default: "0.0"
-ssf <SS read/save format> = printf-style format (including a "%u") for the
                             filenames from which to read pre-blurred volumes
                             computed for the stack, if they exist and match
                             the stack parameters, and where to save them if
                             they had to be re-computed. Leave this as empty
                             string to disable this. (string); default: ""
            -kssr <kernel> = kernel for reconstructing from scale space
                             samples; default: "hermite"
       -s <sclX sclY sxlZ> = scaling factor for resampling on each axis (>1.0
                             : supersampling); use "-ssp" (and "-psi")to
                             specify scale position of sampling (3 doubles);
                             default: "1 1 1"
                -ssp <pos> = when using scale-space, scale-position at which
                             to probe (double); default: "0"
                -pg <nrrd> = overrides "-s": 2-D nrrd which specifies origin
                             and direction vectors for sampling grid;
                             default: ""
                -pi <nrrd> = overrides "-pv": probes at this list of 3-vec or
                             4-vec positions; default: ""
             -pp <pos ...> = overrides "-pi": only sample at this specified
                             point (3..4 doubles); default: "nan nan nan"
            -eps <epsilon> = if non-zero, and if query is a scalar, and if
                             using "pp" to query at a single point, then do
                             epsilon offset probes to calculate discrete
                             differences, to find the numerical gradient and
                             hessian (for debugging) (double); default: "0"
                  -psi <p> = whether the probe location specification (by any
                             of the four previous flags) are in index space
                             (bool); default: "false"
                 -t <type> = type of output volume (type); default: "float"
                 -o <nout> = output volume (string); default: "-"
170206-14:43:08,594 workflow ERROR:
	 ['Node fissure_particles_node failed to run on host r001.pvt.bridges.psc.edu.']
170206-14:43:08,596 workflow INFO:
	 Saving crash info to /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/crash-20170206-144308-batmangh-fissure_particles_node-8d99b1a9-0f3e-4d91-b674-4b7fcc953c1b.pklz
170206-14:43:08,596 workflow INFO:
	 Traceback (most recent call last):
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/linear.py", line 39, in run
    node.run(updatehash=updatehash)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 394, in run
    self._run_interface()
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 504, in _run_interface
    self._result = self._run_command(execute)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 630, in _run_command
    result = self._interface.run()
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1043, in run
    runtime = self._run_wrapper(runtime)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1000, in _run_wrapper
    runtime = self._run_interface(runtime)
  File "/pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/cip_python/nipype/interfaces/cip/cip_python_interfaces.py", line 56, in _run_interface
    dp.execute()
  File "/pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/cip_python/particles/fissure_particles.py", line 129, in execute
    self.save_vtk(out_particles % 3)
  File "/pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/cip_python/particles/chest_particles.py", line 566, in save_vtk
    im=image_io.read(self._sp_in_file_name)
  File "/pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/cip_python/input_output/image_reader_writer.py", line 29, in read
    sitk_image=sitk.ReadImage(file_name)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/SimpleITK/SimpleITK.py", line 8450, in ReadImage
    return _SimpleITK.ReadImage(*args)
RuntimeError: Exception thrown in SimpleITK ReadImage: /home/blowekamp/anaconda/conda-bld/work/Code/IO/src/sitkImageReaderBase.cxx:76:
sitk::ERROR: The file "/tmp/tmpF_O60K/1.3.6.1.4.1.14519.5.2.1.6279.6001.100684836163890911914061745866resmpl1.0-1.0-1.0_lungMask.nii.gz" does not exist.
Interface fissure_particles failed to run. 

170206-14:43:08,616 workflow INFO:
	 Executing node generate_lobe_surface_models in dir: /tmp/tmp8E5ImE/LungLobeSegmentationWorkflow/generate_lobe_surface_models
170206-14:43:08,622 workflow INFO:
	 Running:  GenerateLobeSurfaceModels  --dir /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/cip_python/nipype/workflows/../../../Resources/LungLobeAtlasData/ --ilm /tmp/tmpMmsd0b/cid_partialLungLabelMap.nrrd --irlm /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/cip_python/nipype/workflows/../../../Resources/LungLobeAtlasData/10002K_INSP_STD_BWH_COPD_leftLungRightLung.nrrd --olsm /tmp/tmpMmsd0b/cid_leftLungLobesShapeModel.csv --orsm /tmp/tmpMmsd0b/cid_rightLungLobesShapeModel.csv
170206-14:43:09,407 interface INFO:
	 stdout 2017-02-06T14:43:09.406861:Read in 100 atlas resource file pairs.
170206-14:43:09,407 interface INFO:
	 stdout 2017-02-06T14:43:09.406861:Reading fixed image...
170206-14:43:09,908 interface INFO:
	 stderr 2017-02-06T14:43:09.908129:
170206-14:43:09,908 interface INFO:
	 stderr 2017-02-06T14:43:09.908129:CIP Assertion Error:
170206-14:43:09,908 interface INFO:
	 stderr 2017-02-06T14:43:09.908129:In file:	/home/batmangh/MyPylon1Space/gitSandbox/ChestImagingPlatform-dev/CommandLineTools/GenerateLobeSurfaceModels/GenerateLobeSurfaceModels.cxx
170206-14:43:09,909 interface INFO:
	 stderr 2017-02-06T14:43:09.908129:On line:	111
170206-14:43:09,909 interface INFO:
	 stderr 2017-02-06T14:43:09.908129:Aborting!
170206-14:43:10,412 workflow ERROR:
	 ['Node generate_lobe_surface_models failed to run on host r001.pvt.bridges.psc.edu.']
170206-14:43:10,413 workflow INFO:
	 Saving crash info to /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/crash-20170206-144310-batmangh-generate_lobe_surface_models-c4ff63c5-f9e7-4a0c-b2ee-b0e076d25b49.pklz
170206-14:43:10,413 workflow INFO:
	 Traceback (most recent call last):
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/linear.py", line 39, in run
    node.run(updatehash=updatehash)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 394, in run
    self._run_interface()
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 504, in _run_interface
    self._result = self._run_command(execute)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/nodes.py", line 630, in _run_command
    result = self._interface.run()
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1043, in run
    runtime = self._run_wrapper(runtime)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1660, in _run_wrapper
    runtime = self._run_interface(runtime)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1694, in _run_interface
    self.raise_exception(runtime)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/interfaces/base.py", line 1618, in raise_exception
    raise RuntimeError(message)
RuntimeError: Command:
 GenerateLobeSurfaceModels  --dir /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/cip_python/nipype/workflows/../../../Resources/LungLobeAtlasData/ --ilm /tmp/tmpMmsd0b/cid_partialLungLabelMap.nrrd --irlm /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/cip_python/nipype/workflows/../../../Resources/LungLobeAtlasData/10002K_INSP_STD_BWH_COPD_leftLungRightLung.nrrd --olsm /tmp/tmpMmsd0b/cid_leftLungLobesShapeModel.csv --orsm /tmp/tmpMmsd0b/cid_rightLungLobesShapeModel.csv
Standard output:
Read in 100 atlas resource file pairs.
Reading fixed image...
Standard error:

CIP Assertion Error:
In file:	/home/batmangh/MyPylon1Space/gitSandbox/ChestImagingPlatform-dev/CommandLineTools/GenerateLobeSurfaceModels/GenerateLobeSurfaceModels.cxx
On line:	111
Aborting!
Return code: -6
Interface GenerateLobeSurfaceModels failed to run. 

170206-14:43:10,432 workflow INFO:
	 ***********************************
170206-14:43:10,432 workflow ERROR:
	 could not run node: LungLobeSegmentationWorkflow.fissure_particles_node
170206-14:43:10,432 workflow INFO:
	 crashfile: /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/crash-20170206-144308-batmangh-fissure_particles_node-8d99b1a9-0f3e-4d91-b674-4b7fcc953c1b.pklz
170206-14:43:10,432 workflow ERROR:
	 could not run node: LungLobeSegmentationWorkflow.generate_lobe_surface_models
170206-14:43:10,432 workflow INFO:
	 crashfile: /pylon1/ms4s88p/batmangh/gitSandbox/ChestImagingPlatform-dev/build/CIP-build/crash-20170206-144310-batmangh-generate_lobe_surface_models-c4ff63c5-f9e7-4a0c-b2ee-b0e076d25b49.pklz
170206-14:43:10,432 workflow INFO:
	 ***********************************
Traceback (most recent call last):
  File "cip_python/nipype/workflows/lung_lobe_segmentation_workflow2.py", line 468, in <module>
    wf.run()
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/engine/workflows.py", line 597, in run
    runner.run(execgraph, updatehash=updatehash, config=self.config)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/linear.py", line 57, in run
    report_nodes_not_run(notrun)
  File "/home/batmangh/anaconda2/lib/python2.7/site-packages/nipype/pipeline/plugins/base.py", line 95, in report_nodes_not_run
    raise RuntimeError(('Workflow did not execute cleanly. '
RuntimeError: Workflow did not execute cleanly. Check log for details

Dependency of pynrrd

Some cip_python tools depends on pynrrd. We should unify IO operations with cip_python.input_output

cip_compute_vessel_particles.py: how to control how many generations of vessel to be calculated.

Dear Author/Users

I would like to ask a question of how to control how many generations of the vessel the code is actually calculating. For say: how to make the code calculate more generations.
Another question is: how many generations of vessels calculated have more confidence that is 'real', rather than a sub-scale assumption? In other words, which parameters are controlling those outputs.

Thanks a lot if anyone would like to share your experiences.

Best regards

feature request: please add install target to CMAKE

Hi,

This is a feature request not an issue. If possible, please add install target to the CMakeList. It is quite useful for the python extension. Currently, I am setting up my PYTHONPATH to the cip_python in the build folder and manually append teem-build/bin and CIP-build/bin tom my PATH.Not sure it is the best way. Also it seems ITKToolkit is also a requirement.

Thanks,
Kayhan

Chest Imaging Platform (CIP) installation Help

Hi All,

I need small help for the Chest Imaging Platform (CIP) installation in Linus Ubuntu & python set up and looking for the installation steps.
Basically I would like to use the “GeneratePartialLungLabelMap” function in my main python code.

I am not sure which version of CIP - need to install for my whole lung segmentation. As it has two options for download - 1) CIP Library, 2) Slicer CIP
Please advise me.

Still active ?

Hey,

Just want to ask:
Is the Chest imaging platform still activly developed ?

Thank you and best regards

rudolf

GeneratePartialLungLabelMap exception

I run into an interesting exception that might highlight some underlying problem with GeneratePartialLungLabelMap exception.

The experiment is as follows. When I execute:
GeneratePartialLungLabelMap -c 026658003996_INSP_STD_L3_ECLIPSE.nhdr -o tmp.nrrd --lsr 4

Things run as expected

However, if you execute:
GeneratePartialLungLabelMap -c 026658003996_INSP_STD_L3_ECLIPSE.nhdr -o tmp.nrrd --lsr 4 --lcv -1100 --lrv 1024 --ucv 1024 --urv 1024

I get the following error:
Reading CT from file... Clipping low CT image values... Clipping upper CT image values... Executing partial lung filter... Exception caught segmenting lungs: itk::ExceptionObject (0x7f8155b00a98) Location: "unknown" File: /Users/rjosest/src/devel/ChestImagingPlatformPrivate-build/ITKv4/Modules/Core/Common/include/itkExtractImageFilter.hxx Line: 99 Description: itk::ERROR: ExtractImageFilter(0x7f8155b00080): Extraction Region not consistent with output image Writing lung mask image... Exception caught while writing lung mask: itk::ExceptionObject (0x7f8156a00a98) Location: "unknown" File: /Users/rjosest/src/devel/ChestImagingPlatformPrivate-build/ITKv4/Modules/Core/Common/include/itkExtractImageFilter.hxx Line: 99 Description: itk::ERROR: ExtractImageFilter(0x7f8156a00080): Extraction Region not consistent with output image DONE.

ComputeFeatureStrength not built properly?

I built CIP with ITKv5 using standard configuration. I tried to run ComputeFeatureStrength and I got some error about subclassing. Here is the full output

$ ComputeFeatureStrength -i lungimage.nrrd -m Frangi -f RidgeLine --std 0.700000,4.000000,7 --ssm 1 --alpha 0.63 --beta 0.51 --C 245 -o featureMap.nrrd
Reading CT from file...
0.7 4 7
Exception caught executing method
itk::ExceptionObject (0x7efec4001140)
Location: "unknown" 
File: /src/CIP/ITKv5/Modules/Core/Common/include/itkImageSource.hxx
Line: 280
Description: itk::ERROR: UnaryFunctorImageFilter2(0x1468880): Subclass should override this method!!! If old behavior is desired invoke this->DynamicMultiThreadingOff(); before Update() is called. The best place is in class constructor.

Seems that this block in ComputeFeatureStrength.cxx is causing the exception:

  try
    {
      multiScaleFilter->Update();
    }
  catch (itk::ExceptionObject &excp)
    {
      std::cerr << "Exception caught executing method";
      std::cerr << excp << std::endl;
      return cip::EXITFAILURE;
    }

Can anyone help me solve this issue? Thanks!

Exception caught reading right shape model

(this issue is moved here from the Slicer core bugtracker - https://issues.slicer.org/view.php?id=4333)

When perform the function of computefissurefeaturevector in chest image platform,it shows error as follows:
Exception caught reading right shape model:
CIP Exception:
Message: Problem opening file
In file: C:\D\N\S460-E-b\Chest_Imaging_Platform-build\CIP\IO\cipLobeSurfaceModelIO.cxx
On line: 94
In method: LobeSurfaceModelIO::Read()
I have searched the file C:\D\N\S460-E-b\Chest_Imaging_Platform-build\CIP\IO\cipLobeSurfaceModelIO.cxx in my computer,neither C:\D\N\S460-E-b\Chest_Imaging_Platform-build\CIP\IO\cipLobeSurfaceModelIO.cxx nor C:\D\N\S460-E-b\Chest_Imaging_Platform-build\CIP can be found.
I wonder how to solve this problem?

I uninstall the chest imaging platform,and then install again,but it still shows the same result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.