xia2.ssx
: Enable slicing a subset of images/templates using<filename>:start:end
syntax. (#740)xia2.ssx_reduce
: Improved workflow for resolving indexing ambiguity. (#761)xia2.ssx
: Addstarting_geometry=
option, to set an initial geometry for further geometry refinement. (#763)xia2.cluster_analysis
: Addrun_cluster_identification=
option to toggle cluster identification analysis. (#767)
xia2.multiplex
: Automatically extend r_free flags for clusters and filtered datasets. (#747)xia2.ssx_reduce
: Improve data selection for indexing ambiguity resolution. (#760)xia2.cluster_analysis
: Fixed bug where interesting clusters were not identified, due to inconsistency in file paths. (#764)xia2.multiplex
: Fix duplicate-batch-offsets crash for multi-lattice data. (#765)xia2.multiplex
: Exit cleanly when supplied with still-shot data. (#766)xia2.ssx_reduce
: Fix test for potential accidental indexing ambiguities for non-MX space groups. (#768)
xia2.ssx
: Enable slicing a subset of images/templates using file:start:end syntax (#740)xia2.ssx_reduce
: Improved indexing ambiguity resolution workflow (#761)xia2.ssx
: Add starting_geometry= option, which is used as an initial geometry with further geometry refinement run. (#763)xia2.cluster_analysis
: Add run_cluster_identification option to toggle on/off cluster identification analysis (#767)
xia2.multiplex
: Automatically extend r_free flags for clusters and filtered datasets. (#747)- Improve data selection for indexing ambiguity resolution in ssx_reduce (#760)
xia2.cluster_analysis
: Fixed bug where interesting clusters were not identified due to inconsistency in file paths (#764)xia2.multiplex
: Fix duplicate-batch-offsets crash for multi-lattice data (#765)xia2.multiplex
: Exit cleanly when supplied with still-shot data (#766)xia2.ssx_reduce
: Fix test for potential accidental indexing ambiguities for non-MX space groups (#768)
xia2.cluster_analysis
: The cluster selection algorithm now handles edge cases more robustly. (#744)xia2.multiplex
: Added optionreference=
, to use a reference pdb for consistent indexing. (#748)xia2.multiplex
: Add support for multi-wavelength processing. (#755)
xia2.cluster_analysis
: The clustering algorithm fromxia2.multiplex
is now available as a separated module, applicable to any merged data from dials (rotation or stills). (#733)xia2.ssx
: Report hit and indexing rates during processing. (#735)xia2.ssx_reduce
: Allow setting of the partiality threshold (default now 0.25). (#743)
xia2.ssx
: Include solvent contribution when generating reference intensities from a model. Adds k_sol and b_sol parameters. (#737)xia2.ssx
: Fix error in progress reporting when no hits found, or when no images indexed in a batch. (#739)
xia2.ssx
: Enable arbitrary grouping of data for merging by specifying a grouping yml, add dose_series_repeat=$n option to indicate dose series for merging. (#713)- Add handling for small-molecule chemical formula data, and extra help output when using
xia2.small_molecule
. (#723) xia2.ssx
: Improve unit cell assessment and reporting when unit cell is not known. (#731)xia2.multiplex
: GenerateFreeR_flag
column in merged mtz output, ensuring flags are consistent across all clusters/filtered reflections. (#732)
- CPU allocation limits will now be correctly inherited from the Slurm cluster scheduler. (#722)
xia2.ssx
: Don't use the beam model from a reference geometry. (#724)xia2.ssx
: If rerunning in same directory, make sure correct batch folders are generated. (#725)xia2.ssx
: When re-importing with the self-determined reference geometry, don't overwrite the detector model with manually specified phil options. (#726)
xia2.ssx
: Handle data from PAL-XFEL and SACLA. (#719)xia2.ssx
: Report r-split metric in merging stats (#721)
- Documentation: add hdf5_plugin description (#716)
xia2.ssx
andxia2.ssx_reduce
are now considered stable, so have dropped thedev.
prefix. (#710)
xia2.ssx
: Fix error in deciding whether to assess indexing ambiguities. (#705)xia2.ssx
: Fix crash in geometry refinement when a block has no indexable images. (#707)- Explicitly set the log file encoding to be UTF-8. This could break on systems set to non-native character encodings. (#709)
xia2.ssx
: Avoid crash if no images successfully integrated. (#711)
dev.xia2.ssx
: Add data reduction to experimental ssx pipeline, and expose data reduction as the new standalonedev.xia2.ssx_reduce
program. (#683)
xia2.to_shelx
: Fix crash when using unmerged mtz with the--cell
option. (#698)
dev.xia2.ssx
: Fix reporting of missing phil files, fix crash when no images indexed in a batch (#686)
- Add unmerged items to mmcif output, conform to the v5 mmcif dictionary by default. (#667)
dev.xia2.ssx
: Add first part of a developmental ssx processing pipeline (data integration) (#670)
- Unit cell clustering fixes for dials/dials#2081 (#668)
- Move
DataManager
to separate module to avoid circular import (#669) - Fix cases where NeXus files not following the Eiger conventions (
/entry/data/data_[nnnn]`
) were ignored. (#672) - Fix bug in
pipeline=dials
where the working directory contains the letters"mtz"
, which would incorrectly be replaced with"sca"
, leading to an error. (#674) dev.xia2.ssx
: Correctly report all spot histograms for multi-imageset input to spotfinding (#678)
- The option
report.resolution_bins
for specifying the number of resolution bins in the merging statistics report inxia2.html
is now deprecated. Please use themerging_statistics.n_bins
option instead. If you don't specify either parameter, you will not notice any change in behaviour — the default will still be to use 20 resolution bins. (#666)
xia2.delta_cc_half
: Add overall CC½, plus a completeness column to the table. (#645)
xia2.multiplex
: Allow processing imported mtz when imageset is absent. (#641)- Avoid hanging on a call to
pointless
to get version information. (#651)
- xia2 no longer supports Python 3.7. (#646)
xia2.multiplex
: Add, and update, PHIL parameter descriptions. (#644)
xia2.multiplex
: Extend available deltacchalf filtering options to match those indials.scale
. (#631)xia2.compare_merging_stats latex=True
: include cc-anom. (#633)
xia2.compute_merging_stats
: Avoid warning in output. (#636)- Fix test failure by deprecation of DIALS' OptionParser. (#642)
xia2.multiplex
: Include additional graphs in json output (#637)
- New option
general.check_for_saturated_pixels=True
, to warn about saturated pixels found whilst performing spot finding. This may be turned on by default in a future release. (#624)
xia2.compare_merging_statistics
: If no input files provided, print help, and not empty plots. (#629)xia2.overload
: Handle command arguments in a more standard way (#415)- Handle installing xia2 as a "real" package when the
conda_base/
is read-only (#616) - Allow xia2 installation while offline (#619)
xia2.multiplex
- Add
absorption_level=
parameter to set the corresponding parameter in dials.scale. If unspecified, decisions about absorption correction will be deferred todials.scale
. This means that for large sweeps (>60°), absorption correction will now be turned on automatically. (#603) - Add dano/sigdano by resolution plots to html report (#604)
- Also output reflections in scalepack format (#607)
- Enable sharing of an absorption correction for scaling with dials, with the option
share.absorption=True
(#614)
- Add
- Separate data by I+/I- in merged .sca file produced by the dials pipeline (#606)
xia2.compare_merging_stats
: Print input files in deterministic order (#612)xia2.compare_merging_stats
: fix crash when settinganomalous=True
(#613)
- Separate anomalous pairs when scaling with
dials.scale
ifanomalous=True
. Theanomalous=
parameter has also been added toxia2.multiplex
. (#539) - Add new
surface_weight=
parameter, to control thedials.scale
absorption correction. (#584) - Add
error_model_grouping=
option to allow refining of an individual or grouped error model in dials. (#585) - Added
absorption_level=[low|medium|high]
option for control of the absorption correction, when usingdials.scale
. (#592)
- Prevent unintended output when checking version of
pointless
(#586) - Fix documentation section on resolution estimation (#593)
- Removed python test files from the xia2 package installation, slightly reducing the package size. (#587)
- Remove leftover Travis CI-related files (#588)
- Fix reading of split HKL files output from XSCALE (#579)
xia2.multiplex
: Use resolution cutoff determined during scaling for cluster analysis (#576)
xia2.multiplex
: Fix cos-angle clustering varying between runs (#576)
- Fix tests affected by changes to profile fitting in dials/dials#1297 <dials/dials#1297> (#569)
- The main development branch of xia2 was renamed from 'master' to 'main'. (#561)
- Fix
type object has no attribute 'ignore'
error (#570)
- Fix for missing
SENSOR_THICKNESS=
in XDS.INP generated for EIGER datasets introduced in 3.3.1 (#564)
- Fix unicode logging errors on Windows (#558)
From this release, xia2 version numbers now follow the DIALS release model.
- xia2 has been turned into a python package. This change includes major refactoring work underneath the hood. (#528)
- Updates to
xia2.mmcif
output to conform to the latest pdb dictionaries (v5).output.mmcif.pdb_version=
option added (choices ofv5
,v5_next
). The default optionv5_next
includes output of unmerged reflection data. (#537) xia2.html
: Add<dF/s(dF)>
-by-resolution plot if running xia withanomalous=True
(#551)
xia2.multiplex
: passdials.cosym
parameterlattice_symmetry_max_delta=
todials.cosym
. (#544)xia2.multiplex
: fix occasional error generating stereographic projections. (#546)
xia2.multiplex
: Allow the user to override the defaultdials.scale
parameterreflection_selection.method=
, to allow working around cases where default can fail (#529)xia2.merging_statistics
: Improved error handling (#531)
- Add a radar plot to xia2.multiplex html report for comparison of merging statistics between clusters. (#406)
- Full matrix minimisation when using DIALS scaling is now Auto by default. This will use full matrix for 4 sweeps or fewer, meaning that large data sets now process much faster. (#428)
- Temporary files are no longer left around during the dials scaling process (#497)
xia2.compare_merging_stats
: Fix occasionally incorrect axis ylimits (#517)xia2.multiplex
: Fix corner case where reflections are present but not used in refinement, leading to an error when selecting reflections withreflections.select_on_experiment_identifiers()
(#524)xia2.multiplex
: Fix error if one or more experiment has an image range that doesn't overlap with the requested dose range. Instead, remove this experiment from further analysis. (#525)xia2.multiplex
: Gracefully handle failure of resolution estimation (#526)- Explicitly fail testing when the XDS licence has expired
xia2.multiplex
: fix for dose parameter when scan doesn't start at 1 (#518)xia2.html
: Fix crash on python 3.8 (#516)
- xia2 now support Python 3.8 (#510)
- Re-estimate resolution limit after deltacchalf filtering. Previously the resolution limit of the filtered dataset would always be the same as the unfiltered dataset. (#466)
- Add support for dose_decay model for dials.scale (#467)
- Report more useful error message if given an Eiger data file rather than a master file, including suggestions of possible master files in the same directory (#509)
- Speed up
xia2.compare_merging_stats
(#502)
- Work around changes to filenames output from dials.split_experiments (#478)
- No longer create the
xia2-files.txt
file. The output now goes toxia2-debug.txt
(#468)
ispyb_xml
: Fix error reading PHIL files (#484)When using
read_image_headers=False
, ignore missing images outside of thestart:end
range specified on the command line (#491)Improve treatment of reference instrument models when using
reference_geometry=
.Previously, a separate 'experiment list' (
.expt
) file was required for each instrument model, but if any of the files contained multiple instrument models (e.g. they had been created from multiple-sweep rotation data), xia2 could sometimes fail with a confusing message "no sweeps found".Now, one can pass any number of
.expt
files withreference_geometry=
arguments and each file may contain any number of instrument models. xia2 will sort out any duplicate models for you. (#485)
- Fix data from NSLS II with multiple triggers and one image per trigger (#475)
- Gracefully handle xtriage errors when generating xia2 report. (#477)
- xia2.compare_merging_stats: Plot the bin centres rather than bin d_min values. This previously could lead to misleading apparent differences between data sets with significantly different resolution limits. (#480)
- Increase XDS COLSPOT minimum_pixels_per_spot from 1 to 2. The previous value may have led to problems when spotfinding on images with many hot/warm pixels. (#472)
- Fix missing anomalous info in hkl data converted for shelx
- Compatibility with DIALS project_name changes
Improve handling of diamond anvil cell data. When calling xia2 with high_pressure.correction=True: - 'Dynamic shadowing' is enabled, to mask out the regions shadowed by the cell body. - The minimum observation counts for profile modelling are relaxed — the defaults are unrealistic in the case of a small data set from a small-molecule material in a diamond anvil cell. In such cases, there are far fewer spots than the DIALS profile modelling expects, based on the norm in MX. This had been a frequent cause of frustration when processing small-molecule data with xia2. - X-ray absorption in the diamond anvils is automatically corrected for using dials.anvil_correction. (#396)
New command-line interface for xia2.to_shelxcde utility to support SAD/MAD datasets. (#433)
- Include xtriage analysis in xia2.multiplex output
- xia2.multiplex now exports json file including xtriage results
- Include merging stats in multiplex json file (#443)
Add the option
multi_sweep_refinement
to the DIALS pipelines. This performs the same indexing asmulti_sweep_indexing
and additionally refines all sweeps together, rather than refining each sweep individually. When refining the sweeps together, the unit cell parameters of each sweep are restrained to the mean unit cell during the scan-static refinement. This is achieved by setting thedials.refine
optionrefinement.parameterisation.crystal.unit_cell.restraints.tie_to_group.sigmas=0.01,0.01,0.01,0.01,0.01,0.01
, but other values andtie_to_group
/tie_to_target
schemes ofdials.refine
may be invoked by passing suitable parameters. See the various xia2 configuration parameters underdials.refine.restraints
, which are identical to the settings one can pass todials.refine
via its own parameter setrefinement.parameterisation.crystal.unit_cell.restraints
. As with the normal behaviour of xia2, the restraints do not apply to the scan-varying refinement step.Since this is likely to be most useful for small-molecule chemical crystallography, the
multi_sweep_refinement
behaviour is made the default whensmall_molecule=True
. (#456)
- Fixed printing of unit cells which are fixed by symmetry (89.9999999 -> 90.0) (#444)
- Changed outlier rejection in 3dii pipeline - no longer throw out outliers by default, and if outlier rejection requested only perform this after assessing resolution limits. (#445)
- Fix issue where missing images caused error: "can't convert negative value to unsigned int" (#463)
- xia2 0.7 no longer supports Python 2 (#450)
- Removed long-deprecated command line options -3dii / -dials and the like as well as the dials-full pipeline. (#452)
- Remove xia2.chef: this is deprecated and replaced by dials.damage_analysis (#460)
xia2 now has coloured output by default. You can disable this by setting the environment variable NO_COLOR. (#267)
The DIALS pipeline now generates .sca output files again (#384)
Prescale data before dials.symmetry when in multi_sweep_indexing mode
This mirrors the behaviour of the CCP4ScalerA by prescaling the data with KB scaling to ensure that all experiments are on the same scale before running dials.symmetry. This should lead to more reliable results from the symmetry analysis in multi_sweep_indexing mode. (#395)
Switch the default plugin for reading HDF5 files with XDS to DURIN (#400)
The error output file xia2.error has been renamed xia2-error.txt (#407)
- Export DANO when running cctbx French & Wilson procedure (#399)
- If .nxs and _master.h5 files reference the same underlying data files on disk, do not process both, only process _master files. Fixes longstanding annoyance. (#408)
- Made image reading in xia2.overload more general, means screen19 now works with Eiger detectors (#412)
- Fix bug for space_group= option in combination with the dials pipeline where output mtz files would be in the Laue group, rather than the space group. (#420)
- Remove the check that HDF5 data files are in place for master files, since this implicitly assumes that the data are written following DECTRIS manner. (#401)
- Perform systematic absence analysis in multiplex
- Run dials.symmetry in systematic-absences-only mode after scaling to determine full space group in xia2.multiplex
- Set laue_group= to skip Laue group determination by dials.cosym
- Set space_group= to skip both Laue group determination by dials.cosym and systematic absences analysis by dials.symmetry (#355)
- Use cctbx-based French/Wilson procedure in place of ctruncate. Set truncate=ctruncate to use ctruncate instead. (#377)
- Generate integrated.mtz files for dials pipeline, saved in Datafiles (#385)
- Don't raise error if anomalous probability plot fails (#357)
- Ensure that integration results are copied to DataFiles. In some circumstances, when re-indexing/integrating the data, they were inadvertently missed (#379) (#379)
- Fix for running dials.symmetry in multi_sweep_indexing mode (#390)
- Retire mosflm/2d pipeline and related features (#222)
- -journal.txt output files are no longer created. Any output goes into the debug logfile instead. (#267)
- Retire command dev.xia2.pea_in_box (#348)
- Retire xdssum indexer (#351)
- Retire labelit/labelitii indexer and related features (#367)
Change the default pipeline (dials) to use DIALS for scaling instead of AIMLESS
Scaling with AIMLESS is still available by running xia2 with
pipeline=dials-aimless
(#301)Reduce the number of calls to dials.export for performance improvement.
The integrated.mtz (unscaled) no longer appears in the Logfiles but can be generated from the corresponding .refl and .expt files (#329)
Reduce the total sweep range for searching for the correct beam centre.
After 180 degrees no new information is provided so restrict the range if the total number of reflections is > 20,000 (only 10,000 randomly selected refections are used for this calculation anyway). (#249)