openvax / mhcflurry

Peptide-MHC I binding affinity prediction
http://openvax.github.io/mhcflurry/
Apache License 2.0
191 stars 57 forks source link

How to use docker #191

Closed yueli8 closed 2 years ago

yueli8 commented 3 years ago

Hello,

Thank you for developing so nice software.

Following is my code. How I can use docker command?

Thank you in advance for your great help!

Best,

Yue

inspiron-3670:~$ docker run -p 9999:9999 --rm openvax/mhcflurry:latest
/opt/conda/lib/python3.8/site-packages/traitlets/traitlets.py:2196: FutureWarning: Supporting extra quotes around Unicode is deprecated in traitlets 5.0. Use '' instead of "''" – or use CUnicode.
  warn(
[I 15:47:31.771 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 15:47:31.946 NotebookApp] All authentication is disabled.  Anyone who can connect to this server will be able to run code.
[I 15:47:31.948 NotebookApp] Serving notebooks from local directory: /root
[I 15:47:31.948 NotebookApp] Jupyter Notebook 6.1.5 is running at:
[I 15:47:31.948 NotebookApp] http://d2d93d87f7b4:9999/
[I 15:47:31.948 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
timodonnell commented 3 years ago

Try going to http://localhost:9999 in a browser after you run that command. It should open up a jupyter notebook where you can try MHCflurry. Or if you just want to run MHCflurry on the commandline via docker, you can run something like:

docker run --rm openvax/mhcflurry:latest mhcflurry-predict --peptides SIINFEKL --alleles HLA-A*02:01
yueli8 commented 3 years ago

Hello timodonnell,

Thank you so much for your quick response!

I can open http://localhost:9999 to see my results.

May I ask you another question? How I can run the following command?

Thank you in advance for your great help!

Best,

Yue

Inspiron-3670:~$ docker run --rm openvax/mhcflurry:latest mhcflurry-predict --peptides SIINFEKL --alleles HLA-A*02:01
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
timodonnell commented 3 years ago

The permission denied message is a docker thing - googling will find help on that. You probably need to run your docker command with sudo.

yueli8 commented 3 years ago

Hello timodonnell,

Thank you so much for your quick response!

I think I should run my docker command with sudo.

Inspiron-3670:~$ sudo docker run --rm openvax/mhcflurry:latest mhcflurry-predict --peptides SIINFEKL --alleles HLA-A*02:01
2021-07-04 03:09:36.888440: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
2021-07-04 03:09:36.888462: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
2021-07-04 03:09:37.755559: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-07-04 03:09:37.756116: W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libcuda.so.1'; dlerror: libcuda.so.1: cannot open shared object file: No such file or directory
2021-07-04 03:09:37.756145: W tensorflow/stream_executor/cuda/cuda_driver.cc:326] failed call to cuInit: UNKNOWN ERROR (303)
2021-07-04 03:09:37.756178: I tensorflow/stream_executor/cuda/cuda_diagnostics.cc:163] no NVIDIA GPU device is present: /dev/nvidia0 does not exist
2021-07-04 03:09:38.071986: I tensorflow/core/platform/profile_utils/cpu_utils.cc:114] CPU Frequency: 3199980000 Hz
WARNING:root:No flanking information provided. Specify --no-flanking to silence this warning
  0%|          | 0/1 [00:00<?, ?it/s]/opt/conda/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:2426: UserWarning: `Model.state_updates` will be removed in a future version. This property should not be used in TensorFlow 2.0, as `updates` are applied automatically.
  warnings.warn('`Model.state_updates` will be removed in a future version. '
/opt/conda/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:2426: UserWarning: `Model.state_updates` will be removed in a future version. This property should not be used in TensorFlow 2.0, as `updates` are applied automatically.
  warnings.warn('`Model.state_updates` will be removed in a future version. '
/opt/conda/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:2426: UserWarning: `Model.state_updates` will be removed in a future version. This property should not be used in TensorFlow 2.0, as `updates` are applied automatically.
  warnings.warn('`Model.state_updates` will be removed in a future version. '
/opt/conda/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:2426: UserWarning: `Model.state_updates` will be removed in a future version. This property should not be used in TensorFlow 2.0, as `updates` are applied automatically.
  warnings.warn('`Model.state_updates` will be removed in a future version. '
/opt/conda/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:2426: UserWarning: `Model.state_updates` will be removed in a future version. This property should not be used in TensorFlow 2.0, as `updates` are applied automatically.
  warnings.warn('`Model.state_updates` will be removed in a future version. '
/opt/conda/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:2426: UserWarning: `Model.state_updates` will be removed in a future version. This property should not be used in TensorFlow 2.0, as `updates` are applied automatically.
  warnings.warn('`Model.state_updates` will be removed in a future version. '
/opt/conda/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:2426: UserWarning: `Model.state_updates` will be removed in a future version. This property should not be used in TensorFlow 2.0, as `updates` are applied automatically.
  warnings.warn('`Model.state_updates` will be removed in a future version. '
/opt/conda/lib/python3.8/site-packages/tensorflow/python/keras/engine/training.py:2426: UserWarning: `Model.state_updates` will be removed in a future version. This property should not be used in TensorFlow 2.0, as `updates` are applied automatically.
  warnings.warn('`Model.state_updates` will be removed in a future version. '
100%|██████████| 1/1 [00:02<00:00,  2.47s/it]
100%|██████████| 1/1 [00:04<00:00,  4.58s/it]
Forcing tensorflow backend.
Predicting processing.
Predicting affinities.
allele,peptide,mhcflurry_affinity,mhcflurry_affinity_percentile,mhcflurry_processing_score,mhcflurry_presentation_score,mhcflurry_presentation_percentile
HLA-A*02:01,SIINFEKL,11927.164806632147,6.296000000000002,0.26470962166786194,0.020690201192810294,11.6303260869565

Another question is:

Inspiron-3670:~$ docker build -t mhcflurry:latest .
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/jing/Dockerfile: no such file or directory
Inspiron-3670:~$ sudo docker build -t mhcflurry:latest .
[sudo] password for jing: 
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/jing/Dockerfile: no such file or directory

How I can figure this out?

Really appreciate your great help!

Best,

Yue

yueli8 commented 3 years ago

Hello timodonnell,

I should create a file named dockerfile at home, and changed the command like the following:

But I still have problem. How I can figure this out?

Thank you again!

Best,

Yue

Inspiron-3670:~$ sudo docker build -f ./dockerfile -t mhcflurry:latest .
Sending build context to Docker daemon     12GB
Error response from daemon: the Dockerfile (dockerfile) cannot be empty
timodonnell commented 3 years ago

You need to run the docker build command in a checkout of the mhcflurry repo.

yueli8 commented 3 years ago

Hello timodonnell,

Thank you so much for your quick reply!

I was a little confusing about checkout of the mhcflurry repo'. What is checkout of the mhcflurry repo.`?

Inspiron-3670:~$ sudo docker build -t mhcflurry:latest .
[sudo] password for jing: 
Sending build context to Docker daemon  12.01GB
Error response from daemon: the Dockerfile (dockerfile) cannot be empty

I ran this command after:

$ mhcflurry-predict-scan \
        --sequences MFVFLVLLPLVSSQCVNLTTRTQLPPAYTNSFTRGVYYPDKVFRSSVLHS \
        --alleles HLA-A*02:01 \
        --out /tmp/predictions.csv

still got error.

Thank you again for your great help!

Best,

Yue

timodonnell commented 2 years ago

Hope you were able to get this to work. Closing it is as it is basically a github/docker question, which we are not in a great position to help with unfortunately.