CRAM (formát souboru) - CRAM (file format)
Přípona názvu souboru | .nacpat |
---|---|
Vyvinul | Markus Hsi-Yang Fritz et al; Vadim Zalunin |
Typ formátu | Bioinformatika |
Otevřený formát ? | Ano |
webová stránka | www |
NACPAT je komprimovaný sloupcový formát souboru pro ukládání biologické sekvence zarovnány do a referenční sekvence, původně navržený Markusem Hsi-Yangem Fritzem et al.[1]
CRAM byl navržen jako účinná alternativa založená na referencích Sekvenční mapa zarovnání (SAM) a Mapa binárního zarovnání (BAM) formáty souborů. Volitelně používá genomový odkaz k popisu rozdílů mezi fragmenty zarovnané sekvence a referenční sekvencí, což snižuje náklady na skladování. Každý sloupec ve formátu SAM je navíc rozdělen do vlastních bloků, což zlepšuje kompresní poměr. Soubory CRAM se obvykle liší o 30 až 60% menší než BAM, v závislosti na datech v nich obsažených.
Implementace CRAM existují v htsjdk,[2] htslib,[3] JBrowse,[4] a Scramble.[5]
Specifikace formátu souboru je udržována Globální aliance pro genomiku a zdraví (GA4GH)[6] se specifikačním dokumentem dostupným na stránce sady nástrojů EBI cram.[7]
Formát souboru
Základní strukturou souboru CRAM je řada kontejnerů, z nichž první obsahuje komprimovanou kopii záhlaví SAM. Následné kontejnery se skládají z kontejneru Compression Header následovaného řadou řezů, které zase obsahují samotné záznamy o zarovnání, formátované jako řada bloků.
Soubor CRAM:
Magické číslo Kontejner
(Záhlaví SAM)Kontejner
(Data)... Kontejner
(Data)Kontejner
(EOF)
Kontejner:
Kontejner
ZáhlavíKomprese
ZáhlavíPlátek ... Plátek
Plátek:
Plátek
ZáhlavíBlok Blok ... Blok
CRAM vytváří záznamy ze sady datových řad a popisuje komponenty zarovnání. Záhlaví komprese kontejneru určuje, která datová řada je zakódována v kterém bloku, jaký kodek bude použit a jakákoli metadata specifická pro kodek (například tabulka Huffman délky kódu symbolu). Zatímco datové řady mohou být smíchány dohromady v rámci stejného bloku, jejich udržování oddělené obvykle zlepšuje kompresi a poskytuje příležitost pro efektivní selektivní dekódování, kde jsou vyžadovány pouze některé datové typy.
Selektivní přístup k souboru CRAM je poskytován prostřednictvím indexu (s příponou názvu souboru „.crai“). Na chromozomech a pozicích seřazených dat to naznačuje, která oblast je pokryta každým řezem. Na netříděných datech lze index použít k jednoduchému načtení Nth kontejner. Selektivního dekódování lze dosáhnout také pomocí záhlaví komprese k přeskočení zadané řady dat, pokud jsou vyžadovány částečné záznamy.
Dějiny
Rok | Verze | Poznámky |
---|---|---|
2010-11 | před CRAM | Úvodní článek popisující referenční formát. Název CRAM se nepoužíval, ale nazýval se mzip. Tento software byl implementován v Krajta jako prototyp a ukázka základních konceptů.[1] |
2011-12 | 0.3 - 0.86 | Vadim Zalunin z Evropský bioinformatický institut (EBI) vytvořila první implementaci s názvem CRAM jako balíček s názvem CRAMtools,[8] napsáno v Jáva programovací jazyk. |
2012 | 1.0[9] | Implementováno v Jáva CRAMtools.[10] |
2013 | C implementace přidána do Scramble[11][5] nástroj, James Bonfield z Wellcome Sanger Institute. | |
2013 | 2.0 | Změny zahrnovaly podporu více než jedné reference na řez (užitečné u vysoce fragmentovaných sestav), lepší kódování pomocných značek SAM, rozdělení soft-clipu a vložených bází do jejich vlastních datových řad, metadata pro sledování počtu záznamů a bází na řez a opravy datové řady BF (příznak BAM). |
2013 | Přidáno k htslib (0.2.0). | |
2014 | 2.1[12] | Přidány bloky EOF, které pomáhají identifikovat zkrácené soubory. |
2014 | Přidáno do htsjdk (1.127). | |
2014 | 3.0[13] | Zahrnutí lzma a RANS kodeky pro kompresi bloků spolu s několika kontrolními součty pro zajištění integrity dat |
2018 | Implementace Javascript jako součást JBrowse[4] (1.15.0), autor Rob Buels. |
CRAM verze 4.0 existuje jako prototyp ve Scramble,[5] původně prokázáno v roce 2015, ale musí být přijato jako standard.
Viz také
- SAM (formát souboru)
- Mapa binárního zarovnání
- Komprese genomických dat o novém sekvenování
- Seznam formátů souborů pro molekulární biologii
Reference
- ^ A b Hsi-Yang Fritz, Markus; Leinonen, Rasko; Cochrane, Guy; Birney, Ewan (květen 2011). „Efektivní ukládání vysoce výkonných sekvenčních dat DNA pomocí komprese založené na referencích“. Výzkum genomu. 21 (5): 734–740. doi:10.1101 / gr.114819.110. ISSN 1549-5469. PMC 3083090. PMID 21245279.
- ^ „Htsjdk by Broad Institute“. samtools.github.io. Citováno 2018-10-14.
- ^ "Samtools". www.htslib.org. Citováno 2018-10-14.
- ^ A b „JBrowse · Rychlý integrovatelný prohlížeč genomu vytvořený pomocí HTML5 a JavaScriptu“. jbrowse.org. Citováno 2018-10-14.
- ^ A b C Bonfield, James K. (2014-06-14). „Nástroj pro převod scramble“. Bioinformatika. 30 (19): 2818–2819. doi:10.1093 / bioinformatika / btu390. ISSN 1460-2059. PMC 4173023. PMID 24930138.
- ^ „GA4GH“. www.ga4gh.org. Citováno 2018-10-14.
- ^ EMBL-EBI. „Sada nástrojů CRAM
. www.ebi.ac.uk. Citováno 2018-10-14. - ^ "vadimzalunin / crammer". GitHub. 2017-08-08. Citováno 2018-10-14.
- ^ "Specifikace CRAM 1.0" (PDF).
- ^ "enasequence / cramtools". GitHub. 2018-10-02. Citováno 2018-10-14.
- ^ „jkbonfield / io_lib“. GitHub. 2018-10-16. Citováno 2018-10-14.
- ^ "Specifikace CRAM 2.1" (PDF).
- ^ „Specifikace CRAM 3.0“ (PDF).