本文整理汇总了Python中xia2.Handlers.Streams.Chatter类的典型用法代码示例。如果您正苦于以下问题:Python Chatter类的具体用法?Python Chatter怎么用?Python Chatter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Chatter类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: scale
def scale(self):
'''Actually perform the scaling - this is delegated to the
implementation.'''
if self._scalr_integraters == { }:
raise RuntimeError, \
'no Integrater implementations assigned for scaling'
xname = self._scalr_xcrystal.get_name()
while not self.get_scaler_finish_done():
while not self.get_scaler_done():
while not self.get_scaler_prepare_done():
Chatter.banner('Preparing %s' % xname)
self._scalr_prepare_done = True
self._scale_prepare()
Chatter.banner('Scaling %s' % xname)
self._scalr_done = True
self._scalr_result = self._scale()
self._scalr_finish_done = True
self._scale_finish()
return self._scalr_result
开发者ID:hainm,项目名称:xia2,代码行数:28,代码来源:Scaler.py
示例2: run
def run():
try:
check_environment()
check()
except exceptions.Exception, e:
traceback.print_exc(file = open('xia2.error', 'w'))
Chatter.write('Status: error "%s"' % str(e))
开发者ID:hainm,项目名称:xia2,代码行数:7,代码来源:index.py
示例3: get_new_scales_file
def get_new_scales_file(self):
'''Get the file to which the scales have been written.'''
if self._new_scales_file:
if not os.path.isfile(os.path.join(self.get_working_directory(), self._new_scales_file)):
Chatter.write(
"Aimless did not scale the data, see log file for more details:\n %s" %self.get_log_file())
raise RuntimeError, 'data not scaled'
return os.path.join(self.get_working_directory(), self._new_scales_file)
开发者ID:hainm,项目名称:xia2,代码行数:8,代码来源:Aimless.py
示例4: run
def run():
if os.path.exists('xia2-working.phil'):
sys.argv.append('xia2-working.phil')
try:
check_environment()
except exceptions.Exception, e:
traceback.print_exc(file = open('xia2.error', 'w'))
Chatter.write('Status: error "%s"' % str(e))
开发者ID:xia2,项目名称:xia2,代码行数:8,代码来源:rescale.py
示例5: _integrate
def _integrate(self):
'''Implement the integrater interface.'''
# cite the program
Citations.cite('mosflm')
images_str = '%d to %d' % tuple(self._intgr_wedge)
cell_str = '%.2f %.2f %.2f %.2f %.2f %.2f' % tuple(self._intgr_cell)
if len(self._fp_directory) <= 50:
dirname = self._fp_directory
else:
dirname = '...%s' % self._fp_directory[-46:]
Journal.block(
'integrating', self._intgr_sweep_name, 'mosflm',
{'images':images_str,
'cell':cell_str,
'lattice':self.get_integrater_refiner().get_refiner_lattice(),
'template':self._fp_template,
'directory':dirname,
'resolution':'%.2f' % self._intgr_reso_high})
self._mosflm_rerun_integration = False
wd = self.get_working_directory()
try:
if self.get_integrater_sweep_name():
pname, xname, dname = self.get_integrater_project_info()
nproc = PhilIndex.params.xia2.settings.multiprocessing.nproc
if nproc > 1:
Debug.write('Parallel integration: %d jobs' %nproc)
self._mosflm_hklout = self._mosflm_parallel_integrate()
else:
self._mosflm_hklout = self._mosflm_integrate()
# record integration output for e.g. BLEND.
sweep = self.get_integrater_sweep_name()
if sweep:
FileHandler.record_more_data_file(
'%s %s %s %s INTEGRATE' % (pname, xname, dname, sweep),
self._mosflm_hklout)
except IntegrationError, e:
if 'negative mosaic spread' in str(e):
if self._mosflm_postref_fix_mosaic:
Chatter.write(
'Negative mosaic spread - stopping integration')
raise BadLatticeError, 'negative mosaic spread'
Chatter.write(
'Negative mosaic spread - rerunning integration')
self.set_integrater_done(False)
self._mosflm_postref_fix_mosaic = True
开发者ID:xia2,项目名称:xia2,代码行数:58,代码来源:MosflmIntegrater.py
示例6: run
def run():
from libtbx.utils import Sorry
if len(sys.argv) < 2 or '-help' in sys.argv or '--help' in sys.argv:
help()
sys.exit()
try:
check_environment()
except exceptions.Exception, e:
traceback.print_exc(file = open('xia2.error', 'w'))
Chatter.write('Status: error "%s"' % str(e))
开发者ID:xia2,项目名称:xia2,代码行数:11,代码来源:xia2_main.py
示例7: _index_prepare
def _index_prepare(self):
Chatter.banner('Spotfinding %s' %self.get_indexer_sweep_name())
super(XDSIndexerII, self)._index_prepare()
from dials.array_family import flex
from dials.util.ascii_art import spot_counts_per_image_plot
reflection_pickle = spot_xds_to_reflection_pickle(
self._indxr_payload['SPOT.XDS'],
working_directory=self.get_working_directory())
refl = flex.reflection_table.from_pickle(reflection_pickle)
Chatter.write(spot_counts_per_image_plot(refl), strip=False)
开发者ID:xia2,项目名称:xia2,代码行数:11,代码来源:XDSIndexerII.py
示例8: eliminate
def eliminate(self, indxr_print = True):
'''Eliminate the highest currently allowed lattice.'''
if len(self._sorted_list) <= 1:
raise RuntimeError, 'cannot eliminate only solution'
if indxr_print:
Chatter.write('Eliminating indexing solution:')
Chatter.write(self.repr()[0])
self._sorted_list = self._sorted_list[1:]
开发者ID:xia2,项目名称:xia2,代码行数:11,代码来源:Indexer.py
示例9: which
def which(pgm, debug=False):
# python equivalent to the 'which' command
# http://stackoverflow.com/questions/9877462/is-there-a-python-equivalent-to-the-which-command
# FIXME this will not work on Windows as you need to check that there is a
# .bat or a .exe extension
# FIXME also this is implemented in Driver/DriverHelper.py:executable_exists
path = os.getenv('PATH')
for p in path.split(os.path.pathsep):
p = os.path.join(p, pgm)
if debug:
Chatter.write('Seeking %s' % p)
if os.path.exists(p) and os.access(p, os.X_OK):
return p
开发者ID:xia2,项目名称:xia2,代码行数:13,代码来源:Environment.py
示例10: run
def run(self):
from xia2.Handlers.Streams import Chatter, Debug
Debug.write('Running dials.refine')
self.clear_command_line()
self.add_command_line(self._experiments_filename)
self.add_command_line(self._indexed_filename)
self.add_command_line('scan_varying=%s' % self._scan_varying)
if self._close_to_spindle_cutoff is not None:
self.add_command_line(
'close_to_spindle_cutoff=%f' %self._close_to_spindle_cutoff)
if self._outlier_algorithm:
self.add_command_line('outlier.algorithm=%s' % self._outlier_algorithm)
self._refined_experiments_filename = os.path.join(
self.get_working_directory(),
'%s_refined_experiments.json' % self.get_xpid())
self.add_command_line(
'output.experiments=%s' % self._refined_experiments_filename)
self._refined_filename = os.path.join(
self.get_working_directory(), '%s_refined.pickle' % self.get_xpid())
self.add_command_line('output.reflections=%s' % self._refined_filename)
if self._reflections_per_degree is not None:
self.add_command_line(
'reflections_per_degree=%i' %self._reflections_per_degree)
if self._interval_width_degrees is not None:
self.add_command_line(
'unit_cell.smoother.interval_width_degrees=%i' % self._interval_width_degrees)
self.add_command_line(
'orientation.smoother.interval_width_degrees=%i' % self._interval_width_degrees)
if self._detector_fix:
self.add_command_line('detector.fix=%s' % self._detector_fix)
if self._beam_fix:
self.add_command_line('beam.fix=%s' % self._beam_fix)
if self._phil_file is not None:
self.add_command_line('%s' %self._phil_file)
self.start()
self.close_wait()
if not os.path.isfile(self._refined_filename) or \
not os.path.isfile(self._refined_experiments_filename):
Chatter.write(
"DIALS did not refine the data, see log file for more details:\n %s" %self.get_log_file())
raise RuntimeError, 'data not refined'
for record in self.get_all_output():
if 'Sorry: Too few reflections to' in record:
raise RuntimeError, record.strip()
self.check_for_errors()
return
开发者ID:xia2,项目名称:xia2,代码行数:50,代码来源:Refine.py
示例11: integrate
def integrate(self):
'''Actually perform integration until we think we are done...'''
while not self.get_integrater_finish_done():
while not self.get_integrater_done():
while not self.get_integrater_prepare_done():
Debug.write('Preparing to do some integration...')
self.set_integrater_prepare_done(True)
# if this raises an exception, perhaps the autoindexing
# solution has too high symmetry. if this the case, then
# perform a self._intgr_indexer.eliminate() - this should
# reset the indexing system
try:
self._integrate_prepare()
except BadLatticeError, e:
Journal.banner('eliminated this lattice', size = 80)
Chatter.write('Rejecting bad lattice %s' % str(e))
self._intgr_refiner.eliminate()
self._integrater_reset()
# FIXME x1698 - may be the case that _integrate() returns the
# raw intensities, _integrate_finish() returns intensities
# which may have been adjusted or corrected. See #1698 below.
Debug.write('Doing some integration...')
self.set_integrater_done(True)
template = self.get_integrater_sweep().get_template()
if self._intgr_sweep_name:
if PhilIndex.params.xia2.settings.show_template:
Chatter.banner('Integrating %s (%s)' % \
(self._intgr_sweep_name, template))
else:
Chatter.banner('Integrating %s' % \
(self._intgr_sweep_name))
try:
#1698
self._intgr_hklout_raw = self._integrate()
except BadLatticeError, e:
Chatter.write('Rejecting bad lattice %s' % str(e))
Journal.banner('eliminated this lattice', size = 80)
self._intgr_refiner.eliminate()
self._integrater_reset()
开发者ID:xia2,项目名称:xia2,代码行数:55,代码来源:Integrater.py
示例12: run_one_sweep
def run_one_sweep(args):
from xia2.Handlers.Streams import Debug
assert len(args) == 3
s, failover, job_type = args
if job_type:
DriverFactory.set_driver_type(job_type)
Chatter.cache()
Debug.cache()
try:
s.get_integrater_intensities()
except Exception, e:
if failover:
Chatter.write('Processing sweep %s failed: %s' % \
(s.get_name(), str(e)))
s = None
else:
raise
开发者ID:xia2,项目名称:xia2,代码行数:22,代码来源:XWavelength.py
示例13: make_logfile_html
def make_logfile_html(logfile):
tables = extract_loggraph_tables(logfile)
if not tables:
return
rst = []
for table in tables:
try:
#for graph_name, html in table_to_google_charts(table).iteritems():
for graph_name, html in table_to_c3js_charts(table).iteritems():
#rst.append('.. __%s:\n' %graph_name)
rst.append('.. raw:: html')
rst.append('\n '.join(html.split('\n')))
except StandardError, e:
Chatter.write('=' * 80)
Chatter.write('Error (%s) while processing table' % str(e))
Chatter.write(" '%s'" % table.title)
Chatter.write('in %s' % logfile)
Chatter.write('=' * 80)
Debug.write('Exception raised while processing log file %s, table %s' % (logfile, table.title))
Debug.write(traceback.format_exc())
开发者ID:xia2,项目名称:xia2,代码行数:22,代码来源:html.py
示例14: index
def index(self):
if not self.get_indexer_finish_done():
f = inspect.currentframe().f_back.f_back
m = f.f_code.co_filename
l = f.f_lineno
Debug.write('Index in %s called from %s %d' %
(self.__class__.__name__, m, l))
while not self.get_indexer_finish_done():
while not self.get_indexer_done():
while not self.get_indexer_prepare_done():
# --------------
# call prepare()
# --------------
self.set_indexer_prepare_done(True)
self._index_prepare()
# --------------------------------------------
# then do the proper indexing - using the best
# solution already stored if available (c/f
# eliminate above)
# --------------------------------------------
self.set_indexer_done(True)
if self.get_indexer_sweeps():
xsweeps = [ s.get_name() for s in self.get_indexer_sweeps() ]
if len(xsweeps) > 1:
# find "SWEEPn, SWEEP(n+1), (..), SWEEPm" and aggregate to "SWEEPS n-m"
xsweeps = map(lambda x: (int(x[5:]), int(x[5:])) if x.startswith('SWEEP') else x, xsweeps)
xsweeps[0] = [xsweeps[0]]
def compress(seen, nxt):
if isinstance(seen[-1], tuple) and isinstance(nxt, tuple) and (seen[-1][1] + 1 == nxt[0]):
seen[-1] = (seen[-1][0], nxt[1])
else:
seen.append(nxt)
return seen
xsweeps = reduce(compress, xsweeps)
xsweeps = map(lambda x: ('SWEEP%d' % x[0] if x[0] == x[1] else
'SWEEPS %d to %d' % (x[0], x[1])) if isinstance(x, tuple)
else x, xsweeps)
if len(xsweeps) > 1:
sweep_names = ', '.join(xsweeps[:-1])
sweep_names += ' & ' + xsweeps[-1]
else:
sweep_names = xsweeps[0]
if PhilIndex.params.xia2.settings.show_template:
template = self.get_indexer_sweep().get_template()
Chatter.banner(
'Autoindexing %s (%s)' %(sweep_names, template))
else:
Chatter.banner('Autoindexing %s' %sweep_names)
if not self._indxr_helper:
result = self._index()
if not self._indxr_done:
Debug.write(
'Looks like indexing failed - try again!')
continue
solutions = { }
for k in self._indxr_other_lattice_cell.keys():
solutions[k] = self._indxr_other_lattice_cell[k][
'cell']
# create a helper for the indexer to manage solutions
self._indxr_helper = _IndexerHelper(solutions)
solution = self._indxr_helper.get()
# compare these against the final solution, if different
# reject solution and return - correct solution will
# be used next cycle
if self._indxr_lattice != solution[0] and \
not self._indxr_input_cell and \
not PhilIndex.params.xia2.settings.integrate_p1:
Chatter.write('Rerunning indexing lattice %s to %s' %
(self._indxr_lattice, solution[0]))
Debug.write(
'Rerunning indexing with target lattice %s' % \
solution[0])
self.set_indexer_done(False)
else:
# rerun autoindexing with the best known current solution
solution = self._indxr_helper.get()
self._indxr_input_lattice = solution[0]
self._indxr_input_cell = solution[1]
result = self._index()
#.........这里部分代码省略.........
开发者ID:xia2,项目名称:xia2,代码行数:101,代码来源:Indexer.py
示例15: run
from xia2.Applications.xia2 import check, check_cctbx_version, check_environment
from xia2.Applications.xia2 import get_command_line, write_citations, help
def run():
if os.path.exists('xia2-working.phil'):
sys.argv.append('xia2-working.phil')
try:
check_environment()
check()
except exceptions.Exception, e:
traceback.print_exc(file = open('xia2.error', 'w'))
Chatter.write('Status: error "%s"' % str(e))
# print the version
Chatter.write(Version)
Citations.cite('xia2')
start_time = time.time()
assert os.path.exists('xia2.json')
from xia2.Schema.XProject import XProject
xinfo = XProject.from_json(filename='xia2.json')
crystals = xinfo.get_crystals()
for crystal_id, crystal in crystals.iteritems():
#cwd = os.path.abspath(os.curdir)
from libtbx import Auto
scale_dir = PhilIndex.params.xia2.settings.scale.directory
if scale_dir is Auto:
scale_dir = 'scale'
开发者ID:hainm,项目名称:xia2,代码行数:31,代码来源:rescale.py
示例16: _integrate_finish
#.........这里部分代码省略.........
rotn = handle.rotation_axis
beam = handle.beam_vector
dot = sum([rotn[j] * beam[j] for j in range(3)])
r = math.sqrt(sum([rotn[j] * rotn[j] for j in range(3)]))
b = math.sqrt(sum([beam[j] * beam[j] for j in range(3)]))
rtod = 180.0 / math.pi
angle = rtod * math.fabs(0.5 * math.pi - math.acos(dot / (r * b)))
Debug.write('Axis misalignment %.2f degrees' % angle)
correct_deviations = (correct.get_result('rmsd_pixel'),
correct.get_result('rmsd_phi'))
if p1_deviations:
# compare and reject if both > 50% higher - though adding a little
# flexibility - 0.5 pixel / osc width slack.
pixel = p1_deviations[0]
phi = math.sqrt(0.05 * 0.05 + \
p1_deviations[1] * p1_deviations[1])
threshold = Flags.get_rejection_threshold()
Debug.write('RMSD ratio: %.2f' % (correct_deviations[0] / pixel))
Debug.write('RMSPhi ratio: %.2f' % (correct_deviations[1] / phi))
if correct_deviations[0] / pixel > threshold and \
correct_deviations[1] / phi > threshold:
Chatter.write(
'Eliminating this indexing solution as postrefinement')
Chatter.write(
'deviations rather high relative to triclinic')
raise BadLatticeError, \
'high relative deviations in postrefinement'
if not Flags.get_quick() and Flags.get_remove():
# check for alien reflections and perhaps recycle - removing them
if len(correct.get_remove()) > 0:
correct_remove = correct.get_remove()
current_remove = []
final_remove = []
# first ensure that there are no duplicate entries...
if os.path.exists(os.path.join(
self.get_working_directory(),
'REMOVE.HKL')):
for line in open(os.path.join(
self.get_working_directory(),
'REMOVE.HKL'), 'r').readlines():
h, k, l = map(int, line.split()[:3])
z = float(line.split()[3])
if not (h, k, l, z) in current_remove:
current_remove.append((h, k, l, z))
for c in correct_remove:
if c in current_remove:
continue
final_remove.append(c)
开发者ID:hainm,项目名称:xia2,代码行数:66,代码来源:XDSIntegrater.py
示例17: _mosflm_integrate
#.........这里部分代码省略.........
'mosflm', 'raster',
'%d %d %d %d %d' % tuple(integration_params['raster']))
refinr.set_refiner_payload('mosflm_integration_parameters', None)
f = open(os.path.join(self.get_working_directory(),
'xiaintegrate.mat'), 'w')
for m in matrix:
f.write(m)
f.close()
# then start the integration
integrater = MosflmIntegrate()
integrater.set_working_directory(self.get_working_directory())
auto_logfiler(integrater)
integrater.set_refine_profiles(self._mosflm_refine_profiles)
pname, xname, dname = self.get_integrater_project_info()
if pname is not None and xname is not None and dname is not None:
Debug.write('Harvesting: %s/%s/%s' % (pname, xname, dname))
harvest_dir = self.get_working_directory()
# harvest file name will be %s.mosflm_run_start_end % dname
temp_dname = '%s_%s' % \
(dname, self.get_integrater_sweep_name())
integrater.set_pname_xname_dname(pname, xname, temp_dname)
integrater.set_template(os.path.basename(self.get_template()))
integrater.set_directory(self.get_directory())
# check for ice - and if so, exclude (ranges taken from
# XDS documentation)
if self.get_integrater_ice() != 0:
Debug.write('Excluding ice rings')
integrater.set_exclude_ice(True)
# exclude specified resolution ranges
if len(self.get_integrater_excluded_regions()) != 0:
regions = self.get_integrater_excluded_regions()
Debug.write('Excluding regions: %s' % `regions`)
integrater.set_exclude_regions(regions)
mask = standard_mask(self.get_detector())
for m in mask:
integrater.add_instruction(m)
integrater.set_input_mat_file('xiaintegrate.mat')
integrater.set_beam_centre(beam)
integrater.set_distance(distance)
integrater.set_space_group_number(spacegroup_number)
integrater.set_mosaic(mosaic)
if self.get_wavelength_prov() == 'user':
integrater.set_wavelength(self.get_wavelength())
parameters = self.get_integrater_parameters('mosflm')
integrater.update_parameters(parameters)
if self._mosflm_gain:
integrater.set_gain(self._mosflm_gain)
# check for resolution limits
if self._intgr_reso_high > 0.0:
integrater.set_d_min(self._intgr_reso_high)
if self._intgr_reso_low:
integrater.set_d_max(self._intgr_reso_low)
if PhilIndex.params.general.backstop_mask:
from xia2.Toolkit.BackstopMask import BackstopMask
mask = BackstopMask(PhilIndex.params.general.backstop_mask)
mask = mask.calculate_mask_mosflm(self.get_header())
integrater.set_mask(mask)
detector = self.get_detector()
detector_width, detector_height = detector[0].get_image_size_mm()
lim_x = 0.5 * detector_width
lim_y = 0.5 * detector_height
Debug.write('Scanner limits: %.1f %.1f' % (lim_x, lim_y))
integrater.set_limits(lim_x, lim_y)
integrater.set_fix_mosaic(self._mosflm_postref_fix_mosaic)
offset = self.get_frame_offset()
integrater.set_image_range(
(self._intgr_wedge[0] - offset, self._intgr_wedge[1] - offset))
try:
integrater.run()
except RuntimeError, e:
if 'integration failed: reason unknown' in str(e):
Chatter.write('Mosflm has failed in integration')
message = 'The input was:\n\n'
for input in integrater.get_all_input():
message += ' %s' % input
Chatter.write(message)
raise
开发者ID:xia2,项目名称:xia2,代码行数:101,代码来源:MosflmIntegrater.py
示例18: _mosflm_parallel_integrate
#.........这里部分代码省略.........
# if a BGSIG error happened try not refining the
# profile and running again...
if job.get_bgsig_too_large():
if not self._mosflm_refine_profiles:
raise RuntimeError, 'BGSIG error with profiles fixed'
Debug.write(
'BGSIG error detected - try fixing profile...')
self._mosflm_refine_profiles = False
self.set_integrater_done(False)
return
if job.get_getprof_error():
Debug.write(
'GETPROF error detected - try fixing profile...')
self._mosflm_refine_profiles = False
self.set_integrater_done(False)
return
# here
# write the report for each image as .*-#$ to Chatter -
# detailed report will be written automagically to science...
self._intgr_per_image_statistics.update(job.get_per_image_statistics())
postref_result.update(job.get_postref_result())
# inspect the output for e.g. very high weighted residuals
all_residuals.extend(job.get_residuals())
self._intgr_batches_out = (integrated_images_first,
integrated_images_last)
if mosaics and len(mosaics) > 0:
self.set_integrater_mosaic_min_mean_max(
min(mosaics), sum(mosaics) / len(mosaics), max(mosaics))
else:
m = indxr.get_indexer_mosaic()
self.set_integrater_mosaic_min_mean_max(m, m, m)
Chatter.write(self.show_per_image_statistics())
Chatter.write('Mosaic spread: %.3f < %.3f < %.3f' % \
self.get_integrater_mosaic_min_mean_max())
# gather the statistics from the postrefinement for all sweeps
# now write this to a postrefinement log
postref_log = os.path.join(self.get_working_directory(),
'postrefinement.log')
fout = open(postref_log, 'w')
fout.write('$TABLE: Postrefinement for %s:\n' % \
self._intgr_sweep_name)
fout.write('$GRAPHS: Missetting angles:A:1, 2, 3, 4: $$\n')
fout.write('Batch PhiX PhiY PhiZ $$ Batch PhiX PhiY PhiZ $$\n')
for image in sorted(postref_result):
phix = postref_result[image].get('phix', 0.0)
phiy = postref_result[image].get('phiy', 0.0)
phiz = postref_result[image].get('phiz', 0.0)
fout.write('%d %5.2f %5.2f %5.2f\n' % \
(image, phix, phiy, phiz))
fout.write('$$\n')
fout.close()
if self.get_integrater_sweep_name():
pname, xname, dname = self.get_integrater_project_info()
FileHandler.record_log_file('%s %s %s %s postrefinement' % \
(self.get_integrater_sweep_name(),
pname, xname, dname),
postref_log)
hklouts.sort()
hklout = os.path.join(self.get_working_directory(),
os.path.split(hklouts[0])[-1])
Debug.write('Sorting data to %s' % hklout)
for hklin in hklouts:
Debug.write('<= %s' % hklin)
sortmtz = Sortmtz()
sortmtz.set_hklout(hklout)
for hklin in hklouts:
sortmtz.add_hklin(hklin)
sortmtz.sort()
self._mosflm_hklout = hklout
return self._mosflm_hklout
开发者ID:xia2,项目名称:xia2,代码行数:101,代码来源:MosflmIntegrater.py
示例19: _integrate
def _integrate(self):
'''Actually do the integration - in XDS terms this will mean running
DEFPIX and INTEGRATE to measure all the reflections.'''
experiment = self._intgr_refiner.get_refined_experiment_list(
self.get_integrater_epoch())[0]
crystal_model = experiment.crystal
self._intgr_refiner_cell = crystal_model.get_unit_cell().parameters()
images_str = '%d to %d' % tuple(self._intgr_wedge)
cell_str = '%.2f %.2f %.2f %.2f %.2f %.2f' %tuple(self._intgr_refiner_cell)
if len(self._fp_directory) <= 50:
dirname = self._fp_directory
else:
dirname = '...%s' % self._fp_directory[-46:]
Journal.block(
'integrating', self._intgr_sweep_name, 'XDS',
{'images':images_str,
'cell':cell_str,
'lattice':self._intgr_refiner.get_refiner_lattice(),
'template':self._fp_template,
'directory':dirname,
'resolution':'%.2f' % self._intgr_reso_high})
first_image_in_wedge = self.get_image_name(self._intgr_wedge[0])
defpix = self.Defpix()
# pass in the correct data
for file in ['X-CORRECTIONS.cbf',
'Y-CORRECTIONS.cbf',
'BKGINIT.cbf',
'XPARM.XDS']:
defpix.set_input_data_file(file, self._xds_data_files[file])
defpix.set_data_range(self._intgr_wedge[0],
self._intgr_wedge[1])
if self.get_integrater_high_resolution() > 0.0 and \
self.get_integrater_user_resolution():
Debug.write('Setting resolution limit in DEFPIX to %.2f' % \
self.get_integrater_high_resolution())
defpix.set_resolution_high(self.get_integrater_high_resolution())
defpix.set_resolution_low(self.get_integrater_low_resolution())
elif self.get_integrater_low_resolution():
Debug.write('Setting low resolution limit in DEFPIX to %.2f' % \
self.get_integrater_low_resolution())
defpix.set_resolution_high(0.0)
defpix.set_resolution_low(self.get_integrater_low_resolution())
defpix.run()
# and gather the result files
for file in ['BKGPIX.cbf',
'ABS.cbf']:
self._xds_data_files[file] = defpix.get_output_data_file(file)
integrate = self.Integrate()
if self._xds_integrate_parameters:
integrate.set_updates(self._xds_integrate_parameters)
# decide what images we are going to process, if not already
# specified
if not self._intgr_wedge:
images = self.get_matching_images()
self.set_integrater_wedge(min(images),
max(images))
first_image_in_wedge = self.get_image_name(self._intgr_wedge[0])
integrate.set_data_range(self._intgr_wedge[0],
self._intgr_wedge[1])
for file in ['X-CORRECTIONS.cbf',
'Y-CORRECTIONS.cbf',
'BLANK.cbf',
'BKGPIX.cbf',
'GAIN.cbf']:
integrate.set_input_data_file(file, self._xds_data_files[file])
if self._xds_data_files.has_key('GXPARM.XDS'):
Debug.write('Using globally refined parameters')
integrate.set_input_data_file(
'XPARM.XDS', self._xds_data_files['GXPARM.XDS'])
integrate.set_refined_xparm()
else:
integrate.set_input_data_file(
'XPARM.XDS', self._xds_data_files['XPARM.XDS'])
integrate.run()
self._intgr_per_image_statistics = integrate.get_per_image_statistics()
Chatter.write(self.show_per_image_statistics())
#.........这里部分代码省略.........
开发者ID:hainm,项目名称:xia2,代码行数:101,代码来源:XDSIntegrater.py
示例20: _scale_prepare
#.........这里部分代码省略.........
refiner = intgr.get_integrater_refiner()
if self._scalr_input_pointgroup:
pointgroup = self._scalr_input_pointgroup
reindex_op = 'h,k,l'
ntr = False
else:
pointless_hklin = self._prepare_pointless_hklin(
hklin, si.get_integrater().get_phi_width())
pointgroup, reindex_op, ntr, pt = \
self._pointless_indexer_jiffy(
pointless_hklin, refiner)
Debug.write('X1698: %s: %s' % (pointgroup, reindex_op))
lattice = Syminfo.get_lattice(pointgroup)
if not lattice in lattices:
lattices.append(lattice)
if ntr:
intgr.integrater_reset_reindex_operator()
need_to_return = True
if len(lattices) > 1:
# why not using pointless indexer jiffy??!
correct_lattice = sort_lattices(lattices)[0]
Chatter.write('Correct lattice asserted to be %s' % \
correct_lattice)
# transfer this information back to the indexers
for epoch in self._sweep_handler.get_epochs():
si = self._sweep_handler.get_sweep_information(epoch)
refiner = si.get_integrater().get_integrater_refiner()
sname = si.get_sweep_name()
state = refiner.set_refiner_asserted_lattice(
correct_lattice)
if state == refiner.LATTICE_CORRECT:
Chatter.write('Lattice %s ok for sweep %s' % \
(correct_lattice, sname))
elif state == refiner.LATTICE_IMPOSSIBLE:
raise RuntimeError, 'Lattice %s impossible for %s' \
% (correct_lattice, sname)
elif state == refiner.LATTICE_POSSIBLE:
Chatter.write('Lattice %s assigned for sweep %s' % \
(correct_lattice, sname))
need_to_return = True
# if one or more of them was not in the lowest lattice,
# need to return here to allow reprocessing
if need_to_return:
self.set_scaler_done(False)
self.set_scaler_prepare_done(False)
return
# ---------- REINDEX ALL DATA TO CORRECT POINTGROUP ----------
开发者ID:hainm,项目名称:xia2,代码行数:67,代码来源:CCP4ScalerA.py
注:本文中的xia2.Handlers.Streams.Chatter类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论