DeltaGroupNJUPT / Vina-GPU-2.0

Vina-GPU 2.0 accelerates AutoDock Vina and its related commonly derived docking methods, such as QuickVina 2 and QuickVina-W with GPUs.
Apache License 2.0
93 stars 30 forks source link

Crash when 1 ligand in ligand-directory fails #4

Open rfleiro opened 1 year ago

rfleiro commented 1 year ago

Hi, when 1 ligand in the ligand directory fails, Vina-GPU+ crashes and the whole run on the directory stops. Error message below.

Reading input ... Vina-GPU+: ./lib/tree.h:235: axis_frame::axis_frame(const vec&, sz, sz, const vec&): Assertion 'nrm >= epsilon_fl' failed.

The same happens when using Vina-GPU, but this was not a problem as only one ligand at a time was submitted.

Would it be possible to make it ignore the ligand when it doesn't meet the requirements and continue with the rest?

Many thanks for developing Vina-GPU+. Very excited about the possibilities it opens!

R

rfleiro commented 1 year ago

Hi, quick update.

This seems to be ok as a temporary solution, as the run doesn't die on any corrupted ligand file. The problem is still there as now I am at the risk of ignoring not-so-obvious errors that shouldn't be ignored.

rfleiro commented 1 year ago

Hi again,

Any hints on how to address this issue?

dinghezier commented 1 year ago

Hello, if you just docking with a ligand, you should use '-- ligand' instead of '-- ligand directory'. Vina-GPU has not the '-- ligand directory' argument.

MaxiFallico commented 1 year ago

Hi, quick update.

  • I brought up some of the catch statements at the end of main.cpp (parse_error, file_error, usage_error), so they are inside the for-loop that iterates to read the ligands
  • I also changed a few instances of VINA_CHECK for VINA_CHECK_IGNORE (#define VINA_CHECK_IGNORE(condition) if (!(condition)) { }) to ignore errors when processing corrupted files.

This seems to be ok as a temporary solution, as the run doesn't die on any corrupted ligand file. The problem is still there as now I am at the risk of ignoring not-so-obvious errors that shouldn't be ignored.

Excuse me @rfleiro, I have the same problem. I tried your solution but i don´t know how to change the VINA_CHECK. Can you share with me your main.cpp please? Thanks