bash - linia poleceŃ elementy …theta.edu.pl/wp-content/uploads/2019/11/lecture-1314.pdfcd...

Post on 09-Aug-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

BASH - LINIA POLECEŃELEMENTY PROGRAMOWANIA

Bioinformatyka

I. BASH - LINIA POLECEŃ

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 2

PRZECHOWYWANIE I PRZETWARZANIE DANYCH#

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK

surowe

dane pliki pośrednie pliki końcowe

8 TB 7 TB 50 GB+ dane dodatkowe

1 genom

3

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK

przyrównanie; 8 rdzeni; 25 GB (genom) → ~ 20 GB

obliczenia równoległe- przyspieszenie obliczeń → max 24 rdzenie

czas analiz wszystkich genomów → dni/tygodnie ?

PRZECHOWYWANIE I PRZETWARZANIE DANYCH# DLACZEGO BASH?

4

Praca na klastrach obliczeniowych

Brak GUI

W praktyce przetwarzanie i przechowywanie danych biologicznych nie byłoby możliwe bez komputerów o dużej mocy obliczeniowej i o dużych zasobach pamięci dyskowej

Środowisko programistyczne

Szybkie przetwarzanie danych

Pisanie własnych skryptów

Implementacja programów

Wiele programów dostępnych jedynie pod Linuxa

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 5

PRZECHOWYWANIE I PRZETWARZANIE DANYCH# DLACZEGO BASH?

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK

PRZECHOWYWANIE I PRZETWARZANIE DANYCH# DLACZEGO BASH?

6

NIE TYLKOBIOINFORMATYKA

Bioinformatyka … i inne nauki ścisłe!

praca na klastrach obliczeniowych

oferty pracy z fizyki i z chemii

Informatyka

środowisko programistyczne

i inne…

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 7

Linux – system operacyjny, które oferuje kompletne środowisko programistyczne

Powłoka – interfejs wiersza poleceń zapewniający komunikację z systemem operacyjnym oraz jego kontrolę

Bash – powłoka (środowisko domyślne)

Skrypt powłoki – plik tekstowy zawierający sekwencje poleceń

Katalog domowy - folder domowy użytkownika; zawiera pliki określające ustawienia każdego użytkownika, przeznaczony na zapisywanie danych, np. dokumentów, obrazów, itp.; standardowo /home/nazwa_użytkownika

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 8

PODSTAWOWE DEFINICJE

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 9

TERMINAL (CTRL + ALT + T)

nazwaużytkownika@nazwahosta:~$

$ user

# superuser

Polecenia są wpisywane i wykonywane w terminalu powłoki

Terminal – interaktywny program narzędziowy umożliwiający komunikację użytkownika ze środowiskiem powłoki

Po otwarciu okna dostępny jest wiersz poleceń

ls – listowanie zawartości katalogu

mkdir – tworzenie nowego katalogu

mv – zmiana nazwy, przeniesienie

cp - kopiowanie

rm - usuwanie

cd – poruszanie się w powłoce

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 10

POPULARNE POLECENIA

cat – wypisywanie i łączenie plików

touch – tworzenie plików

head – wypisanie pierwszych 10 linijek pliku

tail – wypisanie ostatnich 10 linijek pliku

less – wypisywanie plików

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 11

POPULARNE POLECENIA

cut - selekcja wybranych obszarów

sort - sortowanie

wc – zliczanie znaków, linii…

pwd – wyświetlenie bieżącego katalogu

history – notatki ☺

POMOC:

man komenda

komenda --help

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 12

POPULARNE POLECENIA

POPULARNE POLECENIA

date – wyświetlenie daty

Składnia: date [opcje]

Polecenie date wystwietla aktualną datę systemową

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK

Do czego może być przydatne polecenie „date” w Twoich skryptach?

13

POPULARNE POLECENIA

find – szukanie plików

Składnia: find ścieżka opcje

find katalog –name nazwa_pliku

W przypadku znalezienia pliku o podanej nazwie, ścieżka dostępu do niego będzie wyświetlona w standardowym wyjściu.

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 14

POPULARNE POLECENIA

diff – porównanie dwóch plików

Składnia: diff [opcje] plik1 plik2

< wiersze występujące tylko w pliku 1

> w pliku 2

diff3 – porównanie trzech plików

Składnia: diff3 [opcje] plik1 plik2 plik3

Program wyświetla kolejno: wiersze różne we wszystkich plikach oraz wiersze wyróżniające się tylko w jednym z plików

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 15

POPULARNE POLECENIA

comm – wybór lub odrzucenie wspólnych wierszy

Składnia: comm [opcje] plik1 plik2

Program wyszukuje wiersze wspólne dla dwóch plików. Wyświetla wyniki z trzech kolumnach: wiersze znajdujące się tylko w pliku 1, tylko w pliku 2, oraz w obu plikach.

join – łączenie odpowiednich wierszy dwóch plików

Składnia: join [opcje] plik1 plik2

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 16

POPULARNE POLECENIA

tr – zamiana znaków

Składnia: tr [opcje] string1 string2

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 17

POPULARNE POLECENIA

uniq – wykrywanie powtarzających się wierszy

Składnia: uniq [opcje] plik

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 18

POPULARNE POLECENIA

sort – sortowanie plików

Składnia: sort [opcje] pliki

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 19

POPULARNE POLECENIA

grep – poszukiwanie wzorca w pliku

Składnia: grep [opcje] wzorzec plik

Grep (get regular expression) poszukuje podanego wzroca w przeszukiwanym sekwencyjnie pliku lub strumieniu danych ze standardowego wejścia i przekazuje wiersze, zawierające wzorzec na standardowe wyjście.

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 20

POPULARNE POLECENIA

dirname – wyodrębnienie ze ścieżki nazwę katalogu

Składnia: dirname ścieżka

basename – usuwa ze ścieżki nazwy katalogów i końcówkę

Składnia: basename ścieżka [końcówka]

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 21

echo – wydrukuj na ekran monitora

echo ”Cześć studenci”

echo Cześć studenci

echo ‘Cześć studenci’

zmienna=5

echo $zmienna

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 22

POPULARNE POLECENIA

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 23

ZMIENNE

Przechowywanie danych

Brak deklaracji typu zmiennych

zmienna=wartość (operacja przypisania)

zmienna = wartość (operacja równości)

zmienna=5

echo $zmienna

length=${#zmienna}

Przykład:

owoc=jabłka

liczba=3

echo "Liczba owocow: $liczba $owoc.”

echo Liczba owocow: $liczba $owoc.

a=4

b=5

let wynik=a+b

wynik=$[a+b]

let a++

let b--

let a+=6

let b-=1

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 24

Spróbuj:

suma=a+b

echo $suma

suma=$a+$b

echo $suma

Jaki wynik uzyskałaś/eś?

Liczby

całkowite

PROSTE OPERACJE ARYTMETYCZNE

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 25

Spróbuj:

suma=a+b

echo $suma

suma=$a+$b

echo $suma

Jaki wynik uzyskałaś/eś?

• bc – kalkulator, zaawansowany program narzędziowy do obliczeń

matematycznych; umożliwia wykonywanie operacji zmiennoprzecinkowych

• echo "10*5.5" | bc

PROSTE OPERACJE ARYTMETYCZNE

bezwzględna: zawsze prawdziwa niezależnie od tego, w którym katalogu znajduje się użytkownik

cd /home/users-groups/katalog1/katalog2/katalog3/katalog4

względna: wymaga ustalenia katalogu, w którym znajduje się użytkownik i podania ścieżki względem tego położenia

użytkownik jest w katalog2 i chce przejść do katalog4

cd katalog3/katalog4

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 26

ŚCIEŻKI

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 27

Cyfra Prawa Litera

0 brak praw

1 wykonywanie x

2 pisanie w

3 wykonywanie i pisanie wx

4 czytanie r

5 czytanie i wykonywanie rx

6 czytanie i pisanie rw

7 czytanie, pisanie i wykonywanie rwx

* r – read, uprawnienie do czytania

* w -write, uprawnienie do zapisu lub zmiany zawartości

* x – execute, uprawnienie do wykonania, lub przejrzenia

zawartości katalogu

* - – brak danego uprawnienia

* a – all, wszyscy

* u – user, użytkownik

* g – group, grupa

* o – others, inni

* + – dodanie prawa

* - – odebranie prawa

chmod g+rx plik

chmod o-w plik

UPRAWNIENIA

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 28

UPRAWNIENIA

BIOINFORMATYKA 2019/2020 29

for zmienna in list;

do

polecenia;

done

while warunek;

do

polecenia;

done

until warunek;

do

polecenia;

done

a=2

while [ $a -le 5 ];

do

echo " Do tej pory

petla wykonala sie

$a razy";

a=$[a + 1];

done

a=2

until [ $a -ge 5 ];

do

echo "Do tej pory

petla wykonala sie

$a razy";

a=$[a + 1];

done

for a in {2..5};

do

echo "Do tej pory

petla wykonala sie

$a razy";

done

PĘTLE

MAGDA MIELCZAREK

SKRYPTY

Hello World - demonstracja sposobu programowania

#!/bin/bash

#Tu jest komentarz.

echo "Hello world"

Uruchomienie skryptu

Bash lub sh lub ./

sh skrypt.sh

bash /home/user1/skrypty/skrypt.sh

./skrypt

MAGDA MIELCZAREKBIOINFORMATYKA 2019/2020 30

a=2

while [ $a -le 5 ]

> do

> echo "Do tej pory pętla wykonała się $a razy"

> a=$[a + 1]

> done

a=2; while [ $a -le 5 ]; do echo "Do tej pory pętla wykonała

się $a razy"; a=$[a + 1]; done

terminal

skrypt

MAGDA MIELCZAREKBIOINFORMATYKA 2019/2020 31

II. ELEMENTY PROGRAMOWANIA

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 32

DON’T WORK HARD.

WORK INTELLIGENT.

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 33

wysokie pokrycie niskie pokrycieodczyty

genom

referencyjny

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 34

POKRYCIE GENOMU

BASH (I)

Pliki o nazwach animal_name.rmdup.fs

Zawartość pliku animal_1.rmdup.fs:

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK

𝑐𝑜𝑣𝑒𝑟𝑎𝑔𝑒 =𝑛 ∗ 𝑟

𝑑,

where n denoted the total number of

aligned reads, r the read length in bp

and d the length of the reference

genome (2697.56 Mb).

Jakie jest średnie pokrycie genomu?

35

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 36

Surowe Dane

Przyrównanie do

genomu

referencyjnego

Detekcja

polimorfizmów

Kontrola jakości

Sens biologiczny

NISKA JAKOŚĆ I FILTORWANIE DANYCH NGS

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 37

Surowe Dane

Przyrównanie do

genomu

referencyjnego

Detekcja

polimorfizmów

Kontrola jakości

Sens biologiczny

NISKA JAKOŚĆ I FILTORWANIE DANYCH NGS

BIOINFORMATYKA 2019/2020 38

Surowe Dane

Przyrównanie do

genomu

referencyjnego

Detekcja

polimorfizmów

Kontrola jakości

Sens biologiczny

NISKA JAKOŚĆ I FILTORWANIE DANYCH NGS

MAGDA MIELCZAREK

BIOINFORMATYKA 2019/2020 39

Surowe Dane

Przyrównanie do

genomu

referencyjnego

Detekcja

polimorfizmów

Kontrola jakości

Sens biologiczny

NISKA JAKOŚĆ I FILTORWANIE DANYCH NGS

MAGDA MIELCZAREK

BIOINFORMATYKA 2019/2020 40

IMPLEMENTACJA PROGRAMÓW

BASH (II)

MAGDA MIELCZAREK

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 41

Surowe Dane

Przyrównanie do

genomu

referencyjnego

Detekcja

polimorfizmów

Kontrola jakości

Sens biologiczny

NISKA JAKOŚĆ I FILTORWANIE DANYCH NGS

Pipeline = łańcuch przetwarzania danych

Automatyzacja działania wielu programów np. do

analizy danych NGS

ANY BASES

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 42

Genom referencyjny Bos taurus (Zimin et al. 2009)

ANY BASES

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 43

ANY BASES

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 44

PYTHON (I)

ANY BASES

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 45

PYTHON (I)

ZMIANA ID SEKWENCJI

BIOINFORMATYKA 2019/2020 MAGDA MIELCZAREK 46

PYTHON (II)

Nowy

identyfikator

sekwencji

top related