dials.cosym

Introduction

This program implements the methods of Gildea, R. J. & Winter, G. (2018). Acta Cryst. D74, 405-410 for determination of Patterson group symmetry from sparse multi-crystal data sets in the presence of an indexing ambiguity.

The program takes as input a set of integrated experiments and reflections, either in one file per experiment, or with all experiments combined in a single experiments.json and reflections.pickle file. It will perform analysis of the symmetry elements present in the datasets and, if necessary, reindex experiments and reflections as necessary to ensure that all output experiments and reflections are indexed consistently.

Examples:

dials.cosym experiments.json reflections.pickle

dials.cosym experiments.json reflections.pickle space_group=I23

dials.cosym experiments.json reflections.pickle space_group=I23 lattice_group=I23

Basic parameters

space_group = None
partiality_threshold = 0.99
unit_cell_clustering {
  threshold = 5000
  log = False
}
normalisation = kernel quasi *ml_iso ml_aniso
d_min = Auto
min_i_mean_over_sigma_mean = 4
min_cc_half = 0.6
lattice_group = None
dimensions = Auto
use_curvatures = True
weights = count standard_error
min_pairs = 3
termination_params {
  max_iterations = 100
  max_calls = None
  traditional_convergence_test = True
  traditional_convergence_test_eps = 1
  drop_convergence_test_n_test_points = 5
  drop_convergence_test_max_drop_eps = 1.e-5
  drop_convergence_test_iteration_coefficient = 2
}
cluster {
  method = dbscan bisect minimize_divide agglomerative *seed
  n_clusters = auto
  dbscan {
    eps = 0.5
    min_samples = 5
  }
  bisect {
    axis = 0
  }
  seed {
    min_silhouette_score = 0.2
  }
}
nproc = 1
seed = 230
output {
  suffix = "_reindexed"
  log = dials.cosym.log
  debug_log = dials.cosym.debug.log
  experiments = "reindexed_experiments.json"
  reflections = "reindexed_reflections.pickle"
  json = dials.cosym.json
  html = dials.cosym.html
}
verbosity = 1

Full parameter definitions

space_group = None
  .type = space_group
partiality_threshold = 0.99
  .help = "Use reflections with a partiality above the threshold."
  .type = float(allow_none=True)
unit_cell_clustering {
  threshold = 5000
    .help = "Threshold value for the clustering"
    .type = float(value_min=0, allow_none=True)
  log = False
    .help = "Display the dendrogram with a log scale"
    .type = bool
}
normalisation = kernel quasi *ml_iso ml_aniso
  .type = choice
d_min = Auto
  .type = float(value_min=0, allow_none=True)
min_i_mean_over_sigma_mean = 4
  .type = float(value_min=0, allow_none=True)
min_cc_half = 0.6
  .type = float(value_min=0, value_max=1, allow_none=True)
lattice_group = None
  .type = space_group
dimensions = Auto
  .type = int(value_min=2, allow_none=True)
use_curvatures = True
  .type = bool
weights = count standard_error
  .type = choice
min_pairs = 3
  .help = "Minimum number of pairs for inclusion of correlation coefficient in"
          "calculation of Rij matrix."
  .type = int(value_min=1, allow_none=True)
termination_params {
  max_iterations = 100
    .type = int(value_min=0, allow_none=True)
  max_calls = None
    .type = int(value_min=0, allow_none=True)
  traditional_convergence_test = True
    .type = bool
  traditional_convergence_test_eps = 1
    .type = float(allow_none=True)
  drop_convergence_test_n_test_points = 5
    .type = int(value_min=2, allow_none=True)
  drop_convergence_test_max_drop_eps = 1.e-5
    .type = float(value_min=0, allow_none=True)
  drop_convergence_test_iteration_coefficient = 2
    .type = float(value_min=1, allow_none=True)
}
cluster {
  method = dbscan bisect minimize_divide agglomerative *seed
    .type = choice
  n_clusters = auto
    .type = int(value_min=1, allow_none=True)
  dbscan {
    eps = 0.5
      .type = float(value_min=0, allow_none=True)
    min_samples = 5
      .type = int(value_min=1, allow_none=True)
  }
  bisect {
    axis = 0
      .type = int(value_min=0, allow_none=True)
  }
  seed {
    min_silhouette_score = 0.2
      .type = float(value_min=-1, value_max=1, allow_none=True)
  }
}
nproc = 1
  .help = "The number of processes to use."
  .type = int(value_min=1, allow_none=True)
seed = 230
  .type = int(value_min=0, allow_none=True)
output {
  suffix = "_reindexed"
    .type = str
  log = dials.cosym.log
    .type = str
  debug_log = dials.cosym.debug.log
    .type = str
  experiments = "reindexed_experiments.json"
    .type = path
  reflections = "reindexed_reflections.pickle"
    .type = path
  json = dials.cosym.json
    .type = path
  html = dials.cosym.html
    .type = path
}
verbosity = 1
  .help = "The verbosity level"
  .type = int(value_min=0, allow_none=True)