Aim: we will fit a domain of the human respiratory complex I matrix arm starting from an empty (part of the) map.
WARNING:: This is non-trivial, a familiarity with Coot is assumed. This is not like the basic tutorial. This is approximately how I use coot. It is tricky because fitting cryo-EM maps is tricky.
Put the scripting files in $HOME/.coot-preferences (make the directory if needed)
Using a web browser, download the following
Using Coot:
Calculate -> Scripting -> Python
curlew()
From there, install “Chain Refine” and “Morph”
read in the reboxed map for EMD-6771
Let’s make a smoother map (EMD-6771 is not typical in that it is well sampled and
not obviously oversharpened). But let’s learn how to do it because that is often
not the case.
Extensions → Modules → Cryo-EM, Cryo-EM → Multi-sharpen…
Choose 4 steps of Sharpen/Blur to 100
This runs refmac to make an MTZ file starting-map-emd-6771_rebox.mtz
. Read it in using the column label Fout_Blur_25.00.
It is often useful to have multple sharpening/blurrings of the same map, so let’s make another map with Fout_Blur_100.00
read 5xtb-sans-J.pdb
Fetch the model for accession code 3wj7
from PDBe
Use Draw → Sequence View and Edit → Copy Fragment to extract the protein
A
chain from this (only the protein part)
Centre on the unmodelled density for the J
chain
Move the A
fragment from 3wj7
to here
Morph → Jiggle fit this chain (this can take ~60 seconds)
Does it fit? If not, try again. Maybe shift the centre of the molecule by a few Angstroms
If you can’t make it Jiggle correctly, then the “real” centre is at (193,208,286). Move the fragment so the middle of the molecule is there and Jiggle fit will work.
The real sequence is quite different to this model, let’s strip off the side chains
Calculate -> Scripting -> Python:
delete_sidechains_for_chain(4, 'A')
Using the ProSMART module, generate 4.3A self-restraints for this (now fitted) chain
You can change the weight of these extra restraints if you want:
Calculate -> Scripting -> Python:
set_refinement_geman_mcclure_alpha(0.1) # quite weak
Choose a sensible weight for the map
Chain-refine (Shift E)
We still have the wrong sequence, let’s apply the new one:
Calculate -> Scripting -> Python:
associate_pir_alignment_from_file(4, 'A', '5xtb-chain-J-aligned-by-muscle.pir')
apply_pir_alignment(4, 'A')
Use the Validation tools to find problematic regions of the model and fix them.
Hint 1: Density Fit analysis is a good tool to start off.
Hint 2: Use the sequence file J-chain.seq
for alignment
End: You may notice that theres a ligand in the middle of the protein - it’s NDP.
Get an instance of NDP and fit it to the map using
Calculate → Other Modelling Tools → Ligand Fitting