Workflow

The big picture

We have data, we have some code we want to run on the data.

What is the simplest possible way we could do this?

What could go wrong?

How could we help ourselves to reduce mistakes?

Mistakes

In my own experience, error is ubiquitous in scientific computing, and one needs to work very diligently and energetically to eliminate it. One needs a very clear idea of what has been done in order to know where to look for likely sources of error. I often cannot really be sure what a student or colleague has done from his/her own presentation, and in fact often his/her description does not agree with my own understanding of what has been done, once I look carefully at the scripts. Actually, I find that researchers quite generally forget what they have done and misrepresent their computations.

Computing results are now being presented in a very loose, “breezy” way—in journal articles, in conferences, and in books. All too often one simply takes computations at face value. This is spectacularly against the evidence of my own experience. I would much rather that at talks and in referee reports, the possibility of such error were seriously examined.

-- David L. Donoho. An invitation to reproducible computational research. Biostatistics Volume 11, Issue 3 Pp. 385-388

The components

  • The data tree - data
  • Code that is specific to this data tree - scripts
  • Notebooks explaining analysis - notebooks
  • Code that is more generally useful - library code

Version control

Is absolutely essential.

No - seriously.

See the notebook "roll your own CMS"

Install git

Get the course notebooks and files

In [1]:
%%bash
cd
mkdir practical_fmri
cd practical_fmri
git clone git://github.com/practical-neuroimaging/pna-notebooks.git
ls ~/practical_fmri/pna-notebooks
Cloning into 'pna-notebooks'...
Makefile
README.md
Using nipy transforms.ipynb
awesome.py
bold_QC_again.ipynb
check_openfmri.py
checkhash.py
finding_outliers_reprise.ipynb
images
interpolation-padding.ipynb
introduction_to_python.ipynb
loading_images.ipynb
more_awesome.py
openfmri.py
outlier_detect.ipynb
outliers.py
python_libraries.ipynb
roll_your_own_cms.ipynb
slice_timing.ipynb
slice_timing_full.ipynb
spline_interpolation.ipynb
test_awesome_more.py
test_checkhash.py
test_openfmri.py
test_outliers.py
visualization.ipynb
what_are_my_times.ipynb
what_is_an_image.ipynb
workflow.ipynb

Getting started - data

Assuming your downloaded data file is in ~/Downloads:

In [1]:
%%bash
cd
mkdir data
cd data
unzip ~/Downloads/ds105_trimmed.zip
ls ds105
Archive:  /Users/mb312/Downloads/ds105_trimmed.zip
 extracting: README.rst              
   creating: ds105/
 extracting: ds105/license.txt       
   creating: ds105/models/
   creating: ds105/models/model001/
 extracting: ds105/models/model001/condition_key.txt  
 extracting: ds105/models/model001/task_contrasts.txt  
 extracting: ds105/README            
 extracting: ds105/references.txt    
 extracting: ds105/release_history.txt  
 extracting: ds105/scan_key.txt      
 extracting: ds105/study_key.txt     
   creating: ds105/sub001/
   creating: ds105/sub001/anatomy/
 extracting: ds105/sub001/anatomy/highres001.nii.gz  
 extracting: ds105/sub001/anatomy/highres001_brain.nii.gz  
 extracting: ds105/sub001/anatomy/highres001_brain_mask.nii.gz  
   creating: ds105/sub001/behav/
   creating: ds105/sub001/BOLD/
   creating: ds105/sub001/BOLD/task001_run001/
 extracting: ds105/sub001/BOLD/task001_run001/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run002/
 extracting: ds105/sub001/BOLD/task001_run002/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run003/
 extracting: ds105/sub001/BOLD/task001_run003/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run004/
 extracting: ds105/sub001/BOLD/task001_run004/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run005/
 extracting: ds105/sub001/BOLD/task001_run005/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run006/
 extracting: ds105/sub001/BOLD/task001_run006/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run007/
 extracting: ds105/sub001/BOLD/task001_run007/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run008/
 extracting: ds105/sub001/BOLD/task001_run008/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run009/
 extracting: ds105/sub001/BOLD/task001_run009/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run010/
 extracting: ds105/sub001/BOLD/task001_run010/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run011/
 extracting: ds105/sub001/BOLD/task001_run011/bold.nii.gz  
   creating: ds105/sub001/BOLD/task001_run012/
 extracting: ds105/sub001/BOLD/task001_run012/bold.nii.gz  
   creating: ds105/sub001/model/
   creating: ds105/sub001/model/model001/
   creating: ds105/sub001/model/model001/onsets/
   creating: ds105/sub001/model/model001/onsets/task001_run001/
 extracting: ds105/sub001/model/model001/onsets/task001_run001/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run001/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run001/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run001/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run001/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run001/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run001/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run001/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run002/
 extracting: ds105/sub001/model/model001/onsets/task001_run002/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run002/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run002/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run002/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run002/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run002/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run002/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run002/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run003/
 extracting: ds105/sub001/model/model001/onsets/task001_run003/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run003/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run003/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run003/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run003/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run003/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run003/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run003/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run004/
 extracting: ds105/sub001/model/model001/onsets/task001_run004/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run004/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run004/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run004/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run004/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run004/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run004/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run004/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run005/
 extracting: ds105/sub001/model/model001/onsets/task001_run005/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run005/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run005/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run005/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run005/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run005/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run005/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run005/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run006/
 extracting: ds105/sub001/model/model001/onsets/task001_run006/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run006/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run006/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run006/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run006/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run006/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run006/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run006/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run007/
 extracting: ds105/sub001/model/model001/onsets/task001_run007/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run007/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run007/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run007/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run007/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run007/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run007/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run007/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run008/
 extracting: ds105/sub001/model/model001/onsets/task001_run008/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run008/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run008/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run008/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run008/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run008/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run008/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run008/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run009/
 extracting: ds105/sub001/model/model001/onsets/task001_run009/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run009/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run009/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run009/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run009/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run009/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run009/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run009/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run010/
 extracting: ds105/sub001/model/model001/onsets/task001_run010/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run010/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run010/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run010/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run010/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run010/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run010/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run010/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run011/
 extracting: ds105/sub001/model/model001/onsets/task001_run011/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run011/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run011/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run011/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run011/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run011/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run011/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run011/cond008.txt  
   creating: ds105/sub001/model/model001/onsets/task001_run012/
 extracting: ds105/sub001/model/model001/onsets/task001_run012/cond001.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run012/cond002.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run012/cond003.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run012/cond004.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run012/cond005.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run012/cond006.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run012/cond007.txt  
 extracting: ds105/sub001/model/model001/onsets/task001_run012/cond008.txt  
   creating: ds105/sub002/
   creating: ds105/sub002/anatomy/
 extracting: ds105/sub002/anatomy/highres001.nii.gz  
 extracting: ds105/sub002/anatomy/highres001_brain.nii.gz  
 extracting: ds105/sub002/anatomy/highres001_brain_mask.nii.gz  
   creating: ds105/sub002/behav/
   creating: ds105/sub002/BOLD/
   creating: ds105/sub002/BOLD/task001_run001/
 extracting: ds105/sub002/BOLD/task001_run001/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run002/
 extracting: ds105/sub002/BOLD/task001_run002/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run003/
 extracting: ds105/sub002/BOLD/task001_run003/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run004/
 extracting: ds105/sub002/BOLD/task001_run004/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run005/
 extracting: ds105/sub002/BOLD/task001_run005/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run006/
 extracting: ds105/sub002/BOLD/task001_run006/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run007/
 extracting: ds105/sub002/BOLD/task001_run007/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run008/
 extracting: ds105/sub002/BOLD/task001_run008/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run009/
 extracting: ds105/sub002/BOLD/task001_run009/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run010/
 extracting: ds105/sub002/BOLD/task001_run010/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run011/
 extracting: ds105/sub002/BOLD/task001_run011/bold.nii.gz  
   creating: ds105/sub002/BOLD/task001_run012/
 extracting: ds105/sub002/BOLD/task001_run012/bold.nii.gz  
   creating: ds105/sub002/model/
   creating: ds105/sub002/model/model001/
   creating: ds105/sub002/model/model001/onsets/
   creating: ds105/sub002/model/model001/onsets/task001_run001/
 extracting: ds105/sub002/model/model001/onsets/task001_run001/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run001/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run001/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run001/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run001/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run001/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run001/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run001/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run002/
 extracting: ds105/sub002/model/model001/onsets/task001_run002/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run002/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run002/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run002/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run002/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run002/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run002/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run002/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run003/
 extracting: ds105/sub002/model/model001/onsets/task001_run003/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run003/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run003/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run003/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run003/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run003/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run003/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run003/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run004/
 extracting: ds105/sub002/model/model001/onsets/task001_run004/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run004/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run004/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run004/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run004/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run004/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run004/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run004/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run005/
 extracting: ds105/sub002/model/model001/onsets/task001_run005/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run005/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run005/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run005/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run005/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run005/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run005/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run005/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run006/
 extracting: ds105/sub002/model/model001/onsets/task001_run006/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run006/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run006/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run006/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run006/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run006/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run006/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run006/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run007/
 extracting: ds105/sub002/model/model001/onsets/task001_run007/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run007/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run007/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run007/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run007/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run007/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run007/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run007/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run008/
 extracting: ds105/sub002/model/model001/onsets/task001_run008/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run008/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run008/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run008/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run008/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run008/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run008/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run008/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run009/
 extracting: ds105/sub002/model/model001/onsets/task001_run009/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run009/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run009/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run009/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run009/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run009/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run009/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run009/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run010/
 extracting: ds105/sub002/model/model001/onsets/task001_run010/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run010/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run010/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run010/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run010/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run010/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run010/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run010/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run011/
 extracting: ds105/sub002/model/model001/onsets/task001_run011/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run011/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run011/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run011/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run011/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run011/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run011/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run011/cond008.txt  
   creating: ds105/sub002/model/model001/onsets/task001_run012/
 extracting: ds105/sub002/model/model001/onsets/task001_run012/cond001.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run012/cond002.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run012/cond003.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run012/cond004.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run012/cond005.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run012/cond006.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run012/cond007.txt  
 extracting: ds105/sub002/model/model001/onsets/task001_run012/cond008.txt  
   creating: ds105/sub003/
   creating: ds105/sub003/anatomy/
 extracting: ds105/sub003/anatomy/highres001.nii.gz  
 extracting: ds105/sub003/anatomy/highres001_brain.nii.gz  
 extracting: ds105/sub003/anatomy/highres001_brain_mask.nii.gz  
   creating: ds105/sub003/behav/
   creating: ds105/sub003/BOLD/
   creating: ds105/sub003/BOLD/task001_run001/
 extracting: ds105/sub003/BOLD/task001_run001/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run002/
 extracting: ds105/sub003/BOLD/task001_run002/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run003/
 extracting: ds105/sub003/BOLD/task001_run003/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run004/
 extracting: ds105/sub003/BOLD/task001_run004/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run005/
 extracting: ds105/sub003/BOLD/task001_run005/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run006/
 extracting: ds105/sub003/BOLD/task001_run006/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run007/
 extracting: ds105/sub003/BOLD/task001_run007/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run008/
 extracting: ds105/sub003/BOLD/task001_run008/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run009/
 extracting: ds105/sub003/BOLD/task001_run009/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run010/
 extracting: ds105/sub003/BOLD/task001_run010/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run011/
 extracting: ds105/sub003/BOLD/task001_run011/bold.nii.gz  
   creating: ds105/sub003/BOLD/task001_run012/
 extracting: ds105/sub003/BOLD/task001_run012/bold.nii.gz  
   creating: ds105/sub003/model/
   creating: ds105/sub003/model/model001/
   creating: ds105/sub003/model/model001/onsets/
   creating: ds105/sub003/model/model001/onsets/task001_run001/
 extracting: ds105/sub003/model/model001/onsets/task001_run001/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run001/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run001/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run001/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run001/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run001/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run001/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run001/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run002/
 extracting: ds105/sub003/model/model001/onsets/task001_run002/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run002/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run002/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run002/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run002/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run002/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run002/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run002/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run003/
 extracting: ds105/sub003/model/model001/onsets/task001_run003/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run003/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run003/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run003/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run003/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run003/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run003/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run003/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run004/
 extracting: ds105/sub003/model/model001/onsets/task001_run004/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run004/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run004/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run004/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run004/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run004/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run004/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run004/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run005/
 extracting: ds105/sub003/model/model001/onsets/task001_run005/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run005/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run005/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run005/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run005/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run005/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run005/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run005/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run006/
 extracting: ds105/sub003/model/model001/onsets/task001_run006/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run006/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run006/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run006/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run006/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run006/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run006/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run006/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run007/
 extracting: ds105/sub003/model/model001/onsets/task001_run007/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run007/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run007/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run007/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run007/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run007/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run007/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run007/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run008/
 extracting: ds105/sub003/model/model001/onsets/task001_run008/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run008/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run008/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run008/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run008/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run008/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run008/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run008/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run009/
 extracting: ds105/sub003/model/model001/onsets/task001_run009/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run009/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run009/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run009/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run009/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run009/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run009/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run009/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run010/
 extracting: ds105/sub003/model/model001/onsets/task001_run010/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run010/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run010/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run010/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run010/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run010/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run010/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run010/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run011/
 extracting: ds105/sub003/model/model001/onsets/task001_run011/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run011/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run011/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run011/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run011/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run011/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run011/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run011/cond008.txt  
   creating: ds105/sub003/model/model001/onsets/task001_run012/
 extracting: ds105/sub003/model/model001/onsets/task001_run012/cond001.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run012/cond002.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run012/cond003.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run012/cond004.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run012/cond005.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run012/cond006.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run012/cond007.txt  
 extracting: ds105/sub003/model/model001/onsets/task001_run012/cond008.txt  
   creating: ds105/sub004/
   creating: ds105/sub004/anatomy/
 extracting: ds105/sub004/anatomy/highres001.nii.gz  
 extracting: ds105/sub004/anatomy/highres001_brain.nii.gz  
 extracting: ds105/sub004/anatomy/highres001_brain_mask.nii.gz  
   creating: ds105/sub004/behav/
   creating: ds105/sub004/BOLD/
   creating: ds105/sub004/BOLD/task001_run001/
 extracting: ds105/sub004/BOLD/task001_run001/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run002/
 extracting: ds105/sub004/BOLD/task001_run002/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run003/
 extracting: ds105/sub004/BOLD/task001_run003/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run004/
 extracting: ds105/sub004/BOLD/task001_run004/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run005/
 extracting: ds105/sub004/BOLD/task001_run005/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run006/
 extracting: ds105/sub004/BOLD/task001_run006/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run007/
 extracting: ds105/sub004/BOLD/task001_run007/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run008/
 extracting: ds105/sub004/BOLD/task001_run008/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run009/
 extracting: ds105/sub004/BOLD/task001_run009/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run010/
 extracting: ds105/sub004/BOLD/task001_run010/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run011/
 extracting: ds105/sub004/BOLD/task001_run011/bold.nii.gz  
   creating: ds105/sub004/BOLD/task001_run012/
 extracting: ds105/sub004/BOLD/task001_run012/bold.nii.gz  
   creating: ds105/sub004/model/
   creating: ds105/sub004/model/model001/
   creating: ds105/sub004/model/model001/onsets/
   creating: ds105/sub004/model/model001/onsets/task001_run001/
 extracting: ds105/sub004/model/model001/onsets/task001_run001/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run001/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run001/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run001/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run001/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run001/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run001/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run001/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run002/
 extracting: ds105/sub004/model/model001/onsets/task001_run002/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run002/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run002/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run002/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run002/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run002/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run002/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run002/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run003/
 extracting: ds105/sub004/model/model001/onsets/task001_run003/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run003/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run003/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run003/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run003/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run003/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run003/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run003/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run004/
 extracting: ds105/sub004/model/model001/onsets/task001_run004/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run004/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run004/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run004/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run004/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run004/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run004/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run004/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run005/
 extracting: ds105/sub004/model/model001/onsets/task001_run005/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run005/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run005/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run005/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run005/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run005/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run005/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run005/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run006/
 extracting: ds105/sub004/model/model001/onsets/task001_run006/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run006/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run006/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run006/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run006/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run006/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run006/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run006/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run007/
 extracting: ds105/sub004/model/model001/onsets/task001_run007/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run007/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run007/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run007/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run007/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run007/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run007/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run007/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run008/
 extracting: ds105/sub004/model/model001/onsets/task001_run008/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run008/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run008/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run008/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run008/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run008/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run008/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run008/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run009/
 extracting: ds105/sub004/model/model001/onsets/task001_run009/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run009/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run009/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run009/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run009/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run009/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run009/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run009/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run010/
 extracting: ds105/sub004/model/model001/onsets/task001_run010/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run010/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run010/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run010/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run010/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run010/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run010/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run010/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run011/
 extracting: ds105/sub004/model/model001/onsets/task001_run011/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run011/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run011/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run011/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run011/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run011/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run011/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run011/cond008.txt  
   creating: ds105/sub004/model/model001/onsets/task001_run012/
 extracting: ds105/sub004/model/model001/onsets/task001_run012/cond001.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run012/cond002.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run012/cond003.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run012/cond004.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run012/cond005.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run012/cond006.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run012/cond007.txt  
 extracting: ds105/sub004/model/model001/onsets/task001_run012/cond008.txt  
   creating: ds105/sub005/
   creating: ds105/sub005/anatomy/
 extracting: ds105/sub005/anatomy/highres001.nii.gz  
 extracting: ds105/sub005/anatomy/highres001_brain.nii.gz  
 extracting: ds105/sub005/anatomy/highres001_brain_mask.nii.gz  
   creating: ds105/sub005/behav/
   creating: ds105/sub005/BOLD/
   creating: ds105/sub005/BOLD/task001_run001/
 extracting: ds105/sub005/BOLD/task001_run001/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run002/
 extracting: ds105/sub005/BOLD/task001_run002/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run003/
 extracting: ds105/sub005/BOLD/task001_run003/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run004/
 extracting: ds105/sub005/BOLD/task001_run004/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run005/
 extracting: ds105/sub005/BOLD/task001_run005/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run006/
 extracting: ds105/sub005/BOLD/task001_run006/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run007/
 extracting: ds105/sub005/BOLD/task001_run007/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run008/
 extracting: ds105/sub005/BOLD/task001_run008/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run009/
 extracting: ds105/sub005/BOLD/task001_run009/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run010/
 extracting: ds105/sub005/BOLD/task001_run010/bold.nii.gz  
   creating: ds105/sub005/BOLD/task001_run011/
 extracting: ds105/sub005/BOLD/task001_run011/bold.nii.gz  
   creating: ds105/sub005/model/
   creating: ds105/sub005/model/model001/
   creating: ds105/sub005/model/model001/onsets/
   creating: ds105/sub005/model/model001/onsets/task001_run001/
 extracting: ds105/sub005/model/model001/onsets/task001_run001/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run001/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run001/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run001/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run001/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run001/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run001/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run001/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run002/
 extracting: ds105/sub005/model/model001/onsets/task001_run002/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run002/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run002/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run002/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run002/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run002/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run002/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run002/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run003/
 extracting: ds105/sub005/model/model001/onsets/task001_run003/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run003/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run003/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run003/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run003/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run003/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run003/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run003/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run004/
 extracting: ds105/sub005/model/model001/onsets/task001_run004/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run004/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run004/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run004/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run004/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run004/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run004/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run004/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run005/
 extracting: ds105/sub005/model/model001/onsets/task001_run005/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run005/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run005/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run005/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run005/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run005/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run005/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run005/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run006/
 extracting: ds105/sub005/model/model001/onsets/task001_run006/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run006/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run006/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run006/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run006/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run006/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run006/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run006/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run007/
 extracting: ds105/sub005/model/model001/onsets/task001_run007/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run007/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run007/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run007/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run007/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run007/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run007/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run007/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run008/
 extracting: ds105/sub005/model/model001/onsets/task001_run008/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run008/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run008/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run008/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run008/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run008/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run008/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run008/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run009/
 extracting: ds105/sub005/model/model001/onsets/task001_run009/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run009/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run009/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run009/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run009/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run009/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run009/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run009/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run010/
 extracting: ds105/sub005/model/model001/onsets/task001_run010/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run010/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run010/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run010/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run010/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run010/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run010/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run010/cond008.txt  
   creating: ds105/sub005/model/model001/onsets/task001_run011/
 extracting: ds105/sub005/model/model001/onsets/task001_run011/cond001.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run011/cond002.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run011/cond003.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run011/cond004.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run011/cond005.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run011/cond006.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run011/cond007.txt  
 extracting: ds105/sub005/model/model001/onsets/task001_run011/cond008.txt  
   creating: ds105/sub006/
   creating: ds105/sub006/anatomy/
 extracting: ds105/sub006/anatomy/highres001.nii.gz  
 extracting: ds105/sub006/anatomy/highres001_brain.nii.gz  
 extracting: ds105/sub006/anatomy/highres001_brain_mask.nii.gz  
   creating: ds105/sub006/behav/
   creating: ds105/sub006/BOLD/
   creating: ds105/sub006/BOLD/task001_run001/
 extracting: ds105/sub006/BOLD/task001_run001/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run002/
 extracting: ds105/sub006/BOLD/task001_run002/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run003/
 extracting: ds105/sub006/BOLD/task001_run003/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run004/
 extracting: ds105/sub006/BOLD/task001_run004/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run005/
 extracting: ds105/sub006/BOLD/task001_run005/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run006/
 extracting: ds105/sub006/BOLD/task001_run006/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run007/
 extracting: ds105/sub006/BOLD/task001_run007/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run008/
 extracting: ds105/sub006/BOLD/task001_run008/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run009/
 extracting: ds105/sub006/BOLD/task001_run009/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run010/
 extracting: ds105/sub006/BOLD/task001_run010/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run011/
 extracting: ds105/sub006/BOLD/task001_run011/bold.nii.gz  
   creating: ds105/sub006/BOLD/task001_run012/
 extracting: ds105/sub006/BOLD/task001_run012/bold.nii.gz  
   creating: ds105/sub006/model/
   creating: ds105/sub006/model/model001/
   creating: ds105/sub006/model/model001/onsets/
   creating: ds105/sub006/model/model001/onsets/task001_run001/
 extracting: ds105/sub006/model/model001/onsets/task001_run001/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run001/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run001/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run001/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run001/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run001/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run001/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run001/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run002/
 extracting: ds105/sub006/model/model001/onsets/task001_run002/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run002/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run002/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run002/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run002/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run002/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run002/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run002/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run003/
 extracting: ds105/sub006/model/model001/onsets/task001_run003/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run003/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run003/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run003/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run003/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run003/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run003/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run003/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run004/
 extracting: ds105/sub006/model/model001/onsets/task001_run004/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run004/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run004/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run004/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run004/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run004/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run004/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run004/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run005/
 extracting: ds105/sub006/model/model001/onsets/task001_run005/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run005/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run005/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run005/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run005/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run005/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run005/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run005/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run006/
 extracting: ds105/sub006/model/model001/onsets/task001_run006/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run006/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run006/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run006/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run006/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run006/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run006/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run006/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run007/
 extracting: ds105/sub006/model/model001/onsets/task001_run007/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run007/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run007/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run007/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run007/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run007/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run007/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run007/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run008/
 extracting: ds105/sub006/model/model001/onsets/task001_run008/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run008/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run008/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run008/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run008/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run008/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run008/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run008/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run009/
 extracting: ds105/sub006/model/model001/onsets/task001_run009/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run009/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run009/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run009/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run009/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run009/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run009/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run009/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run010/
 extracting: ds105/sub006/model/model001/onsets/task001_run010/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run010/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run010/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run010/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run010/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run010/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run010/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run010/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run011/
 extracting: ds105/sub006/model/model001/onsets/task001_run011/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run011/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run011/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run011/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run011/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run011/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run011/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run011/cond008.txt  
   creating: ds105/sub006/model/model001/onsets/task001_run012/
 extracting: ds105/sub006/model/model001/onsets/task001_run012/cond001.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run012/cond002.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run012/cond003.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run012/cond004.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run012/cond005.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run012/cond006.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run012/cond007.txt  
 extracting: ds105/sub006/model/model001/onsets/task001_run012/cond008.txt  
 extracting: ds105/task_key.txt      
README
license.txt
models
references.txt
release_history.txt
scan_key.txt
study_key.txt
sub001
sub002
sub003
sub004
sub005
sub006
task_key.txt
mkdir: data: File exists

Getting started - library code

Our library code we want to keep in a separate place from the code specific to our project; maybe someone wants it? Maybe we want to use it ourselves in another analysis not tied to this one.

Here I'm going to use a very basic code organization, just a single directory for the code and the tests. More on this later, but for now:

In [7]:
%%bash
cd
mkdir code
cd code
mkdir datacheck
In [8]:
!cp ~/practical_fmri/pna-notebooks/checkhash.py ~/code/datacheck
!cp ~/practical_fmri/pna-notebooks/test_checkhash.py ~/code/datacheck

We need to tell Python where to find these scripts:

In [9]:
%%bash
# On OSX, Linux
export PYTHONPATH=~/code/datacheck:$PYTHONPATH

Here's what the same thing looks like in Windows Powershell. This sets PYTHONPATH for all future sessions:

$my_py_path = [Environment]::GetEnvironmentVariable("PYTHONPATH","User")
$my_py_path += ";" + $env:USERPROFILE + "\code\datacheck"
[Environment]::SetEnvironmentVariable("PYTHONPATH", $my_py_path, "User")

You'll need to quit Powershell and restart to set the setting in your shell.

Check the tests work

In [10]:
!nosetests ~/code/datacheck
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
test_checkhash.test_check_store_hash ... ok

----------------------------------------------------------------------
Ran 1 test in 0.781s

OK

We want these under version control!

In [11]:
%%bash
cd ~/code/datacheck
git init
git add *.py
git commit -m "Initial import of library code"
Initialized empty Git repository in /Users/mb312/code/datacheck/.git/
[master (root-commit) b0dcf9f] Initial import of library code
 2 files changed, 97 insertions(+)
 create mode 100644 checkhash.py
 create mode 100644 test_checkhash.py

Getting started - scripts, notebooks

In [12]:
%%bash
cd
mkdir projects
cd projects
mkdir haxby2001
cd haxby2001
mkdir scripts
mkdir notebooks
In [13]:
!ls ~/projects/haxby2001
notebooks scripts

Copy some analysis-specific files into the scripts directory

In [14]:
%%bash
cp ~/practical_fmri/pna-notebooks/openfmri.py ~/projects/haxby2001/scripts
cp ~/practical_fmri/pna-notebooks/test_openfmri.py ~/projects/haxby2001/scripts
cp ~/practical_fmri/pna-notebooks/check_openfmri.py ~/projects/haxby2001/scripts

We want these under version control!

In [15]:
%%bash
cd ~/projects/haxby2001
git init
git add .
git commit -m "Initial import of scripts"
Initialized empty Git repository in /Users/mb312/projects/haxby2001/.git/
[master (root-commit) 7764dbe] Initial import of scripts
 3 files changed, 147 insertions(+)
 create mode 100755 scripts/check_openfmri.py
 create mode 100644 scripts/openfmri.py
 create mode 100644 scripts/test_openfmri.py

No - never use git commit -m - it's bad. I did it because this I wanted this to run as a script, rather than a command line; thats really the only use for this.

In [16]:
%%bash
cd ~/projects/haxby2001
git log
commit 7764dbe22acc138b39d2a5345d8cd1ec8901126e
Author: Matthew Brett <matthew.brett@gmail.com>
Date:   Fri May 3 09:50:19 2013 -0700

    Initial import of scripts

Check the tests are working:

In [17]:
!nosetests ~/projects/haxby2001/scripts
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
nose.selector: INFO: /Users/mb312/projects/haxby2001/scripts/check_openfmri.py is executable; skipped
test_openfmri.test_big_picture ... ok

----------------------------------------------------------------------
Ran 1 test in 1.951s

OK

Running a script over the data

In [18]:
!python ~/projects/haxby2001/scripts/check_openfmri.py /home/mb312/data/ds105
Traceback (most recent call last):
  File "/Users/mb312/projects/haxby2001/scripts/check_openfmri.py", line 3, in <module>
    from checkhash import check_store_hash
ImportError: No module named checkhash

What did I do wrong here?