Skip to content

Processing MPCCD images by DIALS

biochem_fan edited this page Oct 24, 2016 · 17 revisions

Processing MPCCD Images by DIALS

MPCCD supports in DIALS is under development. This documents is for developers and experts!

First, read excellent documentation "Processing XFEL data with cctbx.xfel and DIALS" in Computational Crystallography Newsletter 2016, July. Here, I discuss SACLA specific issues.

Necessary patches

I assume you have built the latest version of DIALS and CCTBX from the respository. In addition, the following patches must be applied. I am waiting for these patches to be reviewed and merged.

Parameter optimizations

Import one of the images and run spot finding.

dials.import run266711-0.h5
dials.find_spots datablock.json min_spot_size=2 d_max=13

Inspect spot finding results.

dials.image_viewer datablock.json strong.pickle

If the result is unsatisfactory, tweak gain, min_spot_size (try 1, 2, 3) and global_threshold. Theoretically the gain is 10, because the Cheetah pipeline normalizes 1 photon to be 10 counts in the output. Also check the resolution of the beam stop shadow.

Batch processing

Prepare index.phil as follows:

# input.reference_geometry = ../refined_geometry.json

# you can use 14 cores in the serial queue
mp.nproc = 14

# get more info
verbosity = 3

indexing {
    known_symmetry {
        space_group = P43212
        unit_cell = 78.9 78.9 38.1 90 90 90
    }
    method = real_space_grid_search

    # sometimes fft1d works better
    # method = fft1d

    # needs to be sufficiently high
    refinement_protocol.d_min_start = 2.0

    # dramatically increases accepted spots in real_space_grid_search
    index_assignment.method = local
    optimise_initial_basis_vectors = True
}

spotfinder {
    filter.min_spot_size = 2

    # mask the beam stop
    filter.d_max = 13
}

refinement {
    parameterisation {
        # not sure which is better. The default is False
        spherical_relp_model = True

        beam.fix = all
        detector.fix_list = Dist,Tau1
        auto_reduction {
            action = fix
            min_nref_per_parameter = 1
        }
        crystal {
            unit_cell {
                restraints {
                    tie_to_target {
                        values = 78.9,78.9,38.1,90,90,90
                        sigmas = 1,1,1,0,0,0
                        apply_to_all = True
                    }
                }
            }
        }
    }
}

integration {
    integrator = stills
    profile.fitting = False
    background {
        algorithm = simple
        simple {
            model.algorithm = linear2d
            outlier.algorithm = tukey
        }
    }
}

profile {
    gaussian_rs {
        min_spots.overall = 0
    }   
}