Open Neah-Ko opened 10 months ago
Hi Etienne, Thank you very much for considering/doing this. Currently we don't have the bandwidth to do (or maintain) your proposal. but it is a good resource. We (@baohongz) could put your repo on the list if some user would like to use Docker.
Hello @z5ouyang , Sure, half the point was to make it visible in case someone is looking for such a Dockerfile.
Best,
@Neah-Ko Thanks for sharing the Dockerfile! Looks great and seems a lot of effort kudos. However it looks like the build fails while installing the "rpy2" dependancy. Do you have any pointers on resolving this issue?
Hi @rohitrrj,
@Neah-Ko Thanks for sharing the Dockerfile! Looks great and seems a lot of effort kudos. However it looks like the build fails while installing the "rpy2" dependancy. Do you have any pointers on resolving this issue?
So yeah it's an issue I encountered while crafting the Dockerfile, most likely due to r2py
not finding R
install path. It wasn't occuring on my last runs however, I guess micromamba
solver can be inconsistent with package ordering.
In principle you should set the R_HOME
environment variable just above the environment creation part of the Dockerfile like this:
ENV R_HOME=/env/lib/R/
Could you please post a log of your failing build, so that I could make sure ?
Also, if you are building on MacOS, I know it can introduce some side effects. In that case, let me know your chip model as well as it can be important.
Best,
@Neah-Ko Thanks for the suggestion. Unfortunately, that doesn't seem to solve the issue. The build still fails with the same error. I have attached my build log. I am building on MacOS with Intel chip. Following excerpt from the log file seems to be where the build breaks.
#25 379.9 In file included from build/temp.linux-x86_64-cpython-38/_rinterface_cffi_api.c:57:0:
#25 379.9 /env/include/python3.8/Python.h:44:10: fatal error: crypt.h: No such file or directory
#25 379.9 #include <crypt.h>
#25 379.9 ^~~~~~~~~
#25 379.9 compilation terminated.
#25 379.9 error: command '/env/bin/x86_64-conda-linux-gnu-cc' failed with exit code 1
#25 379.9 [end of output]
@Neah-Ko I was able to resolve the above issue by following the documentation in rpy2 repo described here. Along with your suggestion above adding the following seems to have resolved it.
RUN export LD_PATH=$(python -m rpy2.situation LD_LIBRARY_PATH)
ENV LD_LIBRARY_PATH=$LD_PATH:${LD_LIBRARY_PATH}
The build does finish without errors.
Most of the functions seem to work as expected.
Only exception was the Single Gene
Violin plot which does not seem to populate the actual plot, although the Get Data
does seem to export the underlying matrix.
Hi @Neah-Ko
Thank you so much for all your work on this, I was just wondering if in this docker container you can build cellxgene using the custom tiledb_version of cellxgene you built also.
Hi @Neah-Ko
Thank you so much for all your work on this, I was just wondering if in this docker container you can build cellxgene using the custom tiledb_version of cellxgene you built also.
Hi @mohammed-hussain1259,
Yeah so I've tried to craft a dockerfile
to get both CXG VIP AND the TileDb backend. It is possible to build such an image, however, if TileDb backend is used, then it breaks VIP functionalities.
For a very simple reason: VIP codebase is retrieving data by referencing the AnnData object. I invite you to check out this createData
function that performs the job.
From that it means that to have a unified product we would need to either:
hi, thanks a lot for sharing. this looks great, however, I'm unable to build the docker image (on ubuntu 22) even including the additional lines suggested by @rohitrrj. I'm still getting the same error whne trying to build rpy2
.
any suggestions greatly appreciated!
hi, thanks a lot for sharing. this looks great, however, I'm unable to build the docker image (on ubuntu 22) even including the additional lines suggested by @rohitrrj. I'm still getting the same error whne trying to build
rpy2
. any suggestions greatly appreciated!
Hi @bobermayer ,
Here's what you could try:
VIP_cnag.yml
file from my gist onto your local machinerpy2
from this file, save it, change Dockerfile to use your file instead Since you took out rpy2
from the env file, you want to install it manually in the env after it is created.
Append the following line like this:
RUN micromamba env create ...
...
python3 -m pip install --no-deps /cellxgene*.whl && \
[export R_HOME=/env/lib/R/ && \]
python3 -m pip install rpy2==3.3.5
I'm not sure, the R_HOME line is necessary but you may try both versions.
Let me know if that worked.
Best,
Hi @Neah-Ko
thanks for your message. none of that worked, but I found a workaround by explicitly installing libcrypt-dev
and copying crypt.h
to the expected location (see https://github.com/stanford-futuredata/ColBERT/issues/309).
HI @bobermayer, Thanks for your input.
Interestingly, the built also failed with missing crypt.h
on my machine. I guessed something somewhere changed since I've designed the Dockerfile.
I have added libxcrypt=4.4.36
in the conda env file and updated the Dockerfile to pull latest version.
It seem to have fixed the issue.
Best,
Hello VIP team,
I have been tasked by my structure @bag-cnag to make VIP plugging work for cellxgene.
I am sharing the result here, and am offering to contribute it to the repo via a pull request: https://github.com/bag-cnag/cxg_on_k8/blob/main/docker/Dockerfile_cellxgene_VIP_slim
Notes:
2.1GB
apt
andpip
though)Let me know what you think.
Best, Etienne