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.
|