Print

Print


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.