def Integrater(): """Return an Integrater implementation.""" # FIXME this should take an indexer as an argument... integrater = None preselection = get_preferences().get("integrater") if not integrater and (not preselection or preselection == "dials"): try: integrater = DialsIntegrater() logger.debug("Using Dials Integrater") if PhilIndex.params.xia2.settings.scaler == "dials": integrater.set_output_format("pickle") except NotAvailableError: if preselection == "dials": raise RuntimeError( "preselected integrater dials not available: " + "dials not installed?" ) if not integrater and (not preselection or preselection == "xdsr"): try: integrater = XDSIntegrater() logger.debug("Using XDS Integrater in new resolution mode") except NotAvailableError: if preselection == "xdsr": raise RuntimeError( "preselected integrater xdsr not available: " + "xds not installed?" ) if not integrater: raise RuntimeError("no integrater implementations found") # check to see if resolution limits were passed in through the # command line... dmin = PhilIndex.params.xia2.settings.resolution.d_min dmax = PhilIndex.params.xia2.settings.resolution.d_max if dmin: logger.debug("Adding user-assigned resolution limits:") if dmax: logger.debug(f"dmin: {dmin:.3f} dmax: {dmax:.2f}") integrater.set_integrater_resolution(dmin, dmax, user=True) else: logger.debug("dmin: %.3f" % dmin) integrater.set_integrater_high_resolution(dmin, user=True) return integrater
def Integrater(): '''Return an Integrater implementation.''' # FIXME this should take an indexer as an argument... integrater = None preselection = get_preferences().get('integrater') if not integrater and \ (not preselection or preselection == 'dials'): try: integrater = DialsIntegrater() Debug.write('Using Dials Integrater') except NotAvailableError: if preselection == 'dials': raise RuntimeError( \ 'preselected integrater dials not available: ' + \ 'dials not installed?') if not integrater and (not preselection or preselection == 'mosflmr'): try: integrater = MosflmIntegrater() Debug.write('Using MosflmR Integrater') if not get_preferences().get('scaler'): add_preference('scaler', 'ccp4a') except NotAvailableError: if preselection == 'mosflmr': raise RuntimeError('preselected integrater mosflmr not available') if not integrater and \ (not preselection or preselection == 'xdsr'): try: integrater = XDSIntegrater() Debug.write('Using XDS Integrater in new resolution mode') except NotAvailableError: if preselection == 'xdsr': raise RuntimeError( \ 'preselected integrater xdsr not available: ' + \ 'xds not installed?') if not integrater: raise RuntimeError('no integrater implementations found') # check to see if resolution limits were passed in through the # command line... dmin = PhilIndex.params.xia2.settings.resolution.d_min dmax = PhilIndex.params.xia2.settings.resolution.d_max if dmin: Debug.write('Adding user-assigned resolution limits:') if dmax: Debug.write('dmin: %.3f dmax: %.2f' % (dmin, dmax)) integrater.set_integrater_resolution(dmin, dmax, user=True) else: Debug.write('dmin: %.3f' % dmin) integrater.set_integrater_high_resolution(dmin, user=True) return integrater
def Integrater(): """Return an Integrater implementation.""" # FIXME this should take an indexer as an argument... integrater = None preselection = get_preferences().get("integrater") if not integrater and (not preselection or preselection == "dials"): try: integrater = DialsIntegrater() Debug.write("Using Dials Integrater") except NotAvailableError: if preselection == "dials": raise RuntimeError( "preselected integrater dials not available: " + "dials not installed?") if not integrater and (not preselection or preselection == "mosflmr"): try: integrater = MosflmIntegrater() Debug.write("Using MosflmR Integrater") if not get_preferences().get("scaler"): add_preference("scaler", "ccp4a") except NotAvailableError: if preselection == "mosflmr": raise RuntimeError( "preselected integrater mosflmr not available") if not integrater and (not preselection or preselection == "xdsr"): try: integrater = XDSIntegrater() Debug.write("Using XDS Integrater in new resolution mode") except NotAvailableError: if preselection == "xdsr": raise RuntimeError( "preselected integrater xdsr not available: " + "xds not installed?") if not integrater: raise RuntimeError("no integrater implementations found") # check to see if resolution limits were passed in through the # command line... dmin = PhilIndex.params.xia2.settings.resolution.d_min dmax = PhilIndex.params.xia2.settings.resolution.d_max if dmin: Debug.write("Adding user-assigned resolution limits:") if dmax: Debug.write("dmin: %.3f dmax: %.2f" % (dmin, dmax)) integrater.set_integrater_resolution(dmin, dmax, user=True) else: Debug.write("dmin: %.3f" % dmin) integrater.set_integrater_high_resolution(dmin, user=True) return integrater