Difference between revisions of "Team:Warwick/Model"

Line 351: Line 351:
 
<p>We understand that computer models can become quite dry, particularly when explaining the details of their implementation. However, we believe that it is important to do this precisely, even at the cost of conciseness, as a small misunderstanding can be quickly amplified to an unexpected result, since the model’s high complexity causes it to have a chaotic output.</p>
 
<p>We understand that computer models can become quite dry, particularly when explaining the details of their implementation. However, we believe that it is important to do this precisely, even at the cost of conciseness, as a small misunderstanding can be quickly amplified to an unexpected result, since the model’s high complexity causes it to have a chaotic output.</p>
 
<p>As a result of this, we created an in-browser interactive implementation of the model, which plots the output graph of the model based on the user inputting initial parameter states. We intend that this can quickly, intuitively, and interactively show the function and results of the model, which can help inform the goal throughout the implementation explanation, and provide a top-level understanding even if the rest of this page were omitted.</p>
 
<p>As a result of this, we created an in-browser interactive implementation of the model, which plots the output graph of the model based on the user inputting initial parameter states. We intend that this can quickly, intuitively, and interactively show the function and results of the model, which can help inform the goal throughout the implementation explanation, and provide a top-level understanding even if the rest of this page were omitted.</p>
<p>The whole project repository is <a href="https://github.com/igemsoftware2021/Warwick_modelling">available on GitHub</a>, and the final production code for the project can be found: <a href="https://raw.githubusercontent.com/Warwick-iGEM-2021/modelling/main/tiered_antibiotic_resistance_model/model.py">as a standalone Python file</a>, or <a href="https://pypi.org/project/tiered-antibiotic-resistance-model/">as a package on PyPI</a>. Note that if the iGEM team has not transferred the repository, the <a href="https://github.com/EdmundGoodman/Warwick_modelling">previous location can be found here</a></p>
+
<p>The whole project repository is <a href="https://github.com/igemsoftware2021/Warwick_modelling">available on GitHub</a>, and the final production code for the project can be found: <a href="https://raw.githubusercontent.com/igemsoftware2021/modelling/main/tiered_antibiotic_resistance_model/model.py">as a standalone Python file</a>, or <a href="https://pypi.org/project/tiered-antibiotic-resistance-model/">as a package on PyPI</a>. Note that if the iGEM team has not transferred the repository, the <a href="https://github.com/EdmundGoodman/Warwick_modelling">previous location can be found here</a></p>
  
  
Line 1,153: Line 1,153:
 
<p>We went through three iterative design stages of increasing complexity and proximity to real life before settling on our production code:</p>
 
<p>We went through three iterative design stages of increasing complexity and proximity to real life before settling on our production code:</p>
 
<ol>
 
<ol>
<li>The first version was a very simple Markov model of people who could be infected forming a population. It did not employ the tiered system of antibiotic treatments, so did not map very closely to the real world. The code is <a href="https://raw.githubusercontent.com/Warwick-iGEM-2021/modelling/main/development_versions/v1.py">available here</a></li>
+
<li>The first version was a very simple Markov model of people who could be infected forming a population. It did not employ the tiered system of antibiotic treatments, so did not map very closely to the real world. The code is <a href="https://raw.githubusercontent.com/igemsoftware2021/modelling/main/development_versions/v1.py">available here</a></li>
<li>The second version was an improvement on the first in terms of mapping closer to reality by employing the tiered system of antibiotic treatments. It did this by adding additional <code>Infection</code> and <code>Treatment</code> classes as properties of a <code>Person</code>, and additional logic to move “upwards” across them in a specific order. The code is <a href="https://raw.githubusercontent.com/Warwick-iGEM-2021/modelling/main/development_versions/v2.py">available here</a></li>
+
<li>The second version was an improvement on the first in terms of mapping closer to reality by employing the tiered system of antibiotic treatments. It did this by adding additional <code>Infection</code> and <code>Treatment</code> classes as properties of a <code>Person</code>, and additional logic to move “upwards” across them in a specific order. The code is <a href="https://raw.githubusercontent.com/igemsoftware2021/modelling/main/development_versions/v2.py">available here</a></li>
<li>The third version had a number of additional, but smaller, improvements with respect to closely modelling reality. There was an addition of a lag time before people could move up treatment, and the feature that the change of death increases over time being infected. The code is <a href="https://raw.githubusercontent.com/Warwick-iGEM-2021/modelling/main/development_versions/v3.py">available here</a></li>
+
<li>The third version had a number of additional, but smaller, improvements with respect to closely modelling reality. There was an addition of a lag time before people could move up treatment, and the feature that the change of death increases over time being infected. The code is <a href="https://raw.githubusercontent.com/igemsoftware2021/modelling/main/development_versions/v3.py">available here</a></li>
 
<li>The final production version included a fairly holistic re-write, in order to add finer granularity of control through parameters, allowing different infections to have different properties, and other additional parameters. On top of this, the version was rigorously tested by hand and via automated tests to identify conceptual errors. The code is available as the main production code on GitHub and PyPI</li>
 
<li>The final production version included a fairly holistic re-write, in order to add finer granularity of control through parameters, allowing different infections to have different properties, and other additional parameters. On top of this, the version was rigorously tested by hand and via automated tests to identify conceptual errors. The code is available as the main production code on GitHub and PyPI</li>
 
</ol>
 
</ol>

Revision as of 13:18, 21 October 2021

Model