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'))
Пример #2
0
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'))
Пример #3
0
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)
Пример #5
0
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()