Thomas Cleveland wrote:
I just looked at the source code for "reduce."  It seems there is a
global variable that gets returned from main(), ReturnCodeGlobal,
which is set to 0 by default.  However, further down in the code is
this (in the "processPDBfile" function):

// adjust cliques

         std::list< std::list<MoverPtr> > cc_list = clst.cliques();
        //cerr << "start: " << cc_list.size() << endl;
         for (std::list< std::list<MoverPtr> >::iterator cc =
cc_list.begin(); cc != cc_list.end(); ++cc) {
                //cerr << "start2" << endl;
            int nscnt = xyz.orientClique(*cc, ExhaustiveLimit);
                if (nscnt > 0) { Tally._num_adj += nscnt; }
            else { // too many permutations, make note
              ReturnCodeGlobal = ABANDONED_RC;
            }
         }

Where ABANDONED_RC is elsewhere defined as 1.

This is the only obvious place in the "reduce" code I can find where
ReturnCodeGlobal is set to something other than 0.  I'm not sure what
they mean (in the comment) by "too many permutations," though.  Do you
think this is a fatal error that calls for not running "probe"?

It seems unlikely, but I can't think what else it could be.


Otherwise, I might try to just work around this by modifying the Coot
source to ignore the return value of "reduce."

OK, xxx/share/coot/python/generic_objects.py: lines 202:

    if (reduce_status):

to

    if (True):

I guess should do it.

Paul.

Reply via email to