Windows10でRepeatMaskerを動かす


 
(筆者はパソコンにそこまで詳しいわけではありません。PC上での操作や単語の使い方が誤っていたりする場合がありますのでご容赦ください。)

##○更新 (2020/12/06)

RepBaseのRepeatMasker libraryが有料化されました。利用には使用料を払う必要があります。
RepeatMaskerのホームページを確認すると、Dfamのデータベースを代替で使用できるようなのでそちらの方を推奨します(ただしファイルが数十GBあってとても重い)。


##○RepeatMaskerとは

**RepeatMasker**はInstitute for Systems Biologyが提供しているサービスで、興味のあるDNA配列中にLINEやSINE、satelliteなど**どのような種類のリピート配列が存在しているか検索**してくれます。要は**リピート配列特化型のBLAST検索**です。また、BLAST検索などで障害となるリピート配列を配列中から削除(Nに置換)してくれるため、その配列を使ってさらに解析が行えたりもします。便利なサービスですが、大容量のデータや複数の検索配列は**オンライン検索システムでは対応していない**ため、これを行うためにはローカルに自身のパソコン上でデータベースを作成しプログラムを動かす必要があります。今回は**ローカルで(Windows上で)RepeatMaskerを実際に動かす方法**を書こうと思います。



##○参考にしたサイト
[「CentOSの仮想環境にRepeatMaskerをインストール」](http://kiliwave.hatenablog.com/entry/2014/12/04/191142)
[「RepeatMasker(日々草(TEKの備忘録))」](https://sites.google.com/site/adversariaoftekijima/bioinfo/repeatmasker)



##○大まかな流れ
- Windows Subsystem for Linuxのインストール
- RepeatMaskerに必要なデータベースやプログラムのダウンロードと移動
- RepeatMaskerの初期設定
- 動作確認

通常RepeatMaskerはWindows上では使用できないため、Windows Subsystem for Linuxを使用することでWindows上でUbuntu(Linux)の仮想環境を構築し、そこでRepeatMaskerを動かす算段です。


##手順



###1. Windows Subsystem for Linuxのインストール
ここでは詳しくは書きません。ウェブに大量の情報が落ちていると思うので、そちらを参考に。



###2. RepeatMaskerに必要なデータベースやプログラムのダウンロードと移動
必要なプラグラムやデータ等は以下の5つです。それぞれのファイルの意味とダウンロード先のリンクをまとめます。

#####・RepeatMasker
ローカルでRepeatMaskerを動かすためのプログラムです。最新版をダウンロードし、解凍してください。
[RepeatMasker Download](http://www.repeatmasker.org/RMDownload.html)
解凍したファイルはCドライブ直下に置き「RepeatMasker」等の名前に変更してください。(できるだけ短い名前がおすすめ)

#####・TRF (TANDEM REPEAT FINDER)
**Linux command lineの64bit版をダウンロードして解凍してください。**
[Version 4.09 Downloads (Feb 22, 2016):](http://tandem.bu.edu/trf/trf.download.html)
解凍後、名称を**"trf"**に変更し、先ほど移動させたRepeatMaskerフォルダの直下に置きます。

#####・RMblast
RepeatMaskerを動かすために必要なBLASTのプログラムです。
[ftp://ftp.ncbi.nlm.nih.gov/blast/executables/rmblast/LATEST/](ftp://ftp.ncbi.nlm.nih.gov/blast/executables/rmblast/LATEST/)
ここで、**WinではなくLinuxのプログラムをダウンロードして解凍してください。**
今回私は[ncbi-rmblastn-2.2.28-x64-linux.tar.gz](ftp://ftp.ncbi.nlm.nih.gov/blast/executables/rmblast/LATEST/ncbi-rmblastn-2.2.28-x64-linux.tar.gz)を使用しました。
解凍後、名称を**"rmblast"**に変更し、これも同様に先ほど移動させたRepeatMaskerフォルダの直下に置きます。

#####・BLAST+
ローカルでBLASTを行うためのプログラムです。
[ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/](ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/)
ここでも、**WinではなくLinuxのプログラムをダウンロードして解凍してください。**
今回私は[ncbi-blast-2.8.1+-x64-linux.tar.gz](ftp://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.8.1+-x64-linux.tar.gz)を使用しました。
解凍後、移動させたRMblast内のbinにncmi-blast内のbinの中身をすべてコピーします。


#####・Repbase-derived RepeatMasker libraries
様々なリピート配列のデータが入っています。元はgiri repbaseと呼ばれるリピート配列のライブラリーを扱っているサイトです。利用には会員登録が必要です。非営利機関の場合は無料で登録ができます。しかし、登録完了には数日時間がかかるため注意が必要です。登録が完了したら[Current release of Repbase Update](https://www.girinst.org/server/RepBase/index.php)の4つ目にあるRepbase-derived RepeatMasker libraries: RepBaseRepeatMaskerEdition-20181026.tar.gz (53.48 MB) からダウンロードして解凍します。

###3.RepeatMaskerの初期設定

- WindowsアプリからUbuntuを起動

- Windows上のRepeatMaskerフォルダへのアクセス

```
cd /mnt/c/RepeatMasker
```

- RepeatMaskerの設定を開始

```
./configure
```

- pathの指定(どのプログラムがどのフォルダにいるのか指定する)

perlとRepeatMaskerのpathはデフォルト(でいいはず)

- TRFのpathの設定

```
/mnt/c/RepeatMasker/trf.linux64
```

Add a Search Engineでは
2. RMBlast - NCBI Blast with RepeatMasker extensions: [ Un-configured ]
を選択

- rmblastのpath

```
/mnt/c/RepeatMasker/rmblast/bin
```

ここまで設定が終わったら5. Doneを選択して終了します。

- /mnt/c/RepeatMaskerに移動後、起動を確認

```
/mnt/c/RepeatMasker$ ./RepeatMasker
```

「～Text!!Soundex～」的な分が出てきたら以下のコードを入力

```
sudo cpan Text::Soundex
```

お疲れ様でした。

##4. 動作確認

調べたい配列をWindowsのRepeatMaskerフォルダにfasta形式で配置します。
その後、UbuntuからRepeatMaskerフォルダ上で

```
/mnt/c/RepeatMasker$ ./RepeatMasker @@@@@.fasta
```

とすれば検索が開始されます。出力されるのは以下のファイルです。

@@@@@.fasta.cat：検索に使用したfastaファイル
@@@@@.fasta.masked：　リピート配列がNにマスクされたfastaファイル
@@@@@.fasta.out：　ヒットした反復配列の詳細リスト(LocalBLASTのリストと同じ)
@@@@@.fasta.tbl：　　ヒットした反復配列のカテゴリごとのリスト

また、検索する際に例えば

```
/mnt/c/RepeatMasker$ ./RepeatMasker @@@@@.fasta -species "Homo sapiens"
```

とするとヒトに存在するリピート配列のみで検索をかけることもできます。