Overview

This document contains suggestions for a possible, completely optional class project. If you have any questions related to a potential project, use the courseproject channel on Slack.

Project Ideas

You might already have a specific question or system you are interested in modeling, or maybe this course led to ideas. If you are new to modeling, it might be difficult to decide what questions simulations models are good for. Some thoughts on this can be found in this review paper we recently wrote. We discuss 3 major model uses, namely Exploration, Prediction and Fitting.

Given the shortness of time and the complexity of the approach, doing something that involves fitting data to models is maybe not suitable, unless you already have good R coding and model fitting experience (e.g. fitting statistical/phenomenological models). I suggest that if you want to try a project within the timeframe of the course, focus on doing an Exploration project.

Project Implementation

Here are some general pointers on how you could go about doing a project, depending on your comfort level writing models and code. There are obviously trade-offs among those approaches. The easier ones (no model building, no coding) are less flexible, the more flexible ones require more coding. Pick the one that works well for your skill and interest level.

  • Requires no model building and no coding: Use one of the apps included in DSAIRM, choose parameter values that correspond to the system you are trying to model, then explore the model through the graphical user interface.

  • Requires no model building and a little bit of coding: Use one of the apps included in DSAIRM. Instead of accessing it through the graphical interface, write a few lines of code that call the simulator functions. See level 2 description in the DSAIRM tutorial.

  • Requires model building but no coding: Use the modelbuilder R package to build your own model and explore it graphically. Note that modelbuilder is in early stages of development. See the package website for more details. It should work, but you might encounter bugs. If so, let us know in the modelbuilder slack channel. Also, at this stage modelbuilder is not suitable to build very detailed models, so if you use it, keep your model simple.

  • Requires some model building and coding: Use one of the apps included in DSAIRM. Get the code for the model you are interested in, modify it to fit your system. Then run it to analyze your system and answer your question. See level 3 description in the DSAIRM tutorial.

  • Requires some model building and coding: Use the modelbuilder R package to build an initial version of your model. Export the model code from modelbuilder, edit further and run the code to answer your question.

Project Logistics

To repeat, this is completely optional, so if you don’t have the time or interest, you can just focus on learning the course material and not try your own project. If you do try, it is completely up to you how to structure your project. You can just play around, or you can try to write a formal report/paper. Given the shortness of time, it might be tricky to try and form teams with others and do a project as a group, but you are certainly welcome to try and do so. You can use the courseproject Slack channel to see if you can find others to team up with.

If you get results from your project that you think are worth sharing, let everyone know on Slack. We will be happy to provide feedback and comments at any stage of your project. If any projects advance enough and have enough results that it is worth sharing with the group, we plan to allow some time in our closing Zoom session for anyone who wants to briefly (5-10min) present their findings. If you want to do that, let us know beforehand.

If you are up for the challenge, here are two specific outcomes/products you could aim for.

  1. Build a new model in modelbuilder, explore it either through modelbuilder or on your own and write some report (I suggest using RMarkdown for that but you can use anything) about what you did and found. I’m starting to build a library of models that could be included in modelbuilder and used by others. So if you end up with a nice, well documented and suitable model, I would love to include it in modelbuilder for others to use or build on. You would of course be credited as model contributor.

  2. I’m always looking to include more apps into DSAIRM. You could try to build a new model (using one of the existing _simulate..._ functions and adjusting it), together with documentation. For the documentation, this would need to be written as Rmd file. Here is an example of the Rmd file for the basic bacteria model that you can look at and use as template. You can ignore the R code and just replace the existing text with text for your model/app. The The MOdel and What to do sections are the most important ones. If suitable, I’d love to include your app into DSAIRM. You’d of course be listed as package contributor.

Project Communications

Any general communication and asking of questions regarding this project should happen in the courseproject channel. Of course, if you decide to work with others on a project, you are welcome to communicate with your project group members in any other way you like.