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

I cannot retrieve my pdb file- using powershell as Admin #11

Closed mariaangelesjs closed 5 years ago

mariaangelesjs commented 5 years ago

Hi Harry, I've been trying to open my pdb file in different ways using your example, but these are the errors that are coming up. PS C:\WINDOWS\system32> docker run --rm -v :/run -it harryjubb/arpeggio python arpeggio.py pdb -s C:\WINDOWS\system32\CB2HU210_fixed6.pdb -v INFO//10:26:26.783//Program begin. Traceback (most recent call last): File "arpeggio.py", line 708, in s = pdb_parser.get_structure('structure', pdb_filename) File "/usr/local/lib/python2.7/site-packages/Bio/PDB/PDBParser.py", line 85, in get_structure with as_handle(file, mode='rU') as handle: File "/usr/local/lib/python2.7/contextlib.py", line 17, in enter return self.gen.next() File "/usr/local/lib/python2.7/site-packages/Bio/File.py", line 113, in as_handle with open(handleish, mode, kwargs) as fp: IOError: [Errno 2] No such file or directory: 'pdb' PS C:\WINDOWS\system32> docker run --rm -v :/run -it harryjubb/arpeggio python arpeggio.py -s CB2HU210_fixed6.pdb -v usage: arpeggio.py [-h] [-s SELECTION [SELECTION ...] | -sf SELECTION_FILE] [-wh] [-mh] [-ms MINIMISATION_STEPS] [-mf {MMFF94,UFF,Ghemical}] [-mm {DistanceGeometry,SteepestDescent,ConjugateGradients}] [-co VDW_COMP] [-i INTERACTING] [-ph PH] [-sa] [-a] [-he] [-op OUTPUT_POSTFIX] [-v] pdb arpeggio.py: error: too few arguments PS C:\WINDOWS\system32> docker run --rm -v :/run -it harryjubb/arpeggio python arpeggio.py /run/CB2HU210_fixed6.pdb -s RESNAME:FMM -v INFO//10:29:02.821//Program begin. Traceback (most recent call last): File "arpeggio.py", line 708, in s = pdb_parser.get_structure('structure', pdb_filename) File "/usr/local/lib/python2.7/site-packages/Bio/PDB/PDBParser.py", line 85, in get_structure with as_handle(file, mode='rU') as handle: File "/usr/local/lib/python2.7/contextlib.py", line 17, in enter return self.gen.next() File "/usr/local/lib/python2.7/site-packages/Bio/File.py", line 113, in as_handle with open(handleish, mode, kwargs) as fp: IOError: [Errno 2] No such file or directory: '/run/CB2HU210_fixed6.pdb' PS C:\WINDOWS\system32> docker run --rm -v "$(pwd)":/run -u id -u:id -g -it harryjubb/arpeggio python arpeggio.py /run/1XKK.pdb -s RESNAME:FMM -v C:\Program Files\Docker\Docker\Resources\bin\docker.exe: invalid reference format. See 'C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help'.

Note: I've given a try again with the example at the end and the same thing is happening. Kind regards, Maria

mariaangelesjs commented 5 years ago

Just an update, I'm running this on User now to avoid killing Windows, this is what's coming up now: PS C:\Users\Usuario> docker run --rm -v :/run -it harryjubb/arpeggio python arpeggio.py Cb2HU210_fixed6.pdb -v INFO//14:39:35.851//Program begin. Traceback (most recent call last): File "arpeggio.py", line 708, in s = pdb_parser.get_structure('structure', pdb_filename) File "/usr/local/lib/python2.7/site-packages/Bio/PDB/PDBParser.py", line 85, in get_structure with as_handle(file, mode='rU') as handle: File "/usr/local/lib/python2.7/contextlib.py", line 17, in enter return self.gen.next() File "/usr/local/lib/python2.7/site-packages/Bio/File.py", line 113, in as_handle with open(handleish, mode, **kwargs) as fp: IOError: [Errno 2] No such file or directory: 'Cb2HU210_fixed6.pdb'

harryjubb commented 5 years ago

Hi Maria,

I'm not able to test on Windows, but it may be a problem with the arguments passed to Docker, specifically the bind mount, -v :/run.

The left hand side of the : needs to have the folder containing your PDB file, this is then mapped to /run in the Docker container.

In the README example, -v "$(pwd)":/run is used, where $(pwd) expands to the current working directory in Unix/Linux shells. I'm not familiar enough with Powershell to advise on the equivalent. Since it's blank, I'd assume nothing is mounted into /run in the container, which would explain why Arpeggio can't find your PDB file, and in the latter example in your first message, Docker fails at the "$(pwd)".

Let me know if changing that works. The same will apply to

-u `id -u`:`id -g`

the backticks are shell-specific interpolation, I would advise looking into the Windows equivalent of mapping user ID and group if you find that output files are only readable via administrator access.

mariaangelesjs commented 5 years ago

Hi Harry, I was able to adapt the code for Windows using : docker --rm -v c:/:/ -it arpeggio python arpeggio.py / [options] -v I'm sharing it here if anyone ends up having the same issue. c:/:/ used as : Thanks for the help. Kind regards, Maria