Error in HOLE analysis

29 views
Skip to first unread message

azade...@gmail.com

unread,
Sep 29, 2022, 12:39:46 PMSep 29
to MDnalysis discussion
Dear MDAnalysis users,

I would like to do HOLE analysis for my protein pore in atomistic simulations. However, for the VMD part I get the error below. I should also say that I do the analysis on a server.

I appreciate your help.

Best regards,
Azadeh

  File "/home/aalaviza/software/myscripts/analysis_protein.py", line 1277, in HOLE
    H.create_vmd_surface(filename='holeanalysis.vmd')
  File "/home/aalaviza/.local/lib/python3.8/site-packages/MDAnalysis/analysis/hole2/hole.py", line 760, in create_vmd_surface
    tmp_tri = create_vmd_surface(sphpdb=sphpdb,
  File "/home/aalaviza/.local/lib/python3.8/site-packages/MDAnalysis/analysis/hole2/utils.py", line 555, in create_vmd_surface
    raise OSError(err.returncode, "sos_triangle failed") from None
PermissionError: [Errno 1] sos_triangle failed

Oliver Beckstein

unread,
Sep 29, 2022, 5:59:35 PMSep 29
to mdnalysis-discussion
Hello Azadeh,

The create_vmd_surface() function does not provide a lot of diagnostic output, unfortunately. The permission error could either mean that there’s something wrong with your sos_triangle executable or the temporary directory where the intermediate files are saved. I have a few questions and maybe your answers help in getting closer to the problem:

Are you running HOLE on a trajectory or a single frame? What are your MDAnalysis commands?

How did you install HOLE?

Is you sos_triangle file executable? What’s the output of

ls -la `which sos_triangle`

Can you run it from the command line

sos_triangle -h


sph_process -sos -dotden 15 -color hole.sph tmp.sos    # get a .sph file from a HOLE run
sos_triangle -s < tmp.sos > hole.vmd

Best,
Oliver
--
Oliver Beckstein (he/his/him)

GitHub: @orbeckst

MDAnalysis – a NumFOCUS fiscally sponsored project





azade...@gmail.com

unread,
Sep 30, 2022, 10:15:53 AMSep 30
to MDnalysis discussion
Hello Oliver,

Thank you very much for your prompt reply. Here are the answers:
 
Are you running HOLE on a trajectory or a single frame? What are your MDAnalysis commands?

I am running HOLE on a trajectory and here are the commands:

H = hole2.HoleAnalysis(u, cvect=[1,0,0], cpoint='center_of_geometry', end_radius=6.0, executable='~/software/hole2/exe/hole')
H.run()
H.create_vmd_surface(filename='holeanalysis.vmd')

How did you install HOLE?

I just downloaded and extracted the tar.gz file from this website: http://www.holeprogram.org/
So I did not install anything since all the binary files were already there.

Is you sos_triangle file executable? What’s the output of

ls -la `which sos_triangle`

Yes, this is the output: /home/aalaviza/software/hole2/exe/sos_triangle

Can you run it from the command line

sos_triangle -h

Yes, I can run this command.


sph_process -sos -dotden 15 -color hole.sph tmp.sos    # get a .sph file from a HOLE run
sos_triangle -s < tmp.sos > hole.vmd

Yes, when I use these commands, it works. So it seems that it does not work within MDAnalaysis.

Best,
Azadeh

Oliver Beckstein

unread,
Sep 30, 2022, 5:02:48 PMSep 30
to mdnalysis-discussion
Hello Azadeh,

I don’t really know what’s wrong. I only have some general debugging suggestions:

Have you had any input on which the create_vmd_surface() succeeded? E.g. a single trajectory frame or a PDB file?

Given that you have been able to run it from the command line, you have a hole.sph file available that you can use for debugging.

Instead of running the HoleAnalysis class, run the MDAnalysis.analysis.hole2.utils.create_vmd_surface() function on its own and see if this still produces the error.

The next step would be to work with a custom version of create_vmd_surface() in the attached file: Put the file in a directory together with your hole.sph and in this directory run 

import hole_utils

hole_utils.create_vmd_surface("hole.sph", sph_process=“~/software/hole2/exe/sph_process”, sos_triangle="~/software/hole2/exe//sos_triangle")


It should provide more error output. Copy and past the output, maybe we learn more.

Oliver




--
You received this message because you are subscribed to the Google Groups "MDnalysis discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mdnalysis-discus...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mdnalysis-discussion/14ed1f8f-452e-4ee0-84b5-3d17b158d214n%40googlegroups.com.
hole_utils.py

azade...@gmail.com

unread,
Oct 2, 2022, 3:39:50 AMOct 2
to MDnalysis discussion
Hi Oliver,

Thanks again for your reply. Actually, I have realized that the error I sent you earlier was because sos_triangle itself fails and this was not due to MDAnalaysis. This has become clear by doing the tests you have suggested and running the direct HOLE commands. There is, however, one issue in the tests, as follows.

Have you had any input on which the create_vmd_surface() succeeded? E.g. a single trajectory frame or a PDB file?

I tried using HOLE with PDB file, however, using the command below it fails (actually it somehow freezes and does not produce the file) and the sph_process flag is required.

hole2.create_vmd_surface(filename='hole_100.vmd', sphpdb='hole_100.sph', sph_process='~/software/hole2/exe/sos_triangle', sos_triangle='~/software/hole2/exe/sos_triangle') 

However, if I use 'mda.analysis.hole2.utils.create_vmd_surface', as you suggested, it works.

I also tried using HOLE with trajectory but by feeding just one single PDB file and it works properly with the commands I send you previously.

Given that you have been able to run it from the command line, you have a hole.sph file available that you can use for debugging.

Instead of running the HoleAnalysis class, run the MDAnalysis.analysis.hole2.utils.create_vmd_surface() function on its own and see if this still produces the error.

Yes, it works this way and the vmd file is produced.

The next step would be to work with a custom version of create_vmd_surface() in the attached file: Put the file in a directory together with your hole.sph and in this directory run 

import hole_utils

hole_utils.create_vmd_surface("hole.sph", sph_process=“~/software/hole2/exe/sph_process”, sos_triangle="~/software/hole2/exe//sos_triangle")

This works properly. 

Best,
Azadeh

Oliver Beckstein

unread,
Oct 2, 2022, 9:19:43 PMOct 2
to mdnalysis-...@googlegroups.com
Hi Azadeh,

Am 10/2/22 um 00:39 schrieb azade...@gmail.com <azade...@gmail.com>:

Hi Oliver,

Thanks again for your reply. Actually, I have realized that the error I sent you earlier was because sos_triangle itself fails and this was not due to MDAnalaysis. This has become clear by doing the tests you have suggested and running the direct HOLE commands.

I’m glad you managed to get to the bottom of your problem. Would it help if MDAnalysis showed more error output in this function, similar to the code that I had sent?

There is, however, one issue in the tests, as follows.

Have you had any input on which the create_vmd_surface() succeeded? E.g. a single trajectory frame or a PDB file?

I tried using HOLE with PDB file, however, using the command below it fails (actually it somehow freezes and does not produce the file) and the sph_process flag is required.

hole2.create_vmd_surface(filename='hole_100.vmd', sphpdb='hole_100.sph', sph_process='~/software/hole2/exe/sos_triangle',

This looks wrong: should point to sph_process. 

Presumably the command just waits for input. 

Best,
Oliver 

sos_triangle='~/software/hole2/exe/sos_triangle') 
However, if I use 'mda.analysis.hole2.utils.create_vmd_surface', as you suggested, it works.
I also tried using HOLE with trajectory but by feeding just one single PDB file and it works properly with the commands I send you previously.

Given that you have been able to run it from the command line, you have a hole.sph file available that you can use for debugging.

Instead of running the HoleAnalysis class, run the MDAnalysis.analysis.hole2.utils.create_vmd_surface() function on its own and see if this still produces the error.

Yes, it works this way and the vmd file is produced.

The next step would be to work with a custom version of create_vmd_surface() in the attached file: Put the file in a directory together with your hole.sph and in this directory run 

import hole_utils

hole_utils.create_vmd_surface("hole.sph", sph_process=“~/software/hole2/exe/sph_process”, sos_triangle="~/software/hole2/exe//sos_triangle")

This works properly. 

Best,
Azadeh

--
You received this message because you are subscribed to the Google Groups "MDnalysis discussion" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mdnalysis-discus...@googlegroups.com.

azade...@gmail.com

unread,
Oct 4, 2022, 6:51:52 AMOct 4
to MDnalysis discussion

Hi Oliver,

I’m glad you managed to get to the bottom of your problem. Would it help if MDAnalysis showed more error output in this function, similar to the code that I had sent?

Thanks ! Yes, I think it would be helpful if the output of the sos_triangle is printed, similar to the code you sent me.

This looks wrong: should point to sph_process. 

Presumably the command just waits for input. 

Well, I am not really sure about this. 

Best,
Azadeh 
Reply all
Reply to author
Forward
0 new messages