vaquerizaslab / tadtool

TADtool is an interactive tool for the identification of meaningful parameters in TAD-calling algorithms for Hi-C data.
MIT License
43 stars 13 forks source link

tkinter.TclError: nodisplay name and no $DISPLAY environment variable #2

Closed lwtan90 closed 8 years ago

lwtan90 commented 8 years ago

Hi,

I really love the simplicity of this tool, but I am stuck when it was trying to plot.

Error: python ../../tadtool-master/bin/tadtool plot -a directionality ../../matrix/HL1/chr19_matrix.txt ../../matrix/HL1/chr19_row.txt chr19:1-14999999 2016-07-25 14:42:17,010 INFO Loading matrix... 2016-07-25 14:42:17,315 INFO Loading regions... 2016-07-25 14:42:17,318 INFO Getting window sizes... 100% (100 of 100) |############################################################################| Elapsed Time: 0:00:04 Time: 0:00:04 2016-07-25 14:42:22,815 INFO Done. Showing plot... Traceback (most recent call last): File "../../tadtool-master/bin/tadtool", line 280, in <module> TADtool() File "../../tadtool-master/bin/tadtool", line 40, in __init__ getattr(self, args.command)() File "../../tadtool-master/bin/tadtool", line 183, in plot fig, axes = tad_plot.plot(args.plotting_region) File "build/bdist.linux-x86_64/egg/tadtool/plot.py", line 598, in plot File "/mnt/software/unstowable/anaconda/lib/python2.7/site-packages/matplotlib/pyplot.py", line 527, in figure **kwargs) File "/mnt/software/unstowable/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 84, in new_figure_manager return new_figure_manager_given_figure(num, figure) File "/mnt/software/unstowable/anaconda/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 92, in new_figure_manager_given_figure window = Tk.Tk() File "/mnt/software/unstowable/anaconda/lib/python2.7/lib-tk/Tkinter.py", line 1814, in __init__ self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: no display name and no $DISPLAY environment variable

I am running the code using qsub. The rest of your program runs fine. Can you kindly help me out?

Thank you.

Wilson

vaquerizaslab-old commented 8 years ago

Hi Wilson,

this is an error message of Matplotlib, the plotting library that TADtool uses internally.

You see that problem, because your grid computing cluster (SGE or Oracle grid engine) does not provide an X display environment. On Unix systems, the X window server is what allows the display of information (interactively) on the screen.

If you wanted to use TADtool as a simple non-interactive plotting script, you could instruct Matplotlib to use a non-interactive backend (see here for more information: http://stackoverflow.com/questions/2801882/generating-a-png-with-matplotlib-when-display-is-undefined). However, the power of TADtool lies in its interactive, explorative features, so I am not sure why you would want to do that.

Note that, if your main interest is plotting, you could always import tadtool as a python library and use its plotting feature independently:

import tadtool.tad
import tadtool.plot

matrix = tadtool.tad.HicMatrixFileReader("path/to/matrix").matrix()
regions = tadtool.tad.HicRegionFileReader(""path/to/regions").regions()

hp = tadtool.plot.HicPlot(matrix, regions)
hp.plot('chr1:16000000-18000000')
vaquerizaslab-old commented 8 years ago

I am assuming this is resolved now.