Documentation‎ > ‎Tutorials‎ > ‎

Visualizing & Modeling Cell Biology

Hands-on tutorial for the Visualizing and Modeling Cell Biology Workshop
SLC, Utah 2016

The requirements for the tutorial are :
- MAXON CINEMA 4D R17 Please download the latest demo here (you can register to get saving features for 45 days)
        The installation require around 2Go of disk space. Follow the default installation and click continue all the way.
uPy Plugin Package with ePMV & autoPack 
- Install X11 for Mac : X11 - XQuartz


  1. Download the zipped package for your system:
    1. Cinema 4D r17 for Mac 64bits upy-C4Dr17-mac.zip
    2. Cinema 4D r17 for Windows 64bits upy-C4Dr17-win.zip
  2. Drag & drop the extracted folder into the plugins folder of your Cinema4D preferences folder (in C4D Edit->Preferences... then "open Preferences Folder")
    1. The extracted archive contains a folder called uPy-Mac with another folder inside called ePMV
    2. Drag both ePMV and upy_autoPack folder out of uPy-Mac and place it into your Cinema4D preference plugin folder:
    3. MAC OS /Users/userName/Library/Preferences/MAXON/CINEMA 4D R1<x>_/plugins/
    4. WINDOWS  C:/Users/userName/AppData/Roaming/MAXON/CINEMA 4D R1<x>_/plugins/
  3. Restart Cinema4D, ePMV and autoPACK should appear in the Plugins menu
  4. Start ePMV, go to Help->Check for stable Update. Click yes. Do not restart Cinema4D
  5. Start autoPACK, go to Help->Check for stable Update. Click yes.
  6. Close Cinema4D
While the plugin is available for other software such as Blender, Maya or 3dsMax, we choose Cinema 4D for this tutorial for its intuitive user interface. This tutorial will be tested using different host (blender, then Maya) after the workshop. To test the plugin:

 
  • start Cinema4D
  • start autoPACK  (Plugins->autopack)
  • select BloodPlasma recipe
  • click Construct
  


If you have any difficulty installing the plugins, please post on our forum: autopack google group or send me an email autin@scripps.edu.

After a quick introduction on basics usage in Cinema4D, the tutorial will cover basics usage of autoPACK : 
    (i) build a recipe
    (i) pack a recipe
    (ii) view results
    (iii) advanced visualization, transition with cellVIEW for high performance visualization (which will be presented by Peter Mindek from the Vienna University of Technology)

See the video


Build a recipe


Building a recipe consist in describing 
(i) a list of ingredients (shape, concentration, etc..) and their localisation such as exterior, interior or surface of a compartment and (ii) the different packing options. In order to build a custom recipe, we are going to use our utilities that hopefully will make the process easier. 

Step 1 Create the template

 


  • start Cinema4D
  • Start autopack (Plugins->autopack)
 
 
  • In the Utilities Tab, enter a name for your recipe and click "Create custom Recipe". Note : this will create a new windows and prepare a template for the recipe. The template show the usual architecture of a recipe.
 



In the out-liner, you should see a tree similar to the one in the adjacent figure. You should see an object called myRecipe_Setup, this is where we are going to describe the recipe. The BoundingBox is the box representing the total volume to be fill.  
(Note: we assume 1 unit = 1 angstrom). 
The custom recipe we are going to build consist in 5 ingredients and 2 compartments organized as follow :

  • exterior  
    • ingredient 1
  • compartment 1
    • surface 
      • ingredient 2
    • interior
      • ingredient 3
  • compartment 2
    • surface
      • ingredient 4
    • interior
      • ingredient 5
 

Step 2 Make the compartments

 














  • Select the BoundingBox
  • In the object attribute (right bottom), change
    • in Object, change size to 
      • x 1000
      • y 800
      • z 500
    • in Coord., change position to
      • 0
      • y 0
      • z 0
 
 








  • Create a spheres (Create->Object->Sphere). 
  • In the object attribute (right bottom), change
    • in Object, change 
      • Radius to 250
      • Segments to 40
      • Type to Icosahedron
    • in Coord., change position to
      • -180
      • y -120
      • z 0
    • in Basic, change the Name to compartment1
  • Create a spheres (Create->Object->Sphere). 
  • In the object attribute (right bottom), change
    • in Object, change 
      • Radius to 180
      • Segments to 40
      • Type to Icosahedron
    • in Coord., change position to
      • x 280
      • y 140
      • z 0
    • in Basic, change the Name to compartment2
 
  • Select both, drag them under the object called myRecipe_compartments_geometries.
  • Select both object and click on make editable. 
Note: For a geometry to be used as a compartments in autoPACK , it has to be a triangulated mesh. In Cinema 4D you can transform the spheres primitives in polygon object using the  "Make Editable button"   on the upper left of the main interface.  

  • You can now click on SetupCompartemnts in the plugin window. This will only work if the object are triangulated meshes.
 



The SetupCompartemnts automatically generate the template necessary for autoPACK to recognize the compartments. We can now start to prepare the ingredients.

An ingredient is an object you want to distribute in a volume. To describe it we need a shape representation, the preferred approach is to use a sphere tree representation (coarse graining or ultra-coarse graining approach). In this simple example, we are going to prepare ingredients that represent different situation:(i) dummy sphere when no structural information is available. (ii) from the PDB (Xray or NMR) when a structure is known, (iii) electron microscopy data in case there is no Xray.

Step 3 Build ingredients without information

The simplest ingredient you can build and use is a Sphere. 
  • Select the object named myRecipe, and hide it (Objects->Object Display-> Editor Off)
  • Select the object named BoundingBox, and hide it (Objects->Object Display-> Editor Off)
  • Create a sphere of radius 20.0
  • On your keyboard type H (this will center the view on the sphere)
  • Change the name to ingredient1
  • Drag and drop the object under
    • myRecipe/myRecipe_Setup/myRecipe_cytoplasm_ingredient
A more complex ingredient can be made up of several spheres.

  • Create 1 spheres of radius 10.0
  • Change the name to Sphere0
  • Duplicate the spheres 6 times, and place the sphere so the overall shape look like in the figure (Y shape). To duplicate you can use Ctrl-c/Ctrl-v or Ctrl+drag.
  • Select all the spheres, and group them (Alt+g, or Objects->Group Objects)
  • Rename the Null empty object to ingredient2
  • Note the principal axis which is the up direction of your Y shape, which will be used for alignement to the surface. In the example I used the positive Y axis (0, 1, 0).
  • We can define an offset from the center that will be applied when the object is aligned to the surface.
  • Select and duplicate the object ingredient2 (Ctrl+c/Ctrl+v)
  • Create a metaball objects (Create->Modeling->Metaball)
  • Drag ingreditent2.1 (the duplicate) under the Metaball object
  • Select Metaball
  • In the Object properties, change:
    • Editor subdivision to 5
    • Exponential Falloff to checked
  • click make editable
  • rename to ingredient2_mesh
  • We can define an offset from the center that will be applied when the object is aligned to the surface.
  • Drag and drop the object under
    • myRecipe/myRecipe_Setup/myRecipe_compartments_recipes/compartment1_recipe/compartment1_surface

Step 4 Build an ingredient from a PDB file using ePMV and autoPACK utilities

We are going to build two ingredients from the PDB, one for packing inside and one for packing at the surface of compartment 1. The first ingredient is going to be the elongation factor G (PDB entry 1EFG). 
  • Select the object named myRecipe, and hide it if it isn't already (Objects->Object Display-> Editor Off)
  • Start ePMV (Plugins->ePMV). 
  • In ePMV enter 1efg and click fetch. 
  • In Surface Representation, click "CoarseMolSurf"
  • change isovalue to 2.22
  • change resolution to -0.076
  • Select the object "CoarseMS_1efg", in the Basic property check "X-Ray", you should now see through the mesh
  • In Atom/Bond Representation click on the PointsClouds. Note: this is a special representation that create a mesh with only vertices, one vertice per atom position.  
  • Select the object called 1efg_cloud (child of the object called 1efg_cloudds)
  • In the autoPACK plugin utilities Tab click on "Create custom Ingredient". Note :The new window will help you generate spheres covering the protein. This approach is based on the K-means clustering algorithm.
  • Change the number of clusters to a value of 10 
  • Change the scale to a value of 0.5
  • in the plugin click write File... Note: so we can reuse this ingredient
  • select previously created folder myRecipes
  • enter elongationFactor as filename and click save
  • Select all child of object Cluster/CenterSpheres,  click make editable 
  • Rename CenterSpheres to elongationFactor
  • Rename CoarseMS_1efg to elongationFactor_mesh
  • If you have registered C4D save the document
  • Close the SphereTreeMaker windows
  • If you have trouble you can find the corresponding C4D file at the bottom (elongationFactor.c4d).
  • Drag and drop the object elongationFactor under
    • myRecipe/myRecipe_Setup/myRecipe_compartments_recipes/compartment1_recipe/compartment1_interior



Step 5 Build a surface ingredient from an aligned PDB using OPM

The second ingredient is a membrane protein that we want to distribute on the surface of a compartment. We are going to prepare an ingredient representing a bacterial ABC transporter (PDB entry 1L7V).
  • next to the fetch button, click the pull-down menu (PDB), and select OPM (Orientations of Protein in Membranes server)
  • enter 1l7v and click fetch
  • in the selection field enter "1l7v: ::". This is the dummy atoms representing the membrane. Click delete. Confirm the deletion.
  • in the selection field enter "".
  • In Surface Representation, click "CoarseMolSurf"
  • change isovalue to 4
  • change resolution to -0.228
  • In Atom/Bond Representation click on the PointsClouds.   
  • Select the object called 1l7v_cloud (child of the object called 1l7v_cloudds)
  • In the autoPACK plugin utilities Tab click on "Create custom Ingredient". 
  • Change the number of clusters to a value of 10 
  • Change the scale to a value of 0.5
  • Note the principal axis, and the direction of the protein toward the outside, which is along the  negative Z axis [0, 0, 1]. Note: Cinema4D is left-handed!
  • Select all child of object CenterSpheres, click make editable  
  • Rename CenterSpheres to ABCtransporter 
  • Rename CoarseMS_1l7v to ABCtransporter _mesh
  • If you have registered C4D save the document
  • Close the SphereTreeMaker windows
  • If you have trouble you can find the corresponding C4D file at the bottom (ABCtransporter.c4d).
  • Drag and drop the object ABCtransporter under
    • myRecipe/myRecipe_Setup/myRecipe_compartments_recipes/compartment2_recipe/compartment2_surface
    

Step 6 Build an ingredient using electron microscopy data from EMDB

Often no precise structural information (Xray, NMR) exists for a given protein, but electron microscopy data exist and can be used to prepare an ingredient. For this tutorial we are going to use the electron microscopy data obtained for the chaperone Hsp40 in Escherichia Coli. (EMDB entry 2334).
  • Download the map from EMDB entry 2334 and change the extension to .mrc or download it directly at the bottom of the current page.
  • in ePMV, click File->Open Data. Browse to the map you just download, and load EMDB-2334.mrc
  • in ePMV, in the Data Player, change the step/value to the recommended isovalue 1.66
  • Select the object called grid_1IsoSurface
  • In the autoPACK plugin utilities Tab click on "Create custom Ingredient". 
  • In the Grid Build enter 10 instead of 20
  • click Gridify. Note : this will generate grid point only inside the mesh. Can take up to 2 min to compute with the defaul method. This step is optional, we could use the mesh point for the clustering. Or simply place the spheres manually.
  • Close the SphereTreeMaker
  • select the object named grid_1IsoSurface_innerPts
  • In the autoPACK plugin utilities Tab click on "Create custom Ingredient". 
  • Change the number of clusters to a value of 10 
  • Change the scale to a value of 0.5
  • Select all child of object CenterSpheres, click make editable  
  • Rename CenterSpheres to chaperoneHsp40
  • Rename grid_1IsoSurface to chaperoneHsp40_mesh
  • If you have registered C4D save the document
  • Close the SphereTreeMaker windows
  • If you have trouble you can find the corresponding C4D file at the bottom (chaperoneHsp40.c4d).
  • Drag and drop the object chaperoneHsp40 under
    • myRecipe/myRecipe_Setup/myRecipe_compartments_recipes/compartment2_recipe/compartment2_interior


Put everything together

  • Select the object named myRecipe, and show it (Objects->Object Display-> Editor On)
  • Select the object named BoundingBox, and show it (Objects->Object Display-> Editor On)
By now the recipe should be complete. You should have the following structure :
  • elongationFactor  under compartment1_interior
  • ABCtransporter    under compartment1_surface
  • chaperoneHsp40   under compartment2_interior
  • ingredient4          under myRecipe_cytoplasm_ingredient
  • ingredient5          under compartment2_surface

Your scene should look like the images below. Wait for instructor before going further. Save the document in C4D if you have registered.



When ready click SetupPacking, in the new window click File->Save Recipe as and save it in your recipe folder. Then follow the next step of the tutorial below. 
If you have trouble you can find the corresponding C4D file at the bottom (CustomSetupComplete.c4d).

Pack a recipe

Time for packing the recipe we just build. We are going to go through the most important options in autoPACK, and the default value that should be used most of the time. There is two levels of options. General options for the packing, and individual option per ingredients.


 
  • Select the object named myRecipe_setup, and hide it 
    • Objects->Object Display-> Editor Off
    • Objects->Object Display-> Renderer Off
  • Packing options, leave everything as is except:
    • leave the packing method to jitter (e.g. grid based collision)
    • change the grid method to jordan3
    • change the smallest ingredient radius to 10. (this is the resolution of the grid used for distance and overlapping)
 
 
  • Recipe Options (e.g. individual Ingredients Options), leave everything as is except:
    • change all molarity to 0.0. Note: for an accurate recipe proper concentration or copy number is require.
    • for ingredient2 put 60 in the "+this many" field
    • for elongationFactor put 30
    • for ABCtransporter put 10
    • for chaperoninHsp40 put 5
    • for ingredient1 put 500
    • click Update Total. 
 
  •  Ingredients Advanced Options
    • Edit surface Ingredient ingredient2. Click on the Edit button, this will open the detailed options for this particular ingredients.  Leave everything as is except:
      • set the Principal Vector to 0, 1, 0. You can check the principal axis by looking at the ingredient2 geometry, and look at what axis is perpendicular to the membrane
      • set the JitterMax to 1, 0, 1. Note: this control the offset from the grid point allowed. For surface ingredient, we don't want the ingredient to move freely on the principal axis.
      • set the offset to 0.0, 13.0, 0.0. Note: how far from the surface the object need to be offset
      • click Apply (at the bottom of the window)
      • click Close
    • Edit surface Ingredient ABCtransporter. Click on the Edit button, this will open the detailed options for this particular ingredients.  Leave everything as is except:
      • set the Principal Axis to 0, 0, 1. You can check the principal axis by looking at the ABC transporter geometry, and look at what axis is perpendicular to the membrane
      • set the JitterMax to 1, 1, 0. Note: this control the offset from the grid point allowed. For surface ingredient, we don't want the ingredient to move freely on the principal axis.
      • set the offset to 0.0, 0.0, -15.0. Note: how far from the surface the object need to be offset. Again C4D is left-handed
      • click Apply (at the bottom of the window)
      • click Close
  • Click File->Save Recipe as "myRecipe.json"
 
 
  • Click PACK
  • During the calculation you can see the progress of the packing at the bottom of the Cinema4D windows:


  • After completion,  save your results using File->save Result as "myRecipeResult"
  • You can also save your recipe to reflect the changes in the options. File->Save Recipe as
  • Explore the result
  • click Clear Pack
  • Change the grid resolution to 10 (slowest computation but better collision detection)
  • click PACK
  • in Packing option uncheck Rebuild the grid
  • click Clear Pack
  • change the packing method to spheresBHT (spheres collision) or RAPID (triangle collision) 
  • Click PACK
  • Explore the result
  • click Clear Pack
  • change the seed, change the copy number
  • Click PACK


Pack existing recipes




We provided several pre-made recipe that are accessible for visualization and packing. 
The Pack Tab in the plugin let you access our recipe from the repository as well as loading your custom recipe. Once loaded, the plugin will show you a dedicated windows to adjust parameters and options for building the model. See above for an example on how to use the packing interface.








Edit a recipe

Once a recipe has bee build and you want to modify it, without restarting everything from the beginning you can simply edit the recipe setup file (in json format). you can use any text editor, or special editor for json file. We would suggest to use this web server : http://www.jsoneditoronline.org/
  • in a text editor open the recipe you prepare and save in the previous step (MyRecipe.json for instance)
  • in a browser go to http://www.jsoneditoronline.org/
  • copy and paste the recipe text in the left panel of the server.
  • click the right arrow on the server, this should fill the right panel with your recipe.

Add an existing ingredient from the repository

All recipes and ingredients currently available are on our repositoryIn a recipe we can include external file defining an ingredient, such as the one produce using the sphereTree plugin, or available ingredient in the repository. We are going to add the hemoglobin in the recipe.  
  • in the json editor, find the cytoplasme compartments
  • insert the text below just befor ingredient4 definition
   "Hemoglobin":{
    "include":"Hemoglobin.json",
    "name":"Hemoglobin"
   },

  • save your change
  • restart C4D, load the modified recipe and verify the new ingredient is present.

Running/viewing recipe (View tab in the plugin)





The View Tab let you load previously build model from our repository or from your local drive. Select a Recipe in the pull down menu and click "Construct". This will gather from our repository all necessary files and display a new windows that will let you show/hide any elements in the model. You can also Load your custom recipe, and load different results you generated previously.




Advanced Visualization: cellVIEW

You should notice that as you increase the number of ingredient, and the number of copies for each of them, the frame rate of the host viewport is going to drop down, due to the amount of object and triangle to display. visualizing all ingredient at their native resolution (e.g. atomic resolution, or high number of polygons) will require high end hardware and will be not real time. For this reason we collaborate Mathieu Le Music, Peter Mindek and Ivan Viola from the Vienna University of Technology to developp a real time solution for visualing such large scene at the highest resolution possible. The result is cellVIEW, a higly performant graphics pipeline developed inside Unity capable of render up to 30 million atoms at 30fps. 

cellVIEW currently supports :
  • any cellPACK json result file , for which a PDB entry is provided for each ingredients
  • cutaway object
  • shadow
  • any unity image effects
The tutorial recipe in cellVIEW. The representation will use atomistic details if available, otherwise it will use the spheres representation.

 
 


 Peter Mindek will be demonstrating cellVIEW in more details.
 


ċ
1efg.pdb
(91k)
ludovic autin,
Apr 28, 2016, 11:23 AM
ċ
1l7v.pdb
(888k)
ludovic autin,
Apr 28, 2016, 11:23 AM
ċ
ABCtransporter.c4d
(1037k)
ludovic autin,
Apr 28, 2016, 11:24 AM
ċ
Cell15.c4d
(2186k)
ludovic autin,
May 3, 2016, 8:05 AM
ċ
CustomSetupComplete.c4d
(3992k)
ludovic autin,
Apr 28, 2016, 12:02 PM
ċ
CustomSetupCompleteCell15.c4d
(6101k)
ludovic autin,
May 2, 2016, 3:24 PM
ċ
EMD-2334.mrc
(2001k)
ludovic autin,
Apr 25, 2016, 5:00 PM
ċ
autopack_dev_all.zip
(1938k)
ludovic autin,
Apr 30, 2016, 10:15 AM
ċ
chaperoneHsp40.c4d
(1192k)
ludovic autin,
Apr 28, 2016, 11:24 AM
ċ
ePMV_std_all.zip
(8581k)
ludovic autin,
Apr 30, 2016, 10:16 AM
ċ
elongationFactor.c4d
(2389k)
ludovic autin,
Apr 28, 2016, 11:24 AM
ċ
ingredient2.c4d
(264k)
ludovic autin,
Apr 28, 2016, 11:24 AM
ċ
upy_std_all.zip
(2884k)
ludovic autin,
Apr 30, 2016, 10:17 AM
Comments