unix tutorial for freesurfer users allison stevens

77
Unix Tutorial for FreeSurfer Users Allison Stevens

Upload: winfred-carr

Post on 24-Dec-2015

229 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Unix Tutorial for FreeSurfer Users Allison Stevens

Unix Tutorial for

FreeSurfer Users

Allison Stevens

Page 2: Unix Tutorial for FreeSurfer Users Allison Stevens

What is Unix/Linux?

• An operating system (like Windows and OS X)

• Linux is the free, modifiable, and redistributable version of Unix

• Why use it?

Page 3: Unix Tutorial for FreeSurfer Users Allison Stevens

What is Unix/Linux?

• An operating system (like Windows and OS X)

• Linux is the free, modifiable, and redistributable version of Unix

• Why use it?– power to write many scripts with many

commands to work with lots of data– to use computer resources on the

network efficiently, such as clusters

Page 4: Unix Tutorial for FreeSurfer Users Allison Stevens

Getting Started

Communicate with operating system through a “shell” or terminal window.

For course-provided Linux computers:Double click Terminal icon on Desktop For Macs:Applications > Utilities > XQuartz (double click)Applications > Utilities > Terminal

Page 5: Unix Tutorial for FreeSurfer Users Allison Stevens

Warm Up

Type: and hit enter.

date

Page 6: Unix Tutorial for FreeSurfer Users Allison Stevens

Warm Up

Type: and hit enter. Should see

date Mon Apr 6 8:05:24 EDT 2009

Page 7: Unix Tutorial for FreeSurfer Users Allison Stevens

Warm Up

Type: and hit enter. Should see

Type: and hit enter.

date Mon Apr 6 8:05:24 EDT 2009

cal

Page 8: Unix Tutorial for FreeSurfer Users Allison Stevens

Warm Up

Type: and hit enter. Should see

Type: and hit enter. Should see

date Mon Apr 6 8:05:24 EDT 2009

cal April 2009Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 1112 13 14 15 16 17 1819 20 21 22 23 24 2526 27 28 29 30

Page 9: Unix Tutorial for FreeSurfer Users Allison Stevens

Directories

• Unix uses a hierarchical file system (think folders in Windows)

Page 10: Unix Tutorial for FreeSurfer Users Allison Stevens

Directories

• Unix uses a hierarchical file system (think folders in Windows)

Home is like “My Computer”

Page 11: Unix Tutorial for FreeSurfer Users Allison Stevens

Directories

• Unix uses a hierarchical file system(think folders in Windows)

Home is like “My Computer”

Like “My Documents”

Page 12: Unix Tutorial for FreeSurfer Users Allison Stevens

Directories

• Unix uses a hierarchical file system (think folders in Windows) Home is like

“My Computer”

Like “My Documents”

Like “My Photos”

Page 13: Unix Tutorial for FreeSurfer Users Allison Stevens

Directories

• Unix uses a hierarchical file system (think folders in Windows) Home is like

“My Computer”

Like “My Documents”

Like “My Photos”

picture.jpg

Page 14: Unix Tutorial for FreeSurfer Users Allison Stevens

Location

path:/MyComputer/MyDocuments/MyPhotos

Type: and hit enter. Should see

shows “present working directory” or current location as a path

pwd

/home/nmrclass

/Users/YourName

OR

Page 15: Unix Tutorial for FreeSurfer Users Allison Stevens

Opening a Directory

• Not double clicking • Type command to “open”

• Commands to open files will differ

Page 16: Unix Tutorial for FreeSurfer Users Allison Stevens

Navigating Directories

“change directory”: move into a folder

“list”: see contents of directory

ls

cd __

ls __

Page 17: Unix Tutorial for FreeSurfer Users Allison Stevens

Navigating Directories

“change directory”: move into a folder

“list”: see contents of directory

ls

cd __

ls __

Desktop matlab tmp TUTORIAL_DATA

Page 18: Unix Tutorial for FreeSurfer Users Allison Stevens

Anatomy of a Command

command -option1 –option2 file

command - -help

Page 19: Unix Tutorial for FreeSurfer Users Allison Stevens

Anatomy of a Command

command -option1 –option2 file

command - -help

ls --help

Try:

Page 20: Unix Tutorial for FreeSurfer Users Allison Stevens

Directory Contents

• List contents of directory you are in lists names of directories/filesls

ls -lrt

ls -l

ls -a

Page 21: Unix Tutorial for FreeSurfer Users Allison Stevens

Directory Contents

• List contents of directory you are in lists names of directories/files lists hidden files too

.cshrc

.bashrc

.alias

ls

ls -lrt

ls -l

ls -a

Page 22: Unix Tutorial for FreeSurfer Users Allison Stevens

Directory Contents

• List contents of directory you are in lists names of directories/files lists hidden files too lists file details

drwxrwx---

user groupothers

ls

ls -lrt

ls -l

ls -a

Page 23: Unix Tutorial for FreeSurfer Users Allison Stevens

Directory Contents

• List contents of directory you are in lists names of directories/files lists hidden files too lists file details lists recent files last

ls

ls -lrt

ls -l

ls -a

Page 24: Unix Tutorial for FreeSurfer Users Allison Stevens

Save Some Time

Filename Completion

hit Tab key should see hit

enter

History

hit key should see

ls Des

ls Desktop

ls Desktop

Page 25: Unix Tutorial for FreeSurfer Users Allison Stevens

Changing Directories

makes a new directory “practice”

changes to directory “practice”

mkdir practice

cd practice

ls -lrt

pwd

ls

pwd

/home/nmrclass

/home/nmrclass/practice

should see

should see

should see Nothing!

Page 26: Unix Tutorial for FreeSurfer Users Allison Stevens

Changing Directories

Page 27: Unix Tutorial for FreeSurfer Users Allison Stevens

Changing Directoriesmkdir stuff

ls

makes folder “stuff” inside practiceshould see “stuff”

Page 28: Unix Tutorial for FreeSurfer Users Allison Stevens

Using an Editor

If using a Mac:

Type: I could write a script.File > Save (Buffer)

File > Exit emacs

should see “mynotes.txt”

emacs mynotes.txt open -e mynotes.txt

ls

Format > Make plain textFile > Save

Page 29: Unix Tutorial for FreeSurfer Users Allison Stevens

Using an Editor

If using a Mac:

Type: I could write a script.File > Save (Buffer)

File > Exit emacs

should see “mynotes.txt”

gedit mynotes.txt

ls

Format > Make plain textFile > Save

open -e mynotes.txt

Page 30: Unix Tutorial for FreeSurfer Users Allison Stevens

Using an Editor

Page 31: Unix Tutorial for FreeSurfer Users Allison Stevens

Copying files

ls

cp --help

cp mynotes.txt stuff

cd stuff

more mynotes.txt

learn all the options or “arguments”

is the copy command

cp

Page 32: Unix Tutorial for FreeSurfer Users Allison Stevens

Copying files

ls

cp --help

cp mynotes.txt stuff

cd stuff

less mynotes.txt

learn all the options or “arguments”

is the copy command

cp

Page 33: Unix Tutorial for FreeSurfer Users Allison Stevens

Changing Directories

shows one directory up

ls ..

pwd /home/nmrclass/practice/stuff

ls ../.. goes up two!cd ..

should see

cd ../..

can also do (but don’t right now):on

Page 34: Unix Tutorial for FreeSurfer Users Allison Stevens

Copying / Moving files

cp mynotes.txt myothernotes.txt

Could also use do:

mv myothernotes.txt hernotes.txt

mv hernotes.txt ..

Page 35: Unix Tutorial for FreeSurfer Users Allison Stevens

Removing Files

rm mynotes.txt

ls

pwd should be in “stuff”

ls

Page 36: Unix Tutorial for FreeSurfer Users Allison Stevens

Things to know

• Case sensitive• Does not like spaces in file names

(e.g. filename.txt vs. file name.txt)

• Ctrl+c kills a process & brings back command prompt

• Type ‘q’ to quit the program ‘less’• Highlight & middle click to copy & paste• Use ‘&’ to open a program in the background

Cannot open a 2nd program if do not have a command prompt

Page 37: Unix Tutorial for FreeSurfer Users Allison Stevens

Review

• no double clicking• mkdir• ls• cd• pwd• emacs, gedit, vi, pico• cp• rm

Page 38: Unix Tutorial for FreeSurfer Users Allison Stevens

Using FreeSurfer

With FreeSurfer, certain variables must be set in order to use it correctly:

FREESURFER_HOME

SUBJECTS_DIR

tell Operating System where FreeSurfer is

tell FreeSurfer where data is

Page 39: Unix Tutorial for FreeSurfer Users Allison Stevens

Required Variables

• To use FreeSurfer you’ll have to do:

setenv FREESURFER_HOME /home/apps/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.csh

tell Operating System where FreeSurfer is

source this script to get your computer ready to use FreeSurfer (sources other scripts & sets other variables)

setenv SUBJECTS_DIR /path/to/data

Page 40: Unix Tutorial for FreeSurfer Users Allison Stevens

Required Variables

• To use FreeSurfer you’ll have to do:

export FREESURFER_HOME=/home/apps/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.csh

tell Operating System where FreeSurfer is

source this script to get your computer ready to use FreeSurfer (sources other scripts & sets other variables)

export SUBJECTS_DIR=/path/to/data

Page 41: Unix Tutorial for FreeSurfer Users Allison Stevens

Required Variables

To go to location of your data:

$ means take the value of the variable

cd $SUBJECTS_DIR

setenv SUBJECTS_DIR /path/to/data

Page 42: Unix Tutorial for FreeSurfer Users Allison Stevens

Required Variables

To go to location of your data:

$ means take the value of the variable

cd $SUBJECTS_DIRaka

cd /path/to/data

setenv SUBJECTS_DIR /path/to/data

Page 43: Unix Tutorial for FreeSurfer Users Allison Stevens

$

How ‘echo’ works:

To set a variable:

To check what a variable is set to:echo $TEST_VARIABLE

setenv TEST_VARIABLE yourfirstname

echo Allison is cool.

Page 44: Unix Tutorial for FreeSurfer Users Allison Stevens

Required Variables

With FreeSurfer, certain variables must be set in order to use it correctly:

FREESURFER_HOME

SUBJECTS_DIR

tell Operating System where FreeSurfer is

tell FreeSurfer where data is

echo $FREESURFER_HOME

echo $SUBJECTS_DIR

To check variables

Page 45: Unix Tutorial for FreeSurfer Users Allison Stevens

More Help

http://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/CommandLineNavigation

Links on Wiki under “Unix Tutorial”

Glossary of Unix commands

Page 46: Unix Tutorial for FreeSurfer Users Allison Stevens

The End

Good Luck!

Page 47: Unix Tutorial for FreeSurfer Users Allison Stevens

Intro to FreeSurfer Jargon

voxelsurfacevolumevertexsurface-basedreconcortical, subcorticalparcellation/segmentationregistration, morph, deform, transforms

(computing vs. resampling)

Page 48: Unix Tutorial for FreeSurfer Users Allison Stevens

What FreeSurfer Does…

FreeSurfer creates computerized models of the

brain from MRI data.

Input:T1-weighted (MPRAGE)

1mm3 resolution(.dcm)

Output:Segmented & parcellated conformed

volume(.mgz)

Page 49: Unix Tutorial for FreeSurfer Users Allison Stevens

Intro to FreeSurfer Jargon

voxel

Page 50: Unix Tutorial for FreeSurfer Users Allison Stevens

Intro to FreeSurfer Jargon

surface

Page 51: Unix Tutorial for FreeSurfer Users Allison Stevens

Intro to FreeSurfer Jargon

surface

Page 52: Unix Tutorial for FreeSurfer Users Allison Stevens

Intro to FreeSurfer Jargon

vertex

Page 53: Unix Tutorial for FreeSurfer Users Allison Stevens

Recon

“recon your data”…short for reconstruction

…cortical surface reconstruction…shows up in command

recon-all

Page 54: Unix Tutorial for FreeSurfer Users Allison Stevens

Recon

Page 55: Unix Tutorial for FreeSurfer Users Allison Stevens

Volumes

orig.mgz T1.mgz brainmask.mgz wm.mgz filled.mgz(Subcortical Mass)

Page 56: Unix Tutorial for FreeSurfer Users Allison Stevens

Cortical vs. Subcortical GM

coronal

sagittal

subcortical gm

cortical gm

Page 57: Unix Tutorial for FreeSurfer Users Allison Stevens

Cortical vs. Subcortical GM

coronal

sagittal

subcortical gm

Page 58: Unix Tutorial for FreeSurfer Users Allison Stevens

Parcellation vs. Segmentation

(subcortical) segmentation

(cortical) parcellation

Page 59: Unix Tutorial for FreeSurfer Users Allison Stevens

Intro to FreeSurfer Jargon

voxelsurfacevolumevertexsurface-basedreconcortical, subcorticalparcellation/segmentationregistration, morph, deform, transforms

(computing vs. resampling)

Page 60: Unix Tutorial for FreeSurfer Users Allison Stevens

FreeSurfer Questions

Search for terms and answers to all your questions in the Glossary,

FAQ, orFreeSurfer Mailing List Archives

Page 61: Unix Tutorial for FreeSurfer Users Allison Stevens

Registration

Goal:to find a common coordinate system for the input data sets

Examples: • comparing different MRI images of the

same individual (longitudinal scans, diffusion vs functional scans)

• comparing MRI images of different individuals

Page 62: Unix Tutorial for FreeSurfer Users Allison Stevens

12/13/2011Flirt 6 DOF

subject

Flirt 9 DOF

target

Inter-subject, uni-modal example

Flirt 12 DOF

Page 63: Unix Tutorial for FreeSurfer Users Allison Stevens

Linear registration: 6, 9, 12 DOF

Flirt 6 DOFFlirt 9 DOFFlirt 12 DOFsubjecttarget

Page 64: Unix Tutorial for FreeSurfer Users Allison Stevens

Linear registration: 6, 9, 12 DOF

targetsubjectFlirt 6dofFlirt 9dofFlirt 12 DOF

Page 65: Unix Tutorial for FreeSurfer Users Allison Stevens

Linear registration: 6, 9, 12 DOF

targetsubjectFlirt 6 DOFFlirt 9 DOFFlirt 12 DOF

Page 66: Unix Tutorial for FreeSurfer Users Allison Stevens

Intra-subject, multi-modal example

before spatial alignment

after spatial alignment

Page 67: Unix Tutorial for FreeSurfer Users Allison Stevens

before spatial alignment

after spatial alignment

Page 68: Unix Tutorial for FreeSurfer Users Allison Stevens

before spatial alignment

after spatial alignment

Page 69: Unix Tutorial for FreeSurfer Users Allison Stevens

Inter-subject non-linear example

target CVS reg

Page 70: Unix Tutorial for FreeSurfer Users Allison Stevens

Some registration vocabulary

• Input datasets:– Fixed / template / target– Moving / subject

• Transformation models– rigid– affine– nonlinear

• Objective / similarity functions

• Applying the results– deform, morph, resample, transform

• Interpolation types– (tri)linear– nearest neighbor

Page 71: Unix Tutorial for FreeSurfer Users Allison Stevens
Page 72: Unix Tutorial for FreeSurfer Users Allison Stevens

Writing Scripts

• Putting multiple commands together. • Automatically running a sequence of

commands• Example: create a file named

my_first_script.csh with the contents: #!/bin/csh

setenv name FreeSurferecho I love $name !

% chmod u+x my_first_script.csh% ./my_first_script.csh

Page 73: Unix Tutorial for FreeSurfer Users Allison Stevens

Loops in Scripts

• You can create loops, if statements, …• Example: create a file named

my_first_loop.csh with the contents:

#!/bin/csh

foreach name (‘Bill Murray’ ‘Wes Anderson’)echo I love $name !

end

Page 74: Unix Tutorial for FreeSurfer Users Allison Stevens

Inputs to Scripts

• You can create take inputs from the command line

• Example: create a file named my_first_IO.csh with the contents:

#!/bin/csh

echo The $0 command is called with $#argv parametersecho parameter 1 is $1echo parameter 2 is $2

Page 75: Unix Tutorial for FreeSurfer Users Allison Stevens

Required Variables

• To use FreeSurfer you’ll have to do:

setenv FREESURFER_HOME /home/apps/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.csh

tell Operating System where FreeSurfer is

source this script to get your computer ready to use FreeSurfer (sources other scripts & sets other variables)

setenv SUBJECTS_DIR /path/to/data

Page 76: Unix Tutorial for FreeSurfer Users Allison Stevens

Registration

-align subjects-common space-reference points b/w subjects will be

sametransforms

template

deform

morph

warp

compute

resample

Page 77: Unix Tutorial for FreeSurfer Users Allison Stevens

More Help

alias e emacsman alias

ls file* lists file1, file2, file3ls file[12] lists file1 and file2 but not file3

command >>& file.txt save output to screen and errors in text file