Palmsonntagmorgen

NGSデータを使った解析と、その周辺。

DROMPAplusを公開しました

少し前になりますが、DROMPA3のアップデートであるDROMPAplusを正式にリリースしました。

DROMPAplus: a pipeline tool for ChIP-seq analysis — DROMPAplus 1.4.0 documentation

今回はその記事です。

Reference

4月に以下の論文を公開しました。ChIP-seq解析の総説なのですが、中でDROMPAplusについて紹介しています。 この論文を「DROMPAplusのpaper」ということにしようと思っているので、今後もしDROMPAplusを論文で使用してくださる場合はこちらの論文をcitationしていただけると嬉しいです。

www.sciencedirect.com

DROMPAplusの特長

DROMPA3はCで書かれていましたが、DROMPAplusはC++でスクラッチから書き直しました。 そのためDROMPA3の機能のうちまだ未実装のものもありますが、新しく追加されている機能もあります。

ここでは現時点での最新版(version 1.8.1)について記載しています。

Fragment lengthを自動で推定するようになった

DROMPA3はfragment lengthをpredefinedの固定長にしていましたが、DROMPAplusは内部でSSPを動かすことでsingle-end readでもfragment lengthを自動で推定します。 サンプルのマップリード数が極めて少ない場合などにはうまく推定できなくなりますので、得られた推定長が妥当かスタッツファイルで確認するようにしてください。

外部のwigファイルを入力にできるようになった

DROMPA3は入力のwig/Bigwig/BedGraphを読み込む時に一緒に総リード数などをまとめたスタッツファイルを読み込むため、parse2wigで生成されたwigファイルしか実質的に入力にできませんでした。 DROMPAplusではスタッツファイルのない(外部ツールで生成された)wigファイルを入力にした場合、初回時に自動でスタッツファイルを新たに生成し、2回目以降はそれを読み込むようになります。

2サンプルをoverlayできるようになった

DROMPA3でも隠れオプションで存在していたのですが、DROMPAplusで正式な機能になりました。

f:id:rnakato:20200622120724j:plain

こんな感じ。昨年出した血管内皮論文では、H3K4me3とH3K27acをoverlayすることでエンハンサー・プロモーター領域を視認できるようにしました。 (透明度もオプションで変更できます)

Hi-Cループを可視化できるようになった

f:id:rnakato:20200622121046j:plain

こんな感じ。 DROMPA3ではChIA-PETループ(Mango) しか対応していませんでしたが、DROMPAplusではHICCUPS(Juicertools)のループフォーマットにも対応しています。なお、色はループの重要度を表しています。

負の値を可視化できるようになった

図は省略。read distribuionは正の値しか持たないため負の値は対象にしていませんでしたが、Compartment scoreなどのBedGraphファイルを可視化するために負の値も可視化できるようにしました。

染色体構造の可視化

f:id:rnakato:20200622121704j:plain

この図上部の染色体の図のことです。GVでこれを表示したいとずっと思っていたのですが、Ideogramという名前で保存されていることがわかったので、この度オプションで可視化できるようにしました。

正規化後のDistributionをWigで出力できるようになった

DROMPAplusで可視化されている ChIP/Input enrichment, p-valueなどは全てwig/Bigwig/BedGraph形式で出力可能です。 これらはスムージングやspike-in normalizationなどユーザが指定したオプションを反映したかたちで出力されるため、他のツールを利用した下流解析が楽になりました。

PROFILEコマンドで .tsv ファイルを出力するようになった

PROFILEでaveraged profileを可視化する時は今までpdfとRスクリプトしか出力していませんでしたが、一緒に元データの.tsvファイルも出力するようにしました。そのため出力ファイルのサイズが大きくなっていますが、このtsvファイルを使って色々下流解析をすることが可能です。

これに伴いDROMPA3のHEATMAPコマンドは廃止し、drompa.heatmap.py という名前のPythonスクリプトを新たに追加しました。このスクリプトに上のtsvファイルを読み込ませることで今まで通りHeatmapを生成できます。

Install

詳細はこちら:

https://drompaplus.readthedocs.io/en/latest/content/Install.html#

ソースファイルからインストールする時は以下のようにします。git cloneする時に --recursiveオプションをつけることに注意してください。

DROMPAplusはCMakeを使っているのですが、内部で利用しているhtslibライブラリがMakefileで動いているためMakefileでラップしています。 以下のようにするとインストール可能です。

(version1.5.0ではMacコンパイルエラーが出ましたが、最新バージョンでは解消されているはずです。もしエラーが出ましたらご一報を。)

git clone --recursive https://github.com/rnakato/DROMPAplus
cd DROMPAplus
make

Docker

Dockerイメージも提供しています。以下のようにすれば実行可能です。

docker pull rnakato/ssp_drompa
docker run -it --rm rnakato/ssp_drompa drompa+

終わりに

言語をC++に変更したので拡張の自由度が広がりました。今後もどんどん機能を追加していく予定ですので、リクエストあればお知らせください。

旧版のDROMPA3も引き続き利用可能ですが、アップデートはバグ修正など必要最小限に留める予定ですので、現在DROMPA3を利用されている方は是非DROMPAplusへの移行をお願いします。