2019 5/15 タイトル修正、画像追加、コメント追加
2019 7/17 インストール手順修正、コメント追加
メタゲノミクスは、土壌、海、さらには人体のような様々な環境でコミュニティとして共生するバクテリアの集合したDNAを決定することにある[論文より ref.1-3]。ある意味では、メタゲノミクスの分野は、科学者が特定のコミュニティに存在するすべての生物を調査し、特定の微生物の存在または不在の結果を推論する可能性があるため、遺伝子とゲノムの伝統的な研究を超越している。例えば、胃腸内微生物叢の配列決定は、ヒトの健康状態における微生物の役割を理解することを可能にする[ref.4]。
それにもかかわらず、次世代シーケンシング(NGS)に属し、依然として市場で最も普及している技術である第二世代シーケンシング技術は、メタゲノムを構成する各生物の個々のゲノムを完全に配列決定することができない。代わりに、NGSプラットフォームは、異なる生物のゲノムの混合物のランダムな位置からのDNAの小さな断片だけを検出する[erf.5]。したがって、メタゲノム解析の基本的な課題の1つは、メタゲノムの個々のゲノムを再構成するために、短いリードを重複させコンティグと呼ばれる長い断片を作り遺伝子レパートリーを表現することである [ref.6] 。この作業はmetagenome assembly problemと呼ばれる。
大まかに言えば、メタゲノムアセンブリは、リファレンスゲノムガイドによる方法と、リファレンスフリーの方法がある。リファレンスアセンブリは、培養された微生物のゲノムにリードをアライメントさせることによって行う[ref.7]。しかしながら、この方法は、ほとんどの環境の微生物多様性が参照データベースによってカバーされる範囲をはるかに超えているため、かなり限定されている。その結果、多くの未知の微生物を含むメタゲノムを再構築する場合には、デノボアセンブリを行う必要がある。
一見したところ単純だが、メタゲノムアセンブリの問題は実際にはかなり複雑である。このタスクが発生するいくつかの課題の中で、各プラットフォームに固有のシーケンスエラーと、NGSプラットフォームによって生成される大量のデータの処理[ref.8]がある。さらに、この問題は、ゲノムのサイズの変動、および微生物群集に存在する各生物の複雑さ、多様性および豊富さによってもさらに複雑になる[ref.9]。これらの理由から、メタゲノムアセンブリは困難な問題となる。
このような課題を解決するため、メタゲノムアセンブラを用いてde novoアセンブリを直接実行するか、メタゲノムに存在する各生物を個々に組み立てるためにショートリードを事前にクラスタリングすることができる[ref.10]。後者のアプローチでは、メタゲノムアセンブリ中に計算の複雑さを減らすという利点がある。なぜなら、アセンブラはクラスタリングされて軽量化されたショートリードのサブセットを処理でき、さらに互いに独立した各ゲノムのアセンブリを並行して実行できるからである。計算の複雑さの削減は、アセンブリ前のデジタル正規化またはデータパーティショニングによっても達成でき、冗長シーケンスを削除することによってデータセットを削減し、それを同様のリードグループに分割する[ref.11 pubmed]。
本研究の主な焦点は、計算量の削減とメタゲノムアセンブリの改善に向けたデータ分割手法の適用である。 GCSplitと呼ばれる開発された計算手法は、リードのヌクレオチド組成、すなわちDNA配列上に存在する塩基A、G、CおよびTの量を使用する。この決定は、メタゲノムを構成する異なる生物または遺伝子が異なるGC含量を有し、異なるGC含量がカバレッジ変動を示すという事実に基づいており、これは選択されたk-merのに影響を与える。
実際のデータで行われた実験では、アセンブリ前にGCSplitを使用してショートリードを前処理するとメモリ消費量が減少し、N50メトリックの増加やアセンブリで生成されたL50値とコンティグの総数が減少した。
GCSplitワークフロー。BioRxiv preprintより転載。
インストール
cent OS6とubuntu16.04でテストした。
依存
- kmerstream(紹介)
- metaspades
kmerstreamはbrewでインストールできる。またはgithubからcloneしてビルドすればよいが、このツールは依存も含めてインストールしてくれるので、kmerstreamも本体をビルドすれば導入される。
git clone https://github.com/mirand863/gcsplit.git
cd gcsplit/
bash install.sh
source ~/.bashrc
>gcsplit -h
$ gcsplit -h
GCSplit v1.2
A software to partition paired FASTQ files
Usage: gcsplit [options] -o <output_dir>
Basic options:
-o/--output <output_dir> Folder to store all the files generated during the assembly (required).
-p/--partitions <int> Number of partitions [default: 16]
-w/--whole Use whole dataset to merge [default: off]
--iontorrent This flag is required for IonTorrent data.
-h/--help Prints this usage message.
-v/--version Prints version info
Input data:
-f/--forward <filename> File with forward paired-end reads.
-r/--reverse <filename> File with reverse paired-end reads.
-s/--single <filename> File with unpaired reads.
Advanced options:
-t/--threads <int> Number of threads [default: 4]
-k/--kmers <int> Number of kmers to run the assembly [default: 3]
Please, report bugs to: miranda.fmm@gmail.com
Software homepage: <https://github.com/mirand863/gcsplit>
KmerStreamにもパスが通っているか確認しておく。
> KmerStream 1.1
KmerStream 1.1
Estimates occurrences of k-mers in fastq or fasta files and saves results
Usage: KmerStream [options] ... FASTQ files
-k, --kmer-size=INT Size of k-mers, either a single value or comma separated list
-q, --quality-cutoff=INT Comma separated list, keep k-mers with bases above quality threshold in PHRED (default 0)
-o, --output=STRING Filename for output
-e, --error-rate=FLOAT Error rate guaranteed (default value 0.01)
-t, --threads=INT SNumber of threads to use (default value 1)
-s, --seed=INT Seed value for the randomness (default value 0, use time based randomness)
-b, --bam Input is in BAM format (default false)
--binary Output is written in binary format (default false)
--tsv Output is written in TSV format (default false)
--verbose Print lots of messages during run
--online Prints out estimates every 100K reads
--q64 set if PHRED+64 scores are used (@...h) default used PHRED+33
metaspadesも同様。
ラン
ペアエンドのシーケンスデータを指定する(gzip圧縮には対応していない)。-pで分割個数を指定する。
gcsplit -p 16 -t 20 -f pair1.fq -r pair2.fq -o output_dir
- -f File with forward paired-end reads.
- -r File with reverse paired-end reads.
- -s File with unpaired reads.
- -o Folder to store all the files generated during the assembly (required).
- -p Number of partitions [default: 16]
- -t Number of threads [default: 4]
- -k Number of kmers to run the assembly [default: 3]
gcsplit/にはsplitされたリードが出力される(defaultだと"-p16"なので16x2ファイル出力される)。
分割後、アセンブリが行われる。
最終出力は個別アセンブリと、mergeしたアセンブリになる。
merged/
注意: 圧縮したfastqは扱えないので注意してください。解凍して使う必要があります。
> gzip -dv input.fq.gz
引用
Improving Metagenomic Assemblies Through Data Partitioning: a GC content approach
Fabio Malcher Miranda, Cassio Batista, Artur Silva, Jefferson Morais, Nelson Neto, Rommel Ramos
BioRxiv preprint doi: https://doi.org/10.1101/261784
Miranda F., Batista C., Silva A., Morais J., Neto N., Ramos R. (2018)
Improving Metagenomic Assemblies Through Data Partitioning: A GC Content Approach. In: Rojas I., Ortuño F. (eds) Bioinformatics and Biomedical Engineering. IWBBIO 2018. Lecture Notes in Computer Science, vol 10813. Springer, Cham.
関連