Bioinformatik se dnes bez sekvencí (RNA, DNA…) v digitální podobě prakticky neobejde. V nejjednodušším případě stačí prostá sekvence v programu, v sofistikovanější podobě pak třebas v textovém souboru. Nicméně sekvence sama o sobě je pouze polovina celé skládačky – tou druhou je i prostředí, v jakém se přirozeně nachází, tedy konkrétní buňka, jejíž chod ovlivňuje, ale bez které by byla úplně k ničemu.
Je jasné, že pro konkrétní práci je celkem jedno, jakým způsobem se k nám tato druhá informace dostane (nehledě na to, že podle povahy problému ji někdy skutečně ani nemusíme potřebovat). Nicméně vždy je lepší míti pohromadě jak sekvenci, tak příslušná metadata o ní.
Mezi nejjednodušší bioinformatické formáty, které uvedené požadavky splňují, patří..
..kterým se v dalším podíváme na zoubek.
Formát FASTA byl původně interním formátem programu FASTA (který slouží k zarovnávání sekvencí DNA a proteinových řetězců). Nicméně od té doby „zlidověl“ do jednoho z nejpoužívanějších formátů pro záznam sekvencí v bioinformatice.
V dnes nejpoužívanější podobě obsahuje typicky více záznamů (tedy více různých sekvencí), každou sekvenci přitom s vlastní informační hlavičkou označenou znakem >
:
Na obsah hlavičky přitom neexistuje prakticky vůbec žádné omezení. Prostě by tam jenom měla být nějak rozumně označena následující sekvence.
Libovolně dlouhé sekvence přitom mohou být zapsány na jedné řádce, jako v následujícím souboru..
..což činí automatické zpracovávání jednoduchým – co dvě řádky, to právě jeden záznam. Na druhou stranu je výstupní soubor často extrémně široký, což zase znesnadňuje práci lidem, takže daleko častěji se používá..
..forma s „pozalamovanými“ sekvencemi na konkrétní jednotnou šířku:
Tento soubor popisuje úplně stejné sekvence jako předchozí, jen jeho vizuální podoba je jiná – pro člověka přehlednější, pro automat naopak zase těžší ke zpracování, protože nyní sekvence k příslušné hlavičce může zahrnovat libovolný (a předem neznámý) počet řádek a jako rozlišovač mezi jednotlivými sekvencemi tak slouží pouze hlavičkové řádky se svým znakem >
na prvním místě.
PS: Šířka řádku také není nijak standardizovaná, prostě asi jak se komu zrovna hodilo.
Zatímco formát FASTA představuje čisté sekvence s metadaty, formát FASTQ by se dal označit za více nízkoúrovňový – dnes je totiž produkován přímo přístroji na high-throughput sekvenování.
Podobně jako FASTA obsahuje hlavičku (začínající tentokrát znakem @
) a vlastní sekvenci, navíc je ale doplněn kvalitou čtení příslušné báze a případným komentářem. Výsledná struktura je velmi pravidelná – co čtyři řádky, to jeden záznam..
..a proto snadno strojově zpracovatelná. Díky řádku s kvalitou čtení, nebo spíše díky jeho implementaci různými přístroji/společnostmi, to s tou snadností nakonec ale není zdaleka tak veselé :-s
Význam jednoltivých řádek každého záznamu je následující:
@
uvedena data hlavičky (typicky identifikace přístroje a bližší info o následující sekvenci).
+
a tím to většinou hasne. Oficiálně komentářová řádka, neoficálně dnes balast.
@
a komentáře +
se může vyskytovat jako podznak i v kvalitě…Jak je vidět, FASTQ je další historický kompromis. A to ještě možná netušíte, jaká paseka panuje v označování kvality čtení! Pro hororové příběhy si odskočte o dva slajdy dále…
Je-li P pravděpodobnost, s jakou je určení příslušné báze špatně, je odpovídající kvalita čtení Q určena jako:
Ve výsledku se tak pohybuje od kvality Q = 0
pro jistou pravděpodobnost P = 1
, že báze je určena špatně, až po běžně nejvyšší používanou kvalitu Q = 42
, a tedy příslušnou pravděpodobnost P = 0,00006
, kdy máme šanci přibližně pouze 1:16667
, že je báze určena špatně.
Jelikož kvalit je tedy pouze pár desítek, byla pro jejich kódování celkem pochopitelně vybrána podmnožina spodní poloviny ASCII-tabulky – co o jedničku vyšší kvalita, to následující ASCII-znak od jistého základu. V případě asi nejpoužívanějšího skóre PHRED+33 je počátečním znakem odpovídajícím kvalitě 0 znak !
(ASCII-hodnota 33), kvalita 42 je pak zakódována znakem K (ASCII-hodnota 75).
Problém je, že se všichni výrobci sekvenovacích mašin neshodli na stejném základu. A ještě větší problém je, že i konkrétní výrobci občas kódování kvality měnili (a to nejlépe i v rozporu se svou vlastní dokumentací).
Krásnou souhrnnou tabulku tohohle zmatku uvádí Wikipedie:
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS..................................................... ..........................XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................... ...............................IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII...................... .................................JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ...................... LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.................................................... !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ | | | | | | 33 59 64 73 104 126 0........................26...31.......40 -5....0........9.............................40 0........9.............................40 3.....9.............................40 0.2......................26...31........41 S - Sanger Phred+33, raw reads typically (0, 40) X - Solexa Solexa+64, raw reads typically (-5, 40) I - Illumina 1.3+ Phred+64, raw reads typically (0, 40) J - Illumina 1.5+ Phred+64, raw reads typically (3, 40) with 0=unused, 1=unused, 2=Read Segment Quality Control Indicator (bold) L - Illumina 1.8+ Phred+33, raw reads typically (0, 41)
Pokud budete pracovat s relativně novými údaji, setkáte se prakticky všude (Illumina, Ion Torrent, PacBio, Sanger) se skórem ve variantě PHRED+33. Pro pohodlí čtenáře zde uvádím převodní tabulku pro hodnoty Q od 0 do 42:
znak | ASCII | pstnost | kvalita |
---|---|---|---|
! | 33 | 1.00000 | 0 |
" | 34 | 0.79433 | 1 |
# | 35 | 0.63096 | 2 |
$ | 36 | 0.50119 | 3 |
% | 37 | 0.39811 | 4 |
& | 38 | 0.31623 | 5 |
' | 39 | 0.25119 | 6 |
( | 40 | 0.19953 | 7 |
) | 41 | 0.15849 | 8 |
* | 42 | 0.12589 | 9 |
+ | 43 | 0.10000 | 10 |
, | 44 | 0.07943 | 11 |
- | 45 | 0.06310 | 12 |
. | 46 | 0.05012 | 13 |
/ | 47 | 0.03981 | 14 |
0 | 48 | 0.03162 | 15 |
1 | 49 | 0.02512 | 16 |
2 | 50 | 0.01995 | 17 |
3 | 51 | 0.01585 | 18 |
4 | 52 | 0.01259 | 19 |
5 | 53 | 0.01000 | 20 |
6 | 54 | 0.00794 | 21 |
7 | 55 | 0.00631 | 22 |
8 | 56 | 0.00501 | 23 |
9 | 57 | 0.00398 | 24 |
: | 58 | 0.00316 | 25 |
; | 59 | 0.00251 | 26 |
< | 60 | 0.00200 | 27 |
= | 61 | 0.00158 | 28 |
> | 62 | 0.00126 | 29 |
? | 63 | 0.00100 | 30 |
@ | 64 | 0.00079 | 31 |
A | 65 | 0.00063 | 32 |
B | 66 | 0.00050 | 33 |
C | 67 | 0.00040 | 34 |
D | 68 | 0.00032 | 35 |
E | 69 | 0.00025 | 36 |
F | 70 | 0.00020 | 37 |
G | 71 | 0.00016 | 38 |
H | 72 | 0.00013 | 39 |
I | 73 | 0.00010 | 40 |
J | 74 | 0.00008 | 41 |
K | 75 | 0.00006 | 42 |