def load_reflections_file(self,
                           file_name,
                           set_array=True,
                           data_only=False):
     file_name = to_str(file_name)
     if (file_name != ""):
         from iotbx.reflection_file_reader import any_reflection_file
         self.viewer.isnewfile = True
         #self.params.NGL_HKLviewer.mergedata = None
         self.viewer.iarray = -1
         self.viewer.colour_scene_id = -1
         self.viewer.radii_scene_id = -1
         self.viewer.match_valarrays = []
         self.viewer.proc_arrays = []
         self.spacegroup_choices = []
         display.reset_settings()
         self.settings = display.settings()
         self.viewer.settings = self.params.NGL_HKLviewer.viewer
         self.viewer.mapcoef_fom_dict = {}
         try:
             hkl_file = any_reflection_file(file_name)
             arrays = hkl_file.as_miller_arrays(
                 merge_equivalents=False,
             )  #observation_type_callback=misc_dialogs.get_shelx_file_data_type)
             #arrays = f.file_server.miller_arrays
         except Exception as e:
             self.NewFileLoaded = False
             self.mprint(to_str(e))
             arrays = []
         valid_arrays = []
         self.array_infostrs = []
         self.array_infotpls = []
         for array in arrays:
             #if array.is_hendrickson_lattman_array() :
             #  continue
             #elif (data_only) :
             if (not array.is_real_array()) and (not array.is_complex_array()) \
              and (not array.is_integer_array()) and (not array.is_bool_array()) :
                 self.mprint('Ignoring miller array \"%s\" of %s' \
                   %(array.info().label_string(), type(array.data()[0]) ) )
                 continue
             self.array_infostrs.append(
                 ArrayInfo(array, self.mprint).infostr)
             self.array_infotpls.append(
                 ArrayInfo(array, self.mprint).infotpl)
             valid_arrays.append(array)
         self.valid_arrays = valid_arrays
         self.mprint("Miller arrays in this file:")
         for e in self.array_infostrs:
             self.mprint("%s" % e)
         self.NewFileLoaded = True
         if (len(valid_arrays) == 0):
             msg = "No arrays of the supported types in this file."
             self.mprint(msg)
             self.NewFileLoaded = False
             return False
         elif (len(valid_arrays) >= 1):
             if (set_array):
                 self.set_miller_array()
             return True
示例#2
0
 def __init__(self, *args, **kwds):
     self.valid_arrays = []
     self.spacegroup_choices = []
     self.array_infostrs = []
     self.array_infotpls = []
     self.procarrays = []
     self.merge_answer = [None]
     self.dmin = -1
     self.settings = display.settings()
     self.verbose = 0
     if 'verbose' in kwds:
         self.verbose = kwds['verbose']
     kwds['settings'] = self.settings
     kwds['mprint'] = self.mprint
     self.infostr = ""
     self.guiSocketPort = None
     if 'useGuiSocket' in kwds:
         self.guiSocketPort = kwds['useGuiSocket']
         self.context = zmq.Context()
         self.guisocket = self.context.socket(zmq.PAIR)
         self.guisocket.connect("tcp://127.0.0.1:%s" % self.guiSocketPort)
         self.STOP = False
         print("starting socketthread")
         self.msgqueuethrd = threading.Thread(target=self.zmq_listen)
         self.msgqueuethrd.daemon = True
         self.msgqueuethrd.start()
         kwds['guisocket'] = self.guisocket
     kwds['websockport'] = self.find_free_port()
     self.viewer = view_3d.hklview_3d(**kwds)
     self.ResetPhilandViewer()
     self.NewFileLoaded = False
示例#3
0
 def __init__ (self, *args, **kwds) :
   self.miller_array = None
   self.valid_arrays = []
   self.spacegroup_choices = []
   self.array_infostrs = []
   self.array_infotpls = []
   self.merge_answer = [None]
   self.dmin = -1
   self.settings = display.settings()
   self.verbose = True
   if kwds.has_key('verbose'):
     self.verbose = kwds['verbose']
   kwds['settings'] = self.settings
   kwds['mprint'] = self.mprint
   self.viewer = view_3d.hklview_3d( **kwds )
   self.ResetPhilandViewer()
   self.NewFileLoaded = False
   self.infostr = ""
   self.useSocket=False
   if kwds.has_key('useSocket'):
     self.useSocket = kwds['useSocket']
     self.context = zmq.Context()
     self.socket = self.context.socket(zmq.PAIR)
     self.socket.connect("tcp://127.0.0.1:7895")
     self.STOP = False
     print "starting socketthread"
     self.msgqueuethrd = threading.Thread(target = self.zmq_listen )
     self.msgqueuethrd.daemon = True
     self.msgqueuethrd.start()
 def __init__ (self, *args, **kwds) :
   self.valid_arrays = []
   self.spacegroup_choices = []
   self.procarrays = []
   self.origarrays = {}
   self.merge_answer = [None]
   self.dmin = -1
   self.settings = display.settings()
   self.verbose = 0
   if 'verbose' in kwds:
     self.verbose = eval(kwds['verbose'])
   self.guiSocketPort=None
   self.mprint("kwds= " +str(kwds), 1)
   self.mprint("args= " + str(args), 1)
   kwds['settings'] = self.settings
   kwds['mprint'] = self.mprint
   self.infostr = ""
   self.hklfile_history = []
   self.tncsvec = None
   self.uservectors = []
   self.new_miller_array_operations_lst = []
   self.copyrightpaths = [("CCTBX copyright", libtbx.env.under_root(os.path.join("modules","cctbx_project","COPYRIGHT.txt"))),
    ("NGL copyright", libtbx.env.under_root(os.path.join("modules","cctbx_project","crys3d","hklview","License_for_NGL.txt"))),
    ("html2canvas copyright", libtbx.env.under_root(os.path.join("modules","cctbx_project","crys3d","hklview","LICENSE_for_html2canvas.txt")))
   ]
   self.zmqsleeptime = 0.1
   if 'useGuiSocket' in kwds:
     self.guiSocketPort = eval(kwds['useGuiSocket'])
     self.context = zmq.Context()
     self.guisocket = self.context.socket(zmq.PAIR)
     self.guisocket.connect("tcp://127.0.0.1:%s" %self.guiSocketPort )
     self.STOP = False
     self.mprint("starting socketthread", 1)
     # name this thread to ensure any asyncio functions are called only from main thread
     self.msgqueuethrd = threading.Thread(target = self.zmq_listen, name="HKLviewerZmqThread" )
     self.msgqueuethrd.daemon = True
     kwds['send_info_to_gui'] = self.SendInfoToGUI # function also used by hklview_3d
     pyversion = "cctbx.python.version: " + str(sys.version_info[0])
     # tell gui what python version we are
     self.SendInfoToGUI(pyversion )
     self.SendInfoToGUI({"copyrights": self.copyrightpaths } )
   kwds['websockport'] = self.find_free_port()
   kwds['parent'] = self
   self.viewer = view_3d.hklview_3d( **kwds )
   self.ResetPhilandViewer()
   self.idx_data = None
   self.NewFileLoaded = False
   self.loaded_file_name = ""
   self.hklin = None
   if 'hklin' in kwds or 'HKLIN' in kwds:
     self.hklin = kwds.get('hklin', kwds.get('HKLIN') )
     self.LoadReflectionsFile(self.hklin)
   if 'useGuiSocket' in kwds:
     self.msgqueuethrd.start()
示例#5
0
 def __init__(self, *args, **kwds):
     self.miller_array = None
     self.valid_arrays = []
     self.spacegroup_choices = []
     self.procarrays = []
     self.array_info = []
     self.dmin = -1
     self.settings = display.settings()
     self.verbose = True
     if kwds.has_key('verbose'):
         self.verbose = kwds['verbose']
     kwds['settings'] = self.settings
     kwds['mprint'] = self.mprint
     self.viewer = view_3d.hklview_3d(**kwds)
 def prepare_dataloading(self):
   self.viewer.isnewfile = True
   #self.params.mergedata = None
   self.params.viewer.scene_id = None
   self.viewer.colour_scene_id = None
   self.viewer.radii_scene_id = None
   self.viewer.match_valarrays = []
   self.viewer.proc_arrays = {}
   self.spacegroup_choices = []
   self.origarrays = {}
   display.reset_settings()
   self.settings = display.settings()
   self.viewer.settings = self.params.viewer
   self.viewer.mapcoef_fom_dict = {}
   self.viewer.sceneid_from_arrayid = []
   self.hklfile_history = []
   self.tncsvec = None
   self.loaded_file_name = ""
示例#7
0
 def LoadReflectionsFile(self, file_name, set_array=True, data_only=False):
     file_name = to_str(file_name)
     if (file_name != ""):
         from iotbx.reflection_file_reader import any_reflection_file
         self.viewer.isnewfile = True
         self.viewer.iarray = 0
         self.viewer.icolourcol = 0
         self.viewer.iradiicol = 0
         display.reset_settings()
         self.settings = display.settings()
         self.viewer.settings = self.settings
         self.viewer.mapcoef_fom_dict = {}
         try:
             hkl_file = any_reflection_file(file_name)
         except Exception, e:
             raise Sorry(to_str(e))
         arrays = hkl_file.as_miller_arrays(
             merge_equivalents=False,
         )  #observation_type_callback=misc_dialogs.get_shelx_file_data_type)
         #arrays = f.file_server.miller_arrays
         valid_arrays = []
         self.array_info = []
         for array in arrays:
             #if array.is_hendrickson_lattman_array() :
             #  continue
             #elif (data_only) :
             if (data_only):
                 if (not array.is_real_array()) and (
                         not array.is_complex_array()):
                     continue
             self.array_info.append(ArrayInfo(array).infostr)
             valid_arrays.append(array)
         self.valid_arrays = valid_arrays
         for i, e in enumerate(self.array_info):
             self.mprint("%d, %s" % (i, e))
         if (len(valid_arrays) == 0):
             msg = "No arrays of the supported types in this file."
             raise Sorry(msg)
         elif (len(valid_arrays) == 1):
             if (set_array):
                 self.set_miller_array(valid_arrays[0])
             return valid_arrays[0]
 def __init__ (self, *args, **kwds) :
   self.valid_arrays = []
   self.spacegroup_choices = []
   self.procarrays = []
   self.merge_answer = [None]
   self.dmin = -1
   self.settings = display.settings()
   self.verbose = 0
   if 'verbose' in kwds:
     self.verbose = eval(kwds['verbose'])
   self.guiSocketPort=None
   self.mprint("kwds= " +str(kwds), 1)
   self.mprint("args= " + str(args), 1)
   kwds['settings'] = self.settings
   kwds['mprint'] = self.mprint
   self.infostr = ""
   self.hklfile_history = []
   self.tncsvec = None
   self.new_miller_array_operations_lst = []
   self.zmqsleeptime = 0.1
   if 'useGuiSocket' in kwds:
     self.guiSocketPort = eval(kwds['useGuiSocket'])
     self.context = zmq.Context()
     self.guisocket = self.context.socket(zmq.PAIR)
     self.guisocket.connect("tcp://127.0.0.1:%s" %self.guiSocketPort )
     self.STOP = False
     self.mprint("starting socketthread", 1)
     self.msgqueuethrd = threading.Thread(target = self.zmq_listen )
     self.msgqueuethrd.daemon = True
     self.msgqueuethrd.start()
     kwds['send_info_to_gui'] = self.SendInfoToGUI # function also used by hklview_3d
   kwds['websockport'] = self.find_free_port()
   kwds['parent'] = self
   self.viewer = view_3d.hklview_3d( **kwds )
   self.ResetPhilandViewer()
   self.idx_data = None
   self.NewFileLoaded = False
   self.loaded_file_name = ""
   self.hklin = None
   if 'hklin' in kwds or 'HKLIN' in kwds:
     self.hklin = kwds.get('hklin', kwds.get('HKLIN') )
     self.LoadReflectionsFile(self.hklin)
示例#9
0
  def load_reflections_file(self, file_name, set_array=True, data_only=False):
    file_name = to_str(file_name)
    if (file_name != ""):
      self.mprint("Reading file...")
      from iotbx.reflection_file_reader import any_reflection_file
      self.viewer.isnewfile = True
      #self.params.NGL_HKLviewer.mergedata = None
      self.params.NGL_HKLviewer.viewer.scene_id = None
      self.viewer.colour_scene_id = None
      self.viewer.radii_scene_id = None
      self.viewer.match_valarrays = []
      self.viewer.proc_arrays = []
      self.spacegroup_choices = []
      display.reset_settings()
      self.settings = display.settings()
      self.viewer.settings = self.params.NGL_HKLviewer.viewer
      self.viewer.mapcoef_fom_dict = {}
      self.hklfile_history = []
      self.tncsvec = None
      try :
        hkl_file = any_reflection_file(file_name)
        arrays = hkl_file.as_miller_arrays(merge_equivalents=False,
          )#observation_type_callback=misc_dialogs.get_shelx_file_data_type)
        #arrays = f.file_server.miller_arrays
        if hkl_file._file_type == 'ccp4_mtz':
          self.hklfile_history = list(hkl_file._file_content.history())
          for e in self.hklfile_history:
            if "TNCS NMOL" in e and "VECTOR" in e:
              svec = e.split()[-3:]
              t1 = float(svec[0])
              t2 = float(svec[1])
              t3 = float(svec[2])
              if (t1*t1 + t2*t2 + t3*t3) > 0.0:
                self.tncsvec = [ t1, t2, t3 ]
                self.mprint("tNCS vector found in header of mtz file: %s" %str(svec) )
      except Exception as e :
        self.NewFileLoaded=False
        self.mprint(to_str(e))
        arrays = []

      valid_arrays = []
      self.viewer.array_infostrs = []
      self.viewer.array_infotpls = []
      for array in arrays :
        #if array.is_hendrickson_lattman_array() :
        #  continue
        #elif (data_only) :
        if (not array.is_real_array()) and (not array.is_complex_array()) \
         and (not array.is_integer_array()) and (not array.is_bool_array()) :
          self.mprint('Ignoring miller array \"%s\" of %s' \
            %(array.info().label_string(), type(array.data()[0]) ) )
          continue
        self.viewer.array_infostrs.append( ArrayInfo(array, self.mprint).infostr )
        self.viewer.array_infotpls.append( ArrayInfo(array, self.mprint).infotpl )
        valid_arrays.append(array)
      self.valid_arrays = valid_arrays
      self.mprint("Miller arrays in this file:")
      for e in self.viewer.array_infostrs:
        self.mprint("%s" %e)
      self.mprint("\n")
      self.NewFileLoaded = True
      if (len(valid_arrays) == 0):
        msg = "No arrays of the supported types in this file."
        self.mprint(msg)
        self.NewFileLoaded=False
        return False
      elif (len(valid_arrays) >= 1):
        if (set_array):
          self.set_miller_array()
          self.viewer.superset_all_miller_arrays()
        mydict = { "info": self.infostr,
                   "array_infotpls": self.viewer.array_infotpls,
                   "bin_infotpls": self.viewer.bin_infotpls,
                   "html_url": self.viewer.url,
                   "tncsvec": self.tncsvec,
                   "merge_data": self.params.NGL_HKLviewer.merge_data,
                   "spacegroups": [e.symbol_and_number() for e in self.spacegroup_choices],
                   "NewFileLoaded": self.NewFileLoaded
                  }
        self.SendInfoToGUI(mydict)
        return True