harryjubb / arpeggio

Calculation of interatomic interactions in molecular structures
http://biosig.unimelb.edu.au/arpeggioweb/
GNU General Public License v3.0
69 stars 24 forks source link

running docker image problem #18

Closed leonart3 closed 4 years ago

leonart3 commented 4 years ago

Dear Dr. Jubb,

I am interested in using the Arpeggio package that you developed with Tom Blundell to analyse a structure that we recently determined. I have installed Docker and pulled the docker image from DockerHub following these instructions:

https://github.com/harryjubb/arpeggio

Unfortunately, the run command gives me the following error:

docker: Error response from daemon: unable to find user leonart3: no matching entries in passwd file.

Have you encountered this problem before and what is the fix? I am running a brand new MacBook Pro. Docker installed fine and I went though running the docker tutorial to familiarise myself with the system. Unfortunately, since the Arpeggio webserver is currently not responding, I need to run Arpeggio locally, but in any case I would like to have the ability to run the software on my machine.

Any help to fix my problem would be very gratefully received.

Kind regards, Thomas Leonard

harryjubb commented 4 years ago

Hi Thomas,

Thanks for your interest in Arpeggio.

Unfortunately the original web server address is down, but Dr David Ascher kindly runs a mirror at the University of Melbourne:

http://biosig.unimelb.edu.au/arpeggioweb/

If you'd still like to run using Docker: I'm currently on the road so not able to test this right away.

From a quick Google, this may be a Docker engine bug. You could try removing an existing Arpeggio containers (if any) and restarting Docker and trying again.

If that doesn't work, you could remove the part of the run command mapping the user in the Docker container to your Mac user (-u `id -u`:`id -g). The output files would then be owned by root, but (assuming you have sudo capability) could then be changed to be owned by your user after running, using chown.

Hope that's helpful. Let me know if it still proves to be an issue and I'll see if I can reproduce this issue.

All the best,

Harry

leonart3 commented 4 years ago

Hi Harry,

Many thanks for the prompt reply and the link to the mirror. I would still like to get arpeggio running with Docker, but I ran into more problems, some of which I have solved, but one which I still cannot. Removing the user mapping from the run command solved the problem and I was able to run arpeggio on a test pdb file and generate the output files successfully without building the docker image, but I would like to benefit from the graphical visualisation and export to PyMOL features, which presumably I can do through the Docker container? I have created the Dockerfile in a subdirectory of my home directory, since executing docker build in my home directory gives an error message. I can now execute docker build -t 'arpeggio' . but it fails part way through with the following error message:

leonart3@a743-th-macbook arpeggio % docker build -t 'arpeggio' . Sending build context to Docker daemon 2.048kB Step 1/9 : FROM harryjubb/openbabel-python:python2.7.15 ---> c4b19add1fd4 Step 2/9 : LABEL maintainer="Harry Jubbhj4@sanger.ac.uk" ---> Using cache ---> e9e3ea9ca8cf Step 3/9 : RUN mkdir /arpeggio ---> Using cache ---> 6fd63fc77dd7 Step 4/9 : WORKDIR /arpeggio ---> Using cache ---> c56b923a5314 Step 5/9 : COPY requirements.txt /arpeggio COPY failed: stat /var/lib/docker/tmp/docker-builder084371147/requirements.txt: no such file or directory

I'm afraid this may read very much like I haven't a clue what is going on here, which is fairly close to the truth, so I very much appreciate your help!

Best, Thomas

harryjubb commented 4 years ago

Hi Thomas,

The public image pushed to Dockerhub contains the show_contacts.py script, so it may be easier to use that rather than building locally: https://github.com/harryjubb/arpeggio#using-the-public-docker-image

It looks like the reason the local build is failing is that (correct me if I'm wrong), it's just the Dockerfile without the rest of the repository? The Dockerfile copies files from the repository into the Docker image. To build locally you'd need to clone the repository locally and run the build inside your clone of the repository.

The public image is up-to-date (at least as far as the code is here), so I'd recommend that route first. To run the contacts script you'd replace arpeggio.py with show_contacts.py. Adding the -h flag shows the options available. I'd expect the XML-RPC PyMOL connection probably won't work within Docker out-of-the-box, but saving a PyMOL script should work.

leonart3 commented 4 years ago

Hi Harry,

Many thanks. Everything is working now. I can process our structure now without uploading it to the Webserver, which I’m very grateful for. One question though, because I’m struggling a little bit with the selection syntax - it seems to be like pymol, but not quite the same. For example, I have an intramolecular interface which is physiologically very important but has never before been observed. We now have a 2.0Å structure and I want to map all of the intramolecular contacts in the interface. The simplest way I can imagine doing it is to set two separate chain IDs for the two domains and then use a selection syntax for the part of one domain that docks to the other domain. However, arpeggio will not take the syntax /A/315-321/ as a selection. It will take individual amino acids or the whole chain, but not just part. I obviously don’t want all the contacts from the folded domain, just the ones at the interface. How can I make arpeggio map only the interface? I have read the paper and the -h options info and whatever else I can find online, but I can’t find the magic trick. I’m sorry to bother you with this again, but this is a super piece of software and we have a number of applications for it that will make it worth learning how to use it properly. Is there a manual or something somewhere that can help me?

Best, Thomas

On 14.09.2020, at 12:58, Harry Jubb notifications@github.com wrote:

Hi Thomas,

The public image pushed to Dockerhub contains the show_contacts.py script, so it may be easier to use that rather than building locally: https://github.com/harryjubb/arpeggio#using-the-public-docker-image https://github.com/harryjubb/arpeggio#using-the-public-docker-image It looks like the reason the local build is failing is that (correct me if I'm wrong), it's just the Dockerfile without the rest of the repository? The Dockerfile copies files from the repository into the Docker image. To build locally you'd need to clone the repository locally and run the build inside your clone of the repository.

The public image is up-to-date (at least as far as the code is here), so I'd recommend that route first. To run the contacts script you'd replace arpeggio.py with show_contacts.py. Adding the -h flag shows the options available. I'd expect the XML-RPC PyMOL connection probably won't work within Docker out-of-the-box, but saving a PyMOL script should work.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/harryjubb/arpeggio/issues/18#issuecomment-691978843, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANQ3DOR5BAABNNYHMLHC5GDSFXZMTANCNFSM4RHNCNFA.

Dr. Thomas Leonard Department of Structural and Computational Biology Max Perutz Labs Campus Vienna Biocenter 5, 1030 Vienna Room: 1.616 Email: thomas.leonard@mfpl.ac.at Phone: +43-1-4277-52205 https://www.maxperutzlabs.ac.at/leonard http://www.mfpl.ac.at/groups/mfpl-group/group-info/leonard.html

harryjubb commented 4 years ago

Hi Thomas,

it seems to be like pymol, but not quite the same

Very true! The selection parser is a little limited I'm afraid, however:

arpeggio will not take the syntax /A/315-321/ as a selection. It will take individual amino acids or the whole chain, but not just part. I obviously don’t want all the contacts from the folded domain, just the ones at the interface. How can I make arpeggio map only the interface?

You should be able to specify multiple -s options to define your interface, e.g. -s /A/315/ -s /A/316/ -s /A/317/ -s /A/318/ -s /A/319/ -s /A/320/ -s /A/321/

Is there a manual or something somewhere that can help me?

There is no explicit manual unfortunately. I've tried to put the key information into the paper and supplementary materials, README with FAQs, and some things have been answered in GitHub issues and moved into the FAQs. I'll add the multiple selection syntax to the README.

I'm not actively maintaining the project at this time but happy to answer questions as best as I can. I'd also recommend looking at PDBe's fork. Lukas Pravda from the EBI has done a fantastic job of modernising and modularising the code, including support for mmCIF if that is helpful.

https://github.com/PDBeurope/arpeggio

leonart3 commented 4 years ago

Thanks a lot, yes I figured out the multiple selection syntax and managed to produce exactly the analysis and figure I needed. So I think I can do everything I need now. Thanks again for the great support.

Best, Thomas

On 20.09.2020, at 13:32, Harry Jubb notifications@github.com wrote:

Hi Thomas,

it seems to be like pymol, but not quite the same

Very true! The selection parser is a little limited I'm afraid, however:

arpeggio will not take the syntax /A/315-321/ as a selection. It will take individual amino acids or the whole chain, but not just part. I obviously don’t want all the contacts from the folded domain, just the ones at the interface. How can I make arpeggio map only the interface?

You should be able to specify multiple -s options to define your interface, e.g. -s /A/315/ -s /A/316/ -s /A/317/ -s /A/318/ -s /A/319/ -s /A/320/ -s /A/321/

Is there a manual or something somewhere that can help me?

There is no explicit manual unfortunately. I've tried to put the key information into the paper and supplementary materials, README with FAQs, and some things have been answered in GitHub issues and moved into the FAQs. I'll add the multiple selection syntax to the README.

I'm not actively maintaining the project at this time but happy to answer questions as best as I can. I'd also recommend looking at PDBe's fork. Lukas Pravda from the EBI has done a fantastic job of modernising and modularising the code, including support for mmCIF if that is helpful.

https://github.com/PDBeurope/arpeggio https://github.com/PDBeurope/arpeggio — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/harryjubb/arpeggio/issues/18#issuecomment-695776606, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANQ3DOU2LXAOFROSUIX2SRTSGXR6JANCNFSM4RHNCNFA.

Dr. Thomas Leonard Department of Structural and Computational Biology Max Perutz Labs Campus Vienna Biocenter 5, 1030 Vienna Room: 1.616 Email: thomas.leonard@mfpl.ac.at Phone: +43-1-4277-52205 https://www.maxperutzlabs.ac.at/leonard http://www.mfpl.ac.at/groups/mfpl-group/group-info/leonard.html