sunbeam-labs / sbx_report

Generates a final report, with figures, from a Sunbeam run
3 stars 1 forks source link

Error generating report for large projects #9

Open louiejtaylor opened 5 years ago

louiejtaylor commented 5 years ago

I've been getting spotty report generation for projects--sometimes it will fail and sometimes succeed, but always on a project-by-project basis. I've had some more time to mess around with it, and it seems to fail on projects with large numbers of reads, specifically on the species-heatmap-making step. Based on that plus the traceback below, I think the issue is in generating the .png for the species heatmap:

Quitting from lines 440-445 (.snakemake.tmpdir.final_report.Rmd) 
Error in (function (filename = "Rplot%03d.png", width = 480, height = 480,  : 
  unable to start device 'png'
Calls: <Anonymous> ... block_exec -> chunk_device -> dev_new -> do.call -> <Anonymous>
In addition: Warning message:
In (function (filename = "Rplot%03d.png", width = 480, height = 480,  :
  cairo error 'invalid value (typically too big) for the size of the input (surface, pattern, etc.)'
Execution halted
Error in rule final_report:
    jobid: 0
    output: ~/sunbeam_output/reports/final_report.html

Fortunately, I have a solution! If you tell R to make SVG images instead of PNG, the .Rmd knits fine. I don't see why the output format would be super important, but I wanted a second opinion before making this change. Basically it's as simple as adding dev = 'svg' to the knitr::opts_chunk$set() call in the setup chunk. (Plus then your figs are nice .svgs.) Thoughts?

eclarke commented 5 years ago

Svgs are generally hard to view natively (unless your browser supports it). Does rendering to PDF solve the issue?

On Dec 12, 2018, at 8:08 AM, Louis J Taylor notifications@github.com wrote:

I've been getting spotty report generation for projects--sometimes it will fail and sometimes succeed, but always on a project-by-project basis. I've had some more time to mess around with it, and it seems to fail on projects with large numbers of reads, specifically on the species-heatmap-making step. Based on that plus the traceback below, I think the issue is in generating the .png for the species heatmap:

Quitting from lines 440-445 (.snakemake.tmpdir.final_report.Rmd) Error in (function (filename = "Rplot%03d.png", width = 480, height = 480, : unable to start device 'png' Calls: ... block_exec -> chunk_device -> dev_new -> do.call -> In addition: Warning message: In (function (filename = "Rplot%03d.png", width = 480, height = 480, : cairo error 'invalid value (typically too big) for the size of the input (surface, pattern, etc.)' Execution halted Error in rule final_report: jobid: 0 output: ~/sunbeam_output/reports/final_report.html Fortunately, I have a solution! If you tell R to make SVG images instead of PNG, the .Rmd knits fine. I don't see why the output format would be super important, but I wanted a second opinion before making this change. Basically it's as simple as adding dev = 'svg' to the knitr::opts_chunk$set() call in the setup chunk. (Plus then your figs are nice .svgs.) Thoughts?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

louiejtaylor commented 5 years ago

I haven't tried that, I can tweak and report back. A possible issue I just noticed with the .svg output is that the .html file can be quite large (the one I just generated is like .5GB)

louiejtaylor commented 5 years ago

Failed as follows:

! LaTeX Error: File `ifxetex.sty' not found.

! Emergency stop.
<read *> 

Error: Failed to compile ~/sunbeam_output/reports/final_report.tex. See final_report.log for more info.
Execution halted
Error in rule final_report:
    jobid: 0
    output: ~/sunbeam_output/reports/final_report.html

I don't have time to debug this at the moment, posting in case you have thoughts/have seen this before