From 15689e13ea9ecb7c1874f0d437c2881d01f5f0dc Mon Sep 17 00:00:00 2001 From: Ian Liu <37123262+Ianyliu@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:52:03 -0400 Subject: [PATCH 1/4] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index c25f100..628e7b2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ matplotlib>=2.0.0 vtk>=8.1.0 nibabel pillow -pandas +pandas<=1.3.0 scipy>=0.17.0 scikit-learn>=0.22.0 nilearn From 256bdaaf226d262c09c3ed7f6f1cb427d6dda7b1 Mon Sep 17 00:00:00 2001 From: Ian Liu <37123262+Ianyliu@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:52:50 -0400 Subject: [PATCH 2/4] Add Conda Env File --- environment.yml | 258 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 environment.yml diff --git a/environment.yml b/environment.yml new file mode 100644 index 0000000..ae32214 --- /dev/null +++ b/environment.yml @@ -0,0 +1,258 @@ +name: enigma +channels: + - conda-forge + - defaults +dependencies: + - aiohappyeyeballs=2.4.0=pyhd8ed1ab_0 + - aiohttp=3.10.5=py38h3237794_0 + - aiosignal=1.3.1=pyhd8ed1ab_0 + - anyio=3.7.1=pyhd8ed1ab_0 + - aom=3.9.1=h7bae524_0 + - appnope=0.1.4=pyhd8ed1ab_0 + - asttokens=2.4.1=pyhd8ed1ab_0 + - async-timeout=4.0.3=pyhd8ed1ab_0 + - attrs=24.2.0=pyh71513ae_0 + - backcall=0.2.0=pyh9f0ad1d_0 + - bleach=6.1.0=pyhd8ed1ab_0 + - blosc=1.21.6=h5499902_0 + - bokeh=2.4.3=pyhd8ed1ab_3 + - brotli=1.1.0=hb547adb_1 + - brotli-bin=1.1.0=hb547adb_1 + - brotli-python=1.1.0=py38he333c0f_1 + - bzip2=1.0.8=h99b78c6_7 + - c-ares=1.33.1=hd74edd7_0 + - ca-certificates=2024.8.30=hf0a4a13_0 + - cairo=1.18.0=hb4a6bf7_3 + - certifi=2024.8.30=pyhd8ed1ab_0 + - cffi=1.17.0=py38h858044d_0 + - charset-normalizer=3.3.2=pyhd8ed1ab_0 + - colorama=0.4.6=pyhd8ed1ab_0 + - comm=0.2.2=pyhd8ed1ab_0 + - contourpy=1.1.1=py38h9afee92_1 + - cycler=0.12.1=pyhd8ed1ab_0 + - dav1d=1.2.1=hb547adb_0 + - debugpy=1.8.5=py38h11842c7_0 + - decorator=5.1.1=pyhd8ed1ab_0 + - double-conversion=3.3.0=h13dd4ca_0 + - eigen=3.4.0=h1995070_0 + - exceptiongroup=1.2.2=pyhd8ed1ab_0 + - executing=2.1.0=pyhd8ed1ab_0 + - expat=2.6.3=hf9b8971_0 + - ffmpeg=6.1.2=gpl_h3ef3969_102 + - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 + - font-ttf-inconsolata=3.000=h77eed37_0 + - font-ttf-source-code-pro=2.038=h77eed37_0 + - font-ttf-ubuntu=0.83=h77eed37_2 + - fontconfig=2.14.2=h82840c6_0 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 + - fonttools=4.53.1=py38h3237794_0 + - freetype=2.12.1=hadb7bae_2 + - fribidi=1.0.10=h27ca646_0 + - frozenlist=1.4.1=py38h336bac9_0 + - gettext=0.22.5=h8414b35_3 + - gettext-tools=0.22.5=h8414b35_3 + - git=2.46.0=pl5321h41514c7_0 + - gl2ps=1.4.2=hc97c1ff_1 + - glew=2.1.0=h9f76cd9_2 + - gmp=6.3.0=h7bae524_2 + - gnutls=3.8.7=h9df781c_0 + - graphite2=1.3.13=hebf3989_1003 + - h2=4.1.0=pyhd8ed1ab_0 + - harfbuzz=9.0.0=h997cde5_1 + - hdf4=4.2.15=h2ee6834_7 + - hdf5=1.14.3=nompi_hec07895_105 + - hpack=4.0.0=pyh9f0ad1d_0 + - hyperframe=6.0.1=pyhd8ed1ab_0 + - icu=75.1=hfee45f7_0 + - idna=3.8=pyhd8ed1ab_0 + - importlib-metadata=8.4.0=pyha770c72_0 + - importlib-resources=6.4.5=pyhd8ed1ab_0 + - importlib_metadata=8.4.0=hd8ed1ab_0 + - importlib_resources=6.4.5=pyhd8ed1ab_0 + - ipykernel=6.29.5=pyh57ce528_0 + - ipython=8.12.0=pyhd1c38e8_0 + - jedi=0.19.1=pyhd8ed1ab_0 + - jinja2=3.1.4=pyhd8ed1ab_0 + - joblib=1.4.2=pyhd8ed1ab_0 + - jsoncpp=1.9.5=hc021e02_1 + - jupyter_client=8.6.2=pyhd8ed1ab_0 + - jupyter_core=5.7.2=py38h10201cd_0 + - kiwisolver=1.4.5=py38h9afee92_1 + - krb5=1.21.3=h237132a_0 + - lame=3.100=h1a8c8d9_1003 + - lcms2=2.16=ha0e7c42_0 + - lerc=4.0.0=h9a09cb3_0 + - libabseil=20240116.2=cxx17_h00cdb27_1 + - libaec=1.1.3=hebf3989_0 + - libasprintf=0.22.5=h8414b35_3 + - libasprintf-devel=0.22.5=h8414b35_3 + - libass=0.17.3=hf20b609_0 + - libblas=3.9.0=20_osxarm64_openblas + - libbrotlicommon=1.1.0=hb547adb_1 + - libbrotlidec=1.1.0=hb547adb_1 + - libbrotlienc=1.1.0=hb547adb_1 + - libcblas=3.9.0=20_osxarm64_openblas + - libclang-cpp16=16.0.6=default_h5c12605_13 + - libclang13=18.1.8=default_hfc66aa2_4 + - libcurl=8.9.1=hfd8ffcc_0 + - libcxx=18.1.8=h3ed4263_7 + - libdeflate=1.21=h99b78c6_0 + - libedit=3.1.20191231=hc8eb9b7_2 + - libev=4.33=h93a5062_2 + - libexpat=2.6.3=hf9b8971_0 + - libffi=3.4.2=h3422bc3_5 + - libgettextpo=0.22.5=h8414b35_3 + - libgettextpo-devel=0.22.5=h8414b35_3 + - libgfortran=5.0.0=13_2_0_hd922786_3 + - libgfortran5=13.2.0=hf226fd6_3 + - libglib=2.80.3=h59d46d9_2 + - libhwloc=2.11.1=default_h7685b71_1000 + - libiconv=1.17=h0d3ecfb_2 + - libidn2=2.3.7=h93a5062_0 + - libintl=0.22.5=h8414b35_3 + - libintl-devel=0.22.5=h8414b35_3 + - libjpeg-turbo=3.0.0=hb547adb_1 + - liblapack=3.9.0=20_osxarm64_openblas + - libllvm16=16.0.6=haab561b_3 + - libllvm18=18.1.8=h5090b49_2 + - libnetcdf=4.9.2=nompi_he469be0_114 + - libnghttp2=1.58.0=ha4dd798_1 + - libogg=1.3.5=h99b78c6_0 + - libopenblas=0.3.25=openmp_h6c19121_0 + - libopenvino=2024.3.0=h5c9529b_0 + - libopenvino-arm-cpu-plugin=2024.3.0=h5c9529b_0 + - libopenvino-auto-batch-plugin=2024.3.0=hcd65546_0 + - libopenvino-auto-plugin=2024.3.0=hcd65546_0 + - libopenvino-hetero-plugin=2024.3.0=h88cb26a_0 + - libopenvino-ir-frontend=2024.3.0=h88cb26a_0 + - libopenvino-onnx-frontend=2024.3.0=h32b5460_0 + - libopenvino-paddle-frontend=2024.3.0=h32b5460_0 + - libopenvino-pytorch-frontend=2024.3.0=h00cdb27_0 + - libopenvino-tensorflow-frontend=2024.3.0=h2741c3b_0 + - libopenvino-tensorflow-lite-frontend=2024.3.0=h00cdb27_0 + - libopus=1.3.1=h27ca646_1 + - libpng=1.6.43=h091b4b1_0 + - libpq=16.4=h671472c_1 + - libprotobuf=4.25.3=hbfab5d5_0 + - libsodium=1.0.18=h27ca646_1 + - libsqlite=3.46.1=hc14010f_0 + - libssh2=1.11.0=h7a5bd25_0 + - libtasn1=4.19.0=h1a8c8d9_0 + - libtheora=1.1.1=h99b78c6_1006 + - libtiff=4.6.0=hf8409c0_4 + - libunistring=0.9.10=h3422bc3_0 + - libvorbis=1.3.7=h9f76cd9_0 + - libvpx=1.14.1=h7bae524_0 + - libwebp-base=1.4.0=h93a5062_0 + - libxcb=1.16=hc9fafa5_1 + - libxml2=2.12.7=h01dff8b_4 + - libxslt=1.1.39=h223e5b9_0 + - libzip=1.10.1=ha0bc3c6_3 + - libzlib=1.3.1=hfb2fe0b_1 + - llvm-openmp=18.1.8=hde57baf_1 + - loguru=0.7.2=py38h10201cd_1 + - lxml=5.3.0=py38hdedcbec_0 + - lz4-c=1.9.4=hb7217d7_0 + - markdown=3.6=pyhd8ed1ab_0 + - markupsafe=2.1.5=py38h336bac9_0 + - matplotlib=3.7.3=py38h150bfb4_0 + - matplotlib-base=3.7.3=py38hef9d0d7_0 + - matplotlib-inline=0.1.7=pyhd8ed1ab_0 + - msgpack-python=1.0.8=py38h4b8c310_0 + - multidict=6.0.5=py38hb991d35_0 + - munkres=1.1.4=pyh9f0ad1d_0 + - mysql-common=9.0.1=h1687695_0 + - mysql-libs=9.0.1=h0e80b4a_0 + - ncurses=6.5=h7bae524_1 + - nest-asyncio=1.6.0=pyhd8ed1ab_0 + - nettle=3.9.1=h40ed0f5_0 + - nibabel=5.2.1=pyha770c72_0 + - nilearn=0.10.4=pyhd8ed1ab_0 + - nlohmann_json=3.11.3=h00cdb27_1 + - numpy=1.24.4=py38ha84db1f_0 + - openh264=2.4.1=hebf3989_0 + - openjpeg=2.5.2=h9f1df11_0 + - openssl=3.3.2=h8359307_0 + - p11-kit=0.24.1=h29577a5_0 + - packaging=24.1=pyhd8ed1ab_0 + - pandas=1.3.0=py38h3777fb4_0 + - panel=0.14.0=pyhd8ed1ab_0 + - param=1.13.0=pyh1a96a4e_0 + - parso=0.8.4=pyhd8ed1ab_0 + - pcre2=10.44=h297a79d_2 + - perl=5.32.1=7_h4614cfb_perl5 + - pexpect=4.9.0=pyhd8ed1ab_0 + - pickleshare=0.7.5=py_1003 + - pillow=10.4.0=py38h2c6aaed_0 + - pip=24.2=pyh8b19718_1 + - pixman=0.43.4=hebf3989_0 + - platformdirs=4.3.2=pyhd8ed1ab_0 + - pooch=1.8.2=pyhd8ed1ab_0 + - proj=9.4.1=hfb94cee_1 + - prompt-toolkit=3.0.47=pyha770c72_0 + - prompt_toolkit=3.0.47=hd8ed1ab_0 + - psutil=6.0.0=py38h3237794_0 + - pthread-stubs=0.4=h27ca646_1001 + - ptyprocess=0.7.0=pyhd3deb0d_0 + - pugixml=1.14=h13dd4ca_0 + - pure_eval=0.2.3=pyhd8ed1ab_0 + - pycparser=2.22=pyhd8ed1ab_0 + - pyct=0.5.0=py38hca03da5_0 + - pygments=2.18.0=pyhd8ed1ab_0 + - pyparsing=3.1.4=pyhd8ed1ab_0 + - pysocks=1.7.1=pyha2e5f31_6 + - python=3.8.19=h2469fbe_0_cpython + - python-dateutil=2.9.0=pyhd8ed1ab_0 + - python_abi=3.8=5_cp38 + - pytz=2024.1=pyhd8ed1ab_0 + - pyviz_comms=3.0.3=pyhd8ed1ab_0 + - pyyaml=6.0.2=py38h3237794_0 + - pyzmq=26.2.0=py38h7e0d939_0 + - qt6-main=6.7.2=h4682d5d_5 + - readline=8.2=h92ec313_1 + - requests=2.32.3=pyhd8ed1ab_0 + - scikit-learn=1.3.2=py38he1bc1c9_2 + - scipy=1.10.1=py38h038e806_3 + - setuptools=59.8.0=py38h10201cd_1 + - six=1.16.0=pyh6c4a22f_0 + - snappy=1.2.1=hd02b534_0 + - sniffio=1.3.1=pyhd8ed1ab_0 + - sqlite=3.46.1=h3b4c4e4_0 + - stack_data=0.6.2=pyhd8ed1ab_0 + - svt-av1=2.2.1=ha39b806_0 + - tbb=2021.13.0=h7b3277c_0 + - tbb-devel=2021.13.0=h8e01b61_0 + - threadpoolctl=3.5.0=pyhc1e730c_0 + - tk=8.6.13=h5083fa2_1 + - tornado=6.4.1=py38h3237794_0 + - tqdm=4.66.5=pyhd8ed1ab_0 + - traitlets=5.14.3=pyhd8ed1ab_0 + - typing-extensions=4.12.2=hd8ed1ab_0 + - typing_extensions=4.12.2=pyha770c72_0 + - unicodedata2=15.1.0=py38hb192615_0 + - urllib3=2.2.2=pyhd8ed1ab_1 + - utfcpp=4.0.5=hce30654_0 + - vtk=9.3.1=qt_py38h07c347a_204 + - vtk-base=9.3.1=qt_py38h9391cbe_204 + - vtk-io-ffmpeg=9.3.1=qt_py38h64321a6_204 + - watchfiles=0.21.0=py38hf0e4da2_0 + - wcwidth=0.2.13=pyhd8ed1ab_0 + - webencodings=0.5.1=pyhd8ed1ab_2 + - wheel=0.44.0=pyhd8ed1ab_0 + - wslink=2.1.3=pyhd8ed1ab_0 + - x264=1!164.3095=h57fd34a_2 + - x265=3.5=hbc6ce65_3 + - xorg-libxau=1.0.11=hb547adb_0 + - xorg-libxdmcp=1.1.3=h27ca646_0 + - xz=5.2.6=h57fd34a_0 + - yaml=0.2.5=h3422bc3_2 + - yarl=1.9.4=py38h336bac9_0 + - zeromq=4.3.5=hcc0f68c_4 + - zipp=3.20.1=pyhd8ed1ab_0 + - zlib=1.3.1=hfb2fe0b_1 + - zstandard=0.23.0=py38h43bb1b3_0 + - zstd=1.5.6=hb46c0d2_0 + - pip: + # - enigmatoolbox==2.0.3 + - git+https://github.com/MICA-MNI/ENIGMA.git \ No newline at end of file From e33861720ecbfca379552e3cba3cca813fb4b213 Mon Sep 17 00:00:00 2001 From: Ian Liu <37123262+Ianyliu@users.noreply.github.com> Date: Tue, 10 Sep 2024 13:47:24 -0400 Subject: [PATCH 3/4] reolve JupyteNotebook display error --- enigmatoolbox/plotting/base.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/enigmatoolbox/plotting/base.py b/enigmatoolbox/plotting/base.py index 73cf978..51ddcaa 100644 --- a/enigmatoolbox/plotting/base.py +++ b/enigmatoolbox/plotting/base.py @@ -410,7 +410,12 @@ def to_notebook(self, transparent_bg=True, scale=(1, 1)): wimg = self._win2img(transparent_bg, scale) writer = BSPNGWriter(writeToMemory=True) result = serial_connect(wimg, writer, as_data=False).result - data = memoryview(result).tobytes() + + try: + data = memoryview(result).tobytes() + except Exception as e: + print(e) + data = memoryview(result.VTKObject).tobytes() from IPython.display import Image return Image(data) From 105fcc60ab8c0f4e2897d9aa55fde44d77536287 Mon Sep 17 00:00:00 2001 From: Ian Liu <37123262+Ianyliu@users.noreply.github.com> Date: Fri, 20 Dec 2024 22:53:53 -0500 Subject: [PATCH 4/4] Update requirements.txt --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 628e7b2..acf908b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ numpy>=1.11.0 matplotlib>=2.0.0 -vtk>=8.1.0 +vtk>=8.1.0, <9.4.0 nibabel pillow pandas<=1.3.0