command line tools manfred g. grabherr. overview -how do web-based tools work? -what is source code?...

28
Command line tools Manfred G. Grabherr

Upload: bryan-byrd

Post on 25-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

Command line tools

Manfred G. Grabherr

Page 2: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

Overview

- How do web-based tools work?- What is source code?- How to run things locally?- What is UNIX/Linux?- What is a command line?- What is UPPMAX?- How to run tools?- Where can I learn how to…

- Assemble- Annotate- Quantify expression- Etc., etc., etc.

Page 3: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

How do web-based tools work?

Page 4: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

How do web-based tools work?

BrowserCompute server

Hyper-Text Transfer Protocol (HTTP)

Page 5: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

How do web-based tools work?

BrowserCompute server

Hyper-Text Transfer Protocol (HTTP)

Page 6: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

The client-server model: limitations

- Processing power (everything done on server)- Response time- Number of users- Number of queries- Small tasks

Alternative: run things locally

Page 7: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is source code?

- A computer only understands machine language; 64-bit "Hello World!" in Linux NASM global _start            ; global entry point export for ldsection .text_start:    ; sys_write(stdout, message, length)     mov    rax, 1        ; sys_write    mov    rdi, 1        ; stdout    mov    rsi, message    ; message address    mov    rdx, length    ; message string length    syscall     ; sys_exit(return_code)     mov    rax, 60        ; sys_exit    mov    rdi, 0        ; return 0 (success)    syscall section .data    message: db 'Hello, world!',0x0A    ; message and newline    length:    equ    $-message        ; NASM definition pseudo-instruction

- Software developers us high-level programming languages#include <iostream.h>

int main() { cout << “Hello world!” << endl; return 0;} 

Compiler or interpreter required

Page 8: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

How to run programs locally

Page 9: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

How to run programs locally

- Different execution models, different platform requirements

- Java, perl, python: - interpreted, platform independent- Memory and runtime issues

- C/C++- compiled, platform issues- Memory and runtime efficient

Make sure you have the right platform and enough resources!

Page 10: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is source code?

- Most scientific software is free- Source code is available:

- GPL, LGPL, BSD, etc.

- Preferred OS: GNU/Linux (GPL!)

Page 11: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is GNU/Linux?

- UNIX: 1969- Linux-based: Android- UNIX-based: Mac OS X

- Open Source Operating System- Available on virtually all platforms- Many different distributions

Page 12: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?
Page 13: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

The Tree of GNU/Linux?

Page 14: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is a command line?

Page 15: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is a command line?

mangr224@hare:~/test/ryggrad$

Page 16: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is a command line?

mangr224@hare:~/test/ryggrad$ p

Page 17: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is a command line?

mangr224@hare:~/test/ryggrad$ pw

Page 18: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is a command line?

mangr224@hare:~/test/ryggrad$ pwd

Page 19: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is a command line?

mangr224@hare:~/test/ryggrad$ pwd/home/mangr224/test/ryggradmangr224@hare:~/test/ryggrad$

Page 20: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

Commands

Filesls --- lists your files ls -l --- lists your files in 'long format', which contains lots of useful information, e.g. the exact size of the file, who owns the file and who has the right to look at it, and when it was last modified. ls -a --- lists all files, including the ones whose filenames begin in a dot, which you do not always want to see. There are many more options, for example to list files by size, by date, recursively etc. more filename --- shows the first part of a file, just as much as will fit on one screen. Just hit the space bar to see more or q to quit. You can use /pattern to search for a pattern. emacs filename --- is an editor that lets you create and edit a file. See the emacs page. mv filename1 filename2 --- moves a file (i.e. gives it a different name, or moves it into a different directory (see below) cp filename1 filename2 --- copies a file rm filename --- removes a file. It is wise to use the option rm -i, which will ask you for confirmation before actually deleting anything. You can make this your default by making an alias in your .cshrc file. diff filename1 filename2 --- compares files, and shows where they differ wc filename --- tells you how many lines, words, and characters there are in a file chmod options filename --- lets you change the read, write, and execute permissions on your files. The default is that only you can look at them and change them, but you may sometimes want to change these permissions. For example, chmod o+r filename will make the file readable for everyone, and chmod o-r filename will make it unreadable for others again. Note that for someone to be able to actually look at the file the directories it is in need to be at least executable. See help protection for more details.

Page 21: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

Commands

DirectoriesDirectories, like folders on a Macintosh, are used to group files together in a hierarchical structure. mkdir dirname --- make a new directory cd dirname --- change directory. You basically 'go' to another directory, and you will see the files in that directory when you do 'ls'. You always start out in your 'home directory', and you can get back there by typing 'cd' without arguments. 'cd ..' will get you one level up from your current position. You don't have to walk along step by step - you can make big leaps or avoid walking around by specifying pathnames. pwd --- tells you where you currently are.

Finding thingsff --- find files anywhere on the system. This can be extremely useful if you've forgotten in which directory you put a file, but do remember the name. In fact, if you use ff -p you don't even need the full name, just the beginning. This can also be useful for finding other things on the system, e.g. documentation. grep string filename(s) --- looks for the string in the files. This can be useful a lot of purposes, e.g. finding the right file among many, figuring out which is the right version of something, and even doing serious corpus work. grep comes in several varieties (grep, egrep, and fgrep) and has a lot of very flexible options. Check out the man pages if this sounds good to you.

Page 22: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

What is UPPMAX

- A BIG computer!

Two clusters:KalkylTintin

Storage spaceCPU hours

Batch interface: SLURM

Cut up problem into smaller problems, if possible

Page 23: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

How to run tools?

- Many bioinformatics tools are already installed on UPPMAX- If not, you can ask them to install

- Or: build them yourself! Follow the instructions

Page 24: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?
Page 25: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

How do I learn how to…

- Assemble genomes- Annotate genomes- Assemble transcriptomes- Map reads to a reference- Call variants- Process ChIP-Seq data- Compare genomes- Align sequences- Find selective sweeps- Find signatures of adaptive evolution- Find differentially expressed genes- Build gene trees- Associate SNPs with disease or phenotype- And, and, and…

Page 26: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

How do I learn how to…

- Assemble genomes- Annotate genomes- Assemble transcriptomes- Map reads to a reference- Call variants- Process ChIP-Seq data- Compare genomes- Align sequences- Find selective sweeps- Find signatures of adaptive evolution- Find differentially expressed genes- Build gene trees- Associate SNPs with disease or phenotype- And, and, and…

Take a course (www.evomics.org, SciLifeLab, etc.)

Page 27: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?

Questions?

Page 28: Command line tools Manfred G. Grabherr. Overview -How do web-based tools work? -What is source code? -How to run things locally? -What is UNIX/Linux?