ExcitedStates / qfit-3.0

qFit: Automated and unbiased multi-conformer models from X-ray and EM maps.
MIT License
38 stars 12 forks source link

CPLEX Error 5002: objective is not convex. #52

Closed swans9 closed 9 months ago

swans9 commented 4 years ago

I am unsure if this is an issue with the code or my data, since I am running this on a Windows 10 OS and have very remedial computer science skills.

I received the following error message after my multiconformer model was produced.

(I apologize for the indentation.)

Command Run: qfit_protein C2composite_omit_map.mtz -l 2FOFCWT,PH2FOFCWT C2Loops_refine_SingleOPSR2320.pdb

Traceback (most recent call last):
File "c:\anaconda\envs\qfit\lib\runpy.py", line 193, in _run_module_as_main
                             "__main__", mod_spec)
File "c:\anaconda\envs\qfit\lib\runpy.py", line 85, in _run_code
                                        exec(code, run_globals)
File "C:\Anaconda\envs\qfit\Scripts\qfit_protein.exe\__main__.py", line 7, in <module>

File "c:\anaconda\envs\qfit\lib\site-packages\qfit\qfit_protein.py", line 461, in main
                  multiconformer = qfit.run()
File "c:\anaconda\envs\qfit\lib\site-packages\qfit\qfit_protein.py", line 193, in run
                   multiconformer = self._run_qfit_segment(structure)
File "c:\anaconda\envs\qfit\lib\site-packages\qfit\qfit_protein.py", line 293, in _run_qfit_segment
     multiconformer = qfit()
File "c:\anaconda\envs\qfit\lib\site-packages\qfit\qfit.py", line 1017, in __call__
                     for path in self.find_paths(segment):
File "c:\anaconda\envs\qfit\lib\site-packages\qfit\qfit.py", line 1087, in find_paths
                   loop_range=[0.34, 0.25, 0.2, 0.16, 0.14])
File "c:\anaconda\envs\qfit\lib\site-packages\qfit\qfit.py", line 283, in _solve
                        solver(cardinality=None, threshold=threshold)
File "c:\anaconda\envs\qfit\lib\site-packages\qfit\solvers.py", line 204, in __call__
                   miqp.solve()
File "c:\anaconda\envs\qfit\lib\site-packages\cplex\__init__.py", line 1329, in solve
                   _proc.mipopt(self._env._e, self._lp)
File "c:\anaconda\envs\qfit\lib\site-packages\cplex\_internal\_procedural.py", line 692, in mipopt
      check_status(env, status)
File "c:\anaconda\envs\qfit\lib\site-packages\cplex\_internal\_procedural.py", line 236, in __call__
    raise CplexSolverError(error_string, env, status)
cplex.exceptions.errors.CplexSolverError: CPLEX Error  5002: objective is not convex.

Files Attached: C2composite_omit_map_and_PDB.zip

blake-riley commented 4 years ago

Thanks for the issue Chris! Could you please edit your issue, and wrap it with three backticks on the line above (```) and below? This is how GitHub marks verbatim text (and will help us read it!)

blake-riley commented 4 years ago

Could you please additionally:

It looks like the CPLEX solver is suggesting that you've built an unsolvable problem. This might be something about the qfit algorithm, or it might be down to your input files.

swans9 commented 4 years ago

I have edited the issue, and added the files and command I ran. I received a model from the qfit program, so it may just be the input files.

dhogan-io commented 9 months ago

Should now work due to change to CVXPY: https://github.com/ExcitedStates/qfit-3.0/pull/402

Closing, but feel free to create a new bug if the error still occurs.