Hi Pavel,
- probe and reduce are called in mmtbx through phenix wrappers (phenix.probe and phenix.reduce). We prefer to call them directly, but I guess it's not to be changed in cctbx. But after changing the name I also had to remove error checking in mmtbx/validation/clashscore.py that checks return code from phenix.reduce. Reduce itself quite often returns non-zero, it's just that the phenix.reduce wrapper ignores it and always returns 0 (probably not intentionally).
what you mean by "call them directly"?
Yes, there are multiple instances of calling these programs in mmtbx like this
trim = "phenix.reduce -quiet -trim -" result = easy_run.fully_buffered(trim)
phenix.reduce runs command_line/reduce.py, which in turn runs reduce binary. I just changed "phenix.reduce" to "reduce" to run the binary directly. But reduce.py doesn't pass the return code from the reduce program, and the latter may return 1 even if it worked. Marcin