2019 3/9 twitterコメント追記
Preprintより
DNA配列データベースは、シーケンシング技術の継続的な進歩により、指数関数的に成長している。通常、データ圧縮は保存スペースを節約するためにすべての保存DNAシーケンシングデータに使用される。1993年に最初の専用のDNA圧縮器が提案された
(Tahi、1993)。それ以来、多数のDNA圧縮器が開発された(例えば、Cao et al、2007、Li et al、2013、Benoit et al、2015、Al-Okaily et al、2017)。著者らの経験では、2つの圧縮器だけが実用性を満たしている: DELIMINATE (Mohammed et al、 2012) とMFCompress (Pinho and Pratas、 2014)。これらは安定しており、FASTAフォーマットの一般的に使用される機能をサポートし、処理するのに十分効率的で、脊椎動物ゲノム全体の圧縮(および解凍)などの実用的な作業をハンドリングすることができる。DELIMINATEとMFCompressの両方の圧縮率はimpressiveだが、解凍が非常に遅く大規模データベースでは、その有用性が大幅に制限される。DNA圧縮に関する多数の研究にもかかわらず、現在、データベースの大多数は圧縮にgzip(https://www.gzip.org/)に頼り続けている。この永続的な人気は、gzipの可用性、堅牢性、および速度(特に解凍速度)によっている。他の一般的な汎用コンプレッサーとしてbzip2(http://www.bzip.org/)やlzma / xz(https://tukaani.org/xz/format.html)などが開発されている。さらに、近年では、新世代の高度な汎用コンプレッサー、特にbrotli(https://github.com/google/brotli)およびzstd (https://github.com/facebook/zstd)が登場した 。 これらのコンプレッサはgzipの性能を向上させるが、それでも圧縮強度の点で特殊なDNAコンプレッサには到達できない。この研究では、Nucleotide Archival Format(NAF)と呼ばれる新しいDNA圧縮フォーマットについて説明する。 NAFはDELIMINATEと同程度でMFCompressよりわずかに圧縮率が低いが、最新の圧縮率を提供する。同時に、それは30から80倍速い解凍を提供する。 NAFはFASTAおよびFASTQフォーマットで圧縮および圧縮解除を行う。 NAFはマスクされた配列とあいまいなIUPACヌクレオチドを支持する。NAFはシーケンスの長さに制限がなく、リファレンスシーケンスも必要としない。
Comparison of compressors. Githubより
NAF Documentation
NAF specification
https://github.com/KirillKryukov/naf/blob/master/NAFv2.pdf
Kirill Kryukovさんの発表(ゲノム微生物年会2019 3/6 )
こちら研究室のポスドクのKirill Kryukovさんが開発しているfasta形式のDNA配列データ圧縮ポログラムNAFの解説いただいた記事です。現在fastq形式にも(ほぼ)対応し、fasta形式のアミノ酸配列などにも対応を計画しています。 https://t.co/VJQnRJtZ54
— So Nakagawa (@sounaka) March 6, 2019
NAFに関するツイート
インストール
ubuntu16.04でテストした(ホストOS: mac os 10.14)。
本体 Github
リリースよりバイナリ(linux & windows)をダウンロードできる。
ビルドするなら
git clone --recurse-submodules https://github.com/KirillKryukov/naf.git
cd naf && make && sudo make install
>./ennaf -h
# ./ennaf -h
Usage: ennaf [OPTIONS] [infile]
Options:
-o FILE - Write compressed output to FILE
-c - Write to standard output
-#, --level # - Use compression level # (from -131072 to 22, default: 1)
--temp-dir DIR - Use DIR as temporary directory
--name NAME - Use NAME as prefix for temporary files
--title TITLE - Store TITLE as dataset title
--fasta - Input is in FASTA format
--fastq - Input is in FASTQ format
--line-length N - Override line length to N
--verbose - Verbose mode
--keep-temp-files - Keep temporary files
--no-mask - Don't store mask
-h, --help - Show help
-V, --version - Show version
> ./unnaf -h
# ./unnaf -h
Usage: unnaf [OUTPUT-TYPE] [file.naf]
Options for selecting output type:
--format - File format version
--part-list - List of parts
--sizes - Part sizes
--number - Number of sequences
--title - Dataset title
--ids - Sequence ids (accession numbers)
--names - Full sequence names (including ids)
--lengths - Sequence lengths
--total-length - Sum of sequence lengths
--mask - Masked region lengths
--4bit - 4bit-encoded DNA (binary data)
--dna - Continuous DNA sequence
--fasta - FASTA-formatted sequences
--fastq - FASTQ-formatted sequences
Other options:
--line-length N - Use lines of width N for FASTA output
--no-mask - Ignore mask
-h, --help - Show help
-V, --version - Show version
実行方法
1、compression
#working dir
mkdir tmp
export TMP=tmp
#fasta
ennaf --fasta input.fa -o output.fa.naf
#またはworking dirを指定してラン
ennaf --fasta input.fa -o output.fa.naf --temp-dir temp
#fastq
ennaf --fastq input.fq -o output.fq.naf
#fq.gz
gzip -dc input.fq.gz | ./ennaf --fastq -o file.naf
-
--dna Input contains DNA sequences (default). Valid sequences can include: ACGT, RYSWKMBDHV, N, '-'.
--rna Input contains RNA sequences. Valid sequences can include: ACGU, RYSWKMBDHV, N, '-'.
output.nafが出力される。RNA配列なら"--rna"をつけて実行する (default DNA)。
2、decompression
unnaf input.naf > output.fq
#解凍してgzに再圧縮
unnaf input.naf | pigz -p 8 - > out.fq.gz
引用
Nucleotide Archival Format (NAF) enables efficient lossless reference-free compression of DNA sequences
Kirill Kryukov, Mahoko Takahashi Ueda, So Nakagawa, Tadashi Imanishi
Bioinformatics, btz144, Published: 25 February 2019