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.