Prerequisites
New to ePMV?
Please install the latest ePMV for your system (work with 0.5.2 or newer) and follow the Quick Start tutorial.
New to Cinema 4d?
We assume a basic working knowledge of Cinema 4D, so please go through introductory tutorials that came with your software if you're a first-time user.
Using a host other than Cinema 4D like Maya, Blender, SoftImage, etc.?
This AMI Newsletter tutorial is Cinema 4D specific in details, but the general principles apply to all of ePMV's hosts, so as a skilled user of your preferred host software, just translate to equivalent functions for Blender, Maya, etc. If you're new to 3D, then we recommend getting started with Cinema 4D because its much more intuitive and user friendly than the other hosts, but if you're at a school or job that uses one of the other package, then certainly use a host that meshes with your future plans.
I. Construct macromolecules from lightweight asymmetric unit files with just a few clicks
To create an efficient virus model that won't bog down your viewport, ePMV can take one subunit (a) and instance it to assemble an entire virus (b–d) from data available in many PDB files. The 2plv file used in this example is nearly 1/60th the size of the entire virus file which has redundant geometry:

Short tutorial for skilled ePMV users:
- To create the polio virus shown in this example, simply fetch 2plv then check [√] coarseMS to make the green unit visible
- Select menu Edit>Biological Unit and enter 2plv into the box to automatically build efficient instances from the geometry of the single basic unit called a monomer.
- Uncheck [ ] coarseMS ribbons and check [√] loft to create a backbone worm model. Color each chain in the monomer using the host software or the ePMV graphic user interface (GUI).
- Run the surface_per_chain script in the Python window to create simplified surfaces for every chain in the model. Note that the monomer has four chains (four different proteins) with the interior one hidden in this view.
Detailed tutorial for ePMV n00bs:
- Image a: Fetch the asymmetric unit instead of downloading the all-atoms biological unit, which would unnecessarily bring 60x more data into your scene.
- Open ePMV:
- In the ePMV menu at the top click Edit>Options
- In the options palette:
- Uncheck [ ] Center molecule
- Change [Secondary structure] in the pulldown to [CMS]
- In the Get a Molecule text box type 2plv and click [Fetch]
- This gives you the basic Image a and a building block for Images b–d
- In the ePMV menu at the top click Edit>BiologicalUnit
- Type the exact name of your molecule (visible in the object manager) in the box and hit enter (if following this tutorial you should type "2plv"
- Unfold >Surface Representations
- Adjust the settings for the coarseMolSurf to:
- Isovalue = 10
- Resolution = –0.15
- Grid size = 20
- Unfold >Color By:
- Select [Chains] from the drop down (this gives you a crude approximation of image d. See below to improve it.
- You can adjust the color of the Color ByChain settings (note, there is a bug in 0.5.2 that prevents color palette edits from sticking- update to 0.5.3 as soon as its available):
- ePMV menu Edit>Color Palettes
- Unfold >Chains
- See in the object manager that there are 4 chains labeled 1-4, so click to adjust those colors as desired
- Click [Set To]
- In the main ePMV GUI set Color By to [Chains] from the drop down
- Image b:
- To color the virus by pentamers as in image a, use your 3D skills:
- Delete the textures of the parent geometry:
- In the C4D object manager unfold 2plv
- Delete all but the phong tag from the CoarseMS_2plv mesh object (your virus should turn grey)
- Unfold 2plvbioMT
- In the Material Manager, make 12 new materials colored as you see fit
- Under 2plvbioMT, color 5 instances at a time,
- e.g., from top to bottom, select the top 5 monomers that make a pentamer 2plv_60 to 2plv_56
- Adjust your viewport to see them clearly
- In the Material Manager, select the material you want to apply to that pentamer then click Function>Apply
- Repeat these steps for 2plv_55 to 2plv_51, etc. eleven times
- Image c:
- From any point after step 6 above, you can stop and work on image c
- Under >Surface Representations uncheck [ ] coarsMolSurf
- Unfold >Backbone Representations
- Check [√] Loft
- In the object manager under 2plv, unfold each of the chain parent nulls e.g., unfold 2plv:4 to 2plv:1 so you can see the loft object children.
- Unfold each loft object
- To speed up your viewport, simplify the loft objects:
- Select the circle object under each loft all at once
- In the attributes manager for the four circles, set:
- Intermediate points = Uniform
- Number = 1
- Set the radius to 1 or any thickness for the backbone trace that you like
- There is a bug in r12 and r13, so your lofts may appear to have linear interpolation. To fix this:
- Select the spline object under each loft all at once
- In the attributes manager for the four spline objects, set:
- Intermediate points = Uniform
- Number = 1
- Change type from [Cubic] to [Linear] and then back to [Cubic] and you should see a nicely rounded backbone
- Unfold >Color By:
- Select [Chains] from the drop down (this gives you a crude approximation of image d.
- You can adjust the color of the Color By Chain settings (note, there is a bug in 0.5.2 that prevents color palette edits from sticking- update to 0.5.3 as soon as its available):
- ePMV menu Edit>Color Palettes
- Unfold >Chains
- See in the object manager that there are 4 chains labeled 1-4, so click to adjust those colors as desired
- Click [Set To]
- In the main ePMV GUI set Color By to [Chains] from the drop down
- Select 5 monomers that make a pentamer and hit Option'G" to group them.
- Move the parent of the group to pull the pentamer aside to take a peak inside of the empty virus.
- Turn on ambient occlusion effect under render settings and crank the Maximum Ray Length to >400 to make it dark inside.
- Image d (Advanced):
- If starting from image c or d above, make sure that [ ] Loft and [ ] coarseMolSurf are unchecked... you should only see 60 dots in your viewport which are the axis of the instances for your polio biological unit.
- Unfold >PMV-Python scripts/commands at the bottom of the ePMV GUI
- Under the [>Open] drop down menu select surface-per-chain
- In the text that appears change:
- doMSMS = true to doMSMS = False
- and set:
- iso = 10.0
- res = –0.15
- doCMS = True
- Click [Execute]
- Now if you want to modify the colors, you can simply create 4 new materials and drop them onto each of the reference geometries for each of the four chains, e.g.:
- In the object manager unfold 2plv then unfold 2plv:4
- Drag your new texture straight onto 2plv4CMS
- repeat for the other three chains
Represent DNA and RNA in a variety of customizable styles
Many molecular viewers popular today come up short on options for representing nucleotides (e.g., DNA and RNA strands). ePMV provides many options and organizes the geometries and textures to make them easily customizable:

- Generate a DNA strand that would spell AMINEWS in amino acids if transcribed to mRNA and then translated by a ribosome:
- Restart Cinema 4D to ensure the same starting point:
- Open ePMV
- In the ePMV menu at the top click Extension>BuildDNA(w3DNA). In the Build DNA palette:
- In the box Enter a name (i.e. test.pdb): type AMInews.pdb
- In the box Enter a sequence: paste or type: GCC ATG ATT AAC GAG TGG AGT (you can repeat it three or four times to make a longer DNA strand, but its wise to keep it simple for this first tutorial).
- Change Choose a type to [M4>B-DNA (generic)]
- Click [Build] and wait for a few seconds (time depends on the length of your strand and any backup at the Rutgers server)
- The widget sends a user's sequence to the w3DNA server http://w3dna.rutgers.edu/index.php/rebuild to generate a straight PDB file of the specific sequence that automatically gets constructed into the scene.
- This should result in a strand that looks like the left side of image a centered in your viewport
- First Timers Image A: To create the other representations in image a from left to right, perform the following steps (some steps may take several seconds depending on the length of your DNA strand):
- Unfold >Backbone Representations and uncheck [ ] Ribbons
- Under Atoms/Bonds check [√] Sticks and under Color By: choose [Per Residue] then uncheck
- Under Atoms/Bonds check [√] Atoms and under Color By: choose [Per Residue] then uncheck
- Under Surface Representations check [√] MSMSurf. Change the probe radius to 0.01 and under Color By: choose [Per Residue]
- Leaving [√] MSMSurf checked, change the probe radius to 1.4 and under Color By: choose [Chain]
- You can adjust the default colors of the colorByChain settings (note, there is a bug in 0.5.2 that prevents color palette edits from sticking- update to 0.5.3 as soon as its available):
- ePMV menu Edit>ColorPalettes
- Unfold >Chains
- See in the object manager that there are 4 chains labeled 1-4, so click to adjust those colors as desired
- Click [Set Color]
- In the main ePMV GUI set ColorBy to [Chains] from the drop down
- uncheck MSMSurf
- Under Surface Representations check [√] CoarseMolSurf. Set Iso=10, Res=–0.15, and GridSize=60, then under Color By: choose [Chain]
- You can adjust the default colors of the colorByChain settings as described in the MSMS step if desired.
- Advanced ePMV users Image a details:To create the nicely separated strands shown in right side of the rendering of the AMINEWS DNA strand in image a you'll need to modify and run a python script that will create a separate surface for each chain, or a separate surface for each base as follows. We'll make CMSs (Coarse Molecular Surfaces) and MSMSs (Michel Sanner Molecular Surfaces) for the two strands and MSMS for the bases all in one script and then view them one at a time with Cinema4D's object manager:
- Make sure all representations are unchecked
- Unfold >PMV-Python scripts/commands at the bottom of the ePMV GUI
- Under the [>Open] drop down menu select surface-per-chain
- In the text that appears set:
- doMSMS = true
- iso = 10.0
- res = –0.15
- doCMS = True
- Uncomment the following lines towards the bottom (uncomment means carefully delete the # sign (and only the # sign) in front of each of the following lines). Python is tabulation dependent, so you must only delete # not any spaces or carriage returns around it, i.e., all of the code must line up as shown below (four spaces per tabulation). The step is simple, but precision a must:
- for chain in mol.chains:
for res in chain.residues:
surfname = mol.name+chain.name+res.name+"MSMS"
self.computeMSMS(res,surfName=surfname,perMol=0,
pRadius=pradius,density = density)
self.colorByResidueType(res,[surfname])
- Click [Execute]
- This should build a lot of geometry into your scene/object manager.
- Use the Cinema 4D object manager to explore your new separated meshes, lets examine one strand:
- Hide AMInews:B by turning both visibility dots red (or select an in the Basic tab of the Attributed Manager, set both Visible In Editor and Visible in Render to [Off]
- Hide AMInews:A by as above then unfold it in the Object Manager to see the hierarchy
- Scroll to the bottom of AAMInews:A and forceShow AMInewsACMS by turning both of its visibility dots to green
- Render your scene if you like- AMInewsACMS is a single mesh for the A strand of the bDNA model that has the settings you set in the script (iso=10, res=-0.15) You can adjust this mesh by adjusting those value and running the script again, but its best to figure out what you want in the viewport and then set the parameters once
- Hide AMInewsACMS by setting both green visibility dots to Red
- ForceShow AMInewsAMSMS by setting both of its visibility dots to green
- This shows the MolecularSurface you made with the script that had a default probe radius of 1.5
- Hide AMInewsAMSMS by setting both green visibility dots to Red
- Show the individual base meshes by showing the parent for strand A, i.e., show AMInews:A by both visibility dots to grey
- When you render, each base should have a separate mesh with A=red, T=green, G=blue, and C=yellow
- Turn on the Ambient Occlusion effect in your renders setting to better reveal the separated meshes.
- To distort your DNA at any point in the modeling above (This is a HACK, so beware of the confidence limits of models you produce!):
- Draw a spline (longer than you DNA) in your viewport
- Place a SplineWrap deformer in the hierarchy directly under AMInews and drag the spline into the SplineWrap's attributeSpline box
- Change Mode: [FitSpine] to Mode: [KeepLength]
- Only apply gentle bends to your DNA using this technique if your camera is close enough to discern atomic lumps because you are distorting the bonds (and even the shapes of the atoms)... this technique is a hack and should not be used for high resolution modeling, but only for distant renderings of Nucleotide (DNA/RNA) shape and function. To model chemical details and atomic interactions, consult with your content expert. We'll teach how to do some molecular dynamics relaxation in the summer AMI workshop to get a better model, but even that is of limited resolution.
Figures b–e above use similar techniques but start with a PDB file of an RNAase rather than generating a model from a primary sequence. For b, d, and e, simply follow the matching steps from the detailed DNA First Timers Image A above and choose the appropriate Color By: [type]
- Fetch the riboswitch
- Type 1u8d into the Get a Molecule box and click [Fetch]
- For a variation, uncheck [ ] Ribbons and check [√] Loft. Change the backbone’s loft circle to an ellipse.
Experiment with adjustments to the loft as described in the Polio virus tutorial above.
- Uncheck [ ] Loft and check [√] Ribbons and [√] Beaded Ribbons.
- Unfold 1u8d and 1u8d:A and 1u8d:A_ss
- Hide 1u8d_A_CoilNucleic by setting both visibility dots to red
- ForceShow 1u8d_A_CoilNucleic's child rib1u8dA_lader by setting both visibility dots to green
- Next to Beaded Ribbons in the ePMV palette, click Options and adjust the helix settings until satisfied with a unique style
- Adjust and turn on Sketch-n-Toon rendering.
- Advance Cinema 4D users can replace the default base:
- Under 1u8d unfold 1u8d_b_lader_shape and unfold 1u8d_b_lader_cyl
- Create a new Cube object, set each of its X Y and Z sizes from 200 down to 1
- Name the Cube CubeBase and drag it next to the cylinder as a child of 1u8d_b_lader_cyl
- Click the green checkmark next to the cylinder to turn it off
- All of the bases in your viewport should now be elongated cubes
- Use your C4D modeling skills (e.g. bulge distorters etc. to generate a unique base shape)
- Its difficult to imagine how your 1x1x1 cube will look when distorted up to the full sized base, so here is a trick for advanced users:
- Select CubeBase and hit optionG to group it into a new Null and name it CubeBaseRef
- Create a Bulge Deformer, set it XYZ sizes to 1 and drag it into your CubeBaseRef
- Select CubeBaseRef and under the menu Object(in r12) and Create(in r13) >Modeling>Instance
- Leave the instance under the 1u8d_b_lader_cyl null and drag the CubeBaseRef Null out to the top of the hierarchy in the object manager
- In the Coordinates manager (Attributes tab of CubeBaseRef) change s.y to 7
- Add subdivisions to your cube and adjust your bulge distorter (e.g., select the cube and set the segments for x and z to 5 and y to 10, select the bulge deformer and set strength to -70, add other distorters, scale them properly and create something unique!)
- Future editions of ePMV will allow you to make unique shapes for each base type to create lock/key plug/socket types of icons.
-
Uncheck [ ] Ribbons and Beaded Ribbons and check [√] MSMS and try various probe radius values e.g. 0.001 will create a mesh that wraps the atoms very tightly to produce a single mesh that looks like a space-filling atomic model made of spheres but that you can color as residues to fake the separated effect in e
- In the PMV Python Scripts/Commands, run the surface_per_chain script on 1U8D and uncomment the per_residue section as described in detail in the DNA First Timers Image A above–this will color adenine red, cytosine yellow, guanine blue, and thymine orange (for this image, we changed thymine’s native orange to green in the ladder representations using the 3D program’s material manager- they remain orange in the unaltered rendering in e.)
|