def create(params, experiments, reflections): ''' Create the integrator from the input configuration. ''' from dials.interfaces import IntensityIface from dials.interfaces import BackgroundIface from dials.interfaces import CentroidIface from dials.array_family import flex # Initialise the strategy classes BackgroundAlgorithm = BackgroundIface.extension( params.integration.background.algorithm) IntensityAlgorithm = IntensityIface.extension( params.integration.intensity.algorithm) CentroidAlgorithm = CentroidIface.extension( params.integration.centroid.algorithm) # Set the algorithms in the reflection table flex.reflection_table._background_algorithm = \ flex.strategy(BackgroundAlgorithm, params) flex.reflection_table._intensity_algorithm = \ flex.strategy(IntensityAlgorithm, params) flex.reflection_table._centroid_algorithm = \ flex.strategy(CentroidAlgorithm, params) # Get the integrator class IntegratorClass = IntegratorFactory.select_integrator(IntensityAlgorithm) # Return an instantiation of the class return IntegratorClass( experiments=experiments, reflections=reflections, block_size=params.integration.block.size, max_procs=params.integration.mp.max_procs, mp_method=params.integration.mp.method)
def create(params, experiments, reflections): """Create the integrator from the input configuration.""" from dials.interfaces import IntensityIface from dials.interfaces import BackgroundIface from dials.interfaces import CentroidIface from dials.array_family import flex # Initialise the strategy classes BackgroundAlgorithm = BackgroundIface.extension( params.integration.background.algorithm ) IntensityAlgorithm = IntensityIface.extension( params.integration.intensity.algorithm ) CentroidAlgorithm = CentroidIface.extension( params.integration.centroid.algorithm ) # Set the algorithms in the reflection table flex.reflection_table._background_algorithm = flex.strategy( BackgroundAlgorithm, params ) flex.reflection_table._intensity_algorithm = flex.strategy( IntensityAlgorithm, params ) flex.reflection_table._centroid_algorithm = flex.strategy( CentroidAlgorithm, params ) # Get the integrator class IntegratorClass = IntegratorFactory.select_integrator(IntensityAlgorithm) # Return an instantiation of the class return IntegratorClass( experiments=experiments, reflections=reflections, block_size=params.integration.block.size, max_procs=params.integration.mp.max_procs, mp_method=params.integration.mp.method, )
def generate_phil_scope(): ''' Generate the phil scope. ''' from dials.interfaces import BackgroundIface from dials.interfaces import IntensityIface from dials.interfaces import CentroidIface phil_scope = phil.parse(''' integration { include scope dials.data.lookup.phil_scope mp { method = *multiprocessing sge lsf pbs .type = choice .help = "The multiprocessing method to use" max_procs = 1 .type = int(value_min=1) .help = "The number of processes to use." } block { size = 10 .type = float .help = "The block size in rotation angle (degrees)." } shoebox { n_sigma = 3 .help = "The number of standard deviations of the beam divergence and the" "mosaicity to use for the bounding box size." .type = float sigma_b = None .help = "The E.S.D. of the beam divergence" .type = float sigma_m = None .help = "The E.S.D. of the reflecting range" .type = float } filter { min_zeta = 0.05 .help = "Filter the reflections by the value of zeta. A value of less" "than or equal to zero indicates that this will not be used. A" "positive value is used as the minimum permissable value." .type = float ice_rings { filter = False .type = bool unit_cell = 4.498,4.498,7.338,90,90,120 .type = unit_cell .help = "The unit cell to generate d_spacings for ice rings." space_group = 194 .type = space_group .help = "The space group used to generate d_spacings for ice rings." d_min = 0 .type = int(value_min=0) .help = "The minimum resolution to filter ice rings" width = 0.06 .type = float(value_min=0.0) .help = "The width of an ice ring (in d-spacing)." } } } ''', process_includes=True) main_scope = phil_scope.get_without_substitution("integration") assert(len(main_scope) == 1) main_scope = main_scope[0] main_scope.adopt_scope(BackgroundIface.phil_scope()) main_scope.adopt_scope(IntensityIface.phil_scope()) main_scope.adopt_scope(CentroidIface.phil_scope()) return phil_scope
def generate_phil_scope(): """Generate the phil scope.""" from dials.interfaces import BackgroundIface from dials.interfaces import IntensityIface from dials.interfaces import CentroidIface phil_scope = phil.parse( """ integration { include scope dials.data.lookup.phil_scope mp { method = *multiprocessing sge lsf pbs .type = choice .help = "The multiprocessing method to use" max_procs = 1 .type = int(value_min=1) .help = "The number of processes to use." } block { size = 10 .type = float .help = "The block size in rotation angle (degrees)." } shoebox { n_sigma = 3 .help = "The number of standard deviations of the beam divergence and the" "mosaicity to use for the bounding box size." .type = float sigma_b = None .help = "The E.S.D. of the beam divergence" .type = float sigma_m = None .help = "The E.S.D. of the reflecting range" .type = float } filter { min_zeta = 0.05 .help = "Filter the reflections by the value of zeta. A value of less" "than or equal to zero indicates that this will not be used. A" "positive value is used as the minimum permissable value." .type = float ice_rings { filter = False .type = bool unit_cell = 4.498,4.498,7.338,90,90,120 .type = unit_cell .help = "The unit cell to generate d_spacings for ice rings." space_group = 194 .type = space_group .help = "The space group used to generate d_spacings for ice rings." d_min = 0 .type = int(value_min=0) .help = "The minimum resolution to filter ice rings" width = 0.06 .type = float(value_min=0.0) .help = "The width of an ice ring (in d-spacing)." } } } """, process_includes=True, ) main_scope = phil_scope.get_without_substitution("integration") assert len(main_scope) == 1 main_scope = main_scope[0] main_scope.adopt_scope(BackgroundIface.phil_scope()) main_scope.adopt_scope(IntensityIface.phil_scope()) main_scope.adopt_scope(CentroidIface.phil_scope()) return phil_scope