Releases: dials/dials
DIALS 3.24.0
2025-04-29:
Features
dials.index
: Separately report unindexed reflection counts for reflections away from ice regions. (#2827)dials.cosym
: Add the optionoutput.excluded=True
to set aside the data sets that cosym rejected, so that these can more easily be investigated separately. (#2854)dials.image_viewer
: Support iso-resolution lines (circles, ellipses, hyperbola) on non-coplanar and/or two_theta != 0 detectors. (#2867)dials.correlation_matrix
: Hierarchical clustering now defaults to Ward linkages. (#2876)dials.cluster_unit_cell
: Add option to use Ward linkage, rather than single linkage. (#2884)dials.correlation_matrix
: Perform principal component analysis on optimised cosym coordinates. Add a new matrix-style plot for displaying all projections at once. (#2885)- dxtbx:
FormatROD_Arc
: Support for Rigaku HyPix-Arc 100° and 150° curved detectors. (cctbx/dxtbx#787) - dxtbx:
FormatBrukerELA
: Add support for the DECTRIS-ELA detector images in Bruker SFRM format. (cctbx/dxtbx#802) dxtbx.any2nexus
: Addsensor_material=
andsensor_thickness=
options. (cctbx/dxtbx#803)- dxtbx:
FormatXTC
: New features for managing wavelength calibration and an adjustment to the minimum trusted range for the ePix. (cctbx/dxtbx#804) xia2.multiplex
: Addition of new PCA style plot to visualise cosine-angle clustering. (xia2/xia2#841)
Bugfixes
dials.find_spots
: Prevent masked pixels from causing a "halo" of excluded pixels around them when usingthreashold.algorithm=extended_dispersion
. (#2790)dials.ssx_index
: Fix crash when processing stills with no scan objects. (#2841)dials.export format=mosflm
: Do not write a DIRECTORY line if the image files do not exist (#2845)dials.refine
: Warn, don't crash, if trying to fix individual scan-varying parameters. (#2856)dials.cluster_unit_cell
: Clusters are given acluster_id
in order of decreasing size, and the output filenames match thecluster_id
. (#2859)dials.find_bad_pixels
: Use dispersion algorithm for filtering, instead of extended dispersion. This is more sensitive for lone pixels. (#2881)dials.scale
: Fix potential bad scaling against a reference if resolution limit is greater than 2 Angstroms. (#2883)dials.reciprocal_lattice_viewer
: Fix translate function for Python 3.12. (#2888)- dxtbx: Fix issue where attempting to group experiments could fail. (cctbx/dxtbx#772)
- dxtbx:
dials.import
: Reduce excessive memory usage when importing many (>100s) FormatNXMX files. (cctbx/dxtbx#789) - dxtbx:
FormatNXmxEigerFilewriter
: Improve heuristics when deciding whether to swap image dimensions. (cctbx/dxtbx#793) - dxtbx:
FormatROD
: Use the weighted average of K-alpha1 and K-alpha2 as the monochromatic wavelength for the beam model. (cctbx/dxtbx#800) - dxtbx:
FormatRAXIS
: Allow the possibility of reading compressed files. (cctbx/dxtbx#801) - xia2: Rename
STRONG_PIXEL
toSIGNAL_PIXEL
following changes in XDS. (xia2/xia2#829) xia2.ssx
: Correctly handle incorrectly specified filepaths with a useful error message. (xia2/xia2#833)
For a more complete list of changes and fixed bugs check the dials, dxtbx and xia2 changelogs.
DIALS 3.23.0
Features
- Python 3.10 is now the minimum python supported. (#2792)
- Added initial support for a H5-based reflection table. This is turned off by default, but can be activated by setting the
DIALS_USE_H5
environment variable. (#2677) dials.index
anddials.ssx_index
: Add the CUDA-accelerated fast-feedback-indexer to DIALS as a lattice search algorithm. See https://github.com/paulscherrerinstitute/fast-feedback-indexer for more details. (#2717)dials.estimate_resolution
: Add resolution estimate based on limit of CC½ significance. (#2580)dials.refine_error_model
: Allow grouped and individual error model refinements. (#2685)dials.symmetry
: Enable oversampling insystematic_absences.method=fourier
, for screw-axis detection. (#2701)dials.correlation_matrix
: Include reachability plot for visualisation of coordinate-clustering. (#2778)dials.image_viewer
: Add a line tool that gives start, end, and midpoints, plus a line profile graph. (#2798)dials.search_beam_position
: Include three new projection methods. (#2809)dials.import
: Add syntax for splitting a long scan into chunks. (#2816)- dxtbx: Nexus support: Handle reading new scale_factor fields (used for detector gain). (cctbx/dxtbx#756)
- dxtbx: Add
FormatSMVADSCCetaD
to allow easier processing of 3DED images from the Ceta-D detector, which have been converted to SMV. (cctbx/dxtbx#770) xia2.multiplex
: Improvements to clustering output, and addition of cluster identification algorithm for comparisons. (xia2/xia2#783)
Bugfixes
- Fix
beam.get_s0()
errors when trying to use image viewer with polychromatic data. (#2765) - Fix symmetry not being applied consistently post indexing, when multiple crystals and multiple orientations are present. (#2786)
dials.cosym
: Fix weighting of cosym objective function, use count weights by default. (#2813)dials.cosym
: Use unbiased formula for standard error. (#2810)dials.export
: Fixes to work with gemmi v0.7. (#2834)dials.generate_distortion_maps
: Correct definitions for creating elliptical distortion correction maps. (#2787)dials.image_viewer
: Avoid error messages when quitting while one of the tools (ring, unit cell, etc.) is open. (#2836)dials.image_viewer
: Do not allow integer controls to take values outside of their bounds. (#2822)dials.image_viewer
: Fix display bug with the trusted range mask, when viewing stacked images. (#2830)dials.image_viewer
: Recover missing image scrollbar by increasing the panel height. (#2795)dials.index
: fix inconsistent experiment IDs after indexing withindex_assignment.method=local
(#2799)dials.index
: Fix minor bug in global index assignment. (#2800)dials.integrate
: Allow command line optiond_min=
without requiring full qualification asprediction.d_min=
. (#2837)dials.predict
: Do not try to filter shadowed reflections, if no masker is provided. (#2805)dials.predict
: Now adds experiment identifiers to output reflections. (#2788)dials.refine_bravais_settings
: Select only the reflections used in refinement in the indexing step for the calculation, to reduce memory footprint with very high resolution data. (#2824)- xia2: Fix issue where command paths would fail to be resolved on Windows, with some configurations. (xia2/xia2#824)
- xia2: Fix issue where multiple sweeps were not handled correctly on Windows. (xia2/xia2#825)
xia2.multiplex
: Improve PHIL help foridentifiers=
option. (xia2/xia2#828)
For a more complete list of changes and fixed bugs check the dials, dxtbx and xia2 changelogs.
DIALS 3.22.1
DIALS 3.22.0
2024-10-15:
Features
- Switched
bootstrap.py
to use CMake by default. You can pass--libtbx
to get the previous behaviour, if you need to develop cctbx. (#2755) - Added scaling corrections for time-of-flight data. (#2704)
dials.correlation_matrix
: Add dimension optimisation for intensity-based dataset clustering. (#2743)dials.generate_distortion_maps
: Much faster map generation formode=ellipse
. (#2745)dials.generate_mask
: Allow combining masks. (#2711)dials.image_viewer
: Added multi-panel polygon masking. (#2735)dials.correlation_matrix
: Add auto-selection and output of significant clusters and extended graphs in html output (#2770)- dxtbx: Add format class to read data from the NMX ESS detector. (cctbx/dxtbx#764)
xia2.ssx_reduce
: Add option to apply a per-crystal I/sigma filter. (xia2/xia2#762)xia2.multiplex
: Include dimension optimsation for cos-angle clustering fromdials.correlation_matrix
. (xia2/xia2#814)
Bugfixes
dials.index
: Ensure reflections associated with removed experiments are reset to unindexed. (#2653)dials.find_spots
: Enablethreshold.algorithm=radial_profile
for polychromatic data. (#2729)dials.image_viewer
: Fixed stacking of masks, and stacking of multiple experiments. (#2730)dials.image_viewer
: Fix UI glitches in masking tools. (#2731)dials.resolution_analysis
: Suppress output of potential scipy OptimizeWarning. (#2737)dials.generate_distortion_maps
: Fix bug withmode=ellipse
for detectors with oblong panels. (#2740)dials.cosym
: Handle the case of very few reflections, leading to zero weights in weighted cosym analysis. (#2741)dials.integrate
: Ensure the polarization correction is only performed for X-ray data (not electron nor neutron). (#2754)dials.image_viewer
: Fix broken "Save As" PNG functionality. (#2759)dials.index
: When indexing multiple imagesets, ensure a failure to index one does not result in failure for all. (#2764)dials.image_viewer
: Fix errors when trying to view polychromatic data. (#2765)dials.reciprocal_lattice_viewer
: Fix errors when trying to view polychromatic data. (#2766)dials.geometry_viewer
: Fix errors when trying to view polychromatic experiments. (#2773)dxtbx.dlsnxs2cbf
: Add work around for issues with data recorded at 32-bit. (cctbx/dxtbx#759)- dxtbx: Auxiliary data processing files (mask, gain, pedestal, and dx and dy maps) will now always be loaded when available. (cctbx/dxtbx#760)
- dxtbx: Refactor panel positions of FormatISISSXD to account for differences in panel positions, depending on the date of data collection. (cctbx/dxtbx#762)
- dxtbx: Raise a more suitable error message when failing to load an experiment list. (cctbx/dxtbx#763)
For a more complete list of changes and fixed bugs check the dials, dxtbx and xia2 changelogs.
DIALS 3.21.1
2024-08-23:
- xia2: Fix compatibility with XDS 20240723, which changed some output in INTEGRATE.LP. (xia2/xia2#805)
- dxtbx: Stop
dxtbx.image_average
shuffling panel positions for segmented detectors. (cctbx/dxtbx#752)
For a more complete list of changes and fixed bugs check the dials, dxtbx and xia2 changelogs.
There are no changes to cctbx in this release.
DIALS 3.21.0
2024-08-20:
Features
- Add functionality to support time-of-flight and Laue indexing and refinement. (#2662)
dials.symmetry
: Allow free selection ofsignificance_level
in the range [0,1]. (#2696)dials.export
: Add support for exporting still data in mmcif format that GEMMI can read. (#2709)- dxtbx: Add Nonius KappaCCD format. (cctbx/dxtbx#741)
Bugfixes
dials.index
: Fix apink_indexer
error that caused failures for images with electron diffraction geometry. (#2680)dials.correlation_matrix
: Correctly select datasets for output json after filtering, when used by multiplex. (#2681)dials.index
: Avoid mm to px conversion when therefinement_protocol
is set to do no refinement, as the required data are not available. (#2687)dials.image_viewer
: Increase the maximum resolution for the ring tool radius. This was too small for new detectors. (#2697)dials.index
: Fix potential crash in max_cell estimation when all spots are at the resolution of ice rings. (#2699)dials.merge
: Use GEMMI to output merged MTZs, for consistency withdials.export
. (#2700)dials.reciprocal_lattice_viewer
: Fix middle mouse drag to translate function. (#2707)- Performance improvement for selections from large reflection tables. (#2718)
- dxtbx:
FormatMRC
: Relax restrictive check on the overloaded MZ header value, which caused failures to read files where MZ == 1. (cctbx/dxtbx#740) - dxtbx:
FormatCBFMini
: When parsing header lines for a timestamp, avoid clashes with Windows paths. (cctbx/dxtbx#742) - dxtbx:
FormatPy
: Add fix for pickle files. (cctbx/dxtbx#744) - dxtbx:
FormatSMVRigakuSaturnNoTS
: Fix a bug in reading the image pedestal from headers. (cctbx/dxtbx#746) xia2.ssx_reduce
: Make sure space group naming is correct after cosym batch reindexing. (xia2/xia2#798)- xia2: Convert merged MTZ output to use GEMMI, following #2700 (xia2/xia2#799)
- xia2: Try to reduce number of resolution bins for report generation, for sparse data, to avoid crash. (xia2/xia2#801)
For a more complete list of changes and fixed bugs check the dials, dxtbx and xia2 changelogs.
DIALS 3.20.0
2024-06-19:
Features
- DIALS is now compatible with Python 3.12. (#2651)
- New tool:
dials.correlation_matrix
: A new command-line tool for correlation and cosine similarity clustering of multi-crystal datasets, independent ofxia2.multiplex
. (#2632) - New tool:
dials.split_still_data
for splitting dials-processed still data based on image number (e.g. dose series). (#2672) dials.scale
: Add filtering options to default basic error model to allow error modelling of stills data. (#2654)dials.cosym
: Add alternative weighting during cosym CC calculation with a newcc_weights=
option. (#2666)- dxtbx: The template handling mechanism is extended. A template with a single
#
is expanded to match non-zero padded sequential numbers. (cctbx/dxtbx#705) - dxtbx: Add
dxtbx.any2nexus
program, to convert any file dxtbx can read to a NeXus file. (cctbx/dxtbx#735) xia2.ssx_reduce
: Optimise and apply an error model correction in scaling. (xia2/xia2#792)
Bugfixes
- Fix
dials.show
beam checks for time of flight experiments. (#2660) dials.find_rotation_axis
: Correctly set the orientation of the rotation axis for a multi-axis goniometer. (#2658)- When masking, raise an error if
d_min > d_max
(where no spots would be found). (#2664) dials.cosym
: Make function return structure correctly, in the recently addedcc_we 8000 ights=
option. (#2668)dials.find_rotation_axis
: Add reflection selection criteria, to avoid runs that use a very large amount of memory. (#2670)dials.cosym
: Fix to give more accurate cc calculation when running with aspace_group=
set. (#2674)- Fix
flex.reflection_table.concat
, to not modify in-place. (#2679) - dxtbx:
FormatROD
: set the beam probe to "electron" for 3D ED experiments. (cctbx/dxtbx#728) - dxtbx: Raise an error if
geometry.goniometer.axis=
is set with a multi-axis goniometer. In that case,geometry.goniometer.axes=
must be set instead. (cctbx/dxtbx#730) - dxtbx: Update goniometer for
FormatISISSXD
to allow for different ways the goniometer angle can be stored. (cctbx/dxtbx#731) - dxtbx: Fix
Scan.get_property
key type. (cctbx/dxtbx#734) xia2.multiplex
: Reset batches after filtering steps to prevent inconsistencies and duplications. (xia2/xia2#789)xia2.ssx_reduce
: Improve indexing ambiguity resolution with a reference by direct call todials.reindex
methods. (xia2/xia2#794)
For a more complete list of changes and fixed bugs check the dials, dxtbx and xia2 changelogs.
DIALS 3.19.1
2024-05-23:
- dxtbx: Fix case where old I03 Eiger nexus data (pre-2020) would fail to process. (cctbx/dxtbx#737)
For a more complete list of changes and fixed bugs check the dxtbx changelog.
There are no changes to cctbx, dials or xia2 in this release.
DIALS 3.19.0
2024-04-17:
Features
dials.predict
: Allow usage when image data are not available. (#2553)dials.ssx_index
: Allow use of sequences indexer, pink_indexer and low_res_spot_match indexing algorithms. (#2614)dials.export
: Add optioncomposition=
to specify of asymmetric unit composition for SHELX.ins
file output. (#2623)- Add
TOFSpotFinder
to tailor default params to time of flight experiments and add additional reflection table data. (#2602) - dxtbx: Add format reader for Jungfrau4M serial images from beamline ID29 at ESRF. (cctbx/dxtbx#659)
- dxtbx: Better handling for bad data in spectra calibration in XTC format. (cctbx/dxtbx#674)
- dxtbx: Add Bruker and miniCBF format readers for the ELDICO ED-1 electron diffractometer with DECTRIS QUADRO detector. (cctbx/dxtbx#682)
- dxtbx:
FormatSMVTimePix_SU
: Always mask out the central cross of virtual pixels. (cctbx/dxtbx#683) - dxtbx: Add format reader for ISIS SXD detector. (cctbx/dxtbx#687)
- dxtbx: Detector distance can now be manually overridden for multi-panel detectors. (cctbx/dxtbx#698)
- dxtbx: Add format reader to read time of flight Laue data fro 8B9E m MANDI. (cctbx/dxtbx#703)
Bugfixes
- Fix building on RHEL8 and other more recent distributions. (#1465)
dials.index
: Joint indexing is automatically set on for rotation data, off for still data. This can be overridden by explicit use ofjoint_indexing=
. (#2605)dials.export
format=shelx
: Increased precision of unit cell parameters and their estimated standard deviations written to.ins
file. (#2624)dials.ssx_index
: Don't combine detector models if individually refined. (#2634)dials.scale
: Fix error in propagation of partiality variance, when scaling still data. (#2642)dials.export
: Fix crash when exporting scaled still-shot data. (#2646)- dxtbx: Fix scan comparison for scan properties changes (cctbx/dxtbx#669)
- dxtbx: Eiger Support: Invert the module dimensions, only for older firmware versions. See https://media.dectris.com/230203-Release_Notes-DECTRIS_EIGER2.pdf for reference. (cctbx/dxtbx#676)
- dxtbx:
FormatMRC
: Better handling of extended headers. (ccpem/mrcfile#50), and extended headers are ignored if they contain junk values. (cctbx/dxtbx#679) - dxtbx: Negative rotation angles are now allowed, the goniometer axis will be inverted if necessary. (cctbx/dxtbx#690)
- dxtbx:
dials.import
now uses natural sorting on input data, instead of strict sorting. (cctbx/dxtbx#697) - dxtbx: Fix setting detector distance for single panel detectors that have a hierarchy. (cctbx/dxtbx#699)
- dxtbx: Fix error introduced in
FormatSMVJHSim
causing test failures. (cctbx/dxtbx#710) xia2.multiplex
: Avoid space group analysis if given reference file. (xia2/xia2#770)xia2.ssx
: Allow use ofstills.indexer=sequences
in ssx_index routine. (xia2/xia2#779)xia2.multiplex
: Allow use ofrelative_length_tolerance=
andabsolute_angle_tolerance=
(used by cosym) in multiplex. (xia2/xia2#786)
For a more complete list of changes and fixed bugs check the dials, dxtbx and xia2 changelogs.