Giter VIP home page Giter VIP logo

washington-university / workbench Goto Github PK

View Code? Open in Web Editor NEW
176.0 22.0 61.0 73.67 MB

Connectome Workbench

Home Page: http://www.humanconnectome.org/software/get-connectome-workbench.html

License: GNU General Public License v2.0

Shell 0.14% C++ 94.22% CMake 0.40% C 4.13% HTML 0.95% Batchfile 0.01% Makefile 0.14% Roff 0.01% Objective-C++ 0.01% BitBake 0.01%
c-plus-plus neuroscience mri cifti nifti gifti

workbench's Introduction

Connectome Workbench requires QT5 to compile.  Recommended is version 5.6 or later (due to an issue with the toolbar size on earlier versions).

It is highly recommended to compile with OSMesa, which allow the -show-scene command and the "render pixmap" image capture method to work.  Use it by setting the *cmake* variable WORKBENCH_MESA_DIR, such that ${WORKBENCH_MESA_DIR}/include/GL/osmesa.h exists.

It is compiled using cmake, for example, on linux you can do:

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D WORKBENCH_MESA_DIR=/usr -D WORKBENCH_USE_QT5=TRUE ../workbench/src
nice make -j8

For other OSes, see http://www.cmake.org/cmake/help/runningcmake.html

Note the -j flag of "make" is used in the example to speed up the build by compiling multiple source files at the same time.  If you have a different number of cores/hardware threads or want to reduce the load, adjust it accordingly.  The "nice" command is not needed, it is used to make the compilation have less priority than other processes.

This produces 3 executables, 2 of which are useful to the end user (Desktop/wb_view, CommandLine/wb_command), and one for running internal tests (Tests/test_driver).

To run the (few) tests available:

ctest
#OR
make test

To install wb_view, wb_command, wb_shortcuts, and the bash completion script to the default locations:

make install

It should be noted that wb_import, provided in the HCP binary releases of Connectome Workbench, is actually part of caret5 (http://brainvis.wustl.edu/wiki/index.php/Caret:Download).

Connectome Workbench source code is licensed under GPLv2 or later, copyright 2014-2021 Washington University School of Medicine, see LICENSE file.
However, it uses a GPLv3 (or later) library, libCZI, and thus the executables are GPLv3.

Some source files are licensed under an MIT license (Expat), for easier code reuse in non-GPL projects:
Files/SurfaceResamplingHelper.cxx
Cifti/examples/*
CommandLine/wb_shortcuts
CommandLine/bashcomplete_wb_*
Copyright (C) 2014-2018 Washington University School of Medicine

Some GPLv2 source files can be used under the MIT license (Expat) specifically in FSL or MSM code:
Files/SignedDistanceHelper.*
Common/OctTree.h

Some included code/files are from third party sources, with the following licenses:

CZIlib/*:
Copyright (C) 2017  Zeiss Microscopy GmbH
licensed under GPLv3 or later
some renaming and removal of files

kloewe/*:
Copyright (c) 2012-2017 Kristian Loewe, Christian Borgelt
licensed under MIT (Expat), see kloewe/dot/LICENSE and kloewe/cpuinfo/LICENSE

Quazip/*:
QuaZIP 0.6, http://quazip.sourceforge.net/
Copyright (C) 2005-2012 Sergey A. Tachenov
Copyright (C) 1998-2010 Gilles Vollant
Copyright (C) 2009-2010 Mathias Svensson
Copyright (C) 2007-2008 Even Rouault
Copyright (c) 1990-2000 Info-ZIP
licensed under LGPLv2.1 or later and zlib, see Quazip/COPYING, Quazip/quazip.h, Quazip/zip.h and Quazip/unzip.c

Qwt/*:
Copyright (C) 1997   Josef Wilgen
Copyright (C) 2002   Uwe Rathmann
Qwt 6.0.1, http://qwt.sourceforge.net/
licensed under Qwt license v1.0 (LGPLv2.1, with exceptions), see src/Qwt/COPYING
some unneeded files removed

FtglFont/*:
FTGL library
Copyright (C) 2001-2004 Henry Maddocks <[email protected]>
Copyright (C) 2008 Daniel Remenak <[email protected]>
Copyright (C) 2008 Éric Beets <[email protected]>
Copyright (C) 2008 Sam Hocevar <[email protected]>
Copyright (C) 2008 Sean Morrison <[email protected]>
licensed under Expat, see FtglFont/COPYING

GLMath/*
Copyright (c) 2005 - 2014 G-Truc Creation
licensed under "Happy Bunny" or Expat, see GLMath/copying.txt

Common/Base64.*, Common/DataCompressZLib.*, Common/MathFunctions.*, Nifti/Matrix4x4.cxx:
use code from VTK, http://www.kitware.com/opensource/vtk.html or http://www.vtk.org/
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
originally licensed under BSD 3-clause, see http://www.kitware.com/Copyright.htm or http://www.vtk.org/VTK/project/license.html

GuiQt/WuQDialog.cxx, Brain/FtglFontTextRenderer.cxx:
copied some code from from QT4, https://qt-project.org/
Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
originally licensed LGPLv2.1 (or GPLv3, or a commercial license)
modified to change some UI behaviors otherwise hardcoded into QT classes

Files/SignedDistanceHelper.cxx, Files/RibbonMappingHelper.cxx:
make use of PNPOLY, http://www.ecse.rpi.edu/~wrf/Research/Short_Notes/pnpoly.html
Copyright (c) 1970-2003, Wm. Randolph Franklin
originally licensed with 3-clause BSD/MIT license, see files in question
rewritten for different argument types, modified

Resources/FtglFonts/Vera*.ttf
Copyright (c) 2003 Bitstream, Inc.
licensed under Bitstream-Vera (basically, modification of fonts requires calling them something else), see debian/copyright file

Files/PaletteFile.cxx
copied some palette definitions from matplotlib and its original sources
Copyright (c) 2012-2016 Matplotlib Development Team
Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The Pennsylvania State University
licensed apache-2 and MDT (bsd-like)

workbench'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  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  avatar  avatar  avatar  avatar

workbench's Issues

How can I draw a flaten brain map image

Recently, I have read some papers which have the illustrations just like the picture below. I try to find method to draw a picture like that using the data of dHCP, but I find noting. Could anyone tell me how I should do to transfer the 3-D data in dHCP to a 2-D illustration?
illustration

HCP installation on Mac Catalina

Hi:

I am trying to install HCP on my Mac, and I have entered the following commands in terminal, would you mind looking at what might go wrong?

(base) Renxis-Mac-mini:~ renxili$ printenv SHELL
/bin/bash
(base) Renxis-Mac-mini:~ renxili$ cd /Users/renxili/
(base) Renxis-Mac-mini:~ renxili$ echo 'export PATH=$PATH:/Applications/workbench/bin_macosx64' >> ~/.bashrc
(base) Renxis-Mac-mini:~ renxili$ echo 'set PATH = ($PATH   /Applications/workbench/bin_macosx64)' >> ~/.cshrc
(base) Renxis-Mac-mini:~ renxili$ wb_command -file-info
-bash: wb_command: command not found
(base) Renxis-Mac-mini:~ renxili$ 

Best,
Renxi

Could it do a parcellation work?

Hi,
Thanks for your work.
I'm unsure if this is the right place to ask question. But I find no forum on the webpage. I'm a newbie to MRI data. And my aim is to acquire the parcellation of MRI data I have. I know freesurfer could do this, but it only provide very rough desikan and another atlas whose number of parcellated areas is too few for me. I hope I could get output as the fine parcellation including AIP, PF, etc. when I provide my data input as T1 data.
I'm unsure if I rpovide enough information for u to understand. Let me know if anything unclear.

Best,
Mangp

wb_view on Mac is quite blurry

Hi,
I installed Workbench v1.5.0 on my MBP 13.3 2020 M1 version with MacOS Big Sur 11.6, but the operating window's resolution is quite poor comparing to system default resolution, is this some kind of issue?
image

surface-apply-warpfield and LIA -> RAS warps

I have freesurfer files which are in LIA orientation, and a final space template in RAS. My pipeline looks something like this

Attempt 1: go straight from LIA using fsl tools...

mri_convert -ot nii brain.mgz T1w.nii.gz
flirt -in T1w.nii.gz -ref MNI152_T1_1mm.nii.gz -omat acpc.mat -out T1w_acpc.nii.gz
${FSLDIR}/bin/flirt -interp spline -dof 12 -in T1w_acpc.nii.gz -ref MNI152_T1_1mm.nii.gz -omat acpc2MNILinear.mat -out T1w_to_MNILinear.nii.gz
${FSLDIR}/bin/fnirt ... ... --out=acpc2standard.nii.gz
${FSLDIR}/bin/invertwarp --out=standard2acpc.nii.gz

sort of standard stuff as in HCP, only the beginning brain is in LIA. Now here's the key that I think should work, but isn't working...

we concatenate the acpc.mat to create a warpfield which goes straight from freesurfer to MNI, then do the opposite to get the inverse warp...

convertwarp --relout --rel --ref=T1w.nii.gz --premat=acpc.mat --warp1=acpc2standard.nii.gz --out=fs2standard.nii.gz
convert_xfm -omat inverse_acpc.mat -inverse acpc.mat
convertwarp --relout --rel --ref=MNI152_T1_1mm.nii.gz --postmat=inverse_acpc.mat --warp1=standard2acpc.nii.gz --out=standard2fs.nii.gz

testing both of these concatenated transforms, fs2standard.nii.gz, standard2fs.nii.gz on the anatomical volumes gives the correct outputs you would expect.

However, here:
wb_command -surface-apply-warpfield outputs2/T1w/fsaverage_LR32k/L.white.mytest32k_fs_LR.surf.gii standard2fstest.nii.gz .L.white_test.native.surf.gii -fnirt fs2standardtest.nii.gz

Resulting midthickness after application:

attempt1

Attempt 2: Start with RAS niftis

I do this identically to above, only, to start with the freesurfer image:

mri_convert --in_orientation LIA --out_orientation RAS -ot nii brain.mgz T1w.nii.gz

then we have a RAS -> RAS acpc.mat at least...

here I just have the white matter and the T1w2MNINonlinear image...

attempt2

It looks like this might have applied the warp correctly but there's a translational offset? Not easy to tell.

Hoping for thoughts/experience in the matter.

Thank you.

error when compiling connectome-workbench

Hello,

We are running Ubuntu 18.04 LTS. Trying to compile from source but found this error.

Here is the output I receive from:

cmake -D CMAKE_BUILD_TYPE=Release -D WORKBENCH_MESA_DIR=/usr/include/GL/osmesa.h -D WORKBENCH_USE_QT5=TRUE ../src
gcc version is: 7

-- Checking for module 'qwt'
-- No package 'qwt' found
-- Checking for module 'glm'
-- No```
package 'glm' found
OpenGL Include Directory: /usr/include
OpenGL Libraries: /usr/lib/x86_64-linux-gnu/libGL.so;/usr/lib/x86_64-linux-gnu/libGLU.so
-- Checking for module 'ftgl'
-- No package 'ftgl' found
-- GCC version >= 4.7
-- GCC version >= 7.1
************* SUMMARY FROM RUNNING CMake ********************
TOOLS:
CMake Build Type: Release
CMake Version: 3.10.2
CXX Compiler GNU
CXX Compiler Version: 7.5.0
CXX Compiler Flags: -fopenmp
CXX Compiler Path: /usr/bin/c++
QMake Program: /usr/bin/qmake
WORKBENCH VARIABLES:
WORKBENCH_INCLUDE_HELP_HTML_RESOURCES=TRUE
If TRUE, help (html) pages in src/Resources/Help are available in wb_view
WORKBENCH_MESA_DIR=/usr/include/GL/osmesa.h
Directory containing Mesa's 'include' and 'lib'
directories. Mesa is optional and used by
wb_command's -show-scene operation.
WORKBENCH_QT5_DISABLE_DEPRECATED=FALSE
If TRUE, use of Qt 5 deprecated functionality will cause compiler to fail
WORKBENCH_USE_CMAKE_AUTOMOC=FALSE
If TRUE, use CMAKE_AUTOMOC command for generating 'moc' files
WORKBENCH_USE_QT5=TRUE
If TRUE, require Qt5, else Qt4.
Specify as argument to cmake: -DWORKBENCH_USE_QT5=TRUE
WORKBENCH_USE_QT5_QOPENGL_WIDGET=FALSE
With Qt5, QOpenGLWidget instead of deprecated QGLWidget
WORKBENCH_USE_SIMD=TRUE
try to compile with SIMD support
PACKAGES:
FTGL: In Workbench Source Code
FreeType: 2.8.1 /usr/lib/x86_64-linux-gnu/libfreetype.so
GLEW: No
GLMath: In Workbench Source Code
OpenGL: /usr/lib/x86_64-linux-gnu/libGL.so/usr/lib/x86_64-linux-gnu/libGLU.so
OpenMP: Yes
OpenSSL: 1.1.1 /usr/lib/x86_64-linux-gnu/libssl.so/usr/lib/x86_64-linux-gnu/libcrypto.so
OSMESA: Not found
Qt: 5.9.5
QuaZip: In Workbench Source Code
Qwt: In Workbench Source Code
SIMD: Enabled
ZLIB: 1.2.11
************* END SUMMARY FROM RUNNING CMake *****************
-- Configuring done
-- Generating done
-- Build files have been written to: /test/build


nice make -j8

`

[ 0%] Built target cpuinfo
[ 0%] Built target dot_sse2
[ 1%] Built target dot_avxfma
[ 1%] Built target dot_avx
[ 1%] Built target dot_avx512
[ 1%] Built target dot_avx512fma
[ 1%] Built target dot_naive
[ 2%] Built target Quazip
[ 2%] Built target OSMesaDummy
[ 3%] Built target Xml
[ 5%] Built target Scenes
[ 8%] Built target FtglFont
[ 8%] Built target Palette
[ 8%] Built target QxtCore
[ 8%] Built target FilesBase
[ 10%] Built target Charting
[ 13%] Built target Annotations
[ 14%] Built target Nifti
[ 14%] Built target Gifti
[ 14%] Built target OperationsBase
[ 15%] Built target Cifti
[ 16%] Built target Graphics
[ 17%] Built target Commands
[ 18%] Built target Tests
[ 18%] Built target dot
[ 24%] Built target Qwt
[ 29%] Built target Operations
[ 37%] Built target Files
[ 46%] Built target Brain
[ 53%] Built target Common
[ 59%] Built target Algorithms
[ 59%] Built target wb_command
[ 99%] Built target GuiQt
[ 99%] Linking CXX executable test_driver
[100%] Built target wb_view

/usr/bin/ld: ../Graphics/libGraphics.a(GraphicsEngineDataOpenGL.cxx.o): undefined reference to symbol 'glEnable'
//usr/lib/x86_64-linux-gnu/libGL.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Tests/CMakeFiles/test_driver.dir/build.make:128: recipe for target 'Tests/test_driver' failed
make[2]: *** [Tests/test_driver] Error 1
CMakeFiles/Makefile2:1552: recipe for target 'Tests/CMakeFiles/test_driver.dir/all' failed
make[1]: *** [Tests/CMakeFiles/test_driver.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

`
I'm confused as to what is causing this error. You input would greatly be appreciated.

Thanks in advance.

Movie recording unable to save video

Hi,

I am currently running into an issue in which every time I attempt to record and save a movie via wb_view, I am met with a file not found error. I am on MacOS X Mojave, running version 1.4.1 of Connectome Workbench.

I was wondering if this issue had occurred before. If so - is there a solution?

Best,

Screen Shot 2020-02-10 at 6 14 32 PM

Compilation error

int extrema[6] = { myMap[0].m_ijk[0],
myMap[0].m_ijk[0],
myMap[0].m_ijk[1],
myMap[0].m_ijk[1],
myMap[0].m_ijk[2],
myMap[0].m_ijk[2]
};

int extrema[6] = { myMap[0].m_ijk[0],
myMap[0].m_ijk[0],
myMap[0].m_ijk[1],
myMap[0].m_ijk[1],
myMap[0].m_ijk[2],
myMap[0].m_ijk[2]
};

When compiling the workbench with Homebrew llvm compiler(clang v12.0.1, QT 5.15.2), those two initialization cause the following error.

error: non-constant-expression cannot be narrowed from type 'int64_t' (aka 'long long') to 'int' in initializer list [-Wc++11-narrowing]

Implicit cast is no longer valid since c++11. Either the array should be declared as type long long, or we need to cast each single element to int.

PS: Compiling the workbench with a newer version of QT5 works better on high resolution displays.

wb command error on Windows

I keep getting a ' ERROR: Parse error while reading: Tried to read 365128 from ' when I try to execute the wb command [wbcommand ' -cifti-convert -from-gifti-ext ' filename '.gii ' filename]. I had no problems when I was trying to use the same wb command in mac.

In general I am having trouble to save a dtseries cifti file. (I tried ft_read_cifti + ft_write_cifti but I ran into issues with the transform matrix which kept distorting my values into a random space)

Any thoughts? Ideas?

feature-request: Command-line interface to wb_view

Are there any plans to implement a command-line interface to wb_view (something similar to those in FSLeyes and freeview)? This seems somewhat common in software of this class and might be useful to automate production of figures.

ffmpeg has "/" hard coded in path

Hi. This is pretty minor, but the movie recording utility doesn't work by default in windows. The reason is because while workbench ships with a copy of ffmpeg, the path should have a back-slash instead of a hard-coded forward slash

const QString programName(workbenchHomeDir
+ "/ffmpeg");
FileInformation ffmpegInfo(programName);

Error generated when creating movie:
image

Issue using `wb_command -convert-warpfield`

I am trying to use workbench to convert warpfields from FSL to ITK so that I can use FSL's distortion correction in ANTs. However, I am running into an issue where antsApplyTransforms does not apply the warpfield and I am wondering if this issue is coming from the conversion of the field.

Here is the example code:

wb_command -convert-warpfield \
    -from-fnirt warpfield_fromtopup.nii.gz test_im.nii.gz \
    -to-itk warpfield_fromtopup_itk.nii.gz

antsApplyTransforms \
    -d 3 \
    -i test_im.nii.gz \
    -o warped_im.nii.gz \
    -n BSpline \
    -t warpfield_fromtopup_itk.nii.gz \
    -r test_im.nii.gz \
    -v 1

antsApplyTransforms does not show anything going wrong in its output, but test_im.nii.gz and warped_im.nii.gz are identical. I have never had any issues with antsApplyTransforms when I use warpfields created from antsRegistration.

I was excited when I recently found this feature in workbench, but now I am confused about whether the conversion is working properly. Are there any suggestions for how to pinpoint the problem?

how to smooth data end with .shape.gii

hello~
I am a graduate in UCAS in China. I got some problems in processing the HCP S900 data.
I try to smooth the data such as thickness, sulc, curvatue and so on(file end with shape.gii), but I find that in workbench, the command 'wb_command -surface-smoothing' cannot smoothing the data directly, it can only smooth the file end with surf.gii. I want to know is there any command that i do not know to smooth the data, or there exist other way to smooth this kind of data?

thank you in advance for help

build of 1.2.3 fails on debian sid: cannot convert 'bool' to 'caret::VolumeFile*' in return

just thought to run by before looking into fixing myself ;)

[ 25%] Building CXX object Files/CMakeFiles/Files.dir/ImageFile.cxx.o
cd /build/connectome-workbench-1.2.3/obj-x86_64-linux-gnu/Files && /usr/bin/c++   -DCARET_OS_LINUX -DHAVE_FREETYPE -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4/QtCore -isystem /usr/include/qt4/QtNetwork -I/build/connectome-workbench-1.2.3/src/Annotations -I/build/connectome-workbench-1.2.3/src/Charting -I/build/connectome-workbench-1.2.3/src/Files -I/build/connectome-workbench-1.2.3/src/FilesBase -I/build/connectome-workbench-1.2.3/src/Cifti -I/build/connectome-workbench-1.2.3/src/Palette -I/build/connectome-workbench-1.2.3/src/Gifti -I/build/connectome-workbench-1.2.3/src/Nifti -I/build/connectome-workbench-1.2.3/src/Scenes -I/build/connectome-workbench-1.2.3/src/Xml -I/build/connectome-workbench-1.2.3/src/Common  -fopenmp -g -O2 -fdebug-prefix-map=/build/connectome-workbench-1.2.3=. -fstack-protector-strong -Wformat -Werror=format-security -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2     -W -Wall -Werror=return-type -Werror=switch -Wunused-parameter -Wno-narrowing -Wno-unused-local-typedefs -o CMakeFiles/Files.dir/ImageFile.cxx.o -c /build/connectome-workbench-1.2.3/src/Files/ImageFile.cxx
/build/connectome-workbench-1.2.3/src/Files/ImageFile.cxx: In member function 'caret::VolumeFile* caret::ImageFile::convertToVolumeFile(caret::ImageFile::CONVERT_TO_VOLUME_COLOR_MODE, const std::vector<caret::ControlPoint3D>&, const caret::PaletteFile*, caret::AString&) const':
/build/connectome-workbench-1.2.3/src/Files/ImageFile.cxx:1423:16: error: cannot convert 'bool' to 'caret::VolumeFile*' in return
         return false;
                ^~~~~
Files/CMakeFiles/Files.dir/build.make:1625: recipe for target 'Files/CMakeFiles/Files.dir/ImageFile.cxx.o' failed
make[3]: *** [Files/CMakeFiles/Files.dir/ImageFile.cxx.o] Error 1
make[3]: Leaving directory '/build/connectome-workbench-1.2.3/obj-x86_64-linux-gnu'
CMakeFiles/Makefile2:748: recipe for target 'Files/CMakeFiles/Files.dir/all' failed
make[2]: *** [Files/CMakeFiles/Files.dir/all] Error 2
make[2]: Leaving directory '/build/connectome-workbench-1.2.3/obj-x86_64-linux-gnu'
Makefile:141: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/build/connectome-workbench-1.2.3/obj-x86_64-linux-gnu'

full buildlog http://neuro.debian.net/_files/_buildlogs/connectome-workbench/1.2.3/connectome-workbench_1.2.3-1_amd64.build

ZLIB_1.2.9 not found

Hello,
When starting wb_view I get the following error:

<path>/workbench/bin_linux64/../exe_linux64/wb_view: <path>/workbench/bin_linux64/../libs_linux64/libz.so.1: version ZLIB_1.2.9' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16)
/workbench/bin_linux64/../exe_linux64/wb_view: /workbench/bin_linux64/../libs_linux64/libz.so.1: version ZLIB_1.2.3.4' not found (required by /usr/lib/x86_64-linux-gnu/libpng16.so.16)

I have seen some hints online but I would like to know what is the correct way to fix this.

Thank you in advance!

clang fails to compile workbench: error: non-constant-expression cannot be narrowed from type 'int64_t' (aka 'long') to 'int' in initializer list [-Wc++11-narrowing]

/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Algorithms/AlgorithmCiftiSeparate.cxx:657:28: error: non-constant-expression cannot be narrowed from type 'int64_t' (aka 'long') to 'int' in initializer list [-Wc++11-narrowing]
        int extrema[6] = { myMap[0].m_ijk[0],
                           ^~~~~~~~~~~~~~~~~
/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Algorithms/AlgorithmCiftiSeparate.cxx:657:28: note: insert an explicit cast to silence this issue
        int extrema[6] = { myMap[0].m_ijk[0],
                           ^~~~~~~~~~~~~~~~~
                           static_cast<int>()
/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Algorithms/AlgorithmCiftiSeparate.cxx:658:13: error: non-constant-expression cannot be narrowed from type 'int64_t' (aka 'long') to 'int' in initializer list [-Wc++11-narrowing]
            myMap[0].m_ijk[0],
            ^~~~~~~~~~~~~~~~~
/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Algorithms/AlgorithmCiftiSeparate.cxx:658:13: note: insert an explicit cast to silence this issue
            myMap[0].m_ijk[0],
            ^~~~~~~~~~~~~~~~~
            static_cast<int>()
/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Algorithms/AlgorithmCiftiSeparate.cxx:659:13: error: non-constant-expression cannot be narrowed from type 'int64_t' (aka 'long') to 'int' in initializer list [-Wc++11-narrowing]
            myMap[0].m_ijk[1],
            ^~~~~~~~~~~~~~~~~

clang-13
FreeBSD 13.1

wb_view segmentation fault when building workbench with Qt newer than 5.9

BrainOpenGLWidget::~BrainOpenGLWidget()
{
makeCurrent();
this->clearDrawingViewportContents();
EventManager::get()->removeAllEventsFromListener(this);
s_brainOpenGLWidgets.erase(this);
if (s_brainOpenGLWidgets.empty()) {
if (s_singletonOpenGL != NULL) {
delete s_singletonOpenGL;
s_singletonOpenGL = NULL;
}
}
}

Calling makeCurrent() in the destructor triggers segmentation fault every time the program is closed. It seems like the internal OpenGL widget was already freed, and the pointers were set to NULL. I was able to reproduce the same problem on Qt 5.12 and 5.15 on Ubuntu 20.04 and OS X 11.

Fails to find QuaZip headers

Despite finding QuaZip it fails like this:

work/workbench-1.5.0-430-g1e6d5c5c9/src/Operations/OperationZipSpecFile.cxx|28 col 10| fatal error: 'quazip.h' file not found                                                                 
|| #include <quazip.h>
||          ^~~~~~~~~~

Issue creating label file with a name not in -cifti-create-label list

I'm trying to create a dlabel file with ROIs red nucleus, substantia nigra, subthalamic nucleus, Pallidum - internal and external and other freesurfer subcortical ROIs. I'm able to create the volume label file, but I'm not able to create the dlabel file with all the ROI labels. Only the ROIs with the names that match exactly with the list of structures mentioned in -cifti-create-labels are being created. How do I create a dlabel file with other structures included?

Workbench Tutorial Data

Hey HCP, this might not be the correct place to post this, but I have been using the rsfMRI data provided by the HCP workbench tutorial in scene 4 (CP10101). It looks like there has been some preprocessing done to the rsfMRI dtseries but I am not sure what it is. My own analysis techniques seem to work pretty well on this processed data but perform pretty poorly on the raw data. Is there any documentation/paper you could direct me to.
Thanks
Amrit

wishlist: Allow to threshold with mouse clicks on histogram in palette view

ATM it is needed to either enter numeric values explicitly or use the slidebar to adjust the threshold. With the nice histogram plot on the right it would be VERY nice if e.g. left-mouse click within histogram chose that value for "low" threshold, and right mouse click (seems to be not bound either) for "high" threshold.

Build fails with error: expected initializer before 'OF'

Building 0.85 does not work for me. Steps used:

mkdir build
cd build
cmake ../src
make

Output:

- The C compiler identification is GNU 4.7.3
-- The CXX compiler identification is GNU 4.7.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
gcc major minor version numbers are: 4,7
-- Found OpenSSL: /usr/lib64/libssl.so;/usr/lib64/libcrypto.so (found version "1.0.1f") 
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: /usr/bin/qmake (found suitable version "4.8.5", minimum required is "4.8") 
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp  

C++ flags -fopenmp  

-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.8") 
OSMESA_DIR: 
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so
-- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Found X11: /usr/lib64/libX11.so
-- Found OpenGL: /usr/lib64/libGL.so  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/martin/data/mgh/code/workbench/build

# make
In file included from /code/workbench/build/Quazip/../../src/Quazip/zip.h:60:0,
                from /code/workbench/build/Quazip/../../src/Quazip/quazip.h:31,
                from /code/workbench/build/Quazip/../../src/Quazip/quazipfile.h:30,
                from /code/workbench/build/Quazip/moc_quazipfile.cxx:9:
/code/workbench/build/Quazip/../../src/Quazip/ioapi.h:40:44: error: expected initializer before 'OF'
...

wb_view openGL missing

Hello wb developers,
I suddenly cannot open the wb_view, which acting no error before. It says "OpenGL (3D Graphics System) is not available. This may be caused by missing or outdated OpenGL libraries.On Linux, this may be caused by a missing plugin library /xcbglintegrations/libqxcb-glx-integration.so." My operating system is Ubuntu 20.04

please use annotated (or signed) tags for releases

otherwise:

$> git describe
fatal: No annotated tags can describe 'ff1307fbdc31da001014577b9016ae4ddcee0796'.
However, there were unannotated tags: try --tags.

$> git describe --tags
0.85-24-gff1307f

library loading error on centos 6.5

is the library load an error? or something that can be ignored?

$ wb_command 
Unable to load library icui18n "Cannot load library icui18n: (icui18n: cannot open shared object file: No such file or directory)" 
Workbench
Version: Beta 0.85
Qt Compiled Version: 4.8.4
Qt Runtime Version: 4.8.4  
commit: 14ba5c74f8cb92978ee1c0eb8b6a71de74c6479f
commit date: 2014-04-04 09:14:40 -0500
Compiled Debug: NO
Operating System: Linux

Information options:
   -help                 print this help info
   -arguments-help       explain how to read the help info for subcommands
   -version              print version information only
   -list-commands        print all non-information (processing) subcommands
   -all-commands-help    print all non-information (processing) subcommands and
                            their help info - VERY LONG

Global options (can be added to any command):
   -disable-provenance   don't generate provenance info in output files

If the first argument is not recognized, all processing commands that start
   with the argument are displayed

$

behavior of cifti-replace-structure seems altered in v1.5 -- leading to new errors

Hey all,

I'm noticing that the behavior for a low-level command is different.

I have a series of separated ROI files that I need to add to a dtseries, replacing the contents of each subcortical structure at a time. In 1.4.2, this worked just fine by creating a temporary dtseries comprising all the data, and then replacing the structure of each dtseries component at a time:

wb_command -cifti-create-dense-timeseries ses-24mo_task-rest_run-01_temp_orig_atlas.dtseries.nii -volume ses-24mo_task-rest_run-01_2MNI.nii.gz ROIs/Atlas_ROIs.2.nii.gz

wb_command -cifti-create-dense-from-template ses-24mo_task-rest_run-01_temp_orig_atlas.dtseries.nii ses-24mo_task-rest_run-01_temp_atlas.dtseries.nii -series 0.8 0.0 -volume CEREBELLUM_LEFT ses-24mo_task-rest_run-01_ROI0000.nii.gz

wb_command -cifti-replace-structure ses-24mo_task-rest_run-01_temp_atlas.dtseries.nii COLUMN -volume THALAMUS_LEFT ses-24mo_task-rest_run-01_ROI0001.nii.gz

In 1.5.0, such a strategy produces an error:

"While running:
/panfs/roc/groups/8/faird/shared/code/external/utilities/workbench/1.5.0/workbench/bin_linux64/../exe_linux64/wb_command -cifti-replace-structure ses-24mo_task-rest_run-01_temp_atlas.dtseries.nii COLUMN -volume THALAMUS_LEFT ses-24mo_task-rest_run-01_ROI0001.nii.gz

ERROR: -volume specified more than once with structure THALAMUS_LEFT"

I'm looking for an alternative way of doing this, if anyone has a workaround, that would be great.

GIfTI image orientation

When I attempt to load reference GIfTI images they appear upside down (flipped in the head-foot dimension). Viewing the GIfTI header with a text editor suggests it uses an identity matrix, so this would not be influenced by applying the matrix to the points. I am using wb_view 1.3.2 on MacOS. The images that look wrong are the Brainvisa GIFTI samples v1.3 included in the BV_GIFTI_1.3.tar.gz, for example the sujet01_Lwhite.inflated.surf.gii. The image orientation also looks odd with independent Matlab scripts, so perhaps this is an issue with the reference images rather than the Connectome Workbench. However, since the GIfTI format was developed by the Workbench team, it might be good to determine if these odd images should be removed from the reference, or if the GIfTI specification should be clarified to allow consistent performance across tools.

Trouble opening nifti file

I'm having trouble with opening a nifti (.nii) file of fMRI activity downloaded from Neurosynth. I am trying to display the activity on an inflated brain but the only way I can actually view the activity from the nifti file is in the "Volume" mode which just shows it as a brain scan. Anyone know how to open a nifti file and display it on an inflated brain in Workbench?

HCP workbench v1.5.0 wb_view segmentation fault

Hi,

I am using CentOS7 and have installed workbench v.1.5.0. I receive a libGL error when I try to open wb_view

Info: Resources loaded:
   :/About   :/BalsaUploadDialog   :/Cursor   :/Fonts   :/general_resources.qrc   :/help_resources.qrc   :/HelpFiles   :/LayersPanel   :/OLD_help_resources.qrc   :/PaletteEditorDialog   :/PaletteSettings   :/qt-project.org   :/RecentFilesDialog   :/SceneFileDialog   :/SpecFileDialog   :/Splash   :/ToolBar   :/update_resources.sh

libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast

The user interface can still be loaded but it exits when I click 'Open Other...' and shows this error

bin_rh_linux64/wb_view: line 17: 38300 Segmentation fault      "$directory"/../exe_rh_linux64/wb_view "$@"

Any suggestions about how to fix this problem? Thank you.

Regards,
Shaoshi

build with non-system libz.so

Scenario:
If a non-system version of libz.so is provided (which is installed in a custom location),
the executables fail to build, generating the following error message.

cd /chimerahomes/phi/human_brain/hcp_proj/workbench/build-tree/Desktop && /fs/gvilsw-usersupported/data/phi/local/bin/cmake -E cmake_link_script CMakeFiles/wb_view.dir/link.txt --verbose=1
/chimerahomes/phi/compilers/gcc/4.8.2/vanilla/bin/g++   -fopenmp   -O3 -DNDEBUG  -L/chimerahomes/phi/lib -lz CMakeFiles/wb_view.dir/desktop.cxx.o CMakeFiles/wb_view.dir/qrc_resources.cxx.o  -o wb_view -rdynamic ../GuiQt/libGuiQt.a ../Commands/libCommands.a ../Operations/libOperations.a ../Algorithms/libAlgorithms.a ../OperationsBase/libOperationsBase.a ../Qwt/libQwt.a ../OSMesaDummy/libOSMesaDummy.a ../Brain/libBrain.a ../FtglFont/libFtglFont.a ../Files/libFiles.a ../Charting/libCharting.a ../Palette/libPalette.a ../Cifti/libCifti.a ../Gifti/libGifti.a ../Nifti/libNifti.a ../FilesBase/libFilesBase.a ../Scenes/libScenes.a ../Xml/libXml.a ../Common/libCommon.a ../Quazip/libQuazip.a -lfreetype -lQtOpenGL -lQtWebKit -lQtXmlPatterns -lQtGui -lQtXml -lQtNetwork -lQtCore -lz -lGLU -lGL -lSM -lICE -lX11 -lXext -lgobject-2.0
../Common/libCommon.a(CaretBinaryFile.cxx.o): In function `caret::ZFileImpl::pos()':
CaretBinaryFile.cxx:(.text+0x420): undefined reference to `gztell64'
../Common/libCommon.a(CaretBinaryFile.cxx.o): In function `caret::ZFileImpl::open(QString const&, caret::CaretBinaryFile::OpenMode const&)':
CaretBinaryFile.cxx:(.text+0xd0a): undefined reference to `gzopen64'
../Common/libCommon.a(CaretBinaryFile.cxx.o): In function `caret::ZFileImpl::seek(long const&)':
CaretBinaryFile.cxx:(.text+0xfab): undefined reference to `gzseek64'
collect2: error: ld returned 1 exit status
make[2]: *** [Desktop/wb_view] Error 1
make[2]: Leaving directory `/chimerahomes/phi/human_brain/hcp_proj/workbench/build-tree'
make[1]: *** [Desktop/CMakeFiles/wb_view.dir/all] Error 2
make[1]: Leaving directory `/chimerahomes/phi/human_brain/hcp_proj/workbench/build-tree'
make: *** [all] Error 2

Work-around:
Adding the following lines to the end of the linking command works.

g++ <all the flags> -L/path/to/libz -lz

Build fails due to GLAPI being undefined

Upon trying to build workbench on Ubuntu 17.10, I get the following errors.

In file included from /home/loewe/workspace/external/workbench/src/Operations/OperationShowScene.cxx:30:0:
/usr/include/GL/osmesa.h:122:1: error: 'GLAPI' does not name a type; did you mean 'GLEWAPI'?                                                                             
 GLAPI OSMesaContext GLAPIENTRY                                                                                                                                          
 ^~~~~
...

Here are my build commands (log files: cmake.log, make.log).

$ cmake -D CMAKE_BUILD_TYPE=Release -D WORKBENCH_MESA_DIR=/usr -D WORKBENCH_USE_QT5=TRUE -Wno-dev ../src > cmake.log 2>&1
$ make -j16 > make.log 2>&1

The problem seems to result from the following situation.

  • OperationShowScene.cxx first includes glew.h and then includes osmesa.h
  • glew.h defines __gl_h_ so that gl.h will not be included again
  • glew.h defines GLAPI but undefines it in the end
  • osmesa.h would include gl.h but doesn't because __gl_h_ has already been defined by glew.h
  • GLAPI remains undefined resulting in the observed errors

A workaround that enables me to build is to define GLAPI in OperationShowScene.cxx in case it's not defined.

#ifdef HAVE_OSMESA
#ifndef GLAPI
#define GLAPI extern
#endif
#include <GL/osmesa.h>
#endif // HAVE_OSMESA

Is this an acceptable solution?

1.2 Windows release fails on Windows 10?

Hi,

Thank you for this excellent software. I'm trying to run wb_view.exe of the 1.2.0 release on my Windows 10 laptop, and I'm getting this error:

wb_view

Can anyone help me figure out how to build this software for my version of Win10?

Building version 1.3.2 fails with undefined reference errors

Hi,

I am trying to build the connectome workbench 1.3.2 using GCC 4.8.5, Qt 5.9.1, Mesa 17.2.3 and CMake 3.11.1. The build almost finishes and then fails at 93% with the error message:

[ 93%] Building CXX object GuiQt/CMakeFiles/GuiQt.dir/KeyEvent.cxx.o
cd /scratch/93741177.tmpdir/workbench-1.3.2/src/build/GuiQt && /usr/bin/g++  -DCARET_DOTFCN -DCARET_OS_LINUX -DHAVE_FREETYPE -DQT_CORE_LIB -DQT_NO_DEBUG -I/scratch/93741177.tmpdir/workbench-1.3.2/src/kloewe/dot/src -I/cluster/apps/gcc-4.8.5/mesa-17.2.3-scgjhvf43ivc54ykewsggroiyydhdtma/include -I/cluster/apps/gcc-4.8.5/zlib-1.2.11-tu4n3a4rud6dtfqmgmgfrb32liysc5lu/include -isystem /cluster/apps/gcc-4.8.5/qt-5.9.1-4xilvu6otyfkgeasjlf27tyyvplvz33d/include -isystem /cluster/apps/gcc-4.8.5/qt-5.9.1-4xilvu6otyfkgeasjlf27tyyvplvz33d/include/QtCore -isystem /cluster/apps/gcc-4.8.5/qt-5.9.1-4xilvu6otyfkgeasjlf27tyyvplvz33d/./mkspecs/linux-g++ -I/cluster/apps/gcc-4.8.5/qt-5.9.1-4xilvu6otyfkgeasjlf27tyyvplvz33d/include/QtOpenGL -I/cluster/apps/gcc-4.8.5/qt-5.9.1-4xilvu6otyfkgeasjlf27tyyvplvz33d/include/QtWidgets -I/cluster/apps/gcc-4.8.5/qt-5.9.1-4xilvu6otyfkgeasjlf27tyyvplvz33d/include/QtGui -I/cluster/apps/gcc-4.8.5/qt-5.9.1-4xilvu6otyfkgeasjlf27tyyvplvz33d/include/QtNetwork -I/scratch/93741177.tmpdir/workbench-1.3.2/src/build/GuiQt -I/scratch/93741177.tmpdir/workbench-1.3.2/src/GuiQt -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Qwt -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Algorithms -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Annotations -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Brain -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Commands -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Charting -I/scratch/93741177.tmpdir/workbench-1.3.2/src/FilesBase -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Files -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Cifti -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Gifti -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Graphics -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Nifti -I/scratch/93741177.tmpdir/workbench-1.3.2/src/OSMesaDummy -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Operations -I/scratch/93741177.tmpdir/workbench-1.3.2/src/OperationsBase -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Palette -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Scenes -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Xml -I/scratch/93741177.tmpdir/workbench-1.3.2/src/Common  -fopenmp  -O3 -DNDEBUG -ftree-vectorize -march=core-avx2 -mavx2 -fPIC   -W -Wall -Werror=return-type -Werror=switch -Wunused-parameter -fPIC -std=gnu++11 -o CMakeFiles/GuiQt.dir/KeyEvent.cxx.o -c /scratch/93741177.tmpdir/workbench-1.3.2/src/GuiQt/KeyEvent.cxx
../kloewe/dot/libdot.a(dot.c.o): In function `dot_set_impl':
dot.c:(.text+0xf5): undefined reference to `sdot_avx'
dot.c:(.text+0x106): undefined reference to `ddot_avx'
dot.c:(.text+0x11e): undefined reference to `dsdot_avx'
collect2: error: ld returned 1 exit status
make[2]: *** [CommandLine/CMakeFiles/wb_command.dir/build.make:167: CommandLine/wb_command] Error 1
make[2]: Leaving directory '/scratch/93741177.tmpdir/workbench-1.3.2/src/build'
make[1]: *** [CMakeFiles/Makefile2:1467: CommandLine/CMakeFiles/wb_command.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Any help is appreciated. If there is any useful information that I can provide, then please let me know.

[sfux@eu-c7-041-01 build]$ cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[sfux@eu-c7-041-01 build]$ uname -a
Linux eu-c7-041-01 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 GNU/Linux
[sfux@eu-c7-041-01 build]$

Fails to find QuaZip package

cmake files are looking for QUAZIP_* but the actual name is QuaZip-Qt5 on FreeBSD,

Please make this name configurable through cmake variables if you can.

Displaying borders substantially slows down loading time in wb_view

Hello,
Starting somewhat recently (maybe in the last 6 months) we've noticed that when borders files are displayed in our scene files, it substantially slows down the loading time in wb_view (e.g. for the Information window to display when clicking on a vertex). If borders are turned off (but still loaded), wb_view speeds up again. This wasn't an issue when we first set up the scene file. We were wondering what may have caused this decrease in loading speed (possibly in the 1.3.2 versus 1.0.0 version of Workbench?).

I am on a Mac running wb_view version 1.3.2. The borders files we are using are "Q1-Q6_RelatedValidation210.L.CorticalAreas_dil_Final_Final_Areas_Group.32k_fs_LR.border" and
"Q1-Q6_RelatedValidation210.R.CorticalAreas_dil_Final_Final_Areas_Group.32k_fs_LR.border", i.e. the 360 cortical parcels from the Multi-Modal Parcellation. With smaller border files that have fewer borders, the loading time is not as slow.

Connectome workbench fail

Hi,

I have followed the instructions to download the connectome workbench on my MacOS, but when I go into the file path for the workbench (/Applications/workbench/), I cannot open the application wb_command.
I was wondering if you could help me install the program?
From all of the instructions online it says I should be able to download the program, I have set the path in the terminal command as well.

Greatly appreciate your help.

Natasha

error: use of undeclared identifier 'glGenBuffers'

| /usr/bin/c++ -DHAVE_FREETYPE -DQT_CORE_LIB -DQT_NO_DEBUG -DWORKBENCH_HAVE_HELP_HTML -DWORKBENCH_USE_QT5_QOPENGL_WIDGET -D_STATICLIBBUILD -I/usr/local/include -I/usr/local/include/qt5/QtNetwork -I/usr/local/include/qt5/QtGui -I/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Annotations -I/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Brain -I/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Charting -I/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Cifti -I/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/CZIlib/CZI -I/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/FilesBase -I/disk-samsung/freebsd-ports/biology/connectome-workbench/work/workbench-1.5.0-430-g1e6d5c5c9/src/Files -I/disk-samsung/freebsd-ports/biology/connec
work/workbench-1.5.0-430-g1e6d5c5c9/src/Brain/BrainOpenGLShape.cxx|177 col 9| error: use of undeclared identifier 'glGenBuffers'                                                              
||         glGenBuffers(1, &id);
||         ^

Did you forget to include GL/glext.h ?

"-surface-resample" cannot resample an input surface that is very-high resolution

Hello,

This issue was mentioned in mandymejia/ciftiTools#34 .

Background

I have fMRIPrep (21.0.0) cifti outputs (using the 91k resolution). All surface/cifti files can be found here. They are from a public openneuro dataset (ds003129). I am trying to resample the subject's high density surface (~150k vertices) to the template space that the cifti file corresponds with (~32k vertices).

The problem

"-surface-resample" crashes when trying to resample the subject's high-resolution surface file (sub-047EPKL011005_ses-1_hemi-L_midthickness.surf.gii) to the template resolution (tpl-fsLR_den-32k_hemi-L_midthickness.surf.gii). I used ciftiTool's (https://github.com/mandymejia/ciftiTools) wrapper function resample_surf, which calls workbench (1.5.0)-surface-resample and got the following error:

Error

For every triangle in the surface I get the following error (I paste just a portion of the error message below);
triangle 317355, vertex 0Vertex used twice in one triangle: triangle 317356, vertex 0Vertex used twice in one triangle: triangle 317356, vertex 0Vertex used twice in one triangle: triangle 317357, vertex 0Vertex used twice in one triangle: triangle 317357, vertex 0...

Please let me know if there is any information I can provide to help describe this problem better.

Thank you,
Steven

CIFTI volume preferred orientation

Hi,

I'm unsure if this is the best place for this issue, but an fmriprep user is having trouble parcellating their BOLD dtseries (nipreps/fmriprep#2031 (comment)). It seems the main issue is fmriprep produces the subcortical volumes in RAS orientation, while other files may have this information in LAS.

Looking at the CIFTI specification (CIFTI-2 Connectivity File Formats), I was under the impression the data should be in RAS

VoxelIJKIndicestospatialXYZcoordinates
(+X=>right, +Y=>anterior, +Z=> superior). The resulting coordinate is the center of the voxel.

Should fmriprep change volume orientation to LAS? In any effect, wb_command -cifti-parcellate should probably be flexible enough to handle files of different orientation.

"heads up": possible race condition somewhere (fails to start under xvfb from time to time)?

novo:~/deb/perspect/workbench-standalone/workbench/exe_linux64
$> XVFB_OPTS="-screen 0 1024x768x24 -ac +extension GLX +render -noreset"; LD_LIBRARY_PATH=$PWD/../libs_linux64 xvfb-run --auto-servernum --server-num=20 -s "$XVFB_OPTS" gdb --args ./workbench -logging ALL 
GNU gdb (GDB) 7.6.2 (Debian 7.6.2-1)                                      
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/yoh/deb/perspect/workbench-standalone/workbench/exe_linux64/workbench...done.
(gdb) r
Starting program: /home/yoh/deb/perspect/workbench-standalone/workbench/exe_linux64/./workbench -logging ALL
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

^C
Program received signal SIGINT, Interrupt.
0x00007ffff1dd0710 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:81
81  ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) quit
A debugging session is active.

    Inferior 1 [process 510] will be killed.

Quit anyway? (y or n) y 

in above run I waited long enough... on subsequent one it seems got the the "splash" screen

novo:~/deb/perspect/workbench-standalone/workbench/exe_linux64
$> XVFB_OPTS="-screen 0 1024x768x24 -ac +extension GLX +render -noreset"; LD_LIBRARY_PATH=$PWD/../libs_linux64 xvfb-run --auto-servernum --server-num=20 -s "$XVFB_OPTS" gdb --args ./workbench -logging ALL
GNU gdb (GDB) 7.6.2 (Debian 7.6.2-1)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/yoh/deb/perspect/workbench-standalone/workbench/exe_linux64/workbench...done.
(gdb) c
The program is not being run.
(gdb) r
Starting program: /home/yoh/deb/perspect/workbench-standalone/workbench/exe_linux64/./workbench -logging ALL
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Level: CONFIG
Method: int main(int, char**)
File:   /home/caret/caret7_source/src/Desktop/desktop.cxx
Line:   306
Text:   Compiled Debug: NO


Level: FINE
Method: int main(int, char**)
File:   /home/caret/caret7_source/src/Desktop/desktop.cxx
Line:   317
Text:   Running: /home/yoh/deb/perspect/workbench-standalone/workbench/exe_linux64/./workbench -logging ALL

^C
Program received signal SIGINT, Interrupt.
0x00007ffff1dd0710 in __poll_nocancel () at ../sysdeps/unix/syscall-template.S:81

I wondered:

  • if anyone of developers tried to automate GUI testing?
  • tried xvfb?
  • observer the same behavior?

An construct for basic "run the beast" testing I had in mind was smth like

$> timelimit=15 XVFB_OPTS="-screen 0 1024x768x24 -ac +extension GLX +render -noreset"; xvfb-run --auto-servernum --server-num=20 -s "$XVFB_OPTS" bash -c "( sleep 1; xdotool key --delay 1000 Tab Return;  sleep 5; xdotool key --delay 2000 ctrl+q Return) & ./workbench -logging INFO"      

Level: CONFIG
Method: int main(int, char**)
File:   /home/caret/caret7_source/src/Desktop/desktop.cxx
Line:   306
Text:   Compiled Debug: NO


Level: FINE
Method: int main(int, char**)
File:   /home/caret/caret7_source/src/Desktop/desktop.cxx
Line:   317
Text:   Running: ./workbench -logging INFO

^C%            

(which as you see in this case succeeded to proceed to that splash screen but then (may be just xdotool didn't send keystrokes correctly) got stuck... some times it doesn't even spit out those...

and for those really interested , this would have been an ultimate construct with a timeout

timelimit=15 XVFB_OPTS="-screen 0 1024x768x24 -ac +extension GLX +render -noreset"; xvfb-run --auto-servernum --server-num=20 -s "$XVFB_OPTS" bash -c "( sleep 1; xdotool key --delay 1000 Tab Return;  sleep 5; xdotool key --delay 2000 ctrl+q Return) & timeout $timelimit ./workbench -logging INFO"

which times out

May be there are more efficient ways to drive Qt apps -- please share ;)

wb_view openGL missing

Hello wb developers,
I suddenly cannot open the wb_view, which acting no error before. It says "OpenGL (3D Graphics System) is not available. This may be caused by missing or outdated OpenGL libraries.On Linux, this may be caused by a missing plugin library /xcbglintegrations/libqxcb-glx-integration.so." My operating system is Ubuntu 20.04

segfault while "Identify voxel"

happens with a "manual" build and distributed standalone build while I right-click mouse somewhere on non-0 voxel and select "Identify voxel" while looking at this emails

/usr/share/fsl/data/atlases/HarvardOxford/HarvardOxford-cortl-maxprob-thr50-2mm.nii.gz uint8 [ 91, 109, 91] 2.00x2.00x2.00

$> LD_LIBRARY_PATH=$PWD/libs_linux64 gdb --args exe_linux64/workbench /usr/share/fsl/data/atlases/HarvardOxford/HarvardOxford-cortl-maxprob-thr50-2mm.nii.gz 
GNU gdb (GDB) 7.6.2 (Debian 7.6.2-1)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/yoh/deb/perspect/workbench-standalone/workbench/exe_linux64/workbench...done.
(gdb) r
Starting program: /home/yoh/deb/perspect/workbench-standalone/workbench/exe_linux64/workbench /usr/share/fsl/data/atlases/HarvardOxford/HarvardOxford-cortl-maxprob-thr50-2mm.nii.gz
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7ffff7ffa000
warning: Could not load shared library symbols for linux-vdso.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Level: INFO
Method: caret::CaretDataFile* caret::Brain::addReadOrReloadDataFile(caret::Brain::FileModeAddReadReload, caret::CaretDataFile*, caret::DataFileTypeEnum::Enum, caret::StructureEnum::Enum, const caret::AString&, bool)
File:   /home/caret/caret7_source/src/Brain/Brain.cxx
Line:   4335
Text:   Time to read /usr/share/fsl/data/atlases/HarvardOxford/HarvardOxford-cortl-maxprob-thr50-2mm.nii.gz was 0.11303 seconds.


Program received signal SIGSEGV, Segmentation fault.
0x00000000006fe170 in caret::Brain::getNumberOfVolumeFiles() const ()
(gdb) bt
#0  0x00000000006fe170 in caret::Brain::getNumberOfVolumeFiles() const ()
#1  0x00000000007d13dc in caret::IdentificationTextGenerator::generateVolumeIdentificationText(caret::IdentificationStringBuilder&, caret::Brain const*, caret::SelectionItemVoxel const*) const ()
#2  0x00000000007d6575 in caret::IdentificationTextGenerator::createIdentificationText(caret::SelectionManager const*, caret::Brain const*) const ()
#3  0x00000000007a8259 in caret::SelectionManager::getIdentificationText(caret::Brain const*) const ()
#4  0x00000000005e3372 in caret::BrainOpenGLWidgetContextMenu::identifyVoxelSelected() ()
#5  0x00007ffff4167adb in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#6  0x00007ffff53a3e62 in QAction::triggered(bool) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#7  0x00007ffff53a53b0 in QAction::activate(QAction::ActionEvent) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#8  0x00007ffff58559d4 in ?? () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#9  0x00007ffff585b6b2 in ?? () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#10 0x00007ffff5404152 in QWidget::event(QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#11 0x00007ffff585b13b in QMenu::event(QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#12 0x00007ffff53aa83f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#13 0x00007ffff53b1b02 in QApplication::notify(QObject*, QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#14 0x00007ffff4150a74 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#15 0x00007ffff53ad667 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#16 0x00007ffff542dc49 in ?? () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#17 0x00007ffff542cc51 in QApplication::x11ProcessEvent(_XEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#18 0x00007ffff5458468 in ?? () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#19 0x00007ffff0d4a526 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff0d4a878 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007ffff0d4a91c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007ffff4182c1c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#23 0x00007ffff5457fff in ?? () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#24 0x00007ffff414fb25 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#25 0x00007ffff414fee6 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#26 0x00007ffff5859055 in QMenu::exec(QPoint const&, QAction*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#27 0x00000000005dd6c7 in caret::BrainOpenGLWidget::contextMenuEvent(QContextMenuEvent*) ()
#28 0x00007ffff540491c in QWidget::event(QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#29 0x00007ffff7b016aa in QGLWidget::event(QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtOpenGL.so.4
#30 0x00000000005dcb29 in caret::BrainOpenGLWidget::event(QEvent*) ()
#31 0x00007ffff53aa83f in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#32 0x00007ffff53b35b4 in QApplication::notify(QObject*, QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#33 0x00007ffff4150a74 in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#34 0x00007ffff542e101 in ?? () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#35 0x00007ffff542cc51 in QApplication::x11ProcessEvent(_XEvent*) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#36 0x00007ffff5458468 in ?? () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#37 0x00007ffff0d4a526 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007ffff0d4a878 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007ffff0d4a91c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007ffff4182c1c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#41 0x00007ffff5457fff in ?? () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtGui.so.4
#42 0x00007ffff414fb25 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#43 0x00007ffff414fee6 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#44 0x00007ffff4151da6 in QCoreApplication::exec() () from /home/yoh/deb/perspect/workbench-standalone/workbench/libs_linux64/libQtCore.so.4
#45 0x00000000005a7e3b in main ()

P.S. if you could accompany the fix with the unit-test that would be awesome!

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.