This document contains suggestions for a completely optional course project. If you have any questions related to a potential project, use the course-project channel on Slack.
You might already have a specific question or system in mind that you are interested in modeling. Or maybe this course leads to some ideas. If you are new to modeling, it might be difficult to decide what questions can be suitably addressed using simulations models. Some thoughts on this can be found in this review paper we 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.
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. Also, at this stage modelbuilder is not suitable to build very complex 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.
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 (e.g., using RMarkdown). 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 course-project 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 present their findings. If you want to do that, let us know beforehand.
Here are two other types of projects you could give a try:
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.
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
RMarkdown (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 integrate your app
into DSAIRM. You’d of course be listed as package contributor.
Any general communication and asking of questions regarding this project should happen in the course-project 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.