Question: DEXSeqHTML getListElement GRanges error
0
4 months ago by
United States
Lance Parsons0 wrote:

When running DEXSeqHTML, I got the following error:

Fatal error: An undefined error occured, please check your input carefully and contact your administrator.
converting counts to integer mode
Warning message:
In DESeqDataSet(rse, design, ignoreRank = TRUE) :
some variables in design formula are characters, converting to factors
using supplied model matrix
using supplied model matrix
using supplied model matrix
Error in getListElement(x, i, ...) :
GRanges objects don't support [[, as.list(), lapply(), or unlist() at
the moment
Calls: DEXSeqHTML ... tryCatch -> tryCatchList -> tryCatchOne ->


This was run using the Galaxy wrapper. However, the error appears to be coming from the DEXSeqHTML function and I can't quite tell where in that function it's failing. Another user on Biostars ran into the same error. Any help tracking down the source of the problme would be much appreciated.

dexseq software error bug • 206 views
modified 4 months ago by nitesh.turaga140 • written 4 months ago by Lance Parsons0

Thanks for reporting this! I would need more information to track the source of the error. Could you include the complete code that you are using along with the output of sessionInfo()?

Not easily, as I said this is being run via the Galaxy wrapper. The command being executed is:

mkdir ./html_out && Rscript '/galaxy/shed_tools/toolshed.g2.bx.psu.edu/repos/iuc/dexseq/f89c9b25feb4/dexseq/dexseq.R' -o '/galaxy/files/000/378/dataset_378056.dat' -p ${GALAXY_SLOTS:-4} -f '[["N2", [{"OP50": ["/galaxy/files/000/378/dataset_378044.dat", "/galaxy/files/000/378/dataset_378046.dat", "/galaxy/files/000/378/dataset_378048.dat", "/galaxy/files/000/378/dataset_378050.dat", "/galaxy/files/000/378/dataset_378052.dat", "/galaxy/files/000/378/dataset_378054.dat"]}, {"PA14": ["/galaxy/files/000/378/dataset_378043.dat", "/galaxy/files/000/378/dataset_378045.dat", "/galaxy/files/000/378/dataset_378047.dat", "/galaxy/files/000/378/dataset_378049.dat", "/galaxy/files/000/378/dataset_378051.dat", "/galaxy/files/000/378/dataset_378053.dat"]}]]]' -a /galaxy/files/000/378/dataset_378040.dat -c 0.05 -r ./html_out && mkdir '/galaxy/galaxy-app/database/jobs_directory/000/188/188641/dataset_378057_files' && cp ./html_out/testForDEU.html /galaxy/files/000/378/dataset_378057.dat && cp -r ./html_out/* '/galaxy/galaxy-app/database/jobs_directory/000/188/188641/dataset_378057_files'  The dexseq.R script is part of the wrapper, but you can see the code on GitHub (linked). The portion of the script that runs the DEXSeqHTML function is: save(dxd, resSorted, file = file.path(opt$reportdir,"DEXSeq_analysis.RData"))
save.image()
DEXSeqHTML(res, fitExpToVar=primaryFactor, path=opt$reportdir, FDR=opt$fdr, color=c("#B7FEA0", "#FF8F43", "#637EE9", "#FF0000", "#F1E7A1", "#C3EEE7","#CEAEFF", "#EDC3C5", "#AAA8AA"))


It is using the Conda package bioconductor-dexseq==1.24.0 for the dependencies, so creating a conda environment with that should reproduce the R environment. Let me know if that is helpful enough. If not, I can try to reproduce the error locally somehow.

Lance, this "smells" like a version mismatch problem with the particular instance of R and Bioconductor packages (DEXSeq and its various dependencies) you are using. It's hard to say more or diagnose such things remotely. Can you do one (or both) of the following?

• create a minimal working example;
• reinstall R and all required packages from scratch, following the instructions, to make sure there are no zombies in the cellar.

I'm making progress in resolving the issue. It seems that moving to the bioconda package for 1.26.0 fixes the problem. However, I've realized that the python helper scripts aren't compatible with python3. It's a pretty minor change to fix them, and I'd be happy to submit a PR or patch. What is your preferred method for doing so? Is there a GitHub mirror?

Thanks Alejandro. I was able to work around the issue by updating the bioconductor package to DEXSeq 1.26.0. However, there are a couple of issues with the python scripts that I'd like to address.

1. The biggest issue is on line 175 of dexseq_count.py there is a version test that fails for HTSEQ version 0.11.0. I suggest changing that to

 from pkg_resources import parse_version
if parse_version(HTSeq.__version__) < parse_version('0.5.4p4'):

2. The second issue is that the scripts aren't python3 compatible. That's not a showstopper, but does impose a requirement (python2) on the environment that DEXSeq is installed in.

I'd be more than happy to submit pull requests or patches for these, but I'm not sure how you would prefer that be done. Please let me know how you would prefer a patch/pr be submitted. Thanks!

Thanks for looking into this Lance!

Thanks for finding the fix for the python script. Could you submit a pull request with your for to this repo: https://github.com/areyesq89/DEXSeq ?

0
4 months ago by
nitesh.turaga140
United States
nitesh.turaga140 wrote:

Hi Lance,

I guess you can install bioconductor-dexseq==1.24.0 on a new conda environment, and copy the script being run from the tool, and use it within that conda environment?

AS you mentioned the script being run is

/galaxy/shed_tools/toolshed.g2.bx.psu.edu/repos/iuc/dexseq/f89c9b25feb4/dexseq/dexseq.R.

The input and output params are mentioned in that script. Maybe try to reproduce it locally on that environment. Once having done that, modify the script a little by adding a sessionInfo() command at the start.

Let me know if you have anymore questions. But it could be what Wolfgang says as well, that there is a version mismatch. DEXseq 1.24.0 is being used on both R-3.4.1 and R-3.5.1.