Difference-Map Generation and Validation Workflow for Photosystem II Cryo–EM Data
Authors/Creators
-
Hussein Ali, Rana
(Project leader)1, 2
-
Graça, André
(Project member)3
-
Forsman, Jack
(Project member)4, 3
-
Aydın, Abuzer Orkun
(Project member)5
-
Hall, Michael
(Project member)
-
Gätcke, Julia
(Project member)1
-
Chernev, Petko
(Project member)
-
Wendler, Petra
(Project member)6
-
Dobbek, Holger
(Project leader)1
-
Messinger, Johannes
(Project leader)5
-
Zouni, Athina
(Project leader)1
-
Schröder, Wolfgang
(Project leader)3
Description
Description
This dataset accompanies the publication:
Hussein R. et al., Cryo–electron microscopy reveals hydrogen positions and water networks in Photosystem II, Science (2024). DOI: 10.1126/science.adn6541
Details of data collection are provided in the paper referenced above.
This record provides (i) the mask file used for all Servalcat refinements and difference-map calculations, and (ii) the Python script used to threshold difference maps prior to subtraction (voxel values < 0.5 σ are set to 0).
Note: the voxel size used throughout the study was 0.5744 Å.
These resources are intended to facilitate transparency and reproducibility for the difference-map analysis.
Code repository: https://github.com/Husseire/Python-script-used-to-threshold-difference-maps-mrc-files-.git
Detailed step-by-step description
Step 1 — Refinement
Run refinement using Servalcat refine_spa with the two half-maps and the mask file.
• Refinement was performed with hydrogen atoms included.
• Using half-maps and the mask helps avoid overfitting and ensures accurate model–map agreement.
Step 2 — Generate difference maps (Fo–Fc)
Inputs: Servalcat/REFMAC5-refined model, two half-maps, mask.
Prepare two models:
• Model A (+H, −Cl): retain all hydrogens (occupancy = 1); remove Cl⁻ ions (The Cl⁻ density is strong, and unaffected by hydrogen removal; it was omitted here so it could serve as a reference for scaling during map subtraction).
• Model B (−H, −Cl): remove both hydrogens and Cl atoms.
Note : For other proteins lacking Cl⁻, the same approach can be applied using any well-defined, high-density feature, for example, a metal center, sulfur atom as the scaling reference.
Compute two maps with Servalcat fofc:
• Fo-Fc(+H) — includes hydrogen contributions.
• Fo-Fc(−H) — excludes hydrogen contributions.
Step 3 — Threshold the difference maps
Run threshold_maps.py.
• Set all voxel values < 0.5 σ to 0 to remove negative densities.
• This prevents negative values from appearing as artificial positive peaks after subtraction.
Step 4 — Subtract the difference maps
In COOT, use Make difference map to compute Fo-Fc(−H) − Fo-Fc(+H).
• Apply a scaling factor = 0.5, determined from the absolute intensity of the Cl⁻ signal (chain A, atom 402).
Step 5 — Validate detected peaks
• Perform visual inspection and compare with the sharpened cryo-EM map.
• Confirm that positive densities coincide with hydrogen positions and are consistent with Fo–Fc(−H) maps.
Notes on Application
This method was applied to help eliminate density peaks and noise present outside the H-atom positions. Given the large size and complexity of PSII (40 subunits with more than 50000 H-atoms) and the current lack of computational tools capable of accurately identifying all peaks related to the H-atoms, as well as other, unrelated density peaks present in the Fo-Fc difference map, peak detection and counting would be highly challenging without using the difference-of-difference map method.
The difference-of-difference approach should primarily be used for benchmarking and statistical evaluation of hydrogen detectability, not as the sole basis for mechanistic interpretation. It should always be accompanied by validation using the visual inspection of the map and using the standard Fo–Fc(–H) map.
For smaller proteins or maps with uniform resolution, the conventional Fo–Fc(−H) map as described by Yamashita (Acta Cryst. D 77, 1282–1291 (2021)) is usually sufficient and preferable.
Files
Files
(1.5 GB)
| Name | Size | Download all |
|---|---|---|
|
md5:3a45a0dae296d72bfc6943879106ae07
|
1.5 GB | Download |
Additional details
Related works
- Is supplement to
- Journal article: 10.1126/science.adn6541 (DOI)
Software
- Repository URL
- https://github.com/Husseire/Python-script-used-to-threshold-difference-maps-mrc-files-.git
- Programming language
- Python , Jupyter Notebook
- Development Status
- Active