diff --git a/.bumpversion.cfg b/.bumpversion.cfg index ea0e35e584..e7f32af3de 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 3.8.0 +current_version = 3.8.1 commit = True tag = False parse = (?P\d+)\.(?P\d+)\.(?P[a-z]+)?(?P\d+)? diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2536a7e62b..1d90f42958 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,12 @@ +xia2 3.8.1 (2022-01-25) +======================= + +Improved Documentation +---------------------- + +- ``xia2.multiplex``: Add, and update, PHIL parameter descriptions. (`#644 `_) + + xia2 3.8.0 (2022-01-11) ======================= diff --git a/setup.py b/setup.py index 50ee419024..bd127e81d8 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ # Version number is determined either by git revision (which takes precendence) # or a static version number which is updated by bump2version -__version_tag__ = "3.8.0" +__version_tag__ = "3.8.1" console_scripts = [ "dev.xia2.check_mosaic=xia2.cli.check_mosaic:run", diff --git a/src/xia2/Modules/MultiCrystal/ScaleAndMerge.py b/src/xia2/Modules/MultiCrystal/ScaleAndMerge.py index ac66bac8b6..52fda1ace9 100644 --- a/src/xia2/Modules/MultiCrystal/ScaleAndMerge.py +++ b/src/xia2/Modules/MultiCrystal/ScaleAndMerge.py @@ -44,7 +44,9 @@ # The phil scope phil_scope = iotbx.phil.parse( """ -unit_cell_clustering { +unit_cell_clustering + .short_caption = "Unit cell clustering" +{ threshold = 5000 .type = float(value_min=0) .help = 'Threshold value for the clustering' @@ -54,6 +56,7 @@ } scaling + .short_caption = "Scaling" { anomalous = False .help = "Separate anomalous pairs in scaling and error model optimisation." @@ -74,22 +77,30 @@ share.absorption = False .type = bool .expert_level = 2 - .short_caption = "Apply a shared absorption correction between sweeps. Only" - "suitable for scaling measurements from a single crystal." + .short_caption = "Shared absorption correction" + .help = "Apply a shared absorption correction between sweeps. Only" + "suitable for scaling measurements from a single crystal." } absorption_level = low medium high .type = choice .expert_level = 2 - .short_caption = "Set the extent of absorption correction in scaling" + .help = "Set the extent of absorption correction in scaling" + .short_caption = "Absorption level" model = physical dose_decay array KB *auto .type = choice + .short_caption = "Scaling model" outlier_rejection = simple standard .type = choice + .short_caption = "Outlier rejection" min_partiality = None .type = float(value_min=0, value_max=1) + .short_caption = "Minimum partiality" partiality_cutoff = None .type = float(value_min=0, value_max=1) - reflection_selection { + .short_caption = "Partiality cutoff" + reflection_selection + .short_caption = "Reflection selection" + { method = quasi_random intensity_ranges use_all random .type = choice .help = "Method to use when choosing a reflection subset for scaling model" @@ -106,22 +117,31 @@ "slow for large datasets." Isigma_range = None .type = floats(size=2) + .short_caption = "I/σ range" + .help = "Minimum and maximum I/sigma values used to select a subset of" + "reflections for minimisation. A value of 0.0 for the maximum" + "indicates that no upper limit should be applied." } } -symmetry { +symmetry + .short_caption = "Symmetry" +{ resolve_indexing_ambiguity = True .type = bool + .short_caption = "Resolve indexing ambiguity" cosym { include scope dials.algorithms.symmetry.cosym.phil_scope } laue_group = None .type = space_group - .help = "Specify the Laue group. If None, then the Laue group will be determined " + .help = "Specify the Laue group. If None, then the Laue group will be determined" "by dials.cosym." + .short_caption = "Laue group" space_group = None .type = space_group - .help = "Specify the space group. If None, then the dials.symmetry will perform " + .help = "Specify the space group. If None, then the dials.symmetry will perform" "analysis of systematically absent reflections to determine the space group." + .short_caption = "Space group" } resolution @@ -141,21 +161,29 @@ rescale_after_resolution_cutoff = False .help = "Re-scale the data after application of a resolution cutoff" .type = bool + .short_caption = "Rescale after resolution cutoff" -filtering { +filtering + .short_caption = "Filtering" +{ method = None deltacchalf .type = choice .help = "Choice of whether to do any filtering cycles, default None." - deltacchalf { + deltacchalf + .short_caption = "ΔCC½" + { max_cycles = None .type = int(value_min=1) + .short_caption = "Maximum number of cycles" max_percent_removed = None .type = float + .short_caption = "Maximum percentage removed" min_completeness = None .type = float(value_min=0, value_max=100) .help = "Desired minimum completeness, as a percentage (0 - 100)." + .short_caption = "Minimum completeness" mode = dataset image_group .type = choice .help = "Perform analysis on whole datasets or batch groups" @@ -163,9 +191,11 @@ .type = int(value_min=1) .help = "The number of images to group together when calculating delta" "cchalf in image_group mode" + .short_caption = "Group size" stdcutoff = None .type = float .help = "Datasets with a ΔCC½ below (mean - stdcutoff*std) are removed" + .short_caption = "Standard deviation cutoff" } } @@ -173,30 +203,41 @@ include scope xia2.Modules.MultiCrystal.master_phil_scope } -unit_cell { +unit_cell + .short_caption = "Unit cell" +{ refine = *two_theta .type = choice(multi=True) } -two_theta_refine { +two_theta_refine + .short_caption = "2θ refinement" +{ combine_crystal_models = True .type = bool + .short_caption = "Combine crystal models" } min_completeness = None .type = float(value_min=0, value_max=1) + .short_caption = "Minimum completeness" min_multiplicity = None .type = float(value_min=0) + .short_caption = "Minimum multiplicity" max_clusters = None .type = int(value_min=1) + .short_caption = "Maximum number of clusters" cluster_method = *cos_angle correlation unit_cell .type = choice + .short_caption = "Metric on which to perform clustering" identifiers = None .type = strings + .short_caption = "Identifiers" dose = None .type = ints(size=2, value_min=0) + .short_caption = "Dose" nproc = Auto .type = int(value_min=1) @@ -204,6 +245,7 @@ .expert_level = 0 remove_profile_fitting_failures = True .type = bool + .short_caption = "Remove profile fitting failures" """, process_includes=True, diff --git a/src/xia2/Modules/MultiCrystal/__init__.py b/src/xia2/Modules/MultiCrystal/__init__.py index 11026fbcb3..3998e99ec1 100644 --- a/src/xia2/Modules/MultiCrystal/__init__.py +++ b/src/xia2/Modules/MultiCrystal/__init__.py @@ -27,10 +27,13 @@ """\ unit_cell = None .type = unit_cell + .short_caption = "Unit cell" n_bins = 20 .type = int(value_min=1) + .short_caption = "Number of bins" d_min = None .type = float(value_min=0) + .short_caption = "High resolution cutoff" %s """ % batch_phil_scope