Hi, I'd like to reprocess some data that were collected on an Eiger2 detector at Diamond with Xia2Dials using CCP4i2's GUI. I'm running CCP4i2 on a 64-bit Windows 10 machine. The data were processed successfully at Diamond with no obvious pathologies, the high resolution limit was just a little generous. The folder in question contains a Diamond specific file (.nsx extension), two image files (.h5), a header (.cbf), a master (.h5) and meta file (.h5). I've tried pointing Xia2 to the folder itself (which works when processing data collected on PILATUS detectors) and each of the files contained therein (except the Diamond specific file). Each time this results in the error " -ERROR- None:56 Error in wrapper xia2_dials 0.0:: External process exited with exit code != 0 Process: C:\CCP4-7\7.1\bin\xia2.bat -ERROR- None:47 Error in wrapper xia2_dials 0.0:: Error in checking external process after completion exit status and code: 0 1". I've attached the error, debug etc files for a representative 'run' to this email. Which files do I need to point xia2 towards to get it to run? Any help would be appreciated.
All the best, Irwin ######################################################################## To unsubscribe from the CCP4BB list, click the following link: https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=CCP4BB&A=1 This message was issued to members of www.jiscmail.ac.uk/CCP4BB, a mailing list hosted by www.jiscmail.ac.uk, terms & conditions are available at https://www.jiscmail.ac.uk/policyandsecurity/
Environment configuration... Python => C:\CCP4-7\7.1\libexec\python.exe CCTBX => C:\CCP4-7\7.1\lib\py2\site-packages CCP4 => C:\CCP4-7\7.1 CCP4_SCR => c:\users\mfbx2is2\appdata\local\temp\tmpl7kddh Starting directory: C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1 Working directory: C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1 Free space: 36.58 GB Host: E-UL-MP16WKT4 Contact: xia2.supp...@gmail.com XIA2 0.6.467-geb301d90-dials-2.2 DIALS 2.2.5-g89235367c-release CCP4 7.1.005 Command line: xia2.bat pipeline=dials C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1\xia2_dials.phil C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7 ######################################################################## To unsubscribe from the CCP4BB list, click the following link: https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=CCP4BB&A=1 This message was issued to members of www.jiscmail.ac.uk/CCP4BB, a mailing list hosted by www.jiscmail.ac.uk, terms & conditions are available at https://www.jiscmail.ac.uk/policyandsecurity/
QFileSystemWatcher: skipping native engine, using only polling engine QFileSystemWatcher: skipping native engine, using only polling engine QFileSystemWatcher: failed to add paths: C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1\xia2.txt QFileSystemWatcher: skipping native engine, using only polling engine QFileSystemWatcher: skipping native engine, using only polling engine QFileSystemWatcher: skipping native engine, using only polling engine QFileSystemWatcher: skipping native engine, using only polling engine ######################################################################## To unsubscribe from the CCP4BB list, click the following link: https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=CCP4BB&A=1 This message was issued to members of www.jiscmail.ac.uk/CCP4BB, a mailing list hosted by www.jiscmail.ac.uk, terms & conditions are available at https://www.jiscmail.ac.uk/policyandsecurity/
runTask Script raw Input Arguments ['C:\\CCP4-7\\7.1\\share\\ccp4i2\\bin\\runTask.py', 'C:\\Users\\MFBX2IS2\\CCP4I2_PROJECTS\\CYP141_258_7-2_reproc\\CCP4_JOBS\\job_1\\input_params.xml'] runTask Script top_path(CCPI2dir) and __file__ variables C:\CCP4-7\7.1\share\ccp4i2 C:\CCP4-7\7.1\share\ccp4i2\bin\runTask.py what is going on ? loadConfig ccp4i2 version 1.0.2 ccp4i2 source revision 5710 Running QApplication to support asyncronous sub-processes None None Starting Project Manager Current schema version: ('0.1.22', '23-09-2016') CCP4i2 opening database file C:\Users\MFBX2IS2\CCP4I2\db\database.sqlite updateDbSchema 0.1.22 23-09-2016 Starting Project Manager - DONE CRunPlugin.run before setupComAndLog Starting core.CCP4DataManager.CDataManager 0.00499987602234 Running process xia2.bat asyncronously using QProcess PROCESSMANAGER running command: C:\CCP4-7\7.1\bin\xia2.bat pipeline=dials C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1\xia2_dials.phil C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7 > C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1\log.txt startQProcess process says finished -1073740940 1 Process finished: 1 exit code: -1073740940 exit status: 1 time: 09:29:38 22/Dec/2020 CPluginScript.handleProcessFailed processId 1 exitStatus 1 exitCode -1073740940 self._runningProcessId 1 CCP4Utils.getProgramVersion m1 ('Command line: ', ' pipeline=dials C:\\Users\\MFBX2IS2\\CCP4I2_PROJECTS\\CYP141_258_7-2_reproc\\CCP4_JOBS\\job_1\\xia2_dials.phil C:\\Users\\MFBX2IS2\\Desktop\\Diamond\\220919\\Raw\\7_2\\pos7_2_trip76\\dls\\i03\\data\\2019\\mx17773-76\\Cyp141\\Cyp141-73-76-258-7') Failed adding program version to parent job xia2.bat None Not backing up after possible sub-job quitThread <core.CCP4PluginScript.CRunPlugin object at 0x0000000004387678> ######################################################################## To unsubscribe from the CCP4BB list, click the following link: https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=CCP4BB&A=1 This message was issued to members of www.jiscmail.ac.uk/CCP4BB, a mailing list hosted by www.jiscmail.ac.uk, terms & conditions are available at https://www.jiscmail.ac.uk/policyandsecurity/
Environment configuration... Python => C:\CCP4-7\7.1\libexec\python.exe CCTBX => C:\CCP4-7\7.1\lib\py2\site-packages CCP4 => C:\CCP4-7\7.1 CCP4_SCR => c:\users\mfbx2is2\appdata\local\temp\tmpl7kddh Starting directory: C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1 Working directory: C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1 Free space: 36.58 GB Host: E-UL-MP16WKT4 Contact: xia2.supp...@gmail.com XIA2 0.6.467-geb301d90-dials-2.2 DIALS 2.2.5-g89235367c-release CCP4 7.1.005 Command line: xia2.bat pipeline=dials C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1\xia2_dials.phil C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7 ######################################################################## To unsubscribe from the CCP4BB list, click the following link: https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=CCP4BB&A=1 This message was issued to members of www.jiscmail.ac.uk/CCP4BB, a mailing list hosted by www.jiscmail.ac.uk, terms & conditions are available at https://www.jiscmail.ac.uk/policyandsecurity/
Process ID: 2052 Environment configuration... Python => C:\CCP4-7\7.1\libexec\python.exe CCTBX => C:\CCP4-7\7.1\lib\py2\site-packages CCP4 => C:\CCP4-7\7.1 CCP4_SCR => c:\users\mfbx2is2\appdata\local\temp\tmpl7kddh Starting directory: C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1 Working directory: C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1 Free space: 36.58 GB Host: E-UL-MP16WKT4 Contact: xia2.supp...@gmail.com XIA2 0.6.467-geb301d90-dials-2.2 DIALS 2.2.5-g89235367c-release CCP4 7.1.005 Start parsing command line: ['C:\\CCP4-7\\7.1\\lib\\py2\\site-packages\\xia2\\command_line\\xia2_main.py', 'pipeline=dials', 'C:\\Users\\MFBX2IS2\\CCP4I2_PROJECTS\\CYP141_258_7-2_reproc\\CCP4_JOBS\\job_1\\xia2_dials.phil', 'C:\\Users\\MFBX2IS2\\Desktop\\Diamond\\220919\\Raw\\7_2\\pos7_2_trip76\\dls\\i03\\data\\2019\\mx17773-76\\Cyp141\\Cyp141-73-76-258-7'] DIALS pipeline selected Project: AUTOMATIC Crystal: DEFAULT Difference PHIL: dials { outlier { algorithm = Auto } scale { model = Auto } } xia2.settings { input { anomalous = false xinfo = C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1/automatic.xinfo } resolution { keep_all_reflections = false d_min = 2.1 } multi_sweep_indexing = False indexer = xds xdsii *dials refiner = xds *dials integrater = xdsr xds *dials scaler = ccp4a xdsa *dials multiprocessing { nproc = 1 njob = 1 } } Working PHIL: general { check_image_files_readable = True } xds { hdf5_plugin = "durin-plugin.so" z_min = 0.0 delphi = 5 delphi_small = 30 untrusted_ellipse = None untrusted_rectangle = None trusted_region = None backstop_mask = None profile_grid_size = None keep_outliers = True correct { refine = *DISTANCE *BEAM *AXIS *ORIENTATION *CELL *POSITION air = None } integrate { refine = *ORIENTATION *CELL *BEAM *DISTANCE AXIS *POSITION refine_final = *ORIENTATION *CELL BEAM *DISTANCE AXIS *POSITION fix_scale = False delphi = 0 reflecting_range = 0 reflecting_range_esd = 0 beam_divergence = 0 beam_divergence_esd = 0 reintegrate = true } init { fix_scale = False } defpix { value_range_for_trusted_detector_pixels = None } index { refine = *ORIENTATION *CELL *BEAM *DISTANCE *AXIS *POSITION debug = *OFF ON xparm = None xparm_ub = None max_wedge_size = 5 max_wedge_size_degrees = None } colspot { minimum_pixels_per_spot = 1 } xscale { min_isigma = 3.0 zero_dose = False } merge2cbf { merge_n_images = 2 data_range = None moving_average = False } } dials { fix_geometry = False outlier { algorithm = Auto } check_indexing_symmetry = False fast_mode = False close_to_spindle_cutoff = 0.02 detect_blanks { phi_step = 2.0 counts_fractional_loss = 0.1 misigma_fractional_loss = 0.1 } masking { border = 0 use_trusted_range = False d_min = None d_max = None resolution_range = None untrusted { panel = 0 circle = None rectangle = None polygon = None pixel = None } ice_rings { filter = False unit_cell = 4.498,4.498,7.338,90,90,120 space_group = 194 width = 0.002 d_min = None } } find_spots { phil_file = None threshold.algorithm = dispersion dispersion_extended min_spot_size = Auto min_local = 0 sigma_strong = None filter_ice_rings = False kernel_size = 3 global_threshold = None } index { phil_file = None method = fft1d *fft3d real_space_grid_search max_cell = 0.0 max_cell_estimation { max_height_fraction = None } fft3d.n_points = None reflections_per_degree = 100 histogram_binning = linear log nearest_neighbor_percentile = None } refine { phil_file = None scan_static = True scan_varying = True interval_width_degrees = 36.0 reflections_per_degree = 100 } integrate { phil_file = None background_outlier_algorithm = *null nsigma truncated normal plane tukey background_algorithm = simple null *glm combine_partials = True partiality_threshold = 0.99 mosaic = *old new scan_varying_profile = False d_min = None d_max = None } scale { model = Auto rotation_spacing = None Bfactor = True absorption = True physical_model { Bfactor_spacing = None lmax = 4 } array_model { resolution_bins = 10 absorption_bins = 5 } intensity_choice = profile summation *combine error_model = *basic None full_matrix = True outlier_rejection = *standard simple outlier_zmax = 6.0 partiality_threshold = 0.4 } } ccp4 { reindex { program = *pointless reindex cctbx } aimless { intensities = summation profile *combine surface_tie = 0.001 surface_link = True rotation.spacing = 5 brotation.spacing = None secondary { frame = camera *crystal lmax = 6 } } truncate { program = ctruncate *cctbx } } strategy { name = None description = None i_over_sigi = 2.0 minimize_total_time = False target_resolution = None max_total_exposure = None anomalous = False dose_rate = 0.0 shape = 1.0 susceptibility = 1.0 completeness = 0.99 multiplicity = None phi_range = None min_oscillation_width = 0.05 xml_out = None max_rotation_speed = None min_exposure = None } xia2.settings { pipeline = 3d 3dd 3di 3dii *dials dials-full dials-aimless small_molecule = False small_molecule_bfactor = True failover = False multi_crystal = False interactive = False project = AUTOMATIC crystal = DEFAULT input { atom = None anomalous = false working_directory = None image = None json = None reference_geometry = None xinfo = C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1/automatic.xinfo reverse_phi = False gain = None min_images = 10 min_oscillation_range = None tolerance { beam { wavelength = 1e-06 direction = 1e-06 polarization_normal = 1e-06 polarization_fraction = 1e-06 } detector { fast_axis = 1e-06 slow_axis = 1e-06 origin = 0.05 } goniometer { rotation_axis = 1e-06 fixed_rotation = 1e-06 setting_rotation = 1e-06 } scan { oscillation = 0.01 } } geometry { beam { wavelength = None direction = None polarization_normal = None polarization_fraction = None } detector { panel { id = 0 name = None type = None gain = None pedestal = None pixel_size = None image_size = None trusted_range = None thickness = None material = None fast_axis = None slow_axis = None origin = None parallax_correction = None } hierarchy { name = None fast_axis = None slow_axis = None origin = None group { id = None name = None fast_axis = None slow_axis = None origin = None panel = None } } mosflm_beam_centre = None distance = None slow_fast_beam_centre = None } goniometer { axis = None axes = None angles = None names = None scan_axis = None fixed_rotation = None setting_rotation = None invert_rotation_axis = False } scan { image_range = None extrapolate_scan = False oscillation = None batch_offset = None } convert_stills_to_sequences = False convert_sequences_to_stills = False } format { dynamic_shadowing = Auto multi_panel = False } } sweep { id = None range = None exclude = False } scale { directory = Auto free_fraction = 0.05 free_total = None freer_file = None reference_reflection_file = None reference_experiment_file = None model = *decay *modulation *absorption partiality scales = *rotation batch two_theta_refine = True } space_group = None unit_cell = None resolution { keep_all_reflections = false d_max = None d_min = 2.1 rmerge = None completeness = None cc_ref = 0.1 cc_half = 0.3 cc_half_method = *half_dataset sigma_tau cc_half_significance_level = 0.1 cc_half_fit = polynomial *tanh isigma = None misigma = None i_mean_over_sigma_mean = None nbins = 100 reflections_per_bin = 10 binning_method = *counting_sorted volume anomalous = False labels = None space_group = None reference = None } unify_setting = False trust_beam_centre = False wavelength_tolerance = 5e-05 read_all_image_headers = True detector_distance = None show_template = False untrusted_rectangle_indexing = None xds_cell_deviation = 0.05, 5.0 xds_check_cell_deviation = False use_brehm_diederichs = False integration { profile_fitting = True exclude_ice_regions = False } developmental { continue_from_previous_job = False use_dials_spotfinder = False pointless_tolerance = 0.0 detector_id = None } multi_sweep_indexing = False remove_blanks = False integrate_p1 = False reintegrate_correct_lattice = True lattice_rejection = True lattice_rejection_threshold = 1.5 xds { geometry_x = None geometry_y = None } indexer = xds xdsii *dials refiner = xds *dials integrater = xdsr xds *dials scaler = ccp4a xdsa *dials merging_statistics { source = aimless *cctbx n_bins = 20 use_internal_variance = False eliminate_sys_absent = False } verbose = False multiprocessing { mode = *serial parallel nproc = 1 njob = 1 type = *simple qsub qsub_command = '' } report { d_min = None d_max = None resolution_bins = 20 anomalous = False use_internal_variance = False eliminate_sys_absent = False range { width = 1.0 min = None max = None } cc_half_significance_level = 0.01 cc_half_method = *half_dataset sigma_tau chef_min_completeness = None dose { remove_gaps = True batch { range = None dose_start = None dose_step = None } } xtriage_analysis = True include_radiation_damage = True batch { id = None range = None } } symmetry { chirality = chiral nonchiral centrosymmetric program = *pointless dials } } Command line: xia2.bat pipeline=dials C:\Users\MFBX2IS2\CCP4I2_PROJECTS\CYP141_258_7-2_reproc\CCP4_JOBS\job_1\xia2_dials.phil C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7 Exception A: template not recognised for Cyp141-73-76-258-7_2_header.cbf (C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_header.cbf) Traceback (most recent call last): File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Applications\xia2setup.py", line 158, in get_template template, directory = image2template_directory(f) File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Experts\FindImages.py", line 99, in image2template_directory template = image2template(image) File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Experts\FindImages.py", line 82, in image2template return template_regex(filename)[0] File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Experts\FindImages.py", line 61, in template_regex raise RuntimeError("template not recognised for %s" % filename) RuntimeError: template not recognised for Cyp141-73-76-258-7_2_header.cbf Exception B: template not recognised for C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_header.cbf Traceback (most recent call last): File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Applications\xia2setup.py", line 209, in visit template = get_template(full_path) File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Applications\xia2setup.py", line 170, in get_template raise RuntimeError("template not recognised for %s" % f) RuntimeError: template not recognised for C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_header.cbf Using FormatRawData for C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_000002.h5 Loaded file: C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_000002.h5 Added imageset to datablock 0 Exception C: no imageset found (C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_000002.h5) Traceback (most recent call last): File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Applications\xia2setup_helpers.py", line 17, in get_sweep sweeplist = SweepFactory(template, directory) File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Schema\Sweep.py", line 21, in SweepFactory template, directory, reversephi=PhilIndex.params.xia2.settings.input.reverse_phi File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Schema\__init__.py", line 160, in load_imagesets assert len(imagesets) > 0, "no imageset found" AssertionError: no imageset found Using FormatHDF5 for C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_meta.h5 Exception C: (C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_meta.h5) Traceback (most recent call last): File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Applications\xia2setup_helpers.py", line 17, in get_sweep sweeplist = SweepFactory(template, directory) File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Schema\Sweep.py", line 21, in SweepFactory template, directory, reversephi=PhilIndex.params.xia2.settings.input.reverse_phi File "C:\CCP4-7\7.1\lib\py2\site-packages\xia2\Schema\__init__.py", line 116, in load_imagesets format_kwargs=format_kwargs, File "C:\CCP4-7\7.1\lib\py2\site-packages\dxtbx\model\experiment_list.py", line 537, in from_filenames format_kwargs=format_kwargs, File "C:\CCP4-7\7.1\lib\py2\site-packages\dxtbx\datablock.py", line 1529, in from_filenames format_kwargs=format_kwargs, File "C:\CCP4-7\7.1\lib\py2\site-packages\dxtbx\datablock.py", line 965, in __init__ format_class, filename, format_kwargs=format_kwargs File "C:\CCP4-7\7.1\lib\py2\site-packages\dxtbx\datablock.py", line 1185, in _create_single_file_imageset return format_class.get_imageset(abspath(filename), format_kwargs=format_kwargs) File "C:\CCP4-7\7.1\lib\py2\site-packages\dxtbx\format\FormatMultiImage.py", line 135, in get_imageset assert single_file_indices is not None AssertionError Using FormatNexusEigerDLS16M for C:\Users\MFBX2IS2\Desktop\Diamond\220919\Raw\7_2\pos7_2_trip76\dls\i03\data\2019\mx17773-76\Cyp141\Cyp141-73-76-258-7\Cyp141-73-76-258-7_2_master.h5 ######################################################################## To unsubscribe from the CCP4BB list, click the following link: https://www.jiscmail.ac.uk/cgi-bin/WA-JISC.exe?SUBED1=CCP4BB&A=1 This message was issued to members of www.jiscmail.ac.uk/CCP4BB, a mailing list hosted by www.jiscmail.ac.uk, terms & conditions are available at https://www.jiscmail.ac.uk/policyandsecurity/