RepeatScoutはゲノム中のトランスポゾンなどのリピートを探すツール。リピートを見つけると、そのシードを保存性がなくなるまで伸長する戦略をとることで、見つかりにくい長くてやや配列に違いがあるリピートまで探索することが可能とされる(タンデムリピートやlow-complexityリピートは本手法のターゲットではない)。オーサーらの用意したデータでは、競合のRECONと比較して10倍以上短い時間で、2倍以上のリピートが検出されている。 RepeatMaskerの出力に対応している。
インストール
依存
- Tandem Repeats Finder
https://tandem.bu.edu/trf/trf409.macosx.download.html
- RepeatMasker
http://www.repeatmasker.org/RMDownload.html
Tandem Repeat Finderはバイナリをダウンロードして、trfとリネームする。RepeatMaskerはここからダウンロードして解凍し、”perl ./configure”して指示に従っていくだけでインストールできる。途中で聞かれるperlのパスはosxなら "/usr/bin/perl"、他のツールのパスはwhichで確認する。最後のサーチエンジンは用途に応じて1つ以上選ぶ。
https://github.com/mmcco/RepeatScout
brewで導入できるが、サブコマンドが入らないので自分でビルドする。
git clone https://github.com/mmcco/RepeatScout.git
cd RepeatScout
make
フォルダ全体にパスを通しておく。trfにリネームしたTandem Repeats Finderもここにコピーしておく。
> ./RepeatScout
$ ./RepeatScout
RepeatScout Version 1.0.5
Usage:
RepeatScout -sequence <seq> -output <out> -freq <freq> -l <l> [opts]
-L # size of region to extend left or right (10000)
-match # reward for a match (+1)
-mismatch # penalty for a mismatch (-1)
-gap # penalty for a gap (-5)
-maxgap # maximum number of gaps allowed (5)
-maxoccurrences # cap on the number of sequences to align (10,000)
-maxrepeats # stop work after reporting this number of repeats (10000)
-cappenalty # cap on penalty for exiting alignment of a sequence (-20)
-tandemdist # of bases that must intervene between two l-mers for both to be counted (500)
-minthresh # stop if fewer than this number of l-mers are found in the seeding phase (3)
-minimprovement # amount that a the alignment needs to improve each step to be considered progress (3)
-stopafter # stop the alignment after this number of no-progress columns (100)
-goodlength # minimum required length for a sequence to be reported (50)
-maxentropy # entropy (complexity) threshold for an l-mer to be considered (-.7)
-v[v[v[v]]] How verbose do you want it to be? -vvvv is super-verbose.
——
> ./build_lmer_table
$ ./build_lmer_table
build_lmer_table Version 1.0.5
Usage:
build_lmer_table -l <l> -sequence <seq> -freq <output> [opts]
-tandem <d> --- tandem distance window (def: 500)
-min <#> --- smallest number of required lmers (def: 3)
-v --- output a small amount of debugging information.
> ./filter-stage-1.prl -h
FILTER-STAGE-1.PRL(1) User Contributed Perl DocumentationFILTER-STAGE-1.PRL(1)
NAME
filter-stage-1.prl -- a first stage post-processing tool for
RepeatScout output.
SYNOPSIS
cat repeats.fa | filter-stage-1.prl > repeats-filtered.prl
OPTIONS
none other than "-h" (the output of which you're reading), but you will
either want trf and nseg in your PATH, or you will want to set the
environment variables TRF_COMMAND and NSEG_COMMAND to provide the
executable.
DESCRIPTION
This tool takes a repeat library, which is a Fasta-formatted sequence
file, and filters out any sequence that is deemed to be more than 50%
low-complexity by either TRF or NSEG or both. Note that one algorithm
needs to make the determination; we don't check the total number of
unique bases masked out by TRF and NSEG individually.
ENVIRONMENT VARIABLES
In order for this program to find TRF and NSEG, you need to either
place said programs in your PATH, or you need to add the environment
variables TRF_COMMAND and NSEG_COMMAND. The value of those variables
should be the path at which the respective program can be found.
perl v5.18.2 2018-04-19 FILTER-STAGE-1.PRL(1)
リピートライブラリ
http://bix.ucsd.edu/repeatscout/
実行方法
ランは複数段階で行う。
1、データベースのビルド。全ての1-merの配列をpick upしてテーブルにする。
build_lmer_table -l 14 -sequence input.fasta -freq output.freq
2、そのテーブルファイルからFASTAを作る。
RepeatScout -sequence input.fasta -output output_repeats.fasta -freq output.freq -l 14
3、単純リピートなどを除外する。またデフォルトでは繰り返し数が10以下のリピートも排除する。
cat output_repeats.fasta | filter-stage-1.prl > repeats_filtered_stg1.fasta
4、RepeatMaskerでフィルタリングされた領域を分析する。
RepeatMasker -pa 20 -s -lib repeats_filtered_stg1.fasta input.fasta &
5、step4と並行して、規定回数登場しなかったリピートを排除する作業を行う。
cat repeats_filtered_stg1.fasta | filter-stage-2.prl --cat=Final_assembly.fasta.out --thresh=3 > repeats_filtered_stg2.fasta
6、RepeatMaskerで検出された部位を元に、step5の結果から最終的なリピート情報を出力する。
RepeatMasker -pa 20 -s -lib repeats_filtered_stg2.fasta input.fasta
引用
De novo identification of repeat families in large genomes.
Price AL1, Jones NC, Pevzner PA.
Bioinformatics. 2005 Jun;21 Suppl 1:i351-8.
SEQanswers
http://seqanswers.com/forums/showthread.php?t=5448