macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

高速かつ高効率にシーケンスデータを圧縮 / 解凍する NAF

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圧縮に関する多数の研究にもかかわらず、現在、データベースの大多数は圧縮にgziphttps://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はシーケンスの長さに制限がなく、リファレンスシーケンスも必要としない。

 

f:id:kazumaxneo:20190306210920p:plain
Comparison of compressors. Githubより

 

NAF Documentation

NAF specification

https://github.com/KirillKryukov/naf/blob/master/NAFv2.pdf

 

f:id:kazumaxneo:20190306185628j:plain 

Kirill Kryukovさんの発表(ゲノム微生物年会2019 3/6 )

 

 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