Vyřešte Task B (z odkazu výše, data jsou v materiálech kurzu jako Yeast Genome Annotation nebo https://www.fi.muni.cz/~lexa/saccharomyces_cerevisiae.gff).
1. a 2. týden - Sekvence, teorie informace a explorativní programování na cmdline - 20. - 27. 9. 2023
================================================================
-> přístup k počítači s Linuxem (biolinux.fi.muni.cz)
- z Linuxu příkazem ssh -X username
- z Windows kombinací nástrojů Xming a putty
- https://copy.sh/v86/?profile=linux26&ref=itsfoss.com
________________________
1) ČETBA
Přečtěte výšeuvedený "Entropy paper" a napište několika větami co bylo v článku pro Vás nové, zajímavé nebo pochybné a proč - řekneme si pak navzájem příští týden.
2) CVIČENÍ
Použijeme soubor všech proteinů Arabidopsis thaliana ATH1.fa (materiály kurzu nebo https://www.fi.muni.cz/~lexa/ATH1.fa).
Za pomoci některého z Vám blízkého interaktivního jazyka (bash+sed+awk+..., Perl, R, Python) vytvořte jednoduché příkazy (1 nebo několik navazujících). Demonstrujte na whiteboard Vám blízký one-liner, uvedte jeho krátkou charakteristiku a připravte si slovní vysvětlení. Později, kde to je možné, využijte regulární výrazy spustitelné z příkazové řádky transformující soubor ATH1.fa s nasledovnými výstupy:
1) Přeformátuje soubor tak, aby v hlavičce bylo pořadové číslo sekvence v souboru a jenom identifikátor oddělené podtržítkem (např. >2_At1g01020.1)
2) Tabulka s ID sekvence a její délkou oddělené tabulátorem
3) Všechny n-tice za sebou jdoucích aminokyselin (n-gramy), každá na zvláštní řádek (n je volitelny parametr). n-gram je libovolný podřetězec délky n, např. ze sekvence MASALL můžeme vytvořit 3 4-gramy: MASA, ASAL, SALL.
Vytvořte "one-liner" (pokud je potřeba, můžete zřetězit na řádek několik příkazů, max délka 128 ASCII znaků), který vypíše pět nejčastěji se vyskytujících k-merů délky 4.
RESENI:
Lexa:
cat ATH1.fa|grep -v ">"|tr -d "*"|perl -ne "while(s/(.)(...)([^\*]+)/\$2\$3/){print \"\$1\$2\\n\"}"|sort|uniq -c|sort -nr|head -5
8374 SSSS
4201 PPPP
3937 EEEE
3753 GGGG
2012 DDDD
Studenti:
AWK+BASH
grep -v "^>" ATH1.fa | awk '{for(i=1;i<=length-3;i++) print substr($0,i,4)}' | sort | uniq -c | sort -nr | head -5
8374 SSSS
4201 PPPP
3937 EEEE
3753 GGGG
2012 DDDD
grep -oP "^\w+" ATH1.fa|awk '{for(i=1;i<=length($0)-3;i++) print substr($0,i,4)}'|sort|uniq -c|sort -nr|head -5
8374 SSSS
4201 PPPP
3937 EEEE
3753 GGGG
2012 DDDD
AWK
awk '!/>/&&NF{i=1;while(i+4<=length+1){k=substr($0,i,4);c[k]++;i++}}END{i=0;PROCINFO["sorted_in"]="@val_num_desc";for(k in c){if(++i>5)break;print k}}' ATH1.fa
SSSS
PPPP
EEEE
GGGG
DDDD
BASH
cat ATH1.fa|grep -v '^>'|tr -d '\n'|fold -w1|while read -n1 c;do s="$s$c";[ ${#s} -eq 4 ] && echo "$s" && s="${s#?}"; done|sort|uniq -c|sort -nr|head -5
8374 SSSS
4201 PPPP
3937 EEEE
3753 GGGG
2012 DDDD