Difference between revisions of "Team:Exeter/Modelling Diary"

 
(4 intermediate revisions by 2 users not shown)
Line 11: Line 11:
 
<h3>Week 23/06 - 29/06</h3>
 
<h3>Week 23/06 - 29/06</h3>
  
<p>We made a start on modelling the Brownian motion of the toehold switches and RNA using MATLAB. Many hours were spent toiling over getting the simulation just right, it seemed every time we thought we fixed something it caused something else to go wrong. Thankfully, by the end of the week we had a basic ‘working’ 3D model of the brownian motion, although it only worked using a few of each of the molecules (laptops don’t have much computing power surprisingly - time to look into accessing the university supercomputers!).</p>
+
<p>We made a start on modelling the Brownian motion of the toehold switches and RNA using MATLAB. Many hours were spent toiling over getting the simulation just right, it seemed every time we thought we fixed something it caused something else to go wrong. Thankfully, by the end of the week we had a basic ‘working’ 3D model of the brownian motion, although it only worked using a few of each of the molecules (laptops don’t have much computing power surprisingly - time to look into accessing the university supercomputers!).</p>
 +
<p>The main aims for the model this week were:</p>
 
<ul>
 
<ul>
<li>We made the individual toehold and RNAs bind irreversibly to each other only.</li>
+
<li>Making individual toehold and RNAs bind irreversibly to each other only.</li>
<li>This was all made in 2D first and then easily transferred to 3D using plot3 statements.</li>
+
<li>Initially creating a 2D simulation which could then easily transferred to 3D using plot3 statements. </ul>
</ul>
+
  
 
<h3>Week 30/06 - 06/07</h3>
 
<h3>Week 30/06 - 06/07</h3>
<p>The system got more complicated and so did the model (speaking to lab).</p>
+
<p>After speaking to the lab and getting a long list of requirements, the simulation got more complicated as we started to build a list of variables within the system as well as an accurate description of how the system should behave. Achieving this included: </p>
 
<ul>
 
<ul>
<li>Getting the complexes to split after some time being combined, this broke so we lost a few days trying to fix it.
+
<li>Getting the complexes to split after being combined for some time, as realistically the combined toehold and RNA would not stay bound indefinitely. This was achieved through changing the way the coordinates were generated after the split - they were randomly created after splitting for the number of remaining time steps. However, this also broke our code so we lost a few days trying to fix it</li>
</li>
+
         
 +
  <li>Establishing which variables had values that could be researched, finding these values and applying them to our model. These included:</li>
 
             <ul>
 
             <ul>
               <li>This was achieved through changing the way in which the coordinates where generated after the split. They were made in randomly after the event for the number of remaining time steps.
+
               <li>Binding distances</li>
</li>
+
              <li>Viscosities</li>
 +
              <li>Temperature</li>
 
             </ul>
 
             </ul>
  <li>Tweaking small things trying to get it as close to simulating real life as possible (e.g. spherical area of binding).</li>
+
          <li>Small tweaks to make the simulation more realistic, this included incorporating a spherical binding site at the end of each path. If these overlap, the toehold and trigger will bind.</li>
            <ul>
+
          </ul>
              <li>i.e there are two spheres at the end on the current path which if they overlap will bind. </li>
+
            
            </ul>
+
          <p>Another major part of this week was getting to grips with our toehold creating software, NUPACK. This took us a significant amount of time. First we attempted to install the source code, which was quickly abandoned in favour of using the online tools. Our next task was to learn NUPACK’s input, a series of paired and unpaired bases. This allowed us to make the secondary structure we needed and hence generate the optimal sequence. Once the modelling team had familiarised themselves with the software, they passed their knowledge on to lab team, who picked it up very swiftly and quickly began making toeholds.</p>
           <li>Researching where we could get the required variable values from and how to implement these into the model.</li>
+
           <p>As we progressed with our research we asked Dr Nic Harmer advice on what the molecules would do at the edge of the tube. He told us that we could get low affinity binding tubes to negate our worries about modelling this aspect as it would almost entirely negate the sticking.</p>
<li>This lead on to applying real world values into our modelling after researching them online. We found binding distances, viscosities, temperatures. </li>
+
         
          <li>Getting NUPACK to work:</li>
+
            <ul>
+
<li>This took us a significant amount of time. We decided to abandon the source code and use the online tools.</li>
+
              <li>We learnt the input of Nupack which is a series of paired and unpaired bases. Using this we could make the secondary structure we needed and hence generate the optimal sequence.</li>
+
              <li>The modeling team informed the lab team on how to use nupack initially they then ran with it and quickly started making the toeholds.</li>
+
                <ul>
+
                  <li>Their knowledge grew considerably and they no longer needed our help.</li>
+
                </ul>
+
</ul>
+
           <li>As we progressed with our research we asked Nick Harmor what the molecules would do at the edge of the tube, he told us that we could get low affinity binding tubes to essentially reduce sticking to nothing. </li>
+
</ul>
+
  
 
<h3>Week 07/07 - 13/07</h3>
 
<h3>Week 07/07 - 13/07</h3>
  
         <ul>
+
         <p>We finally achieved a full working script with basic confinement, delay, joining and splitting! This was after extensive work on confinement of the system to a cylinder of volume equal to an eppendorf tube - as recommended by the lab team. If a point was deemed to fall outside of the boundary it was placed back to the edge of the cylinder, a basic assumption that will hopefully be improved with trajectories added later as a separate function. </p>
          <li>We worked on confinement of the system to a cylinder of volume equal to an eppendorf tube, after consulting with the lab team. </li>
+
<p>On Friday we had a meeting with Jonathan Fieldsend to showcase our model and get advice on its improvement. He suggested:</p>
            <ul>
+
<ul>
              <li>This was done by moving the particles back to the edge of the cylinder. This is basic and shall be improved with trajectories. </li>
+
<li>Improvement of our model through vectorisation (an optimisation technique), generating time steps in real time, and more accurate confinement into a compound cylinder cone shape. </li>
              <li>Trajectories will be added in as a separate function. </li>
+
<li>Statistical modelling on numerical data and getting the model ready to handle data from the lab team in order to shape our project.</li>
            </ul>
+
<li>Thinking about the variation of parameters and how best to implement this in order to best describe the real world system.</li>
          <li>On the 9th we had a full working script with basic confinement, delay, joining and splitting.</li>
+
</ul>
          <li>On the 10th of July we had a meeting with Jonathan Fieldsend and we discussed numerous things. </li>
+
 
            <ul>
+
              <li>He thought we could improve our model through vectorisation (and optimisation technique), generating time steps in real time, and more accurate confinement into a compound cylinder cone shape. </li>
+
              <li>Statistical modelling on numerical data and getting the model ready to handle data from the lab team.</li>
+
              <li>He spoke briefly about the variation of parameters and how best to implement this in order to best describe the real world system. </li>
+
            </ul>
+
        </ul>
+
  
 
<h3>Week 14/07 - 20/07</h3>
 
<h3>Week 14/07 - 20/07</h3>
  
        <ul>
+
<p>We started to try and implement the alterations suggested by Jonathan which started with putting pen to paper in order to outline the basic structure of the new code.</p>
          <li>We started to try and implement the alterations suggested by Jonathan. </li>
+
<p>In order to translate this to our code we first worked on breaking the code into smaller chunks based on the action they performed i.e. plotting or coordinate generation. These chunks were then turned into individual functions. This took up a considerable portion of our time and has changed numerous times along the way. However, the code is now a lot more simple and easier to debug!</p>
            <ul>
+
<p>Notably the biggest improvement of the week was changing the code to generate the coordinates on each time step rather than all at once - these values are then stored in an array of vectors ready for plotting. Originally, plotting occurred after each timestep but this was deemed to be inefficient and instead we decided to plot the function at the end of all the timesteps using the generated array. This sped up our model by about half (according to the timing function within MatLab).</p>
              <li>This started with making a plan on paper of the basic structure of the new code.</li>
+
<p>Separating the plotting into a function that occurs after all time steps also made it easier to remove it as it is very time consuming. This means that pure numerical information can be extracted in the future.</p>
              <li>We then put this into practice by breaking the previous code into smaller parts to turn in functions. This was based on the function they performed, i.e plotting and coordinate generation.</li>
+
 
              <li>This took a considerable amount of time and has changed a lot along the way.</li>
+
            </ul>
+
          <li>The biggest improvement is generating the coordinates on each time step rather than all at once. These are then stored in an array of vectors for plotting. </li>
+
            <ul>
+
              <li>Plotting is done at the end of all the time steps using the array generated. This has sped up our model by about half after using the timing function within matlab.</li>
+
              <li>This took some time to implement and originally plotting was done on each time step but this was found to be inefficient and was changed to the above.</li>
+
            </ul>
+
          <li>The code is now a lot more simple and easier to debug since it is separated into functions.</li>
+
          <li>Another benefit is that the plotting does not have to run which would save a considerable amount of time, allowing pure numerical information to be extracted in the future. </li>
+
        </ul>
+
  
 
<h3>Week 21/07 - 27/07</h3>
 
<h3>Week 21/07 - 27/07</h3>
  
       <ul>
+
       <p>More optimising! This week involved a lot of debugging and general tidying up (a running theme!) including:</p>
        <li>So far we have been optimising our code by arranging for loops better, changing the way toeholds and RNA bind, and removing unnecessary lines.</li>
+
<ul>
          <ul>
+
<li>Rearranging for loops - this needed to be changed as some of the coordinates were being made too many times</li>
            <li>For loops needed to be changed as coordinates were being made too many times. </li>
+
<li>Changing the way toeholds and RNA bind - a vector called check was created in order to see which toeholds bind to which RNA.</li>
            <li>A vector called check was needed to see what toeholds and RNA bind.</li>
+
<li>Removing unnecessary lines</li>
          </ul>
+
<li>Making sure the toeholds and RNA cannot join and then split instantly. They now require a cooldown period countdown which took a while to get working (this was achieved by counting up from negative numbers instead of counting down)</li>
        <li>A week of debugging has been taking place, the code has been meticulously looked through and a whole load of issues fixed.</li>
+
</ul>
          <ul>
+
<p>Following a further meeting with Jonathan fieldsend on Monday we found more problems within our code and come up with some new ways to work around them.</p>
            <li>Toeholds and RNA cannot join then split instantly.</li>
+
<ul>
            <li>Cooldown period countdown fixed and it now works - had to count up from minus numbers.</li>
+
<li>Firstly he told us about version control and gave us a tutorial on setting up a GitHub account.</li>
          </ul>
+
<li>Next he pointed out we could create a function to generate the random walk. This will optimise our code as it will remove large sections.</li>
        <li>We had a meeting with Jonathan fieldsend on Monday 27th, this helped find more problems within our code and come up with some new ways to work.</li>
+
<li>A few more code optimisations were pointed out such as, defining loop variables instead of adding t+r etc, and moving j==1 loops outside of others</li>
          <ul>
+
</ul>
            <li>Firstly he told us about version control and gave us a tutorial on setting up a GitHub account.</li>
+
<p>We also spoke in detail about parameter scanning so that we can use our model to optimise the experimental system:</p>
            <li>Next he pointed out we could create a function to generate the random walk optimising our code this will remove large sections of our code.</li>
+
<ul>
            <li>A few more code optimisations were pointed out like, define loop variable instead of adding t+r etc, and moving j==1 loops outside.</li>
+
<li>This could be done with reductionist gridding or a genetic algorithm.</li>
          </ul>
+
<li>This will be explored in more detail soon.</li>
        <li>We spoke in detail about parameter scanning to use our model to optimise the experimental system:</li>
+
</ul>
          <ul>
+
<p>The next steps will be to get the plotting to work to create a visual output and to introduce a trajectory function at the container walls.</p>
            <li>This could be done with reductionist gridding or a genetic algorithm.</li>
+
            <li>This will be explored in more detail soon.</li>
+
          </ul>
+
        <li>The next steps will be to get the plotting to work to provide a visual output and introduce a trajectory function to help the model simulate real life more. </li>
+
      </ul>
+
 
+
 
<h3>Week 27/07 - 02/08</h3>
 
<h3>Week 27/07 - 02/08</h3>
  
        <ul>
+
 
          <li>This week involved researching trajectory/collision functions to simulate particles bouncing off the walls of the tube <a href="http://rectangleworld.com/blog/archives/358">trajectory maths</a>. This involved some intense vector calculus and considering the 2D problem before working on the 3D.</li>
+
      <p>The big project this week involved researching trajectory/collision functions to simulate particles bouncing off the walls of the tube. (A big thankyou to <a href="http://rectangleworld.com/blog/archives/358">this</a> website for teaching us trigonometry). This involved some intense vector calculus - starting with the 2D system before moving on to 3D. Many hours were spent in front of a white board drawing numerous diagrams (and slugs)!</p>
          <li>Coordinate storage structure altered to have columns adjacent to each complex coordinate column to denote status and record identity of toehold and rna trigger. </li>
+
 
          <li>Plotting function almost fixed but for a few cases which resulted in extra lines being plotted. Plotting was based on conditional statements that exploited the addition columns and their information introduced in the new points structure.</li>
+
<p>Obviously this wouldn’t be a modelling diary entry without mentioning optimisations:</p>
          <li>Moving on to focus on Numerical Output / Split down functions / Bouncing in 3D and finally Parameter Scanning. </li>
+
<ul>
         </ul>
+
<li>The coordinate storage structure was altered to have columns adjacent to each complex coordinate column. This allowed us to denote status and record the identity of each toehold and RNA trigger.</li>
 +
<li>We almost fixed the plotting function but for a few cases which resulted in extra lines being plotted. Plotting was based on conditional statements that exploited the addition columns and their information introduced in the new points structure.</li>
 +
</ul>
 +
<p>The plan for the coming weeks will be to explore the numerical output, start to split down functions and implement bouncing in 3D and parameter scanning.</p>
 +
          
  
 
<h3>Week 03/08 - 09/08</h3>
 
<h3>Week 03/08 - 09/08</h3>
  
        <ul>
+
    <p> Monday was spent getting GitHub to work so that we could use version control. It was setup successfully on Todd’s laptop but Dan’s required more work. Now that is good to go we can both edit the same script and upload it in a secure location. It will also keep track of the changes we've made and allow use to revert back to earlier versions.</p>
          <li>Monday was spent getting GitHub to work so that we could use version control. It was setup successfully on Todd’s laptop but Dan’s required more work. Now that is good to go we can both edit the same script and upload it in a secure location. It will also keep track of the changes we've made and allow use to revert back to earlier versions.</li>
+
<p>The modelling diary, action plan and meeting notes were looked through and any missing information added, bringing these documents up to date!</p>
          <li>The modelling diary, action plan and meeting notes were looked through and anything missing information added meaning that these documents were as up to date as they could be. </li>
+
        </ul>
+
  
 
<h3>Week 10/08 - 16/08</h3>
 
<h3>Week 10/08 - 16/08</h3>
  
        <ul>
+
      <p> Todd was away but started to write about the simulation for the modelling wiki. Dan continued to work on the data structures used for recording the coordinates and smoothing out the bugs with it in preparation for adding in the bouncing from the edges of the tube later on in the week. Integration of this bouncing code would lead to many a problem and was carried over into the next week.</p>
          <li>Todd was away but started to write up some stuff for the modelling wiki regarding the simulation. Dan continued to work on the data structures used for recording the coordinates and smoothing out the bugs with it in preparation for adding in the bouncing from the edges of the tube later on in the week. Integration of this bouncing code would lead to many a problem and was carried over into the next week. </li>
+
<p>The data structuring included modifying the coordinates array so that a timestep (row) could accommodate two points rather than one (the point before contact with the boundary and the point of contact on the boundary). This was fiddly and some of the inflexible conditional statements elsewhere needed to be changed.</p>
          <li>The data structuring included modifying the coordinates array so that a timestep (row) could accommodate two points rather than one (the point before contact with the boundary and the point of contact on the boundary). This was fiddly and some of the inflexible conditional statements elsewhere needed to be changed. </li>
+
<p>A modelling introduction was also written up for the wiki (finally!)</p>
          <li>A modelling introduction was also written up for the wiki.</li>
+
<p>We also lost Amy to America this week, we know life will be that much harder without her :(</p>
        </ul>
+
  
 
<h3>Week 17/08 - 23/08</h3>
 
<h3>Week 17/08 - 23/08</h3>
  
        <ul>
+
<p>This week was cut short by the absence of the Wiki team on Thursday and Friday. Regardless, the focus shifted onto writing for the wiki as Monday saw the finalisation of the wiki modelling page for the simulation. This was proof read and new information approved. We also started the week with the intention of writing various in depth pieces for the wiki including pieces explaining the maths and a piece on parameter scanning.</p>
          <li>On Monday the wiki modelling page for the simulation was finalised. This was proof read and new information was approved. </li>
+
<p>More bug fixing and general tinkering occurred, with the main focus being trajectory maths - the z coordinate needed to be found at the point the random walk path left the cone section.</p>
          <li>A to do list of task was produced for the week ahead this included:</li>
+
            <ul>
+
              <li>Writing up all of the maths used for the simulation.</li>
+
              <li>Writing up a piece for the wiki on parameter scanning.</li>
+
            </ul>
+
          <li>The simulation was worked on more with bug fixing taking place and new code being added. The new code added was related to the trajectory stuff.</li>
+
          <li>On Tuesday maths was worked on, this was again related to the trajectory stuff. The z coordinate needed to be found at the point the random walk path left the cone section.</li>
+
          <li>On Wednesday more maths was undertaken. </li>
+
          <li>The modelling team were away on Thursday and Friday. </li>
+
        </ul>
+
  
 
<h3>Week 24/08 - 30/08</h3>
 
<h3>Week 24/08 - 30/08</h3>
 
+
<p>Another slightly emptier week for the modelling diary as the modelling team was used elsewhere within the project:</p>
        <ul>
+
<ul>
          <li>Modelling team was used elsewhere within the project:</li>
+
<li>Our matlab skills were used to analyse and produce data for the interlab study. A script file was made to produce graphs of the data, which we also extracted means and standard deviations from.</li>
            <ul>
+
<li>General computer skills were used to make the poster and banner as they needed to be made using a high quality vector graphics application.</li>
              <li>Our matlab skills were used to analyse and produce data for the interlab study. A script file was made to produce graphs of the data, we also extracted means and standard deviations from this.</li>
+
<li>A lot of time this week was spent making presentation material in preparation for the UK meet up in London.</li>
              <li>General computer skills were used to make the poster and banner as they needed to be made using a high quality vector graphics application.</li>
+
</ul>
              <li>A lot of time this week was spent making presentation material in preparation for the UK meet up in london. </li>
+
<p>We expect more of the same next week as we prepare for the UK meetup - things are really hotting up!</p>
            </ul>
+
        </ul>
+
  
 
<h3>Week 31/08 - 06/09</h3>
 
<h3>Week 31/08 - 06/09</h3>
 +
<p>This was the week of the UK meetup and as a result Monday through Wednesday were spent working on presentation material and practicing our presentation, this also included finalisation of the poster material as well as other meetup related activities.</p>
 +
<p>UK meet up in Westminster!</p>
 +
<ul>
 +
<li>We presented on the process of building our simulation, our influences from the lab and human practices and what we hope to gain from each through parameter scanning.</li>
 +
<li>We also spoke to members of other teams about some of their modelling practices and made some friends along the way.</li>
 +
<li>Westminster University did a phenomenal job of hosting everyone, the event was fantastic!</li>
 +
</ul>
 +
<p>As a brief aside regarding actual modelling, attempts at successful parameter scans were made, but yielded nothing :(</p>
 +
<h3>Week 07/09 - 13/09</h3>
 +
<p>We were back to modelling this week, with the lab team aiming to get us some data to feed into the model. This included the processing of in silico data from NUPACK in order to obtain probability distributions for the binding and splitting elements in the simulation. These replaced the pre-existing estimation for the likelihood of these mechanics occurring.</p>
  
        <ul>
+
 
          <li>Monday through Wednesday were spent working on presentation material and practicing our presentation, this also included finalisation of the poster material for the (as well as from other areas).</li>
+
<h3>Week 14/09 - 18/09 (Wiki freeze!) </h3>
          <li>Attempts at successful parameter scans were made, but yielded nothing.</li>
+
<p>This week has definitely been one of the most stressful as everything is wrapping up - nicely timed alongside freshers week! Around the partying and commitments we had to societies we managed to work on</p>
          <li>UK meet up in Westminster! </li>
+
<ul>
            <ul>
+
<li>The scaling of model, to better reflect how we’ve simulated a portion of the total number of particles in the cell free system</li>  
              <li>We presented on the process of building our simulation, our influences from the lab and human practices and what we hope to gain from it through parameter scanning.</li>
+
<li>Production of wiki content ahead of the freeze this included construction of graphics and diagrams for the modelling pages.</li>
              <li>We also spoke to members of other teams about some of their modelling practices and made some friends along the way.</li>
+
</ul>
              <li>Westminster University did a phenomenal job of hosting everyone, the event was fantastic!</li>
+
<p>This brings us to this very moment, as I (Amy) am sat in my dorm at 10pm in America proof reading and tidying up parts of the wiki for my very tired team mates in England! This has been a really stressful week but we’ve managed to get a (somewhat) working model, although there were definitely a few things we would have loved to have added given more time (you can find these on the previous page). Below you'll find how our model helped the lab team as well as a few extra points!</p>
            </ul>
+
        </ul>
+
  
 
       <h3>Other points</h3>
 
       <h3>Other points</h3>
  
 
         <ul>
 
         <ul>
           <li>We’ve asked a lot of the experiment team and they’ve since found these out or looked it up. This had helped them focus their experiments by designing them to find out what we want.</li>
+
           <li>We’ve asked a lot of the experiment team and they’ve since found these out or looked it up. This has helped them focus their experiments as they have had to design them with what we need in mind.</li>
 
             <ul>
 
             <ul>
 
               <li>We asked about rate limiting steps after talking with Peter Winlove - this was then simplified after talking with the experimentalists.</li>
 
               <li>We asked about rate limiting steps after talking with Peter Winlove - this was then simplified after talking with the experimentalists.</li>
 
                 <ul>
 
                 <ul>
                   <li>rate of ribosome movement contains the rate of RNA, amino acid production, etc..</li>
+
                   <li>Rate of ribosome movement contains the rate of RNA, amino acid production, etc.</li>
 
                   <li>Ribosome stays bound until it makes GFP.</li>
 
                   <li>Ribosome stays bound until it makes GFP.</li>
 
                   <li>It also lead us to investigate the rate limiting steps. Anything to do with the cell free kit was assumed to be in excess. The main limiting step was determined to be the RNA binding event.</li>
 
                   <li>It also lead us to investigate the rate limiting steps. Anything to do with the cell free kit was assumed to be in excess. The main limiting step was determined to be the RNA binding event.</li>
 
                 </ul>
 
                 </ul>
               <li>During the meeting about experimental design our inputs was used to questions the decisions of the lab team, this included:</li>
+
               <li>During the meeting about experimental design, our inputs and considerations for the model were used to question the decisions of the lab team. These included:</li>
 
                 <ul>
 
                 <ul>
                   <li>Temperatures,</li>
+
                   <li>Temperatures</li>
                   <li>Repeats,</li>
+
                   <li>Repeats</li>
                   <li>Accuracy and precision,</li>
+
                   <li>Accuracy and precision</li>
                   <li>Listing their assumptions.</li>
+
                   <li>Listing their assumptions</li>
 
                 </ul>
 
                 </ul>
 
             </ul>
 
             </ul>
           <li>We also wanted to measure the binding affinity of RNA and the toehold however we cannot do that with our equipment. We spoke to Tom Howard and he said that Manchester might be able to so we have since contacting the igem team there about using this machine. Dr Heyes was the academic.</li>
+
           <liWe also wanted to measure the binding affinity of RNA and the toehold however we cannot do that with our equipment. We spoke to Tom Howard and he said that Manchester might be able to so we have since contacted the iGEM team there about using this machine where Dr Heyes was the academic we were interested in contacting.</li>
 
         </ul>
 
         </ul>
  

Latest revision as of 03:46, 19 September 2015

Modelling Diary

Introduction

Please take a look at our journey through the development of our simulation. We hope future iGEM teams will be able to take inspiration from our approach.

Week 23/06 - 29/06

We made a start on modelling the Brownian motion of the toehold switches and RNA using MATLAB. Many hours were spent toiling over getting the simulation just right, it seemed every time we thought we fixed something it caused something else to go wrong. Thankfully, by the end of the week we had a basic ‘working’ 3D model of the brownian motion, although it only worked using a few of each of the molecules (laptops don’t have much computing power surprisingly - time to look into accessing the university supercomputers!).

The main aims for the model this week were:

  • Making individual toehold and RNAs bind irreversibly to each other only.
  • Initially creating a 2D simulation which could then easily transferred to 3D using plot3 statements.

Week 30/06 - 06/07

After speaking to the lab and getting a long list of requirements, the simulation got more complicated as we started to build a list of variables within the system as well as an accurate description of how the system should behave. Achieving this included:

  • Getting the complexes to split after being combined for some time, as realistically the combined toehold and RNA would not stay bound indefinitely. This was achieved through changing the way the coordinates were generated after the split - they were randomly created after splitting for the number of remaining time steps. However, this also broke our code so we lost a few days trying to fix it
  • Establishing which variables had values that could be researched, finding these values and applying them to our model. These included:
    • Binding distances
    • Viscosities
    • Temperature
  • Small tweaks to make the simulation more realistic, this included incorporating a spherical binding site at the end of each path. If these overlap, the toehold and trigger will bind.

Another major part of this week was getting to grips with our toehold creating software, NUPACK. This took us a significant amount of time. First we attempted to install the source code, which was quickly abandoned in favour of using the online tools. Our next task was to learn NUPACK’s input, a series of paired and unpaired bases. This allowed us to make the secondary structure we needed and hence generate the optimal sequence. Once the modelling team had familiarised themselves with the software, they passed their knowledge on to lab team, who picked it up very swiftly and quickly began making toeholds.

As we progressed with our research we asked Dr Nic Harmer advice on what the molecules would do at the edge of the tube. He told us that we could get low affinity binding tubes to negate our worries about modelling this aspect as it would almost entirely negate the sticking.

Week 07/07 - 13/07

We finally achieved a full working script with basic confinement, delay, joining and splitting! This was after extensive work on confinement of the system to a cylinder of volume equal to an eppendorf tube - as recommended by the lab team. If a point was deemed to fall outside of the boundary it was placed back to the edge of the cylinder, a basic assumption that will hopefully be improved with trajectories added later as a separate function.

On Friday we had a meeting with Jonathan Fieldsend to showcase our model and get advice on its improvement. He suggested:

  • Improvement of our model through vectorisation (an optimisation technique), generating time steps in real time, and more accurate confinement into a compound cylinder cone shape.
  • Statistical modelling on numerical data and getting the model ready to handle data from the lab team in order to shape our project.
  • Thinking about the variation of parameters and how best to implement this in order to best describe the real world system.

Week 14/07 - 20/07

We started to try and implement the alterations suggested by Jonathan which started with putting pen to paper in order to outline the basic structure of the new code.

In order to translate this to our code we first worked on breaking the code into smaller chunks based on the action they performed i.e. plotting or coordinate generation. These chunks were then turned into individual functions. This took up a considerable portion of our time and has changed numerous times along the way. However, the code is now a lot more simple and easier to debug!

Notably the biggest improvement of the week was changing the code to generate the coordinates on each time step rather than all at once - these values are then stored in an array of vectors ready for plotting. Originally, plotting occurred after each timestep but this was deemed to be inefficient and instead we decided to plot the function at the end of all the timesteps using the generated array. This sped up our model by about half (according to the timing function within MatLab).

Separating the plotting into a function that occurs after all time steps also made it easier to remove it as it is very time consuming. This means that pure numerical information can be extracted in the future.

Week 21/07 - 27/07

More optimising! This week involved a lot of debugging and general tidying up (a running theme!) including:

  • Rearranging for loops - this needed to be changed as some of the coordinates were being made too many times
  • Changing the way toeholds and RNA bind - a vector called check was created in order to see which toeholds bind to which RNA.
  • Removing unnecessary lines
  • Making sure the toeholds and RNA cannot join and then split instantly. They now require a cooldown period countdown which took a while to get working (this was achieved by counting up from negative numbers instead of counting down)

Following a further meeting with Jonathan fieldsend on Monday we found more problems within our code and come up with some new ways to work around them.

  • Firstly he told us about version control and gave us a tutorial on setting up a GitHub account.
  • Next he pointed out we could create a function to generate the random walk. This will optimise our code as it will remove large sections.
  • A few more code optimisations were pointed out such as, defining loop variables instead of adding t+r etc, and moving j==1 loops outside of others

We also spoke in detail about parameter scanning so that we can use our model to optimise the experimental system:

  • This could be done with reductionist gridding or a genetic algorithm.
  • This will be explored in more detail soon.

The next steps will be to get the plotting to work to create a visual output and to introduce a trajectory function at the container walls.

Week 27/07 - 02/08

The big project this week involved researching trajectory/collision functions to simulate particles bouncing off the walls of the tube. (A big thankyou to this website for teaching us trigonometry). This involved some intense vector calculus - starting with the 2D system before moving on to 3D. Many hours were spent in front of a white board drawing numerous diagrams (and slugs)!

Obviously this wouldn’t be a modelling diary entry without mentioning optimisations:

  • The coordinate storage structure was altered to have columns adjacent to each complex coordinate column. This allowed us to denote status and record the identity of each toehold and RNA trigger.
  • We almost fixed the plotting function but for a few cases which resulted in extra lines being plotted. Plotting was based on conditional statements that exploited the addition columns and their information introduced in the new points structure.

The plan for the coming weeks will be to explore the numerical output, start to split down functions and implement bouncing in 3D and parameter scanning.

Week 03/08 - 09/08

Monday was spent getting GitHub to work so that we could use version control. It was setup successfully on Todd’s laptop but Dan’s required more work. Now that is good to go we can both edit the same script and upload it in a secure location. It will also keep track of the changes we've made and allow use to revert back to earlier versions.

The modelling diary, action plan and meeting notes were looked through and any missing information added, bringing these documents up to date!

Week 10/08 - 16/08

Todd was away but started to write about the simulation for the modelling wiki. Dan continued to work on the data structures used for recording the coordinates and smoothing out the bugs with it in preparation for adding in the bouncing from the edges of the tube later on in the week. Integration of this bouncing code would lead to many a problem and was carried over into the next week.

The data structuring included modifying the coordinates array so that a timestep (row) could accommodate two points rather than one (the point before contact with the boundary and the point of contact on the boundary). This was fiddly and some of the inflexible conditional statements elsewhere needed to be changed.

A modelling introduction was also written up for the wiki (finally!)

We also lost Amy to America this week, we know life will be that much harder without her :(

Week 17/08 - 23/08

This week was cut short by the absence of the Wiki team on Thursday and Friday. Regardless, the focus shifted onto writing for the wiki as Monday saw the finalisation of the wiki modelling page for the simulation. This was proof read and new information approved. We also started the week with the intention of writing various in depth pieces for the wiki including pieces explaining the maths and a piece on parameter scanning.

More bug fixing and general tinkering occurred, with the main focus being trajectory maths - the z coordinate needed to be found at the point the random walk path left the cone section.

Week 24/08 - 30/08

Another slightly emptier week for the modelling diary as the modelling team was used elsewhere within the project:

  • Our matlab skills were used to analyse and produce data for the interlab study. A script file was made to produce graphs of the data, which we also extracted means and standard deviations from.
  • General computer skills were used to make the poster and banner as they needed to be made using a high quality vector graphics application.
  • A lot of time this week was spent making presentation material in preparation for the UK meet up in London.

We expect more of the same next week as we prepare for the UK meetup - things are really hotting up!

Week 31/08 - 06/09

This was the week of the UK meetup and as a result Monday through Wednesday were spent working on presentation material and practicing our presentation, this also included finalisation of the poster material as well as other meetup related activities.

UK meet up in Westminster!

  • We presented on the process of building our simulation, our influences from the lab and human practices and what we hope to gain from each through parameter scanning.
  • We also spoke to members of other teams about some of their modelling practices and made some friends along the way.
  • Westminster University did a phenomenal job of hosting everyone, the event was fantastic!

As a brief aside regarding actual modelling, attempts at successful parameter scans were made, but yielded nothing :(

Week 07/09 - 13/09

We were back to modelling this week, with the lab team aiming to get us some data to feed into the model. This included the processing of in silico data from NUPACK in order to obtain probability distributions for the binding and splitting elements in the simulation. These replaced the pre-existing estimation for the likelihood of these mechanics occurring.

Week 14/09 - 18/09 (Wiki freeze!)

This week has definitely been one of the most stressful as everything is wrapping up - nicely timed alongside freshers week! Around the partying and commitments we had to societies we managed to work on

  • The scaling of model, to better reflect how we’ve simulated a portion of the total number of particles in the cell free system
  • Production of wiki content ahead of the freeze this included construction of graphics and diagrams for the modelling pages.

This brings us to this very moment, as I (Amy) am sat in my dorm at 10pm in America proof reading and tidying up parts of the wiki for my very tired team mates in England! This has been a really stressful week but we’ve managed to get a (somewhat) working model, although there were definitely a few things we would have loved to have added given more time (you can find these on the previous page). Below you'll find how our model helped the lab team as well as a few extra points!

Other points

  • We’ve asked a lot of the experiment team and they’ve since found these out or looked it up. This has helped them focus their experiments as they have had to design them with what we need in mind.
    • We asked about rate limiting steps after talking with Peter Winlove - this was then simplified after talking with the experimentalists.
      • Rate of ribosome movement contains the rate of RNA, amino acid production, etc.
      • Ribosome stays bound until it makes GFP.
      • It also lead us to investigate the rate limiting steps. Anything to do with the cell free kit was assumed to be in excess. The main limiting step was determined to be the RNA binding event.
    • During the meeting about experimental design, our inputs and considerations for the model were used to question the decisions of the lab team. These included:
      • Temperatures
      • Repeats
      • Accuracy and precision
      • Listing their assumptions
  • Contact us:
    exeterigem@gmail.com