Fermi-liteはHeng Liさん(wiki)がGithubで公開されているスタンドアロンのCライブラリ。イルミナのショートリードを100bpから1,000万bpの領域でアセンブリするコマンドラインツールとしても機能する。Fermi-liteはオーバーラップベースのアセンブリを行う。 全データを中間ファイルを生成することなくメモリにキャッシュして働く、Fermikit(Heng Li, 2015)の軽量バージョンとなっている。 パフォーマンス、比較的小さなメモリフットプリント、およびfermikitの機能を継承している。 Fermi-liteはヘテロ接合部位を保持でき、したがって、二倍体領域を組み立てバリアントコールに使用することができる。最もシンプルなインタフェースとなっている。最終出力はunitig(*1)。ここではコマンドラインの機能を紹介する。
Limitations(Githubより転載)
-
Fermi-lite can efficiently assemble bacterial genomes. However, it has not been carefully tuned for this type of assembly. While on a few GAGE-B data sets fermi-lite appears to work well, it may not compete with recent mainstream assemblers in general.
-
Fermi-lite does not work with genomes more than tens of megabases as a whole. It would take too much memory to stage all data in memory. For large genomes, please use fermikit instead.
-
This is the first iteration of fermi-lite. It is still immarture. In particular, I hope fermi-lite can be smart enough to automatically figure out various parameters based on input, which is very challenging given the high variability of input data.
Fermi-liteに関するツイート。
インストール
git clone https://github.com/lh3/fermi-lite
cd fermi-lite && make
#"fml-asm"ができる。パスの通ったディレクトリにコピーしておく。
#テストラン
./fml-asm test/MT-simu.fq.gz > MT.fq
> ./fml-asm
$ ./fml-asm
Usage: fml-asm [options] <in.fq>
Options:
-e INT k-mer length for error correction (0 for auto; -1 to disable) [0]
-c INT1[,INT2] range of k-mer & read count thresholds for ec and graph cleaning [4,8]
-l INT min overlap length during initial assembly [33]
-r FLOAT drop an overlap if its length is below maxOvlpLen*FLOAT [0.7]
-t INT number of threads (don't use multi-threading for small data sets) [1]
-d INT retain a bubble if one side is longer than the other side by >INT-bp [50]
-A discard heterozygotes (apply this to assemble bacterial genomes; override -O)
-O don't apply aggressive tip trimming
-g output the assembly graph in the GFA format
——
ラン
#ペアエンドはインターレースにしておく。ペアエンド情報は使わないのでcatを使ってもOK
seqtk mergepe pair1.fq pair2.fq > paired.fq
#de novoアセンブリ。出力はFASTQフォーマットになっている。
fml-asm -A -t 16 paired.fq > out.fq
- -A discard heterozygotes (apply this to assemble bacterial genomes; override -O)
- -t number of threads (don't use multi-threading for small data sets) [1]
2倍体ゲノムをアセンブリし、GFA(*2)出力する。
fml-asm -g -A -t 16 paired.fq > out.gfa
- -g output the assembly graph in the GFA format
できた.gfaファイルをBandageに読み込ませる。
Bandageは以前紹介しています。
Cのライブラリとして使用する場合はGithubの例を参考にしてください
引用
FermiKit: assembly-based variant calling for Illumina resequencing data.
Li H.
Bioinformatics. 2015 Nov 15;31(22):3694-6.
参考
*1 What is a unitig? How does it differ from a contig?
https://www.quora.com/What-is-a-unitig-How-does-it-differ-from-a-contig
*2 ACGT Blog. The Graphical Fragment Assembly (GFA) format
http://www.acgt.me/blog/2014/10/15/the-graphical-fragment-assembly-gfa-format
3* Heng Li Blog. A proposal of the Grapical Fragment Assembly format