bash - linia poleceŃ elementy …theta.edu.pl/wp-content/uploads/2019/11/lecture-1314.pdfcd...
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