ChIP-seq signalのサマリーとして,Deeptoolsの一機能である,ChIP-seq signalのheatmapを描出するplotHeatmapやChipSignalの平均値をだすplotProfileは使いやすいです。
一方,なぜか私の環境だと(Ubuntu18.04,もしくはCentOS)現在のDeeptools (ver3.3.0)だとplotProfileでのY軸の値が消えてしまいます。
このため,plotProfileのcodeの一部に手を加えてみました。
まず,シェルでplotProfileの中身を見てみると,
less $(which plotProfile)
# !/home/USER/anaconda3/bin/python
# -*- coding: utf-8 -*-
# import deeptools.misc
# from deeptools.plotProfile import main
# import sys
# if __name__ == "__main__":
# args = None
# if len(sys.argv) == 1:
# args = ["--help"]
# main(args)
となっており,deeptools.plotProfile moduleのmain関数であることがわかります。
つぎに,このmoduleのpathをさがすためinspect moduleを使います。
pythonを立ち上げて,
import deeptools.misc
from deeptools.plotProfile import main
import inspect
inspect.getfile(main)
>>> '/home/USER/anaconda3/lib/python3.6/site-packages/deeptools/plotProfile.py'
これで,さきほどのmain関数が,plotProfile.py内の関数であることがわかりました。
実際に,このコードの中身を見てみましょう。再びシェルで
vim /home/USER/anaconda3/lib/python3.6/site-packages/deeptools/plotProfile.py
このコードの中身のうち,plot_profile関数 (def plot_profile(self)のところ)の,
最後の方のax.get_yticklabels(), visible=False (deeptools ver3.3.0だと747行目)を
False >>> Trueに変えてみました。
def plot_profile(self):
.............
# remove the numbers of the y axis for all plots
747 #plt.setp(ax.get_yticklabels(), visible=False) ###edit here
748 plt.setp(ax.get_yticklabels(), visible=True)
.............
この後,無事にplotProfileにY軸が表示されるようになっています。