Skip to content
Merged
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
7cbe9df
Do not open nifti files with mmap if numpy < 1.12.0
oesteban Feb 2, 2017
0db15b5
fix leftover typo
oesteban Feb 3, 2017
b67868f
use anaconda in travis cc #1788
oesteban Feb 3, 2017
b5899cd
simplify conda installation
oesteban Feb 3, 2017
332d46d
remove adding conda-forge channel
oesteban Feb 3, 2017
85ca6e5
readd conda update
oesteban Feb 3, 2017
c411e23
remove requirement version in nibabel
oesteban Feb 3, 2017
0d5d6dd
revise conda installation
oesteban Feb 3, 2017
70a7cb2
fix travis file
oesteban Feb 4, 2017
452a284
add icu to conda (#1798), append conda-forge instead of prepend
oesteban Feb 4, 2017
4291ffc
install boto3 in python 3
oesteban Feb 4, 2017
bdf62ab
Merge remote-tracking branch 'upstream/master' into fix/1795
oesteban Feb 10, 2017
a34c0fd
fix travis.xml
oesteban Feb 10, 2017
11fd619
fix travis (second round)
oesteban Feb 10, 2017
2ec16f8
fix conda-forge channel, split anaconda download
oesteban Feb 10, 2017
5b46772
remove breaklines
oesteban Feb 10, 2017
1308921
do not try to install conda after a travis_retry
oesteban Feb 10, 2017
2abe8f5
do not use travis python
oesteban Feb 10, 2017
25e65b9
roll back to miniconda, use some hints from https://conda.io/docs/tra…
oesteban Feb 10, 2017
5d60cef
fix error in travis.yml
oesteban Feb 10, 2017
1c956b0
remove if switch
oesteban Feb 10, 2017
13b3cc6
fix miniconda link
oesteban Feb 10, 2017
d37d440
Merge remote-tracking branch 'upstream/master' into fix/1795
oesteban Feb 11, 2017
ebaaebd
Merge branch 'fix/1795' of github.com:oesteban/nipype into fix/1795
oesteban Feb 11, 2017
3d1e644
fix command to update conda to a certain version
oesteban Feb 11, 2017
f3ebcc5
reenable version pinning for nibabel in requirements.txt
oesteban Feb 11, 2017
3820f9f
replace all nibabel imports and the nibabel.load to have the NUMPY_MMAP
oesteban Feb 15, 2017
671fc03
add NUMPY_MMAP import
oesteban Feb 15, 2017
05d74ec
more NUMPY_MMAP fixes
oesteban Feb 15, 2017
875ed0b
the last nibabel.load without NUMPY_MMAP
oesteban Feb 15, 2017
20e10f9
fix import NUMPY_MMAP location in examples
oesteban Feb 15, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 12 additions & 14 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,7 @@ env:
- INSTALL_DEB_DEPENDECIES=false NIPYPE_EXTRAS="doc,tests,fmri,profiler"
- INSTALL_DEB_DEPENDECIES=true NIPYPE_EXTRAS="doc,tests,fmri,profiler,duecredit"
before_install:
- function bef_inst {
wget http://repo.continuum.io/miniconda/Miniconda${TRAVIS_PYTHON_VERSION:0:1}-latest-Linux-x86_64.sh
-O /home/travis/.cache/miniconda.sh &&
bash /home/travis/.cache/miniconda.sh -b -p /home/travis/miniconda &&
export PATH=/home/travis/miniconda/bin:$PATH &&
- function apt_inst {
if $INSTALL_DEB_DEPENDECIES; then sudo rm -rf /dev/shm; fi &&
if $INSTALL_DEB_DEPENDECIES; then sudo ln -s /run/shm /dev/shm; fi &&
bash <(wget -q -O- http://neuro.debian.net/_files/neurodebian-travis.sh) &&
Expand All @@ -26,18 +22,20 @@ before_install:
source /etc/fsl/fsl.sh;
source /etc/afni/afni.sh;
export FSLOUTPUTTYPE=NIFTI_GZ; fi }
- travis_retry bef_inst
install:
# Add install of vtk and mayavi to test mesh (disabled): conda install -y vtk mayavi &&
- function inst {
- function conda_inst {
export CONDA_HOME=/home/travis/anaconda &&
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@oesteban - sorry if this was somehow my fault - but why did we switch to anaconda? miniconda gives us everything we need right?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@satra I was just checking if switching to anaconda made any difference as regards the segmentation fault, but I'm arriving to the conclusion that miniconda is much better for travis. So there's no point on switching.

bash /home/travis/.cache/anaconda.sh -b -p ${CONDA_HOME} &&
export PATH=${CONDA_HOME}/bin:$PATH &&
conda config --add channels conda-forge &&
conda update --yes conda &&
conda update --all -y python=$TRAVIS_PYTHON_VERSION &&
conda install -y nipype icu==56.1 &&
rm -r /home/travis/miniconda/lib/python${TRAVIS_PYTHON_VERSION}/site-packages/nipype* &&
pip install -r requirements.txt &&
pip install -e .[$NIPYPE_EXTRAS]; }
- travis_retry inst
rm -r ${CONDA_HOME}/lib/python${TRAVIS_PYTHON_VERSION}/site-packages/nipype*; }
# Add install of vtk and mayavi to test mesh (disabled): conda install -y vtk mayavi
- travis_retry apt_inst
- travis_retry if [ ! -f /home/travis/.cache/anaconda.sh]; then wget https://repo.continuum.io/archive/Anaconda${TRAVIS_PYTHON_VERSION:0:1}-4.3.0-Linux-x86_64.sh -O /home/travis/.cache/anaconda.sh; fi
- travis_retry conda_inst
install:
- travis_retry pip install -e .[$NIPYPE_EXTRAS]
script:
- py.test --doctest-modules nipype
deploy:
Expand Down
25 changes: 14 additions & 11 deletions nipype/algorithms/confounds.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import os
import os.path as op
from distutils.version import LooseVersion

import nibabel as nb
import numpy as np
Expand All @@ -29,6 +30,8 @@
InputMultiPath)
IFLOG = logging.getLogger('interface')

NUMPY_MMAP = LooseVersion(np.__version__) >= LooseVersion('1.12.0')

class ComputeDVARSInputSpec(BaseInterfaceInputSpec):
in_file = File(exists=True, mandatory=True, desc='functional data, after HMC')
in_mask = File(exists=True, mandatory=True, desc='a brain mask')
Expand Down Expand Up @@ -127,9 +130,9 @@ def _run_interface(self, runtime):
dvars = compute_dvars(self.inputs.in_file, self.inputs.in_mask,
remove_zerovariance=self.inputs.remove_zerovariance)

self._results['avg_std'] = float(dvars[0].mean())
self._results['avg_nstd'] = float(dvars[1].mean())
self._results['avg_vxstd'] = float(dvars[2].mean())
(self._results['avg_std'],
self._results['avg_nstd'],
self._results['avg_vxstd']) = np.mean(dvars, axis=1).astype(float)

tr = None
if isdefined(self.inputs.series_tr):
Expand Down Expand Up @@ -329,8 +332,8 @@ class CompCor(BaseInterface):
}]

def _run_interface(self, runtime):
imgseries = nb.load(self.inputs.realigned_file).get_data()
mask = nb.load(self.inputs.mask_file).get_data()
imgseries = nb.load(self.inputs.realigned_file, mmap=NUMPY_MMAP).get_data()
mask = nb.load(self.inputs.mask_file, mmap=NUMPY_MMAP).get_data()

if imgseries.shape[:3] != mask.shape:
raise ValueError('Inputs for CompCor, func {} and mask {}, do not have matching '
Expand Down Expand Up @@ -435,15 +438,15 @@ class TCompCor(CompCor):
output_spec = TCompCorOutputSpec

def _run_interface(self, runtime):
imgseries = nb.load(self.inputs.realigned_file).get_data()
imgseries = nb.load(self.inputs.realigned_file, mmap=NUMPY_MMAP).get_data()

if imgseries.ndim != 4:
raise ValueError('tCompCor expected a 4-D nifti file. Input {} has {} dimensions '
'(shape {})'
.format(self.inputs.realigned_file, imgseries.ndim, imgseries.shape))

if isdefined(self.inputs.mask_file):
in_mask_data = nb.load(self.inputs.mask_file).get_data()
in_mask_data = nb.load(self.inputs.mask_file, mmap=NUMPY_MMAP).get_data()
imgseries = imgseries[in_mask_data != 0, :]

# From the paper:
Expand Down Expand Up @@ -521,9 +524,9 @@ class TSNR(BaseInterface):
output_spec = TSNROutputSpec

def _run_interface(self, runtime):
img = nb.load(self.inputs.in_file[0])
img = nb.load(self.inputs.in_file[0], mmap=NUMPY_MMAP)
header = img.header.copy()
vollist = [nb.load(filename) for filename in self.inputs.in_file]
vollist = [nb.load(filename, mmap=NUMPY_MMAP) for filename in self.inputs.in_file]
data = np.concatenate([vol.get_data().reshape(
vol.get_shape()[:3] + (-1,)) for vol in vollist], axis=3)
data = np.nan_to_num(data)
Expand Down Expand Up @@ -626,8 +629,8 @@ def compute_dvars(in_file, in_mask, remove_zerovariance=False):
from nitime.algorithms import AR_est_YW
import warnings

func = nb.load(in_file).get_data().astype(np.float32)
mask = nb.load(in_mask).get_data().astype(np.uint8)
func = nb.load(in_file, mmap=NUMPY_MMAP).get_data().astype(np.float32)
mask = nb.load(in_mask, mmap=NUMPY_MMAP).get_data().astype(np.uint8)

if len(func.shape) != 4:
raise RuntimeError(
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ scipy>=0.11
networkx>=1.7
traits>=4.3
python-dateutil>=1.5
nibabel>=2.0.1
nibabel
future>=0.15.2
simplejson>=3.8.0
prov>=1.4.0
Expand Down