macでインフォマティクス

macでインフォマティクス

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

Fermi-lite

 

 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に関するツイート。

 

インストール

GIthub

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に読み込ませる。

f:id:kazumaxneo:20180712172343j:plain

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

A proposal of the Grapical Fragment Assembly format