10XGenomics / cellranger

10x Genomics Single Cell Analysis
https://www.10xgenomics.com/support/software/cell-ranger
Other
355 stars 92 forks source link

cellranger-7.1.0: patches to fix broken PYTHONPATHs #218

Closed mmokrejs closed 11 months ago

mmokrejs commented 1 year ago

Hi, the cellranger parent job controlling child jobs dies due to wrong PATHs set in place. I guess it happened due to an python-3.9 upgrade in the cellranger distribution which get installed into slightly different path and lack of testing.

$ ./cellranger-7.1.0/external/anaconda/bin/python -m site
sys.path = [
     '/auto/brno2/home/mmokrejs/10xgenomics',
     '/auto/brno2/home/mmokrejs/10xgenomics/cellranger-7.1.0/external/anaconda/lib/python39.zip',
     '/auto/brno2/home/mmokrejs/10xgenomics/cellranger-7.1.0/external/anaconda/lib/python3.9',
     '/auto/brno2/home/mmokrejs/10xgenomics/cellranger-7.1.0/external/anaconda/lib/python3.9/lib-dynload',
     '/auto/brno2/home/mmokrejs/10xgenomics/cellranger-7.1.0/external/anaconda/lib/python3.9/site-packages',
]
USER_BASE: '/storage/brno2/home/mmokrejs/.local' (exists)
USER_SITE: '/storage/brno2/home/mmokrejs/.local/lib/python3.9/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
$

The problem is that cellranger but likewise longranger ignore the ./cellranger-7.1.0/external/anaconda/lib/python3.9/site-packages probably due to export PYTHONNOUSERSITE="1"​​​ defined in ./cellranger-7.1.0/sourceme.bash​, cellranger-7.1.0/.env.json and cellranger-7.1.0/sourceme.csh . But provided the python to be used was installed from within conda environment it should not ignore ./cellranger-7.1.0/external/anaconda/lib/python3.9/site-packages .

Per https://docs.python.org/3/library/site.html it seems to me the original intention was to ignore $HOME/.local/ user's addons but not to ignore ./cellranger-7.1.0/external/anaconda/lib/python3.9/site-packages.

Fixes:

$ export PATH=$HOME/10xgenomics/cellranger-7.1.0/bin:$HOME/10xgenomics/cellranger-7.1.0/external/anaconda/bin:$HOME/10xgenomics/cellranger-7.1.0/lib/bin:$HOME/10xgenomics/cellranger-7.1.0/external/martian/bin:$PATH
export PYTHONPATH=$HOME/10xgenomics/cellranger-7.1.0/external/lib/python:$HOME/10xgenomics/cellranger-7.1.0/external/anaconda/lib/python3.9:$HOME/10xgenomics/cellranger-7.1.0/external/anaconda/lib/python3.9/site-packages:$HOME/10xgenomics/cellranger-7.1.0/external/martian/adapters/python:$HOME/10xgenomics/cellranger-7.1.0/lib/python:$HOME/10xgenomics/cellranger-7.1.0/external/anaconda/lib:"$PYTHONPATH"
$

.env.json.patch.txt sourceme.bash.patch.txt sourceme.csh.patch.txt