-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
major update
- Loading branch information
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Large diffs are not rendered by default.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"id": "fifty-passport", | ||
"metadata": {}, | ||
"source": [ | ||
"## Relaxivity module demo" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 4, | ||
"id": "internal-arbor", | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"The autoreload extension is already loaded. To reload it, use:\n", | ||
" %reload_ext autoreload\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"import sys\n", | ||
"import matplotlib.pyplot as plt\n", | ||
"import numpy as np\n", | ||
"sys.path.append('../src')\n", | ||
"import relaxivity\n", | ||
"%load_ext autoreload\n", | ||
"%autoreload 2" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "arabic-latvia", | ||
"metadata": {}, | ||
"source": [ | ||
"### The CRModel class\n", | ||
"This is an abstract base class. Subclasses represent specific relaxivity models. \n", | ||
"The main function of these objects is to return relaxation rates as a function of contrast agent concentration. \n", | ||
"At the moment, only the linear model is implemented:" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 5, | ||
"id": "4080ceab-24f8-4b2e-b57d-816474887489", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"cr_model = relaxivity.CRLinear(r1=5.0, r2=7.1)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "52762d06-81e5-4153-88f5-5d0e827d7f82", | ||
"metadata": {}, | ||
"source": [ | ||
"Now we can use the R1 and R2 methods to calculate the relaxation rates for a given concentration and pre-contrast relaxation rate values:" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 6, | ||
"id": "a3c01c12-fb5e-4aed-b9fb-b882270ba27f", | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"name": "stdout", | ||
"output_type": "stream", | ||
"text": [ | ||
"[ 1. 6. 11. 16. 21. 26.]\n" | ||
] | ||
} | ||
], | ||
"source": [ | ||
"C_t = np.array([0, 1, 2, 3, 4, 5])\n", | ||
"R10 = 1\n", | ||
"R1_post = cr_model.R1(R10, C_t)\n", | ||
"print(R1_post)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "4a7c1681-7e9d-49b2-9474-56f86a8f25ef", | ||
"metadata": {}, | ||
"source": [ | ||
"Additional subclasses could be implemented to represent other concentration-relaxation relationships, e.g. quadratic." | ||
] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3 (ipykernel)", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.7.10" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"id": "eb332c7d-4589-47da-81d0-e2697ee70254", | ||
"metadata": {}, | ||
"source": [ | ||
"## Signal models demo" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 1, | ||
"id": "42671502-6096-4107-8c21-3f876b950a66", | ||
"metadata": { | ||
"tags": [] | ||
}, | ||
"outputs": [], | ||
"source": [ | ||
"import sys\n", | ||
"import matplotlib.pyplot as plt\n", | ||
"import numpy as np\n", | ||
"sys.path.append('../src')\n", | ||
"import signal_models\n", | ||
"%load_ext autoreload\n", | ||
"%autoreload 2" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"id": "33acaa3b-10e0-454f-b62b-6a2cb5b1d0f4", | ||
"metadata": {}, | ||
"source": [ | ||
"### The SignalModel Class\n", | ||
"This abstract base class represents different signal models i.e. conversion between relaxation parameters and signal intensity for a given pulse sequence. The model is defined by specifying the sequence parameters. At present, only the SPGR signal model is implemented:" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 13, | ||
"id": "c2e14ed8-c6f6-4e79-9fe0-fbc9b323d156", | ||
"metadata": {}, | ||
"outputs": [], | ||
"source": [ | ||
"sm = signal_models.SPGR(tr=5e-3, fa=15, te=1.5e-3)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "code", | ||
"execution_count": 15, | ||
"id": "25cb9206-ef8d-4d4f-bf82-779d9463530a", | ||
"metadata": {}, | ||
"outputs": [ | ||
{ | ||
"data": { | ||
"text/plain": [ | ||
"Text(0, 0.5, 'signal')" | ||
] | ||
}, | ||
"execution_count": 15, | ||
"metadata": {}, | ||
"output_type": "execute_result" | ||
}, | ||
{ | ||
"data": { | ||
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAgG0lEQVR4nO3deZhU1Z3/8fe394XeNxp6YxcEBQREcUGJilsck4yJE6MxJvjLaHYdTeLvmSxPEpOZONnml8RRRxOjWYy7RsUlalwB2deWraG76ZXe9+7z+6MKbRGwka663fd+Xs9TT9W9XcX9HoEPx1PnnmPOOUREJDhivC5ARESiS8EvIhIwCn4RkYBR8IuIBIyCX0QkYOK8LmAocnNzXVlZmddliIiMKqtWrap3zuUdfH5UBH9ZWRkrV670ugwRkVHFzHYf6ryGekREAkbBLyISMAp+EZGAUfCLiASMgl9EJGAU/CIiAaPgFxEJmFExj19ExM/6BxxNHT00tPdQ39ZNQ1sPje09NLR18/GTiijNSR3W6yn4RUQioH/A0dDeTV1r6FHfFgr1+tbu0POB47YeGtu7GTjE1igxBnNKsxT8IiJe6ujpo7alm5qWLmrDoX7gua7t3aA/XJgnx8eSm5ZA7phEirNTmFOSSU5qIrljEsgZk0hOagK5aaHnzJQEYmNs2Nug4BcRAXr6Bqhp6Qo/uge9Dh+3dlHX0k1rd9/7PhsXY+SlJZKflsj4zCRmF2eQNyaRvLREcgc956YlMibR+9j1vgIRkQjr6OmjurmLfc1d4efO9xzXtHTR0N7zvs8lxMWQn5bI2PQkjhubxhlT8shPTyQ/LYn8tMR3XmcmxxMTgZ55pCj4RWRU6+sfYF9LF1VNXVQ1dVLZ1El1c+c7x9XNXTR39r7vc9mpCRSkJ1GYkcSJxZmMTU9ibEYiBelJFKQnMTY9icyUeMxGT6APlYJfREa0rt5+Kps62bu/k8r9nVQ2dbB3f2co5Pd3sq+l631j6Vkp8RRmJFOUlcz8smwKM5MYl5HM2IykcMAnkRQf602DRgAFv4h4qq9/gOrmLvbs72BPYwd7Gjvffb2/k7rW7ve8PzbGKMxIYnxmMgsn5TA+M5nxmcmMe+eRREqCou1I9F9HRCKuo6ePisYOdtV3UNHYzu6GDioaQ4/K/Z30Deqyx8YY4zKTKM5K4axpeRRlpVCUFQr3ouwUCtISiYvVvafHQsEvIsOis6efXQ3t7KwPPXY3tLOrvoNdDe3UHtRrz0yJpzQ7hVnjM7hgViGl2SmUZKdQnJ1CYUaSgj3CFPwiMmT9A46qpk6217Wxo66dHfVt7KxvZ0ddO9XNXe95b15aImU5KZw5NY+y3FRKslMoy0mlJCeFjOR4j1ogoOAXkUPo6u1nZ307b9e2hR51bWyvDYV8d9/AO+9LT4pjYt4YFk7MYWJuKhPyUinLSaUsN3VEzFeXQ9PvjEiAdfX2s6OunW01rWyraaU8HPS7G9rfmSkTY1CcncKkvDGcPiWXSXljmJg3hol5qeSkJvhyuqPfKfhFAmBgwFHR2MGWfS1s2dfK1n2tbK1pZVf9uwEfF2OU5aYyvTCNi08oZHJBGlPyxzAhNzXQUx/9SMEv4jOtXb1s2dfK5uqW8CMU9J29/QCYQVlOKlMLxnDRrEKmFKQxbWwaZTmpJMTpS9UgUPCLjGL1bd1sqGxmY1ULG6tCz7sbOt75eUZyPNML0/jUgmKmj03nuMI0puSnkZygHnyQKfhFRon6tm7W721m3d5m1lc2s6GymX0t786kKclO4fhx6XxibhHTC9OZMS6dwowkjcHL+yj4RUagtu4+1u1tYu2e5vBzE1Xh6ZJmMClvDAsnZjNzfAYzx2cwY1w66UmaIilDo+AX8djAgOPtujbe2r2f1RVNrNnTxLbaVlz4S9fSnBROKsvmc0UZzAoHfaqmSsox0J8ekShr6+5jTUUTK3c3smr3ftZUNL2zxntmSjyzizM5f9ZYZhdncmJRJlmpCR5XLH6j4BeJsPq2blbsbOTNXY2s2NXIpqoWBlxoyGZaQRoXzx7H3JIs5pZkMiE3VWPyEnEKfpFhVtPSxes7Gnh9RyNv7GxgR107AEnxMcwpzuL6syZzUlk2c0oyNS4vnlDwixyjhrZuXt/RyKvb63ltx7tBn5YYx7yyLC6bV8yCCdnMHJehefIyIij4RY5SZ08/b+5q5JW36/lHeT2bqlsASE2I5eSJOXxqfjGnTMxlxrj0iGyULXKsFPwiH8A5x9aaVl7cWsfL5fW8uauRnr4BEmJjmFuayQ3nTuWUSbmcUJRBvJYTllFAwS9yCK1dvbzydj3Pb6nlxW111LSE1pOfVpDGlQtLOX1qHgvKsnUHrIxKCn6RsN0N7Ty7uZbnNtewYlcjvf2OtMQ4Tp+ay5lT8zhzaj5jM5K8LlPkmEUs+M2sGPgdMBYYAG53zv3czLKBPwFlwC7gMufc/kjVIXI4AwOOdZXNPLNxH8s31VBe2wbA5PwxfG7RBM46Lp+TSrM0fCO+E8kefx/wDefcW2aWBqwys+XAZ4HnnHO3mtnNwM3ATRGsQ+Qdff0DvLGzkac27OOZTfuoaekmNsY4eUI2ly8oYcn0fEpzUr0uUySiIhb8zrlqoDr8utXMNgPjgUuAxeG33QP8HQW/RFBv/wCvbW/giXXVPLNpH/s7ekmKj2Hx1HzOm1nAWdPyyUzR3bESHFEZ4zezMmAO8AZQEP5HAedctZnlH+Yzy4BlACUlJdEoU3ykf8Dx5s5GHl1bxVMbqtnf0UtqQiwfmVHA+TPHcubUfH0xK4EV8eA3szHAX4GvOudahno7unPuduB2gHnz5rnIVSh+4ZxjY1ULD62u5LG1VdS2dpOSEMtHphdw0QmFnDE1TztJiRDh4DezeEKh/wfn3IPh0zVmVhju7RcCtZGsQfyvurmTB9+q5KHVlbxd20Z8rLF4Wj6XzB7HkuMK1LMXOUgkZ/UYcCew2Tl326AfPQpcBdwafn4kUjWIf3X19vPUhn08sGovr2yvxzmYX5bFDy+dxQWzxmrMXuQIItnjXwR8BlhvZmvC575FKPD/bGbXABXAP0ewBvGZDZXN/HFFBY+sqaK1q4/i7GS+fPYUPj63iJKcFK/LExkVIjmr5x/A4Qb0l0TquuI/7d19PLq2ivveqGB9ZTOJcTGcP3Msl80vZuGEHGK0Ho7IUdGduzJivV3byu9f281f36qkrbuPaQVpfOfiGVw6p4iMFC1nLPJhKfhlROkfcDy/pZb/fWUnr25vICE2hgtPKOSKhSXMLcnSJiUiw0DBLyNCW3cff1qxh3te3UVFYwfjMpK48bxpfHJ+MbljEr0uT8RXFPziqermTu5+ZRf3vVlBa1cf80qzuGnpcZx3fAFxWiNHJCIU/OKJt2tb+c2LO3h4dSUDznH+rEK+cPpEZhdnel2aiO8p+CWq1u9t5lcvlPPMphoS42K4YmEp15w2geJsTcUUiRYFv0TF6or9/OK5cl7YWkd6UhxfOmsyV51aRo7G70WiTsEvEbVubxO3Ld/G37fWkZUSz43nTePKU0pJS9J0TBGvKPglIrbua+U/n9nK8k01ZKbEc9PS47jylFJSE/VHTsRr+lsow2rv/g5uW76Nh1ZXMiYxjq+fM5WrF5Wphy8ygij4ZVg0d/TyqxfKuefV3WCw7PSJfHHxJC2WJjICKfjlmPT2D3Dv67v5+XPlNHf28om5RXz93KkUZiR7XZqIHIaCXz60l7bV8d3HNrK9rp1Fk3P41gXTOX5chtdlicgHUPDLUdvT2MH3Ht/E8k01lOakcMeV81gyPV/r6IiMEgp+GbLuvn7+56Ud/PL5t4mNMf5t6TSuOW0CiXHa4UpkNFHwy5C8tr2Bbz+8nh117Vwwayz/96IZGscXGaUU/HJEzZ29/OjJzfxxxR5KslO4++r5LJ6W73VZInIMFPxyWE9v3MctD2+gsb2Ha8+cyFeXTNXG5SI+oOCX92nq6OE7j27k4TVVTC9M566r5jOrSLN1RPxCwS/v8cLWWm56YB2N7T18ZckUrj97MvFaF1/EVxT8AkBXbz8/fHIzv3ttN9MK0rjrs/OZOV69fBE/UvALm6pa+MofV1Ne28Y1p03gxvOmkRSvsXwRv1LwB5hzjnvfqOD7j28iMzme31+zgNOn5HldlohEmII/oFq6evnmX9fzxPpqzpyax22XnahNUUQCQsEfQJurW/g/965i7/5Oblp6HNeeMZGYGC23IBIUCv6AeWRNJTf9dR3pSfH8cdlC5pdle12SiESZgj8g+voH+NHftnDnP3YyvyyL//6XueSnJ3ldloh4QMEfAM2dvXzp/tW8tK2Oz55axrcvnK65+SIBpuD3uZ317VxzzwoqGjq49WOz+NSCEq9LEhGPKfh9bMWuRr7wu5UYcO/nT2bhxByvSxKREUDB71NPrKvma39eQ1FmMv979XxKc1K9LklERggFvw/d8fIOfvDkZuaWZHHHlfPIStWG5yLyLgW/jzjn+PFTW/nNi9s5f+ZY/uuTs7X0goi8j4LfJ/oHHLc8vIH736zg0yeX8L1LZhKrm7JE5BAU/D7Q2z/A1/60hsfXVfOviydx43nTtPG5iByWgn+U6+kb4Pr73uKZTTV88/zjuPbMSV6XJCIjnIJ/FOvu6+e6P7zFs5tr+c7FM/jsoglelyQio0DEbt80s7vMrNbMNgw69x0zqzSzNeHHBZG6vt919/XzxXtDof/9S45X6IvIkEXyvv27gaWHOP9fzrnZ4ceTEby+b/X2D3D9fat5fkstP7h0Jp85pczrkkRkFIlY8DvnXgIaI/XrB1X/gOOGv6xl+aYavvvR4/n0yaVelyQio4wXK3Vdb2brwkNBWYd7k5ktM7OVZrayrq4umvWNWM45bnl4PY+sqeLflk7jqlPLvC5JREahaAf/r4FJwGygGvjp4d7onLvdOTfPOTcvL0/bAQL85Omt3P/mHq47axL/uniy1+WIyCgV1eB3ztU45/qdcwPA/wALonn90eyeV3fx679v519OLuGGc6d5XY6IjGJRDX4zKxx0eCmw4XDvlXc9ub6a7zy2kXNmFPD9S2bq5iwROSYRm8dvZvcDi4FcM9sL/Duw2MxmAw7YBVwbqev7xYpdjXz1T2uYW5LFLy+fo2UYROSYRSz4nXOXH+L0nZG6nh9VNHSw7HcrKcpM5s6r5mnBNREZFtp/b4Rq6erlmntWMODgzs/OJzNFSyuLyPBQ8I9Aff0DfOm+1eysb+fXV8xlQq42URGR4aO1ekagnzy9lRe31fGjj83i1Em5XpcjIj6jHv8I88S6am5/aQdXnlLK5doYXUQiQME/gpTXtHLjA2s5qTSLWy6c4XU5IuJTCv4RorWrl2t/v4qUhDj+36fnkhCn3xoRiQyN8Y8AzjlufnA9uxs7uO/zJ1OQnuR1SSLiY0cMfjNrJXSz1ft+BDjnXHpEqgqYP67YwxPrqrlp6XGcPDHH63JExOeOGPzOubRoFRJU5TWtfPexjZw+JZdrz5jodTkiEgBHNdRjZvnAO+MQzrmKYa8oQLp6+7n+vtWMSYzjp5edSIyWYxCRKBjSN4hm9lEzKwd2Ai8SWmfnbxGsKxB++ORmtta0cttls8lP07i+iETHUKeOfB9YCGxzzk0AlgCvRKyqAPhHeT2/e20315w2gTOmar8BEYmeoQZ/r3OuAYgxsxjn3AuENlORD6Glq5cbH1jLpLxUbjxPa+uLSHQNdYy/yczGAC8BfzCzWqAvcmX52/ce20RtazcPfvFUrbgpIlE31B7/JUAn8DXgKWA7cHGkivKz5ZtqeGDVXq5bPIkTizO9LkdEAmhIPX7nXPugw3siVIvvtXT18u2H1jO9MJ3rz57idTkiElBDndXzMTMrN7NmM2sxs1Yza4l0cX7zk6e2UN/WzY8/PktLMoiIZ4Y6xv8T4GLn3OZIFuNnK3c1cu/rFXxu0QROKMr0uhwRCbChdjtrFPofXk/fAN98cD3jM5P5xrlTvS5HRAJuqD3+lWb2J+BhoPvASefcg5Eoym9+++J2ymvbuPOqeaQmal08EfHWUFMoHegAzh10zgEK/g+wd38Hv3rhbc6fOZYl0wu8LkdEZMizeq6OdCF+9aMnt2AGt1ykjVVEZGQYUvCb2S8OcboZWOmce2R4S/KPV7fX88T6ar72kamMz0z2uhwREWDoX+4mEVqioTz8OAHIBq4xs59FpLJRrq9/gO8+uonxmclce6aWWxaRkWOoY/yTgbOdc30AZvZr4BngHGB9hGob1e57s4KtNa385oq5WpZBREaUofb4xwOpg45TgXHOuX4GzfKRkObOXm5bvo1TJ+Vw3vFjvS5HROQ9juYGrjVm9ndC2y6eAfzQzFKBZyNU26j12xe309TRy7cumI6ZNlcRkZFlqLN67jSzJ4EFhIL/W865qvCPb4xUcaPRvuYu7nplJ5fMHsfM8RlelyMi8j5HHOoxs+PCz3OBQmAPUAGMDZ+Tg/z8uW30Dzi+cY7W2ReRkemDevxfB5YBPx10zg16ffawVzSKvV3bxp9W7OHKU8ooyUnxuhwRkUM6Yo/fObcs/PLXwCXOubOAFwjN4b8hwrWNOv/x9BZSEuL40tmTvS5FROSwhjqr5xbnXIuZnUZoCufdhP4xkLANlc08vbGGL5w+kZwxiV6XIyJyWEMN/v7w84XAb8J36yZEpqTR6efPlZOeFMfVp5V5XYqIyBENNfgrzey3wGXAk2aWeBSf9b2NVc0s31TD506bQHpSvNfliIgc0VDD+zLgaWCpc66J0HINmsYZ9ovnyklLiuPqRRO8LkVE5AMNdR5/B4OWYHbOVQPVkSpqNNlc3cLTG2v48pIpZCSrty8iI5+Ga47RL58vJy0xjmvU2xeRUULBfwy217Xxtw37uOrUMjJS1NsXkdEhYsFvZneZWa2ZbRh0LtvMlptZefg5K1LXj4Y7Xt5JQmwMn11U5nUpIiJDFske/93A0oPO3Qw855ybAjwXPh6V6lq7+etbe/n4SUXkat6+iIwiEQt+59xLQONBpy8B7gm/vgf4p0hdP9J+/9ouevsH+PxpGtsXkdEl2mP8BeEZQQdmBuUf7o1mtszMVprZyrq6uqgVOBQdPX387vXdnDO9gIl5Y7wuR0TkqIzYL3edc7c75+Y55+bl5eV5Xc57PLBqL00dvSw7Q1sqisjoE+3grzGzQoDwc22Ur3/M+gccd7y8kzklmZxUOqq/mxaRgIp28D8KXBV+fRXwSJSvf8z+vrWWisYOPn/aRO2uJSKjUiSnc94PvAZMM7O9ZnYNcCtwjpmVE1rl89ZIXT9Sfv/6bgrSEzn3+AKvSxER+VCGuufuUXPOXX6YHy2J1DUjbXdDOy9uq+MrS6YQHztivx4RETkipddR+MMbFcSYcfmCEq9LERH50BT8Q9TV28+fV+7hvOMLKEhP8rocEZEPTcE/RI+vq6apo5crFpZ6XYqIyDFR8A/R71/fzaS8VE6ZmON1KSIix0TBPwQbq5pZu6eJKxaWagqniIx6Cv4h+MvKvSTExnDpnPFelyIicswU/B+gp2+AR9ZUcs7xBWSmaH95ERn9FPwf4PktNezv6OUTJxV5XYqIyLBQ8H+AB1btpSA9kTOmjKyF4kREPiwF/xHUtnbxwtY6Lp1TRGyMvtQVEX9Q8B/BI6ur6B9wGuYREV9R8B+Gc46/rNrDnJJMJudrsxUR8Q8F/2FsqGxhW02bevsi4jsK/sN4bF0V8bHGhbMKvS5FRGRYKfgPwTnHE+uqOX1Knubui4jvKPgP4a2KJiqbOrnoBPX2RcR/FPyH8Pi6KhLiYjhnhnbZEhH/UfAfpH8gNMyzeGoeaUnxXpcjIjLsFPwHWbGrkdrWbi4+cZzXpYiIRISC/yCPr6siOT6WJdPzvS5FRCQiFPyD9PUP8Lf1+zh7ej4pCRHbh15ExFMK/kHe2NlIQ3sPF2s2j4j4mIJ/kOWbakiKj+HMqRrmERH/UvCHOedYvqmG0ybnkZwQ63U5IiIRo+AP21zdSmVTJ+fMUG9fRPxNwR+2fFMNZnD2cbppS0T8TcEf9uzmGuYUZ5KXluh1KSIiEaXgB6qbO1lf2cw5M8Z6XYqISMQp+IFnN9cCaHxfRAJBwQ88u6mGspwUJuVppy0R8b/AB39bdx+vbW/gnBkFmGlDdRHxv8AH/8vb6ujpH+Aj0zWbR0SCIfDB/1J5HWmJcZxUmuV1KSIiURHo4HfO8dK2ek6dnENcbKD/U4hIgAQ67XbUt1PZ1MnpU/K8LkVEJGoCHfwvb6sD4AwFv4gESLCDv7yespwUSnJSvC5FRCRqPNltxMx2Aa1AP9DnnJsX7Rp6+gZ4bUcDH59bFO1Li4h4ysttps5yztV7dfG3KvbT0dPP6VNyvSpBRMQTgR3qeWlbHbExximTcrwuRUQkqrwKfgc8Y2arzGzZod5gZsvMbKWZrayrqxv2Al4ur2duSSZpSfHD/muLiIxkXgX/IufcXOB84DozO+PgNzjnbnfOzXPOzcvLG95ZNw1t3WyoatY0ThEJJE+C3zlXFX6uBR4CFkTz+q9sb8A5OGOqgl9EgifqwW9mqWaWduA1cC6wIZo1vL6jgbTEOGaNz4jmZUVERgQvZvUUAA+FV8KMA+5zzj0VzQLe2NHAvLIsYmO0GqeIBE/Ug985twM4MdrXPaC+rZvtde184qRir0oQEfFU4KZzrtjZCMDJE7M9rkRExBuBC/43djaSHB/LzHEa3xeRYApk8M8tzSQhLnBNFxEBAhb8zR29bNnXwoIy3a0rIsEVqOBfubsR5zS+LyLBFqjgf3NnIwmxMcwuzvS6FBERzwQq+N/Y2ciJxRkkxcd6XYqIiGcCE/zt3X2sr2zm5Aka3xeRYAtM8L9VsZ/+AceCCRrfF5FgC0zwr9jZSGyMMbc0y+tSREQ8FZjgX72niWkFaYxJ9HLTMRER7wUi+AcGHGv2NHGiZvOIiAQj+HfUt9Pa1cccBb+ISDCCf+2eJgBml2R6WoeIyEgQiOBfs6eJMYlxTMob43UpIiKeC0zwn1CUoY1XREQIQPB39fazubpFyzSIiIT5Pvg3VjXTN+A0o0dEJMz3wb+6oglAM3pERMJ8H/xr9jQxLiOJ/PQkr0sRERkRAhH8msYpIvIuXwd/fVs3e/d36otdEZFBfB38a8Lj+7OLtTCbiMgBvg7+tXubiI0xZo5P97oUEZERw9fBX5SVzMfnjiclQStyiogc4OtE/OT8Ej45v8TrMkRERhRf9/hFROT9FPwiIgGj4BcRCRgFv4hIwCj4RUQCRsEvIhIwCn4RkYBR8IuIBIw557yu4QOZWR2w+yg+kgvUR6ickSyI7Q5imyGY7Q5im+HY2l3qnMs7+OSoCP6jZWYrnXPzvK4j2oLY7iC2GYLZ7iC2GSLTbg31iIgEjIJfRCRg/Br8t3tdgEeC2O4gthmC2e4gthki0G5fjvGLiMjh+bXHLyIih6HgFxEJGN8Fv5ktNbOtZva2md3sdT2RYGZ3mVmtmW0YdC7bzJabWXn42VcbDZtZsZm9YGabzWyjmX0lfN7v7U4yszfNbG243d8Nn/d1uwHMLNbMVpvZ4+HjILR5l5mtN7M1ZrYyfG7Y2+2r4DezWOC/gfOBGcDlZjbD26oi4m5g6UHnbgaec85NAZ4LH/tJH/AN59x0YCFwXfj31u/t7gbOds6dCMwGlprZQvzfboCvAJsHHQehzQBnOedmD5q7P+zt9lXwAwuAt51zO5xzPcAfgUs8rmnYOedeAhoPOn0JcE/49T3AP0WzpkhzzlU7594Kv24lFAjj8X+7nXOuLXwYH344fN5uMysCLgTuGHTa120+gmFvt9+CfzywZ9Dx3vC5IChwzlVDKCSBfI/riRgzKwPmAG8QgHaHhzzWALXAcudcENr9M+DfgIFB5/zeZgj9o/6Mma0ys2Xhc8Pebr9ttm6HOKf5qj5iZmOAvwJfdc61mB3qt9xfnHP9wGwzywQeMrOZHpcUUWZ2EVDrnFtlZos9LifaFjnnqswsH1huZlsicRG/9fj3AsWDjouAKo9qibYaMysECD/XelzPsDOzeEKh/wfn3IPh075v9wHOuSbg74S+3/FzuxcBHzWzXYSGa882s3vxd5sBcM5VhZ9rgYcIDV8Pe7v9FvwrgClmNsHMEoBPAY96XFO0PApcFX59FfCIh7UMOwt17e8ENjvnbhv0I7+3Oy/c08fMkoGPAFvwcbudc990zhU558oI/R1+3jl3BT5uM4CZpZpZ2oHXwLnABiLQbt/duWtmFxAaH4wF7nLO/cDbioafmd0PLCa0XGsN8O/Aw8CfgRKgAvhn59zBXwCPWmZ2GvAysJ53x32/RWic38/tPoHQF3qxhDpqf3bOfc/McvBxuw8ID/Xc4Jy7yO9tNrOJhHr5EBqGv88594NItNt3wS8iIkfmt6EeERH5AAp+EZGAUfCLiASMgl9EJGAU/CIiAaPgl8Azs/7waogbzOyxA/Pmwz97ysyaDqwQeYRf42dmdsag48vN7NuHeW+emT01bA0QOUoKfhHoDK+GOJPQ4nfXDfrZfwCfOdKHzSwbWBhePO+ApcAhw905VwdUm9miYytb5MNR8Iu812sMWtjPOfcc0PoBn/kEg0I+fJfxbOAtMzsz/H8Ta8Jry6eF3/Yw8OnhLFxkqBT8ImHh/RyWcPTLfCwCVg06ngOsdaG7I28ArnPOzQZOBzrD71kZPhaJOgW/CCSHlz1uALKB5Uf5+UKgbtDxUuBv4devALeZ2ZeBTOdcX/h8LTDuQ1cscgwU/CLhMX6gFEjgvWP8Q/o8kDTo+FzgGQDn3K3A54Fk4HUzOy78niTe7f2LRJWCXyTMOdcMfBm4IbwE9FBtBiYDmFkGEOecawgfT3LOrXfO/ZjQ8M6B4J9KaOVFkahT8IsM4pxbDawltBwwZvYy8BdgiZntNbPzDvGxJwitlgpwDvDsoJ99NTxNdC2hHv6BIaCzwp8TiTqtzikyDMzsH8BFwH8CdzjnXv+A978EXOKc2x+N+kQGU/CLDAMzO5nQdwXrhvDePEJb7D0c8cJEDkHBLyISMBrjFxEJGAW/iEjAKPhFRAJGwS8iEjAKfhGRgPn/hiV7DNPRxwoAAAAASUVORK5CYII=\n", | ||
"text/plain": [ | ||
"<Figure size 432x288 with 1 Axes>" | ||
] | ||
}, | ||
"metadata": { | ||
"needs_background": "light" | ||
}, | ||
"output_type": "display_data" | ||
} | ||
], | ||
"source": [ | ||
"R1_range = np.linspace(0.5, 50, 100)\n", | ||
"s = sm.R_to_s(s0=100, R1=R1_range, R2s=0, k_fa=1)\n", | ||
"\n", | ||
"plt.plot(R1_range, s)\n", | ||
"plt.xlabel('R1 (/s)')\n", | ||
"plt.ylabel('signal')" | ||
] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": "Python 3", | ||
"language": "python", | ||
"name": "python3" | ||
}, | ||
"language_info": { | ||
"codemirror_mode": { | ||
"name": "ipython", | ||
"version": 3 | ||
}, | ||
"file_extension": ".py", | ||
"mimetype": "text/x-python", | ||
"name": "python", | ||
"nbconvert_exporter": "python", | ||
"pygments_lexer": "ipython3", | ||
"version": "3.8.8" | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 5 | ||
} |