Želví grafika

Nakreslete pomocí želví grafiky následující obrázek (nebo alespoň hodně podobný):

obrazec


Formát vertikála

Jedním z mnoha formátů používaných v komputační lingvistice je tzv. vertikála. Příkladem budiž soubor phrases.vert (kódování UTF-8).

Obsahem tohoto souboru je několik vět navzájem oddělených prázdnou řádkou. Každá věta je pak rozdělena po jednotlivých slovech (a interpunkci) na samostatné řádky, které zaznamenávají nejrůznější lingvistické údaje o daném slově (či interpunkci), navzájem oddělené tabulátorem.

Vaším úkolem je z daného souboru vyextrahovat jednotlivé věty a vypsat je tak, jak vypadaly původně, tzn. každou větu na samostatnou řádku a bez mezer před interpunkcí.




Vertikála (bonusová)

Při řešení předchozího příkladu můžete snadno spočítat, kolik vět se vlastně v souboru phrases.vert nachází. Nicméně pro tento bonusový příklad předstírejte, že jste předchozí cvičení neřešili, a pokuste se vymyslet co nejjednodušší způsob, jak spočítat, kolik vět soubor obsahuje.




Aminokyseliny

V CSV-souboru aminokyseliny.csv jsou základní informace o aminokyselinách – jejich jednopísmenné i vícepísmenné zkratky, název a kodony (= trojice bází), kterými bývá daná aminokyselina kódována. Soubor je v kódování UTF-8, obsahuje hlavičkový řádek, jednotlivé údaje jsou odděleny středníkem a pole kodonů navíc ještě svislítkem.

Načtěte data ze souboru do vhodné pythoní datové struktury, abyste mohli snáze splnit následující úkoly. V obou máte za úkol vypsat data do nového souboru, ale pokaždé s jiným pořadím sloupečků a/nebo jinak seřazená:




Formát FASTA

Jedním z nejpoužívanějších formátů pro záznam dat v bioinformatice je FASTA. V souboru fasta.fa máte k dispozici jeho ukázku. Soubor obsahuje několik skupin hlaviček a k nim příslušejících sekvencí bází (pro potřeby úlohy značně zjednodušených – skutečná FASTA by měla dlouhé sekvence zalámané na více řádek), tedy každý samostatný záznam zabírá dvě řádky. Zde kupříkladu první záznam:

        >HKEKW3O01B9HVO
        ACGATGCAGCTGCGAGACGATGACACGCTCGGTGCCGTTGATGACGAACGAGCC    

Přepište data do souboru fasta_mod.fa, přičemž doplňte každou hlavičku o údaj o délce příslušné sekvence (tedy počtu bází) a její pořadí v rámci souboru. Ukázkový záznam se tak změní na tvar:

        >HKEKW3O01B9HVO length=54 pos=1
        ACGATGCAGCTGCGAGACGATGACACGCTCGGTGCCGTTGATGACGAACGAGCC    



FASTA (bonusová)

Napište program, který na vyžádání z příkazové řádky vypíše příslušnou sekvenci ze souboru fasta_mod.fa, např.:

        > python fasta+.py 30
        >HKEKW3O01DP28Q length=165 pos=30
        GTGTCGAGATCGAGCGTCACGCCTTCCTGCGCGGCGACGATGTGCGGCGCGGCCGGCGCTTTCAGCAGGAACGGCGTGCGCAGCTCGGGCGGCAGCACGACGTTCGCGGCGGCGTCGAGCTGATCGGCATCCTCGTTGCGCCAGACGCCGTCGCGTTGATACGCG    

PS: Pokud nevyřešíte předchozí úlohu, můžete samozřejmě použít původní soubor fasta.fa, ale v něm se to hůře kontroluje a stejně by se vám tahle úloha řešila bez zpracování předchozí stejně špatně.