This documentation page refers to a previous release of DIALS (1.14).
Click here to go to the corresponding page for the latest version of DIALS

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 = None
use_curvatures = True
weights = count standard_error
min_pairs = 3
save_plot = True
plot_prefix = ''
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
  dbscan {
    eps = 0.5
    min_samples = 5
  }
  bisect {
    axis = 0
  }
  agglomerative {
    n_clusters = 2
  }
  seed {
    min_silhouette_score = 0.2
    n_clusters = auto
  }
}
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"
}
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 = None
  .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)
save_plot = True
  .type = bool
plot_prefix = ''
  .type = str
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
  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)
  }
  agglomerative {
    n_clusters = 2
      .type = int(value_min=1, allow_none=True)
  }
  seed {
    min_silhouette_score = 0.2
      .type = float(value_min=-1, value_max=1, allow_none=True)
    n_clusters = auto
      .type = int(value_min=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
}
verbosity = 1
  .help = "The verbosity level"
  .type = int(value_min=0, allow_none=True)