rajanil / msCentipede

A hierarchical multiscale model for inferring transcription factor binding from chromatin accessibility data.
MIT License
25 stars 6 forks source link

Issues with plot_accessibility_profile.py and output names #10

Closed PFRoux closed 8 years ago

PFRoux commented 8 years ago

Hello,

I am using msCentipede to infer TF binding on ATAC-seq data.

So far, I managed to run the tool successfully on my data set. Nevertheless, i've got an issue with the names given to the output files.

Here are the command lines I ran :

call_binding.py --model msCentipede --protocol ATAC_seq --task learn ./CTCF_D0.txt.gz ../1-NOBLACKLIST_Bam/D0ATAC_Rep1_DEDUP_NOBLACKLIST_SORT.bam ../1-NOBLACKLIST_Bam/D0ATAC_Rep2_DEDUP_NOBLACKLIST_SORT.bam call_binding.py --model msCentipede --protocol ATAC_seq --task infer ./CTCF_D0.txt.gz ../1-NOBLACKLIST_Bam/D0ATAC_Rep1_DEDUP_NOBLACKLIST_SORT.bam ../1-NOBLACKLIST_Bam/D0ATAC_Rep2_DEDUP_NOBLACKLIST_SORT.bam

And here is the list of the outputs I get :

-rw-r--r-- 1 piroux cifs-BischofNGS 11K Dec 10 11:44 _msCentipede_binding_posterior.txt.gz -rw-r--r-- 1 piroux cifs-BischofNGS 1.9K Dec 10 11:42 _msCentipede_log.txt -rw-r--r-- 1 piroux cifs-BischofNGS 3.2K Dec 10 11:42 _msCentipede_model_parameters.pkl

As you can see, there is no base name before "_msCentipede".

Even if this is not a big deal in itself, I assumed this could explain why I get an error when trying to plot the accessibility profile.

When trying to run : plot_accessibility_profile.py --protocol ATAC_seq ./CTCF_D0.txt.gz

I get :

Traceback (most recent call last): File "/mount/gensoft2/exe/msCentipede/1.0/bin/plot_accessibility_profile.py", line 140, in main() File "/mount/gensoft2/exe/msCentipede/1.0/bin/plot_accessibility_profile.py", line 133, in main figure = plot_profile(footprint_model, background_model, mlen, options.protocol) File "/mount/gensoft2/exe/msCentipede/1.0/bin/plot_accessibility_profile.py", line 23, in plot_profile figure = plot.figure() File "/mount/gensoft2/adm/lib/python2.7/site-packages/matplotlib-1.2.0-py2.7-linux-x86_64.egg/matplotlib/pyplot.py", line 343, in figure kwargs) File "/mount/gensoft2/adm/lib/python2.7/site-packages/matplotlib-1.2.0-py2.7-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py", line 79, in new_figure_manager return new_figure_manager_given_figure(num, figure) File "/mount/gensoft2/adm/lib/python2.7/site-packages/matplotlib-1.2.0-py2.7-linux-x86_64.egg/matplotlib/backends/backend_tkagg.py", line 87, in new_figure_manager_given_figure window = Tk.Tk() File "/local/gensoft2/adm/lib/python2.7/lib-tk/Tkinter.py", line 1685, in init** self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) _tkinter.TclError: no display name and no $DISPLAY environment variable

Thanks a lot for your help,

Cheers,

Pef

PFRoux commented 8 years ago

I solved the problem. To run plot_accessibility_profile.py, I've slightly modified the script by adding the following lines at the top :

import matplotlib matplotlib.use('Agg')

Hope that could help.

++

Pef

rajanil commented 8 years ago

Thanks for notifying me about this! I'll incorporate the change in the plotting script. Also, the lack of the base name in the output files is probably because I extract the base name by splitting the file name at a period ('.'). This isn't very general and I'll fix this in the next release.