Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki: .

57
Unix Tutorial for FreeSurfer Users

Transcript of Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki: .

Page 1: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Unix Tutorial for

FreeSurfer Users

Page 2: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Helpful To Know

• FreeSurfer Tutorial Wiki: https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial

• Questions?

• Answers: https://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/QuestionAnswers

Page 3: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 4: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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?– freedom to modify and customize– power to write many scripts with

multiple commands to manage data– to use computer resources on the

network efficiently, such as clusters

Page 5: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 6: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Warm Up

Type: and hit enter.

date

Page 7: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Warm Up

Type: and hit enter. Should see

date Mon Apr 6 8:05:24 EDT 2009

Page 8: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Warm Up

Type: and hit enter. Should see

Type: and hit enter.

date Mon Apr 6 8:05:24 EDT 2009

cal

Page 9: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 10: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Directories

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

Page 11: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Directories

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

Home is like “My Computer”

Page 12: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Directories

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

Home is like “My Computer”

Like “My Documents”

Page 13: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Directories

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

“My Computer”

Like “My Documents”

Like “My Photos”

Page 14: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 15: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 16: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Opening a Directory

• Not double clicking • Type command to “open”

• Commands to open files will differ

Page 17: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Navigating Directories

“change directory”: move into a folder

“list”: see contents of directory

ls

cd __

ls __

Page 18: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Navigating Directories

“change directory”: move into a folder

“list”: see contents of directory

ls

cd __

ls __

Desktop matlab tmp TUTORIAL_DATA

Page 19: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Anatomy of a Command

command -option1 –option2 file

command - -help

man __ For Mac:

Page 20: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Anatomy of a Command

command -option1 –option2 file

command - -help

ls --help

Try:

or man ls

Page 21: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Directory Contents

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

ls -lrt

ls -l

ls -a

Page 22: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 23: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 24: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 25: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Save Some Time

Filename Completion

hit Tab key should see hit

enter

History

hit key should see

ls Des

ls Desktop

ls Desktop

Page 26: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 27: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Changing Directories

Page 28: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Changing Directoriesmkdir stuff

ls

makes folder “stuff” inside practiceshould see “stuff”

Page 29: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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

ls

Format > Make plain textFile > Save

Page 30: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Using an Editor

If using a Mac:

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

File > Exit gedit

should see “mynotes.txt”

Other Editors: pico

gedit mynotes.txt

ls

Format > Make plain textFile > Save

open -e

Page 31: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Using an Editor

Ctrl+C Returns prompt

& Runs program in background

gedit error.log &

Page 32: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 33: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 34: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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)

Page 35: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Copying / Moving Files

cp mynotes.txt myothernotes.txt

Could also use/do:

mv myothernotes.txt hernotes.txt

mv hernotes.txt ..

Page 36: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Removing Files

rm mynotes.txt

ls

pwd should be in “stuff”

ls

Page 37: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 38: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

What is a Variable?

• Character string that is assigned a value

• Way of passing information from the shell to programs

• Assign a value to a variable• Programs look “in the environment”

for variables • Easy to change values/manipulate

Page 39: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

What is a Variable?

How ‘echo’ works:

To set a variable:

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

export TEST_VARIABLE=yourfirstname

echo Freesurfer Rocks!

Page 40: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 41: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Required Variables

• To use FreeSurfer you’ll have to do:

export FREESURFER_HOME=/home/apps/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.sh

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 42: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Required Variables

• To use FreeSurfer you’ll have to do:

export FREESURFER_HOME=/home/apps/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.shaka

source /home/apps/freesurfer/SetUpFreeSurfer.sh

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 43: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 44: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Required Variables

• To use FreeSurfer you’ll have to do:

setenv FREESURFER_HOME /home/apps/freesurfer

source $FREESURFER_HOME/SetUpFreeSurfer.cshaka

source /home/apps/freesurfer/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 45: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 46: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Required Variables

To go to location of your data:

$ means take the value of the variable

cd $SUBJECTS_DIR

export SUBJECTS_DIR=/path/to/data

Page 47: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Required Variables

To go to location of your data:

$ means take the value of the variable

cd $SUBJECTS_DIRaka

cd /path/to/data

export SUBJECTS_DIR=/path/to/data

Page 48: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Review

• 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 49: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Review

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

Page 50: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

More Help

• UNIX Tutorial For Beginners: http://www.ee.surrey.ac.uk/Teaching/Unix/

• Linux in a Nutshell: http://docstore.mik.ua/orelly/linux/lnut/ch01_01.htm

• UNIX Cheat Sheet: http://tux.cs.unlv.edu/refs/linux_commands.html

• Command Line Tutorial: http://surfer.nmr.mgh.harvard.edu/fswiki/FsTutorial/CommandLineNavigation

Page 51: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

The End

Good Luck!

Page 52: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 53: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 54: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 55: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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 56: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

Registration

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

sametransforms

template

deform

morph

warp

compute

resample

Page 57: Unix Tutorial for FreeSurfer Users. Helpful To Know FreeSurfer Tutorial Wiki:  .

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