Cryo-EM: How to generate an initial reference map from pdb

When starting out in the field of cryo-EM it is often the small annoying problems that you waste a lot of time on. These problems are often very difficult to Google as the experienced Cryo-em scientist often take the solutions to them for granted.

One such problem I found difficult in the beginning was how to generate an initial reference map from a PDB model. As always there are more than one way of solving this problem, but what I have found to be the best approach for people new in the field, is using Chimera for it. Chimera have implemented a EMAN program called pdb2mrc and called it molmap. By going through Chimera instead of generating the map via pdb2mrc in a linux terminal, you get to visualize the map and the pdb file, which I think is general easier for people new to cryo-EM. That being said I think pdb2.mrc is better as it has more options and it is the one I use now.

To use mol at you simply open (or fetch) the PDB model of interest in Chimera. In the “model panel” (Tools –> general controls –>model panel) of chimera you should see that your newly loaded PDB molecule should be molecule “#0”, that is having ID 0, unless you have loaded other models beforehand.

You should then activate the command line (as it is not visible by default) by going: Tools –> General controls –> Command line.

Click on the command line (below the window displaying your PDB model).

In the command line you then type “molmap #0 15” and hit enter. This will very quickly generate a simple density map around molecule #0 at a resolution of 15Å.

The general usage of the molmap command is:  “molmap atom-selection resolution options. I did not use any options in my example. So if you wanted to change the resolution to e.g. 3Å you just change the number from 15 to 3 in the command line.

When the map is generated a new window should  open called “volume viewer”

To save your new map as a MRC file, as used in e.g. Relion and other Cryo-EM programs you need to go to the “volume viewer” window and click file –> save map as. Then choose MRC format (should be pre-selected) and give it a name and save it. Just remember that your new map is not on a absolute intensity/grey scale!

This takes care of generating an initial map (or mask), but chances are good that the map is not centered correctly and is not the right size either. I will cover this another time.

Click on the following link for details on how to change various parameters (pixelsize, box size) for the map you just created (or any other map): Cryo-EM: How to change box size and pixel size

Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/ on line 405

14 thoughts on “Cryo-EM: How to generate an initial reference map from pdb”

  1. Hi,

    Do you know how RELION calculate real box size in pixel? For example, if I used a box size of 220 A to pick up particle on the dat that has 1.06 A per pixel, what is the box size actually RELION used? 220, 220/1.06=207.53~207 or 208. By the use of this figure, then I can rescale the model produced form PDB file.

    Best regards

    Pu Qian

    1. Hi Pu Qian,

      I saw you asked the same question on the CCPEM list yesterday.
      And I saw Scheres also answered you. What exactly is it you are trying to do? You want to change the box size of a reference map you have made? or do you want to change the pixelsize on something?

      Cheers Ruki

  2. Hi Ruki,

    I was confused by the circle diameter for particle picking and the box size for particle extraction initially. When I pass through the tutorial, I found that for particle extraction, it uses number of pixel. In my case it is 220.

    I produced an initial model from a pdb file using Chimera. Now, I used region_image_handler to rescale it to 220 box size and 1.06 A per pixel with following command line:
    region_image_handler –i input.mrc –angpix 1.06 –new_box 220 –o

    it seems OK. When I checked output.mrc using Chimera, however, the pixel size no change. –angpix or rescale_angpix which should I use. I will play them a bit and feedback to you later. Box size was changed to 220.

  3. ” the map is not centered correctly and is not the right size either. I will cover this another time.”

    any hints about how to do that ?


    1. Hi JPD,

      If we ignore using Chimera and instead just use PDB2MRC directly from terminal, you can do this:
      Get the PDB model you want to use as a reference map, then use EMANS pdb2mrc to first create a volume model of the PDB input model using the same pixelsize (å/pix) and box size (in pixels) as used for picking the particles.
      The below example generates a volume from PDB 4ZIT filtered at 15Å resolution using a 3.15 Å/pixel size and a boxsize of 72 while making sure to center the map in the box (the appended “center” command).
      pdb2mrc 4ZIT.pdb 4ZIT_map.mrc res=15 apix=3.15 box=72 center
      You can inspect the model in chimera if you wish, by typing:
      Chimera 4ZIT_map.mrc
      You can check what the pixelsize and boxsize are of the outputted map (and any other maps for that matter) from the maps Header information using EMAN2’s with the -H flag: 4ZIT_map.mrc -H (NB capital H)
      From which you can read the box size (first line and also in later lines), Pixelsize (lines starting with apix).
      If you want to change the apix or boxsize of the map you can use Relions Image_handler tool from the command line to do that without creating a new map via PDB2MRC.
      For example if you want to change the box size of the 4ZIT_map.mrc to 300x300x300 pixels and the pixelsize to 6 å/pixel, you just type:
      relion_image_handler –i 4ZIT_map.mrc –new_box 300 –rescale_angpix 6 –o new_map.mrc
      This will write a new map (new_map.mrc) with a box size of 300x300x300 pixels and pixelsize of 6 as is evident if you reads its header with new_map.mrc -H (NB capital H)

      Was that useful? otherwise let me know.



  4. yes very useful thanks.
    i am now in the middle of an unrelated
    mrc format problem.
    chimera and save and re-read the map correctly , however coot doesn’t read the origin correctly and places the map in odd places.


  5. Hi Ruki

    I am very novice to cryo-EM field. I have recently collected data and procession it on relion for SPR. I am currently following the steps from relion tutorial manual and have been able to do 2-D classification for the particles. Now, for 3-D classification I need to have a low resolution reference map for my structure. Since there is no homologus structure available for my protein I can not go for PDB to mrc method. Please let me know how can generate a resolution reference map for 3-D classification.
    Thanks in advance!

    Best Regards

  6. Hi,
    This page is very helpful. I am not sure is anyone still responding or not. My question is I want make to shapes, like cylinder or sphere with specific box size, pixel value and radius for using 3D classification in Relion.

    I read in some mailing list to discuss about it but couldn’t find it anymore. please help.

  7. Hi Ruki,
    thank you a lot for this post!
    I’m trying to generate a data set of residue molmaps, however, got stuck at automatically saving molmaps in mrc format.
    I used runCommand(save map_path), but all saved documents are in .py format.
    I would really appreciate if you could demonstrate how to solve the issue.


  8. Thanks for your detailed introduction. As a cryo-EM new user, I wonder how to merge cryo-EM map with PDB file correctly? I look forward to a wonderful answer from you.

Leave a Reply

Your email address will not be published. Required fields are marked *