Geometry

Let us now define the geometry of the reaction volume in the section called “ An introductory Example ”. Before we define the compartments, we note that the geometry as defined in the example has three functionally distinct regions "1", "2" and "3". These regions will map exactly to the three compartments we are about to define.

We will use the sphere primitive to model the ellipsoid and slightly rotated compartment two. To achieve this we make a sphere with a radius of 2 micrometres. We make it ellipsoid by scaling the sphere two times in the y direction. Next we rotate the ellipsoid slightly around the z-axis. To described this for MesoRD, the listOfCompartments may begin like shown below. Note that we make use of the previously defined um unit.

<listOfCompartments>
  <compartment id="CompartmentTwo"
                  units="litre">
   
    <annotation>
     <MesoRD:csg xmlns:MesoRD="http://www.icm.uu.se">
      <MesoRD:rotation MesoRD:x="0"
                       MesoRD:y="0"
                       MesoRD:z="1"
                       MesoRD:angle="20"
                       MesoRD:units="degree">
        <MesoRD:scale MesoRD:x="1" 
                      MesoRD:y="2" 
                      MesoRD:z="1">
          <MesoRD:sphere MesoRD:radius="2"
                         MesoRD:units="um"/>
        </MesoRD:scale>
      </MesoRD:rotation >
     </MesoRD:csg>
    </annotation>
  </compartment>
    

Next, we will define the cytosol-like CompartmentOne. It is built as union of a cylinder and three spheres. Two spheres forms the caps of the cylinder and an additional sphere forms a budding structure. This compartment must exclude CompartmentTwo, defined above. To do this we subtract the CompartmentTwo from the union of the cylinder and the three spheres.

  <compartment id="CompartmentOne"
                  units="litre">
   
    <annotation>
     <MesoRD:csg xmlns:MesoRD="http://www.icm.uu.se">
      <MesoRD:difference>
        <MesoRD:union>
          <MesoRD:cylinder MesoRD:radius="4.5" 
                           MesoRD:height="8"
                           MesoRD:units="um"/>
          <MesoRD:translation MesoRD:x="0.00" 
                              MesoRD:y="-4" 
                              MesoRD:z="0"
                              MesoRD:units="um">
            <MesoRD:sphere MesoRD:radius="4.5"
                           MesoRD:units="um"/>
          </MesoRD:translation>
          <MesoRD:translation MesoRD:x="0.00" 
                              MesoRD:y="4" 
                              MesoRD:z="0"
                              MesoRD:units="um">
            <MesoRD:sphere MesoRD:radius="4.5"
                           MesoRD:units="um"/>
          </MesoRD:translation>
          <MesoRD:translation MesoRD:x="0" 
                              MesoRD:y="7" 
                              MesoRD:z="3.5"
                              MesoRD:units="um">
            <MesoRD:sphere MesoRD:radius="4.5"
                          MesoRD:units="um"/>
          </MesoRD:translation>
        </MesoRD:union>
        <MesoRD:compartment MesoRD:id="CompartmentTwo" /> 
      </MesoRD:difference>
     </MesoRD:csg>
   </annotation>
  </compartment>
    

To form the membrane like compartment we define a geometry that is slightly larger than CompartmentOne and subtract both compartments defined above.

  <compartment id="CompartmentThree"
                  units="litre">
  
   <annotation>
     <MesoRD:csg xmlns:MesoRD="http://www.icm.uu.se">
      <MesoRD:difference>
        <MesoRD:union>
          <MesoRD:translation MesoRD:x="-0.00" 
                              MesoRD:y="-0.00" 
                              MesoRD:z="0"
                              MesoRD:units="um">
            <MesoRD:cylinder MesoRD:radius="5.0" 
                             MesoRD:height="8.0"
                             MesoRD:units="um"/>
          </MesoRD:translation>
          <MesoRD:translation MesoRD:x="0.0" 
                              MesoRD:y="-4" 
                              MesoRD:z="0"
                              MesoRD:units="um">
            <MesoRD:sphere MesoRD:radius="5"
                           MesoRD:units="um"/>
          </MesoRD:translation>
          <MesoRD:translation MesoRD:x="0.0" 
                              MesoRD:y="4" 
                              MesoRD:z="0.0"
                              MesoRD:units="um">
            <MesoRD:sphere MesoRD:radius="5"
                           MesoRD:units="um"/>
          </MesoRD:translation>
          <MesoRD:translation MesoRD:x="0" 
                              MesoRD:y="7" 
                              MesoRD:z="3.5"
                              MesoRD:units="um">
            <MesoRD:sphere MesoRD:radius="5"
                          MesoRD:units="um"/>
          </MesoRD:translation>
        </MesoRD:union>
        <MesoRD:union>
          <MesoRD:compartment MesoRD:id="CompartmentOne" /> 
          <MesoRD:compartment MesoRD:id="CompartmentTwo" /> 
        </MesoRD:union>
      </MesoRD:difference>
     </MesoRD:csg>
    </annotation>
  </compartment>  
</listOfCompartments>
    

The last line in the code above closes the listOfCompartments we started earlier.