dials / dials

Diffraction Integration for Advanced Light Sources
https://dials.github.io
BSD 3-Clause "New" or "Revised" License
74 stars 52 forks source link

add gemmi to dependencies? #1266

Closed Anthchirp closed 3 years ago

Anthchirp commented 4 years ago

The Gemmi library (https://github.com/project-gemmi/gemmi) is developed by CCP4 and Global Phasing, and offers among other things a faster CIF parser and MTZ read/write capability in both C++ and Python bindings.

The package is well-documented, licensed under MPLv2 and LGPL. It is an active project with proper releases and is packaged on conda-forge.

dagewa commented 4 years ago

I'm keen. I've just started using gemmi and have found it very easy to get into

dagewa commented 4 years ago

Another reason to use gemmi is that it handles unmerged mmcif, which will be useful when preparing files for deposition in future. #281 is a moving target and it would be useful to offload the heavy lifting.

dagewa commented 4 years ago

"Gemmi handles mmcif so we don't have to" is a strong argument to me. https://project-gemmi.github.io/wasm/to_mmcif/

graeme-winter commented 4 years ago

I am not at all hostile to this. Personally I am not bothered about mmCIF, but I do wonder what it would do regarding regular CIF? Better MTZ file wrangling could be useful 🙂

dagewa commented 4 years ago

I have used it to read regular cif, with great success (it is very fast). The issue with mmCIF is that it is required for deposition and eventually will include unmerged data, including the mapping between multiple crystal data and the scaled/merged dataset that only the scaling program really knows about. It's true that "eventually" might be still a long way off, but I can see a possible need for DIALS tool to aid deposition, by writing the reflections part into the mmCIF from refinement.

Anthchirp commented 4 years ago

Sort of blocked by https://github.com/project-gemmi/gemmi/issues/42 and https://github.com/conda-forge/gemmi-feedstock/issues/20