{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Final Project\n", "\n", "*Name(s):*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Recall the 7-state model of the mammalian circadian clock published by Becker-Weimann et al. (2004). The paper investigates the relative contributions of positive and negative feedback to oscillator performance. We will be using the model presented in this paper for our final investigation. \n", "\n", "Your goal is to demonstrate your mastery of the topics in this course by understanding and analyzing this model. Each question relates to one topic.\n", "\n", "## The Project\n", "\n", "
Opportunity for thoroughness: To answer the questions about AND/OR gates, make a heat map or surface plot like Uri Alon does in Figure 2.5 of his textbook chapter\n", "
%timeit magic code, compare the time it takes to simulate the model using RK23, RK45, DOP853, Radau, BDF, and LSODA (read the descriptions in the documentation for solve_ivp). Use a relative tolerance of $10^{-8}$, the default absolute tolerance, an end ``time'' of at least 2400 hours, and no t_eval parameter. RK23 is a low-order explicit solver, RK45 is a high-order explicit solver, DOP853 is an even higher order explicit solver, BDF is a variable-order implicit solver, Radau is a high-order implicit solver, and LSODA is an all-purpose solver (it makes lots of adjustments while solving the problem). \n",
" \n",
" rank = (NP - raw_rank)/(NP-1);\n",
" \n",
" %timeit -o sol = scipy.integrate.solve_ivp(fun=beckerWeimann_model, t_span=(0,10*24), y0=yinit, method='RK45', args=[params], rtol=1e-8 )\n",
" \n",
" \n",
"and in the second cell, do the assignent from the special variable \\_. Below, I show the code and then include print statements that will guide you in your understanding of that variable.\n",
"\n",
"rk45_time = _ \n",
"print( rk45_time )\n",
"print( rk45_time.average )\n",
"print( rk45_time.stdev ) \n",
"\n",
"\n",
"Unfortunately, I am not sure how to have multiple calls in the same cell. But I think the variable is still useful if you have a different variable name for each call, the you can put them in a list in a later cell, so that you can plot them all together."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# Start code and write-up here."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"