isayevlab / Auto3D_pkg

Auto3D generates low-energy conformers from SMILES/SDF
MIT License
146 stars 32 forks source link

Range Error #81

Closed erolic closed 1 month ago

erolic commented 1 month ago

I am trying to generate low energy conformations of a sets of smiles. I am providing smiles as a batch file. However, for some molecules below error appears and code stucks. Does not proceed to next molecule, it halts.


Range Error idx2 Violation occurred on line 352 in file /home/conda/feedstock_root/build_artifacts/rdkit-meta_1722095823005/work/Code/GraphMol/ROMol.cpp Failed Expression: 4294967295 < 10

Stacktrace: 0# Invar::Invariant::toString[abi:cxx11]() const in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/../../../libRDKitRDGeneral.so.1 1# Invar::operator<<(std::ostream&, Invar::Invariant const&) in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/../../../libRDKitRDGeneral.so.1 2# RDKit::ROMol::getBondBetweenAtoms(unsigned int, unsigned int) const in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/../../../../libRDKitGraphMol.so.1 3# RDKit::Bond::setStereoAtoms(unsigned int, unsigned int) in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/../../../../libRDKitGraphMol.so.1 4# 0x000075332BB511BA in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdchem.so 5# boost::python::objects::function::call(_object, _object) const in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/../../../libboost_python312.so.1.84.0 6# 0x000075332D3A77E9 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/../../../libboost_python312.so.1.84.0 7# boost::python::detail::exception_handler::operator()(boost::function0 const&) const in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/../../../libboost_python312.so.1.84.0 8# 0x000075332814CDB4 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdSLNParse.so 9# 0x00007533282FD9F4 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdDepictor.so 10# 0x00007533285B03C4 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdChemReactions.so 11# 0x00007533285B0414 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdChemReactions.so 12# 0x0000753328729474 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdMolChemicalFeatures.so 13# 0x000075332B522744 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdmolfiles.so 14# 0x000075332B522794 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdmolfiles.so 15# 0x00007533C975FBE4 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdCIPLabeler.so 16# 0x000075332BB73194 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdchem.so 17# 0x000075332BB0850D in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdchem.so 18# 0x000075332BB081BD in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdchem.so 19# 0x000075332BB07E6D in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdchem.so 20# 0x000075332BB07B1D in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdchem.so 21# 0x000075332BB077CD in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/rdchem.so 22# 0x000075332C890714 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/rdBase.so 23# 0x000075332C890764 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/rdBase.so 24# 0x000075332C8907B4 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/rdBase.so 25# 0x000075332C890804 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/rdBase.so 26# boost::python::handle_exception_impl(boost::function0) in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/../../../libboost_python312.so.1.84.0 27# 0x000075332D3A4493 in /media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/../../../libboost_python312.so.1.84.0 28# _PyObject_MakeTpCall in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 29# 0x00005E85781E7F20 in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 30# 0x00005E857832BF3C in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 31# PySequence_Tuple in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 32# PyObject_Vectorcall in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 33# 0x00005E85781E7F20 in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 34# PyEval_EvalCode in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 35# 0x00005E85783BF7BA in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 36# 0x00005E85783BAA9B in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 37# PyRun_StringFlags in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 38# PyRun_SimpleStringFlags in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 39# Py_RunMain in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 40# Py_BytesMain in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12 41# 0x000075345A229D90 in /lib/x86_64-linux-gnu/libc.so.6 42# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6 43# 0x00005E8578383E21 in /media/erol/Backup/anaconda3/envs/auto3D/bin/python3.12


Process Process-4: Traceback (most recent call last): File "/media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/Auto3D/auto3D.py", line 94, in isomer_wraper engine.run() File "/media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/Auto3D/isomer_engine.py", line 188, in run isomers = self.enumerate_func(mol) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/Auto3D/isomer_engine.py", line 145, in enumerate_func isomers = tuple(EnumerateStereoisomers(mol, options=opts)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/EnumerateStereoisomers.py", line 303, in EnumerateStereoisomers flippers = _getFlippers(tm, options) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/media/erol/Backup/anaconda3/envs/auto3D/lib/python3.12/site-packages/rdkit/Chem/EnumerateStereoisomers.py", line 94, in _getFlippers bnd.SetStereoAtoms(si.controllingAtoms[0], si.controllingAtoms[2]) RuntimeError: Range Error idx2 Violation occurred on line 352 in file Code/GraphMol/ROMol.cpp Failed Expression: 4294967295 < 10 RDKIT: 2024.03.5 BOOST: 1_84

Is there any possible explanation what is wrong? and how I can overcome this error?

System information:

LiuCMU commented 1 month ago

Thanks for the detailed information! Looks like the error is associated with RDKit dealing with a specific molecule. Would you be able to provide the specific molecule that causes this error for me to debug?

erolic commented 1 month ago

Here is the smile of the molecule,

NC(=N)C1(NCC1O)C=C

In my dataset, there are bunch of these molecules where rdkit stucks, so i want to overcome, by just skipping these molecules. However, I couldn't achieve my goal.

Thanks a lot.

LiuCMU commented 1 month ago

The molecule looks normal. I used the above SMILES, and auto3d terminates normally, returning the following SDF file. Here are my input and output files:

debug_out.sdf.txt debug.smi.txt

My system information is similar to yours, not sure what happened in your case🤔

erolic commented 1 month ago

I tried in different computers but same error, If it possible can you check the followings

NC(=N)C1(NCC1O)C=C 1 OC1CN=C(NC=N)C1=C 2 CC(O)C1=CCON1C=N 3 NCCC(=N)NC=CCO 4 CC(=C)NC(=N)C=CCO 5 CN(N=CCO)C(=N)NO 6 NC(=N)NN=CCO 7

when i use --use_gpu=FALSE, the code works very finely. no error for above molecules.

LiuCMU commented 1 month ago

This clue indicates the issue is associated with GPU. Are you using an Nvidia GPU?

when i use --use_gpu=FALSE, the code works very finely. no error for above molecules.

erolic commented 1 month ago

sorry for misinformation. I have lost in different working directories, no above molecules not working when i use --use_gpu=FALSE flag. sorry again. but i can give information about my GPU, NVIDIA GeForce RTX 3070.

LiuCMU commented 1 month ago

No worries at all, thanks for debugging with me.

Similar GPU as I have.

NVIDIA GeForce RTX 3070

May I ask how many GPUs do you have? If you have multiple GPUs, try to use a specific GPU using --gpu_idx=idx, where idx is the index of the GPU you want to use.

erolic commented 1 month ago

No only one gpu.

LiuCMU commented 1 month ago

I see. Could you try adding export CUDA_LAUNCH_BLOCKING=1 and run again to see if it returns any useful bug information?

erolic commented 1 month ago

I add export CUDA_LAUNCH_BLOCKING=1, however, still i am getting same error. this time i used a slightly different molecule set, and for the following molecule i got the same error;

NC1C(NC=N)C1(N)C#C

isayev commented 1 month ago

@erolic, you have problems with RDKit installation; Auto3D just uses it as a back end. Please try to get a fresh Python environment and reinstall libraries. Maybe downgrade Python to 3.11 for RDKit stability.

erolic commented 1 month ago

@isayev tried with python3.11, nothing changed (RDKit 2024.03.5). however, when i used older version of RDKit (2024.03.1), it works fine both with python3.11 and python3.10. Thanks for your help, @LiuCMU and @isayev .

LiuCMU commented 1 month ago

Awesome, good to know that it worked out for you!