From aea389ed37bd7531df99478cbac76dd85173e6ec Mon Sep 17 00:00:00 2001 From: Chris Markiewicz Date: Tue, 12 Dec 2023 13:32:02 -0500 Subject: [PATCH] MNT: Define conda environment, refactor Dockerfile --- Dockerfile | 265 ++++++----- ...xclude.txt => freesurfer7.3.2-exclude.txt} | 434 +++++++++--------- env.yml | 32 ++ requirements.txt | 219 +++++++++ 4 files changed, 620 insertions(+), 330 deletions(-) rename docker/files/{freesurfer7.2-exclude.txt => freesurfer7.3.2-exclude.txt} (97%) create mode 100644 env.yml create mode 100644 requirements.txt diff --git a/Dockerfile b/Dockerfile index 48c1b024728..24b126c8acf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,26 +22,140 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +# Ubuntu 22.04 LTS - Jammy +ARG BASE_IMAGE=ubuntu:jammy-20230308 + +# +# Build wheel +# FROM python:slim AS src RUN pip install build RUN apt-get update && \ apt-get install -y --no-install-recommends git -COPY . /src/niworkflows -RUN python -m build /src/niworkflows +COPY . /src +RUN python -m build /src -FROM nipreps/miniconda:py39_2209.01 +# +# Download stages +# -ARG DEBIAN_FRONTEND=noninteractive -ENV LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:${CONDA_PATH}/lib" +# Utilities for downloading packages +FROM ${BASE_IMAGE} as downloader +# Bump the date to current to refresh curl/certificates/etc +RUN echo "2023.12.12" +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + binutils \ + bzip2 \ + ca-certificates \ + curl \ + unzip && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# FreeSurfer 7.3.2 +FROM downloader as freesurfer +COPY docker/files/freesurfer7.3.2-exclude.txt /usr/local/etc/freesurfer7.3.2-exclude.txt +RUN curl -sSL https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/7.3.2/freesurfer-linux-ubuntu22_amd64-7.3.2.tar.gz \ + | tar zxv --no-same-owner -C /opt --exclude-from=/usr/local/etc/freesurfer7.3.2-exclude.txt + +# AFNI +FROM downloader as afni +# Bump the date to current to update AFNI +RUN echo "2023.07.20" +RUN mkdir -p /opt/afni-latest \ + && curl -fsSL --retry 5 https://afni.nimh.nih.gov/pub/dist/tgz/linux_openmp_64.tgz \ + | tar -xz -C /opt/afni-latest --strip-components 1 \ + --exclude "linux_openmp_64/*.gz" \ + --exclude "linux_openmp_64/funstuff" \ + --exclude "linux_openmp_64/shiny" \ + --exclude "linux_openmp_64/afnipy" \ + --exclude "linux_openmp_64/lib/RetroTS" \ + --exclude "linux_openmp_64/lib_RetroTS" \ + --exclude "linux_openmp_64/meica.libs" \ + # Keep only what we use + && find /opt/afni-latest -type f -not \( \ + -name "3dTshift" -or \ + -name "3dUnifize" -or \ + -name "3dAutomask" -or \ + -name "3dvolreg" \) -delete -# Installing freesurfer -COPY docker/files/freesurfer7.2-exclude.txt /usr/local/etc/freesurfer7.2-exclude.txt -RUN curl -sSL https://surfer.nmr.mgh.harvard.edu/pub/dist/freesurfer/7.2.0/freesurfer-linux-ubuntu18_amd64-7.2.0.tar.gz \ - | tar zxv --no-same-owner -C /opt --exclude-from=/usr/local/etc/freesurfer7.2-exclude.txt +# Micromamba +FROM downloader as micromamba +WORKDIR / +# Bump the date to current to force update micromamba +RUN echo "2023.04.05" +RUN curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba + +ENV MAMBA_ROOT_PREFIX="/opt/conda" +COPY env.yml /tmp/env.yml +COPY requirements.txt /tmp/requirements.txt +WORKDIR /tmp +RUN micromamba create -y -f /tmp/env.yml && \ + micromamba clean -y -a + +# +# Main stage +# +FROM ${BASE_IMAGE} as main + +# Configure apt +ENV DEBIAN_FRONTEND="noninteractive" \ + LANG="en_US.UTF-8" \ + LC_ALL="en_US.UTF-8" + +# Some baseline tools; bc is needed for FreeSurfer, so don't drop it +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + bc \ + ca-certificates \ + curl \ + git \ + gnupg \ + lsb-release \ + netbase \ + xvfb && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +# Configure PPAs for libpng12 and libxp6 +RUN GNUPGHOME=/tmp gpg --keyserver hkps://keyserver.ubuntu.com --no-default-keyring --keyring /usr/share/keyrings/linuxuprising.gpg --recv 0xEA8CACC073C3DB2A \ + && GNUPGHOME=/tmp gpg --keyserver hkps://keyserver.ubuntu.com --no-default-keyring --keyring /usr/share/keyrings/zeehio.gpg --recv 0xA1301338A3A48C4A \ + && echo "deb [signed-by=/usr/share/keyrings/linuxuprising.gpg] https://ppa.launchpadcontent.net/linuxuprising/libpng12/ubuntu jammy main" > /etc/apt/sources.list.d/linuxuprising.list \ + && echo "deb [signed-by=/usr/share/keyrings/zeehio.gpg] https://ppa.launchpadcontent.net/zeehio/libxp/ubuntu jammy main" > /etc/apt/sources.list.d/zeehio.list + +# Dependencies for AFNI; requires a discontinued multiarch-support package from bionic (18.04) +RUN apt-get update -qq \ + && apt-get install -y -q --no-install-recommends \ + ed \ + gsl-bin \ + libglib2.0-0 \ + libglu1-mesa-dev \ + libglw1-mesa \ + libgomp1 \ + libjpeg62 \ + libpng12-0 \ + libxm4 \ + libxp6 \ + netpbm \ + tcsh \ + xfonts-base \ + xvfb \ + && curl -sSL --retry 5 -o /tmp/multiarch.deb http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/multiarch-support_2.27-3ubuntu1.5_amd64.deb \ + && dpkg -i /tmp/multiarch.deb \ + && rm /tmp/multiarch.deb \ + && apt-get install -f \ + && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ + && gsl2_path="$(find / -name 'libgsl.so.19' || printf '')" \ + && if [ -n "$gsl2_path" ]; then \ + ln -sfv "$gsl2_path" "$(dirname $gsl2_path)/libgsl.so.0"; \ + fi \ + && ldconfig + +# Install files from stages +COPY --from=freesurfer /opt/freesurfer /opt/freesurfer +COPY --from=afni /opt/afni-latest /opt/afni-latest # Simulate SetUpFreeSurfer.sh -ENV FSL_DIR="/opt/fsl" \ - OS="Linux" \ +ENV OS="Linux" \ FS_OVERRIDE=0 \ FIX_VERTEX_AREA="" \ FSF_OUTPUT_FORMAT="nii.gz" \ @@ -55,102 +169,12 @@ ENV SUBJECTS_DIR="$FREESURFER_HOME/subjects" \ MNI_DATAPATH="$FREESURFER_HOME/mni/data" ENV PERL5LIB="$MINC_LIB_DIR/perl5/5.8.5" \ MNI_PERL5LIB="$MINC_LIB_DIR/perl5/5.8.5" \ - PATH="$FREESURFER_HOME/bin:$FSFAST_HOME/bin:$FREESURFER_HOME/tktools:$MINC_BIN_DIR:$PATH" - -# Install AFNI latest (neurodocker build) -ENV AFNI_DIR="/opt/afni" -RUN echo "Downloading AFNI ..." \ - && mkdir -p ${AFNI_DIR} \ - && curl -fsSL --retry 5 https://afni.nimh.nih.gov/pub/dist/tgz/linux_openmp_64.tgz \ - | tar -xz -C ${AFNI_DIR} --strip-components 1 \ - # Keep only what we use - && find ${AFNI_DIR} -type f -not \( \ - -name "3dTshift" -or \ - -name "3dUnifize" -or \ - -name "3dAutomask" -or \ - -name "3dvolreg" \) -delete + PATH="$FREESURFER_HOME/bin:$FREESURFER_HOME/tktools:$MINC_BIN_DIR:$PATH" -ENV PATH="${AFNI_DIR}:$PATH" \ +# AFNI config +ENV PATH="/opt/afni-latest:$PATH" \ AFNI_IMSAVE_WARNINGS="NO" \ - AFNI_MODELPATH="${AFNI_DIR}/models" \ - AFNI_TTATLAS_DATASET="${AFNI_DIR}/atlases" \ - AFNI_PLUGINPATH="${AFNI_DIR}/plugins" - -# Install AFNI's dependencies -RUN ${CONDA_PATH}/bin/conda install -c conda-forge -c anaconda \ - gsl \ - xorg-libxp \ - && sync \ - && ${CONDA_PATH}/bin/conda clean -afy; sync \ - && rm -rf ~/.conda ~/.cache/pip/*; sync \ - && ln -s ${CONDA_PATH}/lib/libgsl.so.25 /usr/lib/x86_64-linux-gnu/libgsl.so.19 \ - && ln -s ${CONDA_PATH}/lib/libgsl.so.25 /usr/lib/x86_64-linux-gnu/libgsl.so.0 \ - && ldconfig - -RUN GNUPGHOME=/tmp gpg --keyserver hkps://keyserver.ubuntu.com --no-default-keyring --keyring /usr/share/keyrings/linuxuprising.gpg --recv 0xEA8CACC073C3DB2A \ - && echo "deb [signed-by=/usr/share/keyrings/linuxuprising.gpg] https://ppa.launchpadcontent.net/linuxuprising/libpng12/ubuntu focal main" > /etc/apt/sources.list.d/linuxuprising.list - -RUN apt-get update \ - && apt-get install -y -q --no-install-recommends \ - libcurl4-openssl-dev \ - libgdal-dev \ - libgfortran-8-dev \ - libgfortran4 \ - libglw1-mesa \ - libgomp1 \ - libjpeg62 \ - libpng12-0 \ - libnode-dev \ - libssl-dev \ - libudunits2-dev \ - libxm4 \ - libxml2-dev \ - netpbm \ - tcsh \ - xfonts-base \ - && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* \ - && ldconfig - -# Installing ANTs 2.3.4 (NeuroDocker build) -ENV ANTSPATH="/opt/ants" -WORKDIR $ANTSPATH -RUN curl -sSL "https://dl.dropbox.com/s/gwf51ykkk5bifyj/ants-Linux-centos6_x86_64-v2.3.4.tar.gz" \ - | tar -xzC $ANTSPATH --strip-components 1 -ENV PATH="$ANTSPATH:$PATH" - -# FSL 6.0.5.1 -RUN curl -sSL https://fsl.fmrib.ox.ac.uk/fsldownloads/fsl-6.0.5.1-centos7_64.tar.gz | tar zxv --no-same-owner -C /opt \ - --exclude='fsl/doc' \ - --exclude='fsl/refdoc' \ - --exclude='fsl/python/oxford_asl' \ - --exclude='fsl/data/possum' \ - --exclude='fsl/data/first' \ - --exclude='fsl/data/mist' \ - --exclude='fsl/data/atlases' \ - --exclude='fsl/data/xtract_data' \ - --exclude='fsl/extras/doc' \ - --exclude='fsl/extras/man' \ - --exclude='fsl/extras/src' \ - --exclude='fsl/src' \ - --exclude='fsl/tcl' - -ENV FSLDIR="/opt/fsl" \ - PATH="/opt/fsl/bin:$PATH" \ - FSLOUTPUTTYPE="NIFTI_GZ" \ - FSLMULTIFILEQUIT="TRUE" \ - FSLTCLSH="/opt/fsl/bin/fsltclsh" \ - FSLWISH="/opt/fsl/bin/fslwish" \ - FSLLOCKDIR="" \ - FSLMACHINELIST="" \ - FSLREMOTECALL="" \ - FSLGECUDAQ="cuda.q" \ - POSSUMDIR="/opt/fsl" \ - LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/opt/fsl" - -# Unless otherwise specified each process should only use one thread - nipype -# will handle parallelization -ENV MKL_NUM_THREADS=1 \ - OMP_NUM_THREADS=1 + AFNI_PLUGINPATH="/opt/afni-latest" # Create a shared $HOME directory RUN useradd -m -s /bin/bash -G users niworkflows @@ -158,8 +182,33 @@ WORKDIR /home/niworkflows ENV HOME="/home/niworkflows" \ LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH" +COPY --from=micromamba /bin/micromamba /bin/micromamba +COPY --from=micromamba /opt/conda/envs/niworkflows /opt/conda/envs/niworkflows + +ENV MAMBA_ROOT_PREFIX="/opt/conda" +RUN micromamba shell init -s bash && \ + echo "micromamba activate niworkflows" >> $HOME/.bashrc +ENV PATH="/opt/conda/envs/niworkflows/bin:$PATH" \ + CPATH="/opt/conda/envs/niworkflows/include:$CPATH" \ + LD_LIBRARY_PATH="/opt/conda/envs/niworkflows/lib:$LD_LIBRARY_PATH" + COPY docker/fetch_templates.py /tmp/fetch_templates.py -RUN python /tmp/fetch_templates.py +RUN python /tmp/fetch_templates.py && \ + rm /tmp/fetch_templates.py && \ + find $HOME/.cache/templateflow -type d -exec chmod go=u {} + && \ + find $HOME/.cache/templateflow -type f -exec chmod go=u {} + + +# FSL environment +ENV LANG="C.UTF-8" \ + LC_ALL="C.UTF-8" \ + PYTHONNOUSERSITE=1 \ + FSLDIR="/opt/conda/envs/fmriprep" \ + FSLOUTPUTTYPE="NIFTI_GZ" \ + FSLMULTIFILEQUIT="TRUE" \ + FSLLOCKDIR="" \ + FSLMACHINELIST="" \ + FSLREMOTECALL="" \ + FSLGECUDAQ="cuda.q" # Unless otherwise specified each process should only use one thread - nipype # will handle parallelization @@ -167,8 +216,8 @@ ENV MKL_NUM_THREADS=1 \ OMP_NUM_THREADS=1 # Installing niworkflows -COPY --from=src /src/niworkflows/dist/*.whl . -RUN /opt/conda/bin/python -m pip install --no-cache-dir $( ls *.whl )[all] +COPY --from=src /src/dist/*.whl . +RUN pip install --no-cache-dir $( ls *.whl )[all] COPY docker/files/nipype.cfg /home/niworkflows/.nipype/nipype.cfg diff --git a/docker/files/freesurfer7.2-exclude.txt b/docker/files/freesurfer7.3.2-exclude.txt similarity index 97% rename from docker/files/freesurfer7.2-exclude.txt rename to docker/files/freesurfer7.3.2-exclude.txt index d3d66f870e4..d0a24668726 100644 --- a/docker/files/freesurfer7.2-exclude.txt +++ b/docker/files/freesurfer7.3.2-exclude.txt @@ -1,8 +1,3 @@ -freesurfer/average/3T18yoSchwartzReactN32_as_orig.4dfp.ifh -freesurfer/average/3T18yoSchwartzReactN32_as_orig.4dfp.img -freesurfer/average/3T18yoSchwartzReactN32_as_orig.4dfp.img.rec -freesurfer/average/3T18yoSchwartzReactN32_as_orig.4dfp.mat -freesurfer/average/3T18yoSchwartzReactN32_as_orig.lst freesurfer/average/711-2B_as_mni_average_305.4dfp.hdr freesurfer/average/711-2B_as_mni_average_305.4dfp.ifh freesurfer/average/711-2B_as_mni_average_305.4dfp.img @@ -12,26 +7,63 @@ freesurfer/average/711-2B_as_mni_average_305_mask.4dfp.img.rec freesurfer/average/711-2C_as_mni_average_305.4dfp.hdr freesurfer/average/711-2C_as_mni_average_305.4dfp.img.rec freesurfer/average/711-2C_as_mni_average_305.4dfp.mat -freesurfer/average/RB_all_2008-03-26.mni152.2mm.lta -freesurfer/average/RB_all_2016-05-10.vc700.gca -freesurfer/average/RB_all_2019_10_25.talxfm.mni305.gca -freesurfer/average/lh.DKTatlas40.gcs -freesurfer/average/lh.atlas2002_simple.gcs -freesurfer/average/lh.average.tif +freesurfer/average/aseg+spmhead+vermis+pons.ixi.gca freesurfer/average/BrainstemSS -freesurfer/average/Yeo_Brainmap_MNI152 -freesurfer/average/samseg freesurfer/average/Buckner_JNeurophysiol11_MNI152 -freesurfer/average/Yeo_JNeurophysiol11_MNI152 freesurfer/average/Choi_JNeurophysiol12_MNI152 -freesurfer/average/mult-comp-cor +freesurfer/average/colortable_desikan_killiany.txt +freesurfer/average/face.gca freesurfer/average/HippoSF +freesurfer/average/label_scales.dat +freesurfer/average/lh.atlas2002_simple.gcs +freesurfer/average/lh.atlas2005_simple.gcs +freesurfer/average/lh.average.curvature.filled.buckner40.tif +freesurfer/average/lh.average.CURVATURE.tif +freesurfer/average/lh.average.tif +freesurfer/average/lh.curvature.buckner40.filled.desikan_killiany.2010-03-25.gcs +freesurfer/average/lh.destrieux.simple.2009-07-29.gcs +freesurfer/average/lh.DKTaparc.atlas.acfb40.noaparc.i12.2020-05-13.gcs +freesurfer/average/lh.DKTatlas100.gcs +freesurfer/average/lh.DKTatlas40.gcs +freesurfer/average/lh_trans_toSulc.gcs +freesurfer/average/mideface-atlas +freesurfer/average/mni152.mni305.cor.subfov1.dat +freesurfer/average/mni152.mni305.cor.subfov2.dat +freesurfer/average/mni152.register.dat +freesurfer/average/mni305.cor.readme +freesurfer/average/mni305.cor.subfov1.mgz +freesurfer/average/mni305.cor.subfov1.reg +freesurfer/average/mni305.cor.subfov2.mgz +freesurfer/average/mni305.cor.subfov2.reg +freesurfer/average/mni305.mask.cor.mgz +freesurfer/average/mni_average_305.4dfp.hdr +freesurfer/average/mni_average_305.4dfp.ifh +freesurfer/average/mni_average_305.4dfp.img +freesurfer/average/mni_average_305.4dfp.img.rec +freesurfer/average/mult-comp-cor +freesurfer/average/pons.mni152.2mm.mgz +freesurfer/average/RB_all_2008-03-26.mni152.2mm.lta +freesurfer/average/RB_all_2016-05-10.vc700.gca +freesurfer/average/RB_all_2019_10_25.talxfm.mni305.gca freesurfer/average/RB_all_withskull_2016-05-10.vc700.gca freesurfer/average/RB_all_withskull_2019_10_22.talxfm.mni305.gca +freesurfer/average/rh.atlas2002_simple.gcs +freesurfer/average/rh.atlas2005_simple.gcs +freesurfer/average/rh.average.curvature.filled.buckner40.tif +freesurfer/average/rh.average.CURVATURE.tif +freesurfer/average/rh.average.tif +freesurfer/average/rh.curvature.buckner40.filled.desikan_killiany.2010-03-25.gcs +freesurfer/average/rh.destrieux.simple.2009-07-29.gcs +freesurfer/average/rh.DKTaparc.atlas.acfb40.noaparc.i12.2020-05-13.gcs +freesurfer/average/rh.DKTatlas100.gcs +freesurfer/average/rh.DKTatlas40.gcs +freesurfer/average/rh_trans_toSulc.gcs freesurfer/average/RLB700_atlas_as_orig.4dfp.hdr freesurfer/average/RLB700_atlas_as_orig.4dfp.ifh freesurfer/average/RLB700_atlas_as_orig.4dfp.img freesurfer/average/RLB700_atlas_as_orig.4dfp.img.rec +freesurfer/average/samseg +freesurfer/average/surf freesurfer/average/SVIP_Adult_Comp_N24_as_orig.4dfp.hdr freesurfer/average/SVIP_Adult_Comp_N24_as_orig.4dfp.ifh freesurfer/average/SVIP_Adult_Comp_N24_as_orig.4dfp.img @@ -60,49 +92,45 @@ freesurfer/average/SVIP_Young_Patient_N12_as_orig.4dfp.hdr freesurfer/average/SVIP_Young_Patient_N12_as_orig.4dfp.ifh freesurfer/average/SVIP_Young_Patient_N12_as_orig.4dfp.img freesurfer/average/SVIP_Young_Patient_N12_as_orig.4dfp.img.rec -freesurfer/average/aseg+spmhead+vermis+pons.ixi.gca -freesurfer/average/colortable_desikan_killiany.txt -freesurfer/average/face.gca -freesurfer/average/label_scales.dat -freesurfer/average/lh.DKTaparc.atlas.acfb40.noaparc.i12.2020-05-13.gcs -freesurfer/average/lh.DKTatlas100.gcs -freesurfer/average/lh_trans_toSulc.gcs -freesurfer/average/ThalamicNuclei -freesurfer/average/lh.atlas2005_simple.gcs -freesurfer/average/surf -freesurfer/average/mni152.mni305.cor.subfov1.dat -freesurfer/average/mni152.mni305.cor.subfov2.dat -freesurfer/average/mni152.register.dat -freesurfer/average/mni305.cor.readme -freesurfer/average/mni305.cor.subfov1.mgz -freesurfer/average/mni305.cor.subfov1.reg -freesurfer/average/mni305.cor.subfov2.mgz -freesurfer/average/mni305.cor.subfov2.reg -freesurfer/average/mni305.mask.cor.mgz -freesurfer/average/mni_average_305.4dfp.hdr -freesurfer/average/mni_average_305.4dfp.ifh -freesurfer/average/mni_average_305.4dfp.img -freesurfer/average/mni_average_305.4dfp.img.rec -freesurfer/average/pons.mni152.2mm.mgz -freesurfer/average/rh.DKTaparc.atlas.acfb40.noaparc.i12.2020-05-13.gcs -freesurfer/average/rh.DKTatlas100.gcs -freesurfer/average/rh.DKTatlas40.gcs -freesurfer/average/rh.atlas2002_simple.gcs -freesurfer/average/rh.atlas2005_simple.gcs -freesurfer/average/rh.average.CURVATURE.tif -freesurfer/average/rh.average.curvature.filled.buckner40.tif -freesurfer/average/rh.average.tif -freesurfer/average/rh.curvature.buckner40.filled.desikan_killiany.2010-03-25.gcs -freesurfer/average/rh.destrieux.simple.2009-07-29.gcs -freesurfer/average/rh_trans_toSulc.gcs freesurfer/average/talairach_mixed_with_skull.gca +freesurfer/average/ThalamicNuclei freesurfer/average/tissue_parms.txt freesurfer/average/wmsa_new_eesmith.gca -freesurfer/average/3T18yoSchwartzReactN32_as_orig.4dfp.hdr -freesurfer/average/lh.average.CURVATURE.tif -freesurfer/average/lh.average.curvature.filled.buckner40.tif -freesurfer/average/lh.curvature.buckner40.filled.desikan_killiany.2010-03-25.gcs -freesurfer/average/lh.destrieux.simple.2009-07-29.gcs +freesurfer/average/Yeo_Brainmap_MNI152 +freesurfer/average/Yeo_JNeurophysiol11_MNI152 +freesurfer/bin/3dvolreg.afni +freesurfer/bin/4dfptoanalyze +freesurfer/bin/anatomiCutsUtils +freesurfer/bin/annot2std +freesurfer/bin/aparc2feat +freesurfer/bin/aparcstats2table +freesurfer/bin/aparc_stats_aseg +freesurfer/bin/aparcstatsdiff +freesurfer/bin/apas2aseg +freesurfer/bin/applyMorph +freesurfer/bin/aseg2feat +freesurfer/bin/asegstats2table +freesurfer/bin/asegstatsdiff +freesurfer/bin/bblabel +freesurfer/bin/bbmask +freesurfer/bin/bedpostx_mgh +freesurfer/bin/beta2sxa +freesurfer/bin/bet.fsl +freesurfer/bin/biasfield +freesurfer/bin/bmedits2surf +freesurfer/bin/brec +freesurfer/bin/brec.awk +freesurfer/bin/browse-minc-header.tcl +freesurfer/bin/bugr +freesurfer/bin/build_desikan_killiany_gcs.csh +freesurfer/bin/cblumwmgyri +freesurfer/bin/checkMCR.sh +freesurfer/bin/check_recons.sh +freesurfer/bin/check_siemens_dir +freesurfer/bin/check_subject +freesurfer/bin/clear_fs_env.csh +freesurfer/bin/compute_interrater_variability.csh +freesurfer/bin/compute_label_vals.csh freesurfer/bin/compute_label_volumes.csh freesurfer/bin/connectgraph freesurfer/bin/cor_to_minc @@ -118,8 +146,8 @@ freesurfer/bin/deface_subject freesurfer/bin/defect-seg freesurfer/bin/dicom-rename freesurfer/bin/diffusionUtils -freesurfer/bin/dmri_AnatomiCuts freesurfer/bin/dmri_ac.sh +freesurfer/bin/dmri_AnatomiCuts freesurfer/bin/dmri_bset freesurfer/bin/dmri_coloredFA freesurfer/bin/dmri_extractSurfaceMeasurements @@ -133,6 +161,10 @@ freesurfer/bin/dmri_neighboringRegions freesurfer/bin/dmri_paths freesurfer/bin/dmri_pathstats freesurfer/bin/dmri_projectEndPoints +freesurfer/bin/dmrirc.example +freesurfer/bin/dmrirc.long.example +freesurfer/bin/dmrirc.long.multiscan.example +freesurfer/bin/dmrirc.multiscan.example freesurfer/bin/dmri_saveHistograms freesurfer/bin/dmri_spline freesurfer/bin/dmri_stats_ac @@ -141,10 +173,6 @@ freesurfer/bin/dmri_train freesurfer/bin/dmri_trk2trk freesurfer/bin/dmri_violinPlots freesurfer/bin/dmri_vox2vox -freesurfer/bin/dmrirc.example -freesurfer/bin/dmrirc.long.example -freesurfer/bin/dmrirc.long.multiscan.example -freesurfer/bin/dmrirc.multiscan.example freesurfer/bin/dt_recon freesurfer/bin/epidewarp.fsl freesurfer/bin/exportGcam @@ -152,44 +180,43 @@ freesurfer/bin/feat2segstats freesurfer/bin/feat2surf freesurfer/bin/findsession freesurfer/bin/fix_subject -freesurfer/bin/fix_subject-lh -freesurfer/bin/fix_subject-rh freesurfer/bin/fix_subject_corrected freesurfer/bin/fix_subject_corrected-lh freesurfer/bin/fix_subject_corrected-rh +freesurfer/bin/fix_subject-lh freesurfer/bin/fix_subject_on_seychelles +freesurfer/bin/fix_subject-rh freesurfer/bin/fixup_mni_paths freesurfer/bin/flip_4dfp -freesurfer/bin/flirt.newdefault.20080811.sch freesurfer/bin/flirt.fsl +freesurfer/bin/flirt.newdefault.20080811.sch freesurfer/bin/fname2ext freesurfer/bin/fname2stem freesurfer/bin/freesurfer freesurfer/bin/freeview -freesurfer/bin/fsPrintHelp -freesurfer/bin/fs_install_mcr -freesurfer/bin/fs_lib_check -freesurfer/bin/fs_run_from_mcr -freesurfer/bin/fs_spmreg.glnxa64 -freesurfer/bin/fs_temp_file -freesurfer/bin/fs_tutorial_data -freesurfer/bin/fs_update freesurfer/bin/fscalc freesurfer/bin/fscalc.fsl freesurfer/bin/fsdcmdecompress freesurfer/bin/fsfget freesurfer/bin/fsfirst.fsl +freesurfer/bin/fs_install_mcr freesurfer/bin/fsl.5.0.2.xyztrans.sch +freesurfer/bin/fs_lib_check freesurfer/bin/fsl_label2voxel -freesurfer/bin/fsl_rigid_register -freesurfer/bin/fsl_sub_mgh freesurfer/bin/fslmaths.fsl freesurfer/bin/fslorient.fsl freesurfer/bin/fslregister +freesurfer/bin/fsl_rigid_register +freesurfer/bin/fsl_sub_mgh freesurfer/bin/fslswapdim.fsl freesurfer/bin/fspalm +freesurfer/bin/fsPrintHelp freesurfer/bin/fsr-coreg freesurfer/bin/fsr-import +freesurfer/bin/fs_run_from_mcr +freesurfer/bin/fs_spmreg.glnxa64 +freesurfer/bin/fs_tutorial_data +freesurfer/bin/fs_update freesurfer/bin/fsvglrun freesurfer/bin/fvcompare freesurfer/bin/gca-apply @@ -200,7 +227,6 @@ freesurfer/bin/gcatrainskull freesurfer/bin/gdcmconv.fs freesurfer/bin/gems_compute_binary_atlas_probs freesurfer/bin/get_label_thickness -freesurfer/bin/grad_unwarp freesurfer/bin/groupstats freesurfer/bin/groupstatsdiff freesurfer/bin/gtmseg @@ -216,20 +242,20 @@ freesurfer/bin/histo_synthesize freesurfer/bin/ico_supersample freesurfer/bin/id.xfm freesurfer/bin/inflate_subject -freesurfer/bin/inflate_subject-lh -freesurfer/bin/inflate_subject-rh freesurfer/bin/inflate_subject3 +freesurfer/bin/inflate_subject-lh freesurfer/bin/inflate_subject_new freesurfer/bin/inflate_subject_new-lh freesurfer/bin/inflate_subject_new-rh +freesurfer/bin/inflate_subject-rh freesurfer/bin/inflate_subject_sc freesurfer/bin/irepifitvol freesurfer/bin/irepifitvol.glnx64 -freesurfer/bin/is-surface freesurfer/bin/isanalyze freesurfer/bin/isnifti freesurfer/bin/isolate_labels.csh freesurfer/bin/isolate_labels_keeporigval.csh +freesurfer/bin/is-surface freesurfer/bin/jkgcatrain freesurfer/bin/label2flat freesurfer/bin/label2patch @@ -237,16 +263,17 @@ freesurfer/bin/label_area freesurfer/bin/label_border freesurfer/bin/label_child freesurfer/bin/label_elderly_subject +freesurfer/bin/labels_disjoint +freesurfer/bin/labels_intersect freesurfer/bin/label_subject freesurfer/bin/label_subject_flash freesurfer/bin/label_subject_mixed -freesurfer/bin/labels_disjoint -freesurfer/bin/labels_intersect freesurfer/bin/labels_union freesurfer/bin/list_otl_labels freesurfer/bin/listsubj freesurfer/bin/long_create_base_sigma freesurfer/bin/long_create_orig +freesurfer/bin/longmc freesurfer/bin/long_mris_slopes freesurfer/bin/long_qdec_table freesurfer/bin/long_stats_combine @@ -254,10 +281,8 @@ freesurfer/bin/long_stats_slopes freesurfer/bin/long_stats_tps freesurfer/bin/long_submit_jobs freesurfer/bin/long_submit_postproc -freesurfer/bin/longmc freesurfer/bin/lpcregister freesurfer/bin/lta_diff -freesurfer/bin/make-segvol-table freesurfer/bin/make_average_subcort freesurfer/bin/make_average_subject freesurfer/bin/make_average_surface @@ -266,6 +291,7 @@ freesurfer/bin/make_cortex_label freesurfer/bin/make_exvivo_filled freesurfer/bin/make_folding_atlas freesurfer/bin/make_hemi_mask +freesurfer/bin/make-segvol-table freesurfer/bin/make_symmetric freesurfer/bin/make_upright freesurfer/bin/makevol @@ -274,8 +300,8 @@ freesurfer/bin/map_all_labels-lh freesurfer/bin/map_central_sulcus freesurfer/bin/map_to_base freesurfer/bin/meanval -freesurfer/bin/merge_stats_tables freesurfer/bin/mergeseg +freesurfer/bin/merge_stats_tables freesurfer/bin/minc2seqinfo freesurfer/bin/mkheadsurf freesurfer/bin/mkima_index.tcl @@ -291,13 +317,10 @@ freesurfer/bin/morph_rgb-lh freesurfer/bin/morph_rgb-rh freesurfer/bin/morph_subject freesurfer/bin/morph_subject-lh -freesurfer/bin/morph_subject-rh freesurfer/bin/morph_subject_on_seychelles +freesurfer/bin/morph_subject-rh freesurfer/bin/morph_tables-lh freesurfer/bin/morph_tables-rh -freesurfer/bin/mri-func2sph -freesurfer/bin/mri-funcvits -freesurfer/bin/mri-sph2surf freesurfer/bin/mri_align_long.csh freesurfer/bin/mri_aparc2wmseg freesurfer/bin/mri_apply_autoencoder @@ -310,9 +333,9 @@ freesurfer/bin/mri_average freesurfer/bin/mri_bc_sc_bias_correct freesurfer/bin/mri_brain_volume freesurfer/bin/mri_build_priors +freesurfer/bin/mri_cal_renormalize_gca freesurfer/bin/mri_ca_tissue_parms freesurfer/bin/mri_ca_train -freesurfer/bin/mri_cal_renormalize_gca freesurfer/bin/mri_cht2p freesurfer/bin/mri_classify freesurfer/bin/mri_cnr @@ -337,8 +360,8 @@ freesurfer/bin/mri_cvs_register freesurfer/bin/mri_cvs_requiredfiles.txt freesurfer/bin/mri_dct_align freesurfer/bin/mri_dct_align_binary -freesurfer/bin/mri_dist_surf_label freesurfer/bin/mri_distance_transform +freesurfer/bin/mri_dist_surf_label freesurfer/bin/mri_divide_segmentation freesurfer/bin/mri_edit_segmentation freesurfer/bin/mri_edit_segmentation_with_surfaces @@ -355,6 +378,8 @@ freesurfer/bin/mri_fdr freesurfer/bin/mri_fieldsign freesurfer/bin/mri_fit_bias freesurfer/bin/mri_fslmat_to_lta +freesurfer/bin/mri-func2sph +freesurfer/bin/mri-funcvits freesurfer/bin/mri_fuse_intensity_images freesurfer/bin/mri_gca_ambiguous freesurfer/bin/mri_gcab_train @@ -362,6 +387,7 @@ freesurfer/bin/mri_gdfglm freesurfer/bin/mri_glmfit freesurfer/bin/mri_glmfit-sim freesurfer/bin/mri_gradient_info +freesurfer/bin/mri_gradunwarp freesurfer/bin/mri_gtmpvc freesurfer/bin/mri_gtmseg freesurfer/bin/mri_hausdorff_dist @@ -400,21 +426,21 @@ freesurfer/bin/mri_motion_correct freesurfer/bin/mri_motion_correct2 freesurfer/bin/mri_ms_EM freesurfer/bin/mri_ms_EM_with_atlas -freesurfer/bin/mri_ms_LDA freesurfer/bin/mri_ms_fitparms +freesurfer/bin/mri_ms_LDA freesurfer/bin/mri_multiscale_segment freesurfer/bin/mri_multispectral_segment freesurfer/bin/mri_nl_align freesurfer/bin/mri_nl_align_binary freesurfer/bin/mri_nlfilter freesurfer/bin/mri_paint -freesurfer/bin/mri_parse_sdcmdir freesurfer/bin/mri_parselabel +freesurfer/bin/mri_parse_sdcmdir freesurfer/bin/mri_partial_ribbon freesurfer/bin/mri_path2label freesurfer/bin/mri_polv -freesurfer/bin/mri_probe_ima freesurfer/bin/mri_probedicom +freesurfer/bin/mri_probe_ima freesurfer/bin/mri_reduce freesurfer/bin/mri_refine_seg freesurfer/bin/mri_register @@ -425,48 +451,16 @@ freesurfer/bin/mri_rf_long_train freesurfer/bin/mri_rf_train freesurfer/bin/mri_ribbon freesurfer/bin/mri_rigid_register -freesurfer/bin/mri_sbbr -freesurfer/bin/mri_seg_overlap -freesurfer/bin/mri_segcentroids -freesurfer/bin/mri_seghead -freesurfer/bin/mri_segment_hypothalamic_subunits -freesurfer/bin/mri_segment_tumor -freesurfer/bin/mri_segment_wm_damage -freesurfer/bin/mri_simulate_atrophy -freesurfer/bin/mri_strip_nonwhite -freesurfer/bin/mri_strip_subject_info -freesurfer/bin/mri_surfacemask -freesurfer/bin/mri_synth_strip -freesurfer/bin/mri_synthesize -freesurfer/bin/mri_threshold -freesurfer/bin/mri_topologycorrection -freesurfer/bin/mri_train -freesurfer/bin/mri_train_autoencoder -freesurfer/bin/mri_transform -freesurfer/bin/mri_transform_to_COR -freesurfer/bin/mri_twoclass -freesurfer/bin/mri_update_gca -freesurfer/bin/mri_validate_skull_stripped -freesurfer/bin/mri_vessel_segment -freesurfer/bin/mri_vol2label -freesurfer/bin/mri_vol2roi -freesurfer/bin/mri_volcluster -freesurfer/bin/mri_volsynth -freesurfer/bin/mri_warp_convert -freesurfer/bin/mri_wbc -freesurfer/bin/mri_wmfilter -freesurfer/bin/mri_xcorr -freesurfer/bin/mri_xvolavg -freesurfer/bin/mri_z2p freesurfer/bin/mris2rgb freesurfer/bin/mris_AA_shrinkwrap -freesurfer/bin/mris_BA_segment freesurfer/bin/mris_add_template freesurfer/bin/mris_annot_diff freesurfer/bin/mris_annot_to_segmentation freesurfer/bin/mris_aseg_distance freesurfer/bin/mris_average_curvature freesurfer/bin/mris_average_parcellation +freesurfer/bin/mris_BA_segment +freesurfer/bin/mri_sbbr freesurfer/bin/mris_ca_deform freesurfer/bin/mris_ca_train freesurfer/bin/mris_classify_thickness @@ -485,6 +479,12 @@ freesurfer/bin/mris_density freesurfer/bin/mris_distance_map freesurfer/bin/mris_distance_to_label freesurfer/bin/mris_distance_transform +freesurfer/bin/mri_segcentroids +freesurfer/bin/mri_seghead +freesurfer/bin/mri_segment_hypothalamic_subunits +freesurfer/bin/mri_segment_tumor +freesurfer/bin/mri_segment_wm_damage +freesurfer/bin/mri_seg_overlap freesurfer/bin/mris_entropy freesurfer/bin/mris_errors freesurfer/bin/mris_extract_patches @@ -498,6 +498,7 @@ freesurfer/bin/mris_fwhm freesurfer/bin/mris_gradient freesurfer/bin/mris_hausdorff_dist freesurfer/bin/mris_image2vtk +freesurfer/bin/mri_simulate_atrophy freesurfer/bin/mris_info freesurfer/bin/mris_init_global_tractography freesurfer/bin/mris_intensity_profile @@ -524,9 +525,11 @@ freesurfer/bin/mris_multiscale_stats freesurfer/bin/mris_niters2fwhm freesurfer/bin/mris_nudge freesurfer/bin/mris_parcellate_connectivity +freesurfer/bin/mri-sph2surf freesurfer/bin/mris_pmake freesurfer/bin/mris_preproc freesurfer/bin/mris_profileClustering +freesurfer/bin/mrisp_write freesurfer/bin/mris_refine_surfaces freesurfer/bin/mris_register_label_map freesurfer/bin/mris_register_to_label @@ -543,8 +546,8 @@ freesurfer/bin/mris_sample_label freesurfer/bin/mris_sample_parc freesurfer/bin/mris_seg2annot freesurfer/bin/mris_segment -freesurfer/bin/mris_segment_vals freesurfer/bin/mris_segmentation_stats +freesurfer/bin/mris_segment_vals freesurfer/bin/mris_shrinkwrap freesurfer/bin/mris_simulate_atrophy freesurfer/bin/mris_smooth_intracortical @@ -558,15 +561,39 @@ freesurfer/bin/mris_thickness_comparison freesurfer/bin/mris_transform freesurfer/bin/mris_translate_annotation freesurfer/bin/mris_transmantle_dysplasia_paths +freesurfer/bin/mri_strip_nonwhite +freesurfer/bin/mri_strip_subject_info freesurfer/bin/mris_twoclass +freesurfer/bin/mri_surfacemask freesurfer/bin/mris_volmask_novtk freesurfer/bin/mris_volmask_vtk freesurfer/bin/mris_volsmooth freesurfer/bin/mris_volume -freesurfer/bin/mris_w_to_curv freesurfer/bin/mris_warp freesurfer/bin/mris_wm_volume -freesurfer/bin/mrisp_write +freesurfer/bin/mris_w_to_curv +freesurfer/bin/mri_synthesize +freesurfer/bin/mri_synthstrip +freesurfer/bin/mri_threshold +freesurfer/bin/mri_topologycorrection +freesurfer/bin/mri_train +freesurfer/bin/mri_train_autoencoder +freesurfer/bin/mri_transform +freesurfer/bin/mri_transform_to_COR +freesurfer/bin/mri_twoclass +freesurfer/bin/mri_update_gca +freesurfer/bin/mri_validate_skull_stripped +freesurfer/bin/mri_vessel_segment +freesurfer/bin/mri_vol2label +freesurfer/bin/mri_vol2roi +freesurfer/bin/mri_volcluster +freesurfer/bin/mri_volsynth +freesurfer/bin/mri_warp_convert +freesurfer/bin/mri_wbc +freesurfer/bin/mri_wmfilter +freesurfer/bin/mri_xcorr +freesurfer/bin/mri_xvolavg +freesurfer/bin/mri_z2p freesurfer/bin/ms_refine_subject freesurfer/bin/nmovie_qt freesurfer/bin/oct_register_mosaic @@ -581,6 +608,7 @@ freesurfer/bin/predict_v1.sh freesurfer/bin/print_unique_labels.csh freesurfer/bin/progressbar.tcl freesurfer/bin/qatools.py +freesurfer/bin/qdec freesurfer/bin/qdec_glmfit freesurfer/bin/qt.conf freesurfer/bin/quantifyBrainstemStructures.sh @@ -592,55 +620,57 @@ freesurfer/bin/rcbf-prep freesurfer/bin/rebuild_gca_atlas.csh freesurfer/bin/recon-all-exvivo freesurfer/bin/recon-all.makefile -freesurfer/bin/reg-feat2anat -freesurfer/bin/reg-mni305.2mm freesurfer/bin/regdat2xfm -freesurfer/bin/register.csh +freesurfer/bin/reg-feat2anat freesurfer/bin/register_child +freesurfer/bin/register.csh freesurfer/bin/register_elderly_subject freesurfer/bin/register_subject freesurfer/bin/register_subject_flash freesurfer/bin/register_subject_mixed +freesurfer/bin/reg-mni305.2mm freesurfer/bin/reinflate_subject freesurfer/bin/reinflate_subject-lh freesurfer/bin/reinflate_subject-rh freesurfer/bin/remove_talairach -freesurfer/bin/renormalize_T1_subject freesurfer/bin/renormalize_subject freesurfer/bin/renormalize_subject_keep_editting +freesurfer/bin/renormalize_T1_subject freesurfer/bin/repair_siemens_file freesurfer/bin/reregister_subject_mixed freesurfer/bin/rtview +freesurfer/bin/run_mris_preproc freesurfer/bin/run-qdec-glm +freesurfer/bin/run_samseg_long freesurfer/bin/run_SegmentSubfieldsT1Longitudinal.sh freesurfer/bin/run_SegmentSubject.sh -freesurfer/bin/run_SegmentThalamicNuclei.sh -freesurfer/bin/run_mris_preproc -freesurfer/bin/run_samseg_long -freesurfer/bin/run_segmentSubjectT1T2_autoEstimateAlveusML.sh freesurfer/bin/run_segmentSubjectT1_autoEstimateAlveusML.sh +freesurfer/bin/run_segmentSubjectT1T2_autoEstimateAlveusML.sh freesurfer/bin/run_segmentSubjectT2_autoEstimateAlveusML.sh +freesurfer/bin/run_SegmentThalamicNuclei.sh freesurfer/bin/samseg -freesurfer/bin/samseg-long freesurfer/bin/samseg2recon +freesurfer/bin/samseg-long freesurfer/bin/sbtiv freesurfer/bin/seg2filled freesurfer/bin/segmentBS.sh -freesurfer/bin/segmentHA_T1.sh freesurfer/bin/segmentHA_T1_long.sh +freesurfer/bin/segmentHA_T1.sh freesurfer/bin/segmentHA_T2.sh -freesurfer/bin/segmentSubject -freesurfer/bin/segmentSubjectT1T2_autoEstimateAlveusML -freesurfer/bin/segmentSubjectT1_autoEstimateAlveusML -freesurfer/bin/segmentSubjectT2_autoEstimateAlveusML -freesurfer/bin/segmentThalamicNuclei.sh freesurfer/bin/segment_monkey +freesurfer/bin/SegmentSubfieldsT1Longitudinal freesurfer/bin/segment_subject +freesurfer/bin/segmentSubject freesurfer/bin/segment_subject_notal freesurfer/bin/segment_subject_notal2 freesurfer/bin/segment_subject_old_skull_strip freesurfer/bin/segment_subject_sc +freesurfer/bin/segmentSubjectT1_autoEstimateAlveusML +freesurfer/bin/segmentSubjectT1T2_autoEstimateAlveusML +freesurfer/bin/segmentSubjectT2_autoEstimateAlveusML freesurfer/bin/segment_subject_talmgh +freesurfer/bin/SegmentThalamicNuclei +freesurfer/bin/segmentThalamicNuclei.sh freesurfer/bin/segpons freesurfer/bin/setlabelstat freesurfer/bin/sfa2fieldsign @@ -652,9 +682,10 @@ freesurfer/bin/sphere_subject freesurfer/bin/sphere_subject-lh freesurfer/bin/sphere_subject-rh freesurfer/bin/spherical_st -freesurfer/bin/spm_t_to_b +freesurfer/bin/Spline3_test freesurfer/bin/spmmat2register freesurfer/bin/spmregister +freesurfer/bin/spm_t_to_b freesurfer/bin/sratio freesurfer/bin/stat_normalize freesurfer/bin/stattablediff @@ -667,10 +698,10 @@ freesurfer/bin/swi_preprocess freesurfer/bin/swi_process freesurfer/bin/t4img_4dfp freesurfer/bin/t4imgs_4dfp -freesurfer/bin/tal_QC_AZS -freesurfer/bin/tal_compare freesurfer/bin/talairach2 freesurfer/bin/talairach_mgh +freesurfer/bin/tal_compare +freesurfer/bin/tal_QC_AZS freesurfer/bin/talsegprob freesurfer/bin/template freesurfer/bin/testOrientationPlanesFromParcellation @@ -690,12 +721,12 @@ freesurfer/bin/tractstats2table freesurfer/bin/train-gcs-atlas freesurfer/bin/tridec freesurfer/bin/trk_tools -freesurfer/bin/unpack_ima.tcl freesurfer/bin/unpack_ima1.tcl -freesurfer/bin/unpack_mnc.tcl freesurfer/bin/unpackimadir freesurfer/bin/unpackimadir2 +freesurfer/bin/unpack_ima.tcl freesurfer/bin/unpackmincdir +freesurfer/bin/unpack_mnc.tcl freesurfer/bin/unpacksdcmdir freesurfer/bin/usbtree freesurfer/bin/vol2segavg @@ -709,49 +740,15 @@ freesurfer/bin/wmsaseg freesurfer/bin/xcerebralseg freesurfer/bin/xcorr freesurfer/bin/xfmrot -freesurfer/bin/xhemi-tal freesurfer/bin/xhemireg +freesurfer/bin/xhemi-tal freesurfer/bin/xsanatreg freesurfer/bin/zero_lt_4dfp -freesurfer/bin/3dvolreg.afni -freesurfer/bin/4dfptoanalyze -freesurfer/bin/SegmentSubfieldsT1Longitudinal -freesurfer/bin/SegmentThalamicNuclei -freesurfer/bin/Spline3_test -freesurfer/bin/anatomiCutsUtils -freesurfer/bin/annot2std -freesurfer/bin/aparc2feat -freesurfer/bin/aparc_stats_aseg -freesurfer/bin/aparcstats2table -freesurfer/bin/aparcstatsdiff -freesurfer/bin/apas2aseg -freesurfer/bin/applyMorph -freesurfer/bin/aseg2feat -freesurfer/bin/asegstats2table -freesurfer/bin/asegstatsdiff -freesurfer/bin/bblabel -freesurfer/bin/bbmask -freesurfer/bin/bedpostx_mgh -freesurfer/bin/bet.fsl -freesurfer/bin/beta2sxa -freesurfer/bin/biasfield -freesurfer/bin/bmedits2surf -freesurfer/bin/brec -freesurfer/bin/brec.awk -freesurfer/bin/browse-minc-header.tcl -freesurfer/bin/bugr -freesurfer/bin/build_desikan_killiany_gcs.csh -freesurfer/bin/cblumwmgyri -freesurfer/bin/checkMCR.sh -freesurfer/bin/check_recons.sh -freesurfer/bin/check_siemens_dir -freesurfer/bin/check_subject -freesurfer/bin/clear_fs_env.csh -freesurfer/bin/compute_interrater_variability.csh -freesurfer/bin/compute_label_vals.csh -freesurfer/bin/qdec +freesurfer/DefectLUT.txt freesurfer/diffusion freesurfer/docs/xml +freesurfer/FreeSurferEnv.csh +freesurfer/FreeSurferEnv.sh freesurfer/fsfast freesurfer/lib/bem/ic0.tri freesurfer/lib/bem/ic1.tri @@ -768,12 +765,22 @@ freesurfer/lib/tcl freesurfer/lib/tktools freesurfer/lib/vtk freesurfer/matlab +freesurfer/mni-1.4 +freesurfer/mni/bin/correct_field +freesurfer/mni/bin/crispify +freesurfer/mni/bin/dcm2mnc +freesurfer/mni/bin/Display +freesurfer/mni/bin/ecattominc +freesurfer/mni/bin/evaluate_field +freesurfer/mni/bin/extracttag +freesurfer/mni/bin/field2imp +freesurfer/mni/bin/imp2field +freesurfer/mni/bin/invert_raw_image +freesurfer/mni/bin/make_model freesurfer/mni/bin/make_phantom freesurfer/mni/bin/make_template -freesurfer/mni/bin/minc_modify_header freesurfer/mni/bin/mincaverage freesurfer/mni/bin/mincbbox -freesurfer/mni/bin/mincblur freesurfer/mni/bin/minccalc freesurfer/mni/bin/mincchamfer freesurfer/mni/bin/mincconcat @@ -789,8 +796,8 @@ freesurfer/mni/bin/minclookup freesurfer/mni/bin/mincmakescalar freesurfer/mni/bin/mincmakevector freesurfer/mni/bin/mincmath +freesurfer/mni/bin/minc_modify_header freesurfer/mni/bin/mincpik -freesurfer/mni/bin/mincresample freesurfer/mni/bin/mincreshape freesurfer/mni/bin/mincstats freesurfer/mni/bin/minctoecat @@ -800,8 +807,6 @@ freesurfer/mni/bin/mincview freesurfer/mni/bin/mincwindow freesurfer/mni/bin/mnc2nii freesurfer/mni/bin/mritoself -freesurfer/mni/bin/mritotal -freesurfer/mni/bin/mritotal~ freesurfer/mni/bin/ncdump freesurfer/mni/bin/ncgen freesurfer/mni/bin/nii2mnc @@ -818,7 +823,6 @@ freesurfer/mni/bin/sharpen_volume freesurfer/mni/bin/spline_smooth freesurfer/mni/bin/transformtags freesurfer/mni/bin/upet2mnc -freesurfer/mni/bin/volume_cog freesurfer/mni/bin/volume_hist freesurfer/mni/bin/volume_stats freesurfer/mni/bin/voxeltoworld @@ -829,33 +833,26 @@ freesurfer/mni/bin/xfmconcat freesurfer/mni/bin/xfminvert freesurfer/mni/bin/xfmtool freesurfer/mni/bin/zscore_vol -freesurfer/mni/bin/Display -freesurfer/mni/bin/autocrop -freesurfer/mni/bin/check_scale -freesurfer/mni/bin/correct_field -freesurfer/mni/bin/crispify -freesurfer/mni/bin/dcm2mnc -freesurfer/mni/bin/ecattominc -freesurfer/mni/bin/evaluate_field -freesurfer/mni/bin/extracttag -freesurfer/mni/bin/field2imp -freesurfer/mni/bin/imp2field -freesurfer/mni/bin/invert_raw_image -freesurfer/mni/bin/make_model freesurfer/mni/data -freesurfer/mni/etc freesurfer/mni/include -freesurfer/mni/share/N3 -freesurfer/mni/share/man -freesurfer/mni/share/mni_autoreg freesurfer/mni/mni.srcbuild.June2015.tgz -freesurfer/mni-1.4 +freesurfer/mni/share/man +freesurfer/mni/share/N3 freesurfer/models -freesurfer/python/lib/python3.6/test +freesurfer/python/lib/python3.8/test +freesurfer/python/lib/python3.8/site-packages/caffe2 +freesurfer/python/lib/python3.8/site-packages/sklearn +freesurfer/python/lib/python3.8/site-packages/tensorflow +freesurfer/python/lib/python3.8/site-packages/torch +freesurfer/python/lib/python3.8/site-packages/**/tests freesurfer/python/**/__pycache__ freesurfer/python/share +freesurfer/SegmentNoLUT.txt freesurfer/sessions -freesurfer/subjects/V1_average +freesurfer/SetUpFreeSurfer.csh +freesurfer/SetUpFreeSurfer.sh +freesurfer/Simple_surface_labels2009.txt +freesurfer/sources.sh freesurfer/subjects/bert freesurfer/subjects/cvs_avg35 freesurfer/subjects/cvs_avg35_inMNI152 @@ -863,18 +860,11 @@ freesurfer/subjects/fsaverage3 freesurfer/subjects/fsaverage4 freesurfer/subjects/fsaverage_sym freesurfer/subjects/lh.EC_average -freesurfer/subjects/rh.EC_average freesurfer/subjects/README +freesurfer/subjects/rh.EC_average freesurfer/subjects/sample-001.mgz freesurfer/subjects/sample-002.mgz +freesurfer/subjects/V1_average +freesurfer/tkmeditParcColorsCMA freesurfer/tktools freesurfer/trctrain -freesurfer/DefectLUT.txt -freesurfer/FreeSurferEnv.csh -freesurfer/FreeSurferEnv.sh -freesurfer/SegmentNoLUT.txt -freesurfer/SetUpFreeSurfer.csh -freesurfer/SetUpFreeSurfer.sh -freesurfer/Simple_surface_labels2009.txt -freesurfer/sources.sh -freesurfer/tkmeditParcColorsCMA diff --git a/env.yml b/env.yml new file mode 100644 index 00000000000..9e78d602614 --- /dev/null +++ b/env.yml @@ -0,0 +1,32 @@ +name: niworkflows +channels: + - https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/public/ + - conda-forge +# Update this ~yearly; last updated April 2023 +dependencies: + - python=3.10 + # Intel Math Kernel Library for numpy + - mkl=2022.1 + - mkl-service=2.4 + # Base scientific python stack; required by FSL, so pinned here + - numpy=1.26 + - scipy=1.11 + - matplotlib=3.8 + - pandas=2.1 + - h5py=3.10 + # Dependencies compiled against numpy, best to stick with conda + - scikit-image=0.22 + - scikit-learn=1.3 + # Utilities + - graphviz=6.0 + # Workflow dependencies: ANTs + - ants=2.5.0 + # Workflow dependencies: FSL (versions pinned in 6.0.7.4) + - fsl-bet2=2111.4 + - fsl-flirt=2111.2 + - fsl-fast4=2111.3 + - fsl-mcflirt=2111.0 + - fsl-miscmaths=2203.2 + - pip + - pip: + - -r requirements.txt diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000000..5d3453e0e8f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,219 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile +# +astor==0.8.1 + # via formulaic +attrs==23.1.0 + # via niworkflows (pyproject.toml) +bids-validator==1.14.0 + # via pybids +certifi==2023.11.17 + # via requests +charset-normalizer==3.3.2 + # via requests +ci-info==0.3.0 + # via etelemetry +click==8.1.7 + # via + # nipype + # pybids +contourpy==1.2.0 + # via matplotlib +cycler==0.12.1 + # via matplotlib +docopt==0.6.2 + # via num2words +etelemetry==0.3.1 + # via nipype +filelock==3.13.1 + # via nipype +fonttools==4.46.0 + # via matplotlib +formulaic==0.5.2 + # via pybids +greenlet==3.0.2 + # via sqlalchemy +h5py==3.10.0 + # via nitransforms +idna==3.6 + # via requests +imageio==2.33.1 + # via scikit-image +importlib-resources==6.1.1 ; python_version < "3.11" + # via + # niworkflows (pyproject.toml) + # templateflow +interface-meta==1.3.0 + # via formulaic +isodate==0.6.1 + # via rdflib +jinja2==3.1.2 + # via niworkflows (pyproject.toml) +joblib==1.3.2 + # via + # nilearn + # scikit-learn +kiwisolver==1.4.5 + # via matplotlib +lazy-loader==0.3 + # via scikit-image +looseversion==1.3.0 + # via + # nipype + # niworkflows (pyproject.toml) +lxml==4.9.3 + # via + # nilearn + # prov + # svgutils +markupsafe==2.1.3 + # via jinja2 +matplotlib==3.8.2 + # via + # niworkflows (pyproject.toml) + # seaborn +networkx==3.2.1 + # via + # nipype + # prov + # scikit-image +nibabel==5.2.0 + # via + # nilearn + # nipype + # nitransforms + # niworkflows (pyproject.toml) + # pybids +nilearn==0.10.2 + # via niworkflows (pyproject.toml) +nipype==1.8.6 + # via niworkflows (pyproject.toml) +nitransforms==23.0.1 + # via niworkflows (pyproject.toml) +num2words==0.5.13 + # via pybids +numpy==1.26.2 + # via + # contourpy + # formulaic + # h5py + # imageio + # matplotlib + # nibabel + # nilearn + # nipype + # nitransforms + # niworkflows (pyproject.toml) + # pandas + # pybids + # scikit-image + # scikit-learn + # scipy + # seaborn + # tifffile +packaging==23.2 + # via + # etelemetry + # matplotlib + # nibabel + # nilearn + # nipype + # niworkflows (pyproject.toml) + # scikit-image +pandas==2.1.4 + # via + # formulaic + # nilearn + # niworkflows (pyproject.toml) + # pybids + # seaborn +pillow==10.1.0 + # via + # imageio + # matplotlib + # scikit-image +prov==2.0.0 + # via nipype +pybids==0.16.4 + # via + # niworkflows (pyproject.toml) + # templateflow +pydot==1.4.2 + # via nipype +pyparsing==3.1.1 + # via + # matplotlib + # pydot + # rdflib +python-dateutil==2.8.2 + # via + # matplotlib + # nipype + # pandas + # prov +pytz==2023.3.post1 + # via pandas +pyyaml==6.0.1 + # via niworkflows (pyproject.toml) +rdflib==7.0.0 + # via + # nipype + # prov +requests==2.31.0 + # via + # etelemetry + # nilearn + # templateflow +scikit-image==0.22.0 + # via niworkflows (pyproject.toml) +scikit-learn==1.3.2 + # via nilearn +scipy==1.11.4 + # via + # formulaic + # nilearn + # nipype + # nitransforms + # niworkflows (pyproject.toml) + # pybids + # scikit-image + # scikit-learn +seaborn==0.13.0 + # via niworkflows (pyproject.toml) +simplejson==3.19.2 + # via nipype +six==1.16.0 + # via + # isodate + # python-dateutil +sqlalchemy==2.0.23 + # via pybids +svgutils==0.3.4 + # via niworkflows (pyproject.toml) +templateflow==23.1.0 + # via niworkflows (pyproject.toml) +threadpoolctl==3.2.0 + # via scikit-learn +tifffile==2023.12.9 + # via scikit-image +tqdm==4.66.1 + # via templateflow +traits==6.3.2 + # via + # nipype + # niworkflows (pyproject.toml) +transforms3d==0.4.1 + # via niworkflows (pyproject.toml) +typing-extensions==4.9.0 + # via + # formulaic + # sqlalchemy +tzdata==2023.3 + # via pandas +urllib3==2.1.0 + # via requests +wrapt==1.16.0 + # via formulaic