The major new feature in SeqMonk v0.30.x was the introduction of a bridge between SeqMonk and R, which allows the program to transparently run analyses in R from within the SeqMonk interface. This functionality makes it very easy to run popular algorithms such as DESeq and EdgeR without having to write custom scripts or go through data export / import operations.
Unfortunately adding these functions also introduced a new source of failure into SeqMonk – ie that something could go wrong within the R process itself. Whilst the error will be spotted by SeqMonk and can be reported through the usual crash reporter, because the error wasn’t within SeqMonk’s code base it’s often very hard for us to track down the exact cause from the details provided in the error report.
Providing better error reports
If you get a crash report which says something like “R failed to complete (exit 1)”, please do send it in as we want to know how often this is happening. In order to allow us to diagnose this fully it would be useful if you could send us some more information as well though.
Specifically, when SeqMonk runs an R script it generates a temporary directory in your cache folder. You will have set this up when you first installed the program. If you can’t remember where you put it you can go to Edit > Preferences and look under the “Memory” tab at the location under “Cache reads to disk”.
When you have an R problem the temporary directory is left in the cache folder. If you close SeqMonk you should see a folder left which is called something like “seqmonk_[some numbers]_tempd0”. Inside this folder will be the data and script files for the R process which failed. The exact file names will vary depending on what function you were running, but you should always find a file called script.r and another called script.r.Rout. The file which can tell us what happened when R failed is in script.r.Rout, if you submit an R related crash report can you please locate this file and then email that to email@example.com and we’ll do our best to figure out what when wrong in your specific case.