def main(args): from dials.algorithms.simulation.generate_test_reflections import \ simple_gaussian_spots from dials.algorithms.simulation.generate_test_reflections import \ master_phil from libtbx.phil import command_line cmd = command_line.argument_interpreter(master_params=master_phil) working_phil = cmd.process_and_fetch(args=sys.argv[1:]) params = working_phil.extract() rlist = simple_gaussian_spots(params) import cPickle as pickle if params.output.all: pickle.dump(rlist, open(params.output.all, 'w'))
def main(args): from dials.algorithms.simulation.generate_test_reflections import \ simple_gaussian_spots from dials.algorithms.simulation.generate_test_reflections import \ master_phil from libtbx.phil import command_line cmd = command_line.argument_interpreter(master_params = master_phil) working_phil = cmd.process_and_fetch(args = sys.argv[1:]) params = working_phil.extract() rlist = simple_gaussian_spots(params) import cPickle as pickle if params.output.all: pickle.dump(rlist, open(params.output.all, 'w'))
def generate_reflections(num, min_cts, max_cts, bg): from dials.algorithms.simulation.generate_test_reflections import ( simple_gaussian_spots, ) from random import randint from dials.model.data import ReflectionList from scitbx.array_family import flex from dials.algorithms.shoebox import MaskCode rlist = ReflectionList() expected = [] for i in range(num): cts = randint(min_cts, max_cts) phil = create_phil(1, cts, bg) expected.append(cts) rlist.extend(simple_gaussian_spots(phil)) # background_inclined(rlist) background_xds(rlist) integrate_3d_summation(rlist) import pickle pickle.dump(rlist, open("test.pickle", "w")) # for r in rlist: # from math import sqrt, erf # r.intensity *= 1.0 + (1.0 - erf(3.0 / sqrt(2.0))) for r, e in zip(rlist, expected): mask = r.shoebox_mask background = flex.bool([bool(m & MaskCode.Background) for m in mask]) foreground = flex.bool([bool(m & MaskCode.Foreground) for m in mask]) pixels = r.shoebox.select(foreground) print(e, r.intensity, flex.sum(pixels) - len(pixels) * 0, e / r.intensity) from math import sqrt I = [r.intensity for r in rlist] S = [sqrt(r.intensity_variance) for r in rlist] Z = [(i - e) / s for i, e, s in zip(I, expected, S)] meanz = sum(Z) / len(Z) sdevz = sqrt(sum((z - meanz)**2 for z in Z) / len(Z)) print("MeanZ: %f, SDevZ: %f" % (meanz, sdevz)) from matplotlib import pylab # pylab.ylim(0, 2) pylab.scatter(expected, [e / r.intensity for r, e in zip(rlist, expected)]) pylab.show()
def main(args): from dials.algorithms.simulation.generate_test_reflections import ( simple_gaussian_spots, ) from dials.algorithms.simulation.generate_test_reflections import master_phil from libtbx.phil import command_line cmd = command_line.argument_interpreter(master_params=master_phil) working_phil = cmd.process_and_fetch(args=sys.argv[1:]) params = working_phil.extract() rlist = simple_gaussian_spots(params) import six.moves.cPickle as pickle if params.output.all: with open(params.output.all, "wb") as fh: pickle.dump(rlist, fh, pickle.HIGHEST_PROTOCOL)
def generate_reflections(num, min_cts, max_cts, bg): from dials.algorithms.simulation.generate_test_reflections import simple_gaussian_spots from random import randint from dials.model.data import ReflectionList from scitbx.array_family import flex from dials.algorithms.shoebox import MaskCode rlist = ReflectionList() expected = [] for i in range(num): cts = randint(min_cts, max_cts) phil = create_phil(1, cts, bg) expected.append(cts) rlist.extend(simple_gaussian_spots(phil)) # background_inclined(rlist) background_xds(rlist) integrate_3d_summation(rlist) import pickle pickle.dump(rlist, open("test.pickle", "w")) # for r in rlist: # from math import sqrt, erf # r.intensity *= 1.0 + (1.0 - erf(3.0 / sqrt(2.0))) for r, e in zip(rlist, expected): mask = r.shoebox_mask background = flex.bool([bool(m & MaskCode.Background) for m in mask]) foreground = flex.bool([bool(m & MaskCode.Foreground) for m in mask]) pixels = r.shoebox.select(foreground) print e, r.intensity, flex.sum(pixels) - len(pixels) * 0, e / r.intensity from math import sqrt I = [r.intensity for r in rlist] S = [sqrt(r.intensity_variance) for r in rlist] Z = [(i - e) / s for i, e, s in zip(I, expected, S)] meanz =sum(Z) / len(Z) sdevz =sqrt(sum((z - meanz)**2 for z in Z) / len(Z)) print "MeanZ: %f, SDevZ: %f" % (meanz, sdevz) from matplotlib import pylab #pylab.ylim(0, 2) pylab.scatter(expected, [e / r.intensity for r, e in zip(rlist, expected)]) pylab.show()