snakemake-workflows / rna-seq-kallisto-sleuth

A Snakemake workflow for differential expression analysis of RNA-seq data with Kallisto and Sleuth.
MIT License
66 stars 44 forks source link

Error in rule diffexp_datavzrd #128

Closed fangpingmu closed 1 week ago

fangpingmu commented 1 week ago

I am using conda to run this pipeline.

When the pipeline goes to step diffexp_datavzrd, it generates the following errors.

ModuleNotFoundError: No module named 'numpy._core._multiarray_umath'

I go through the logs. I believe that the root cause is the conda environment. It is under .snakemake/conda/2d3512dc4cb963aa76b0a6ae36f9177d. I used “source activate .snakemake/conda/2d3512dc4cb963aa76b0a6ae36f9177d” to check the conda env. This conda environment does not include numpy, so site-packages/numpy/init.py is called.

raise ImportError(msg) from e

ImportError: Error importing numpy: you should not try to import numpy from its source directory; please exit the numpy source tree, and relaunch your python interpreter from there.

The problems have been explained in this stackoverflow discussion.

https://stackoverflow.com/questions/14570011/explain-why-numpy-should-not-be-imported-from-source-directory

dlaehnemann commented 1 week ago

We have also seen this in our continuous integration tests here on GitHub Actions, and in workflow runs. I think there is no real fix for this, but maybe @fxwiegand has already tried out a workaround we recently came up with. I'm curious to know if this worked.

fxwiegand commented 1 week ago

We have also seen this in our continuous integration tests here on GitHub Actions, and in workflow runs. I think there is no real fix for this, but maybe @fxwiegand has already tried out a workaround we recently came up with. I'm curious to know if this worked.

This is really an issue with a big rat tail I think. It all started with Datavzrd needing pyo3 for the new spell feature. We tried to fix by adding numpy etc. to the datavzrd wrapper as a dip but that apparently didn't help. @johanneskoester any idea how we should proceed?

A temporary and not so nice fix would definitely be passing on the numpy data in the datavzrd diffexp rule not as a dumpy object.

johanneskoester commented 1 week ago

Yes, this is a pity, but on the other hand good, because it will hopefully lead to a final fix that avoids these problems in the future. Working on that today.

johanneskoester commented 1 week ago

Should be fixed with #126 and snakemake 8.25.2 (just released).