Skip to content

Instantly share code, notes, and snippets.

@kaizu
Created August 2, 2019 08:01
Show Gist options
  • Save kaizu/2b3ea87dea37e38e56bd3680a682205c to your computer and use it in GitHub Desktop.
Save kaizu/2b3ea87dea37e38e56bd3680a682205c to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib notebook"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"import numpy\n",
"import matplotlib.pylab as plt"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import ecell4.datasource"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['__all__',\n",
" '__builtins__',\n",
" '__cached__',\n",
" '__description',\n",
" '__doc__',\n",
" '__file__',\n",
" '__loader__',\n",
" '__name__',\n",
" '__package__',\n",
" '__path__',\n",
" '__spec__',\n",
" 'description',\n",
" 'print_descriptions',\n",
" 'whereis']"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dir(ecell4.datasource)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"import ecell4.datasource.sbml"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"ds = ecell4.datasource.sbml.BioModelsDataSource(\"BIOMD0000000469\")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('s_0003', 0.1, 'cell')\n",
"('s_0004', 0.1, 'cell')\n",
"('s_0017', 0.1, 'cell')\n",
"('s_0018', 0.1, 'cell')\n",
"('s_0028', 0.1, 'cell')\n",
"('s_0029', 0.1, 'cell')\n",
"('s_0032', 0.1, 'cell')\n",
"('s_0033', 0.1, 'cell')\n",
"('s_0040', 0.1, 'cell')\n",
"('s_0041', 0.1, 'cell')\n",
"('s_0042', 0.1, 'cell')\n",
"('s_0043', 0.1, 'cell')\n",
"('s_0044', 0.1, 'cell')\n",
"('s_0045', 0.1, 'cell')\n",
"('s_0046', 0.1, 'cell')\n",
"('s_0047', 0.1, 'cell')\n",
"('s_0049', 0.1, 'cell')\n",
"('s_0050', 0.1, 'cell')\n",
"('s_0051', 0.1, 'cell')\n",
"('s_0052', 0.1, 'cell')\n",
"('s_0073', 0.1, 'cell')\n",
"('s_0075', 0.1, 'cell')\n",
"('s_0096', 0.1, 'cell')\n",
"('s_0097', 0.1, 'cell')\n",
"('s_0098', 0.1, 'cell')\n",
"('s_0099', 0.1, 'cell')\n",
"('s_0116', 0.1, 'cell')\n",
"('s_0119', 0.1, 'cell')\n",
"('s_0121', 0.1, 'cell')\n",
"('s_0123', 0.1, 'cell')\n",
"('s_0128', 0.1, 'cell')\n",
"('s_0133', 0.1, 'cell')\n",
"('s_0147', 0.1, 'cell')\n",
"('s_0148', 0.1, 'cell')\n",
"('s_0149', 0.1, 'cell')\n",
"('s_0155', 0.1, 'cell')\n",
"('s_0160', 0.1, 'cell')\n",
"('s_0162', 0.1, 'cell')\n",
"('s_0191', 0.1, 'cell')\n",
"('s_0193', 0.1, 'cell')\n",
"('s_0194', 0.1, 'cell')\n",
"('s_0195', 0.1, 'cell')\n",
"('s_0201', 0.1, 'cell')\n",
"('s_0203', 0.1, 'cell')\n",
"('s_0214', 0.1, 'cell')\n",
"('s_0217', 0.1, 'cell')\n",
"('s_0218', 0.1, 'cell')\n",
"('s_0226', 0.1, 'cell')\n",
"('s_0229', 0.1, 'cell')\n",
"('s_0231', 0.1, 'cell')\n",
"('s_0232', 0.1, 'cell')\n",
"('s_0233', 0.1, 'cell')\n",
"('s_0237', 0.1, 'cell')\n",
"('s_0252', 0.1, 'cell')\n",
"('s_0255', 0.1, 'cell')\n",
"('s_0262', 0.1, 'cell')\n",
"('s_0263', 0.1, 'cell')\n",
"('s_0265', 0.1, 'cell')\n",
"('s_0266', 0.1, 'cell')\n",
"('s_0267', 0.1, 'cell')\n",
"('s_0269', 0.1, 'cell')\n",
"('s_0270', 0.1, 'cell')\n",
"('s_0271', 0.1, 'cell')\n",
"('s_0272', 0.1, 'cell')\n",
"('s_0276', 0.1, 'cell')\n",
"('s_0277', 0.1, 'cell')\n",
"('s_0282', 0.1, 'cell')\n",
"('s_0283', 0.1, 'cell')\n",
"('s_0289', 0.1, 'cell')\n",
"('s_0290', 0.1, 'cell')\n",
"('s_0293', 0.1, 'cell')\n",
"('s_0295', 0.1, 'cell')\n",
"('s_0297', 0.1, 'cell')\n",
"('s_0299', 0.1, 'cell')\n",
"('s_0303', 0.1, 'cell')\n",
"('s_0304', 0.1, 'cell')\n",
"('s_0305', 0.1, 'cell')\n",
"('s_0306', 0.1, 'cell')\n",
"('s_0307', 0.1, 'cell')\n",
"('s_0308', 0.1, 'cell')\n",
"('s_0310', 0.1, 'cell')\n",
"('s_0311', 0.1, 'cell')\n",
"('s_0312', 0.1, 'cell')\n",
"('s_0313', 0.1, 'cell')\n",
"('s_0316', 0.1, 'cell')\n",
"('s_0318', 0.1, 'cell')\n",
"('s_0325', 0.1, 'cell')\n",
"('s_0328', 0.1, 'cell')\n",
"('s_0330', 0.1, 'cell')\n",
"('s_0331', 0.1, 'cell')\n",
"('s_0332', 0.1, 'cell')\n",
"('s_0333', 0.1, 'cell')\n",
"('s_0334', 0.1, 'cell')\n",
"('s_0335', 0.1, 'cell')\n",
"('s_0336', 0.1, 'cell')\n",
"('s_0337', 0.1, 'cell')\n",
"('s_0341', 0.1, 'cell')\n",
"('s_0342', 0.1, 'cell')\n",
"('s_0343', 0.1, 'cell')\n",
"('s_0344', 0.1, 'cell')\n",
"('s_0345', 0.1, 'cell')\n",
"('s_0346', 0.1, 'cell')\n",
"('s_0347', 0.1, 'cell')\n",
"('s_0352', 0.1, 'cell')\n",
"('s_0354', 0.1, 'cell')\n",
"('s_0359', 0.1, 'cell')\n",
"('s_0360', 0.1, 'cell')\n",
"('s_0361', 0.1, 'cell')\n",
"('s_0362', 0.1, 'cell')\n",
"('s_0364', 0.1, 'cell')\n",
"('s_0367', 0.1, 'cell')\n",
"('s_0368', 0.1, 'cell')\n",
"('s_0369', 0.1, 'cell')\n",
"('s_0370', 0.1, 'cell')\n",
"('s_0371', 0.1, 'cell')\n",
"('s_0372', 0.1, 'cell')\n",
"('s_0376', 0.1, 'cell')\n",
"('s_0377', 0.1, 'cell')\n",
"('s_0378', 0.1, 'cell')\n",
"('s_0380', 0.1, 'cell')\n",
"('s_0381', 0.1, 'cell')\n",
"('s_0384', 0.1, 'cell')\n",
"('s_0391', 0.1, 'cell')\n",
"('s_0393', 0.1, 'cell')\n",
"('s_0395', 0.1, 'cell')\n",
"('s_0397', 0.1, 'cell')\n",
"('s_0405', 0.1, 'cell')\n",
"('s_0408', 0.1, 'cell')\n",
"('s_0411', 0.1, 'cell')\n",
"('s_0412', 0.1, 'cell')\n",
"('s_0420', 0.1, 'cell')\n",
"('s_0421', 0.1, 'cell')\n",
"('s_0435', 0.1, 'cell')\n",
"('s_0445', 0.1, 'cell')\n",
"('s_0446', 0.1, 'cell')\n",
"('s_0451', 0.1, 'cell')\n",
"('s_0453', 1.0, 'extracellular')\n",
"('s_0454', 0.1, 'cell')\n",
"('s_0457', 0.1, 'cell')\n",
"('s_0467', 0.1, 'cell')\n",
"('s_0470', 0.1, 'cell')\n",
"('s_0474', 0.1, 'cell')\n",
"('s_0476', 0.1, 'cell')\n",
"('s_0479', 0.1, 'cell')\n",
"('s_0480', 0.1, 'cell')\n",
"('s_0481', 0.1, 'cell')\n",
"('s_0488', 0.1, 'cell')\n",
"('s_0493', 0.1, 'cell')\n",
"('s_0497', 0.1, 'cell')\n",
"('s_0499', 1.0, 'extracellular')\n",
"('s_0502', 0.1, 'cell')\n",
"('s_0510', 0.1, 'cell')\n",
"('s_0512', 0.1, 'cell')\n",
"('s_0513', 0.1, 'cell')\n",
"('s_0520', 0.1, 'cell')\n",
"('s_0522', 1.0, 'extracellular')\n",
"('s_0526', 0.1, 'cell')\n",
"('s_0530', 0.1, 'cell')\n",
"('s_0533', 0.1, 'cell')\n",
"('s_0536', 0.1, 'cell')\n",
"('s_0539', 0.1, 'cell')\n",
"('s_0542', 0.1, 'cell')\n",
"('s_0543', 0.1, 'cell')\n",
"('s_0545', 0.0, 'extracellular')\n",
"('s_0546', 0.1, 'cell')\n",
"('s_0548', 1.0, 'extracellular')\n",
"('s_0555', 0.1, 'cell')\n",
"('s_0565', 0.1, 'cell')\n",
"('s_0574', 0.1, 'cell')\n",
"('s_0575', 0.1, 'cell')\n",
"('s_0579', 0.1, 'cell')\n",
"('s_0581', 1.0, 'extracellular')\n",
"('s_0585', 0.1, 'cell')\n",
"('s_0599', 0.1, 'cell')\n",
"('s_0600', 0.1, 'cell')\n",
"('s_0603', 0.1, 'cell')\n",
"('s_0611', 0.1, 'cell')\n",
"('s_0620', 0.1, 'cell')\n",
"('s_0621', 0.1, 'cell')\n",
"('s_0622', 0.1, 'cell')\n",
"('s_0627', 0.1, 'cell')\n",
"('s_0653', 0.1, 'cell')\n",
"('s_0654', 0.1, 'cell')\n",
"('s_0657', 0.1, 'cell')\n",
"('s_0659', 1.0, 'extracellular')\n",
"('s_0663', 0.1, 'cell')\n",
"('s_0671', 0.1, 'cell')\n",
"('s_0675', 0.1, 'cell')\n",
"('s_0704', 0.1, 'cell')\n",
"('s_0721', 0.1, 'cell')\n",
"('s_0726', 0.1, 'cell')\n",
"('s_0731', 0.1, 'cell')\n",
"('s_0732', 0.1, 'cell')\n",
"('s_0737', 0.1, 'cell')\n",
"('s_0738', 0.1, 'cell')\n",
"('s_0754', 0.1, 'cell')\n",
"('s_0755', 0.1, 'cell')\n",
"('s_0760', 0.1, 'cell')\n",
"('s_0765', 0.1, 'cell')\n",
"('s_0766', 0.1, 'cell')\n",
"('s_0767', 0.1, 'cell')\n",
"('s_0768', 0.1, 'cell')\n",
"('s_0772', 0.1, 'cell')\n",
"('s_0779', 0.1, 'cell')\n",
"('s_0783', 0.1, 'cell')\n",
"('s_0785', 0.1, 'cell')\n",
"('s_0789', 0.1, 'cell')\n",
"('s_0790', 0.1, 'cell')\n",
"('s_0795', 0.1, 'cell')\n",
"('s_0802', 0.1, 'cell')\n",
"('s_0805', 0.1, 'cell')\n",
"('s_0807', 0.1, 'cell')\n",
"('s_0810', 0.1, 'cell')\n",
"('s_0812', 0.1, 'cell')\n",
"('s_0813', 0.1, 'cell')\n",
"('s_0826', 0.1, 'cell')\n",
"('s_0838', 0.1, 'cell')\n",
"('s_0840', 1.0, 'extracellular')\n",
"('s_0841', 0.1, 'cell')\n",
"('s_0843', 1.0, 'extracellular')\n",
"('s_0859', 0.1, 'cell')\n",
"('s_0860', 0.1, 'cell')\n",
"('s_0861', 0.1, 'cell')\n",
"('s_0862', 0.1, 'cell')\n",
"('s_0863', 0.1, 'cell')\n",
"('s_0867', 0.1, 'cell')\n",
"('s_0875', 0.1, 'cell')\n",
"('s_0896', 0.1, 'cell')\n",
"('s_0903', 0.1, 'cell')\n",
"('s_0910', 0.1, 'cell')\n",
"('s_0913', 0.1, 'cell')\n",
"('s_0920', 0.1, 'cell')\n",
"('s_0929', 0.1, 'cell')\n",
"('s_0936', 0.1, 'cell')\n",
"('s_0937', 0.1, 'cell')\n",
"('s_0941', 0.1, 'cell')\n",
"('s_0942', 0.1, 'cell')\n",
"('s_0945', 0.1, 'cell')\n",
"('s_0971', 0.1, 'cell')\n",
"('s_0976', 0.1, 'cell')\n",
"('s_0979', 0.1, 'cell')\n",
"('s_0984', 0.1, 'cell')\n",
"('s_0991', 0.1, 'cell')\n",
"('s_0994', 0.1, 'cell')\n",
"('s_0998', 0.1, 'cell')\n",
"('s_1005', 0.1, 'cell')\n",
"('s_1006', 0.1, 'cell')\n",
"('s_1009', 0.1, 'cell')\n",
"('s_1017', 0.1, 'cell')\n",
"('s_1018', 0.1, 'cell')\n",
"('s_1019', 0.1, 'cell')\n",
"('s_1020', 0.1, 'cell')\n",
"('s_1021', 0.1, 'cell')\n",
"('s_1022', 0.1, 'cell')\n",
"('s_1027', 0.1, 'cell')\n",
"('s_1028', 0.1, 'cell')\n",
"('s_1033', 0.1, 'cell')\n",
"('s_1038', 0.1, 'cell')\n",
"('s_1040', 0.1, 'cell')\n",
"('s_1041', 0.1, 'cell')\n",
"('s_1061', 0.1, 'cell')\n",
"('s_1068', 0.1, 'cell')\n",
"('s_1072', 0.1, 'cell')\n",
"('s_1075', 0.1, 'cell')\n",
"('s_1081', 0.1, 'cell')\n",
"('s_1082', 0.1, 'cell')\n",
"('s_1083', 0.1, 'cell')\n",
"('s_1095', 0.1, 'cell')\n",
"('s_1098', 0.1, 'cell')\n",
"('s_1099', 0.1, 'cell')\n",
"('s_1100', 0.1, 'cell')\n",
"('s_1101', 0.1, 'cell')\n",
"('s_1105', 0.1, 'cell')\n",
"('s_1106', 0.1, 'cell')\n",
"('s_1109', 0.1, 'cell')\n",
"('s_1110', 0.1, 'cell')\n",
"('s_1112', 0.1, 'cell')\n",
"('s_1113', 0.1, 'cell')\n",
"('s_1119', 0.1, 'cell')\n",
"('s_1127', 0.1, 'cell')\n",
"('s_1131', 0.1, 'cell')\n",
"('s_1138', 0.1, 'cell')\n",
"('s_1141', 0.1, 'cell')\n",
"('s_1151', 0.1, 'cell')\n",
"('s_1155', 0.1, 'cell')\n",
"('s_1170', 0.1, 'cell')\n",
"('s_1179', 0.1, 'cell')\n",
"('s_1185', 0.1, 'cell')\n",
"('s_1189', 0.1, 'cell')\n",
"('s_1193', 0.1, 'cell')\n",
"('s_1204', 0.1, 'cell')\n",
"('s_1211', 0.1, 'cell')\n",
"('s_1212', 0.1, 'cell')\n",
"('s_1214', 1.0, 'extracellular')\n",
"('s_1216', 0.1, 'cell')\n",
"('s_1217', 0.1, 'cell')\n",
"('s_1218', 0.1, 'cell')\n",
"('s_1239', 0.1, 'cell')\n",
"('s_1240', 0.1, 'cell')\n",
"('s_1242', 0.1, 'cell')\n",
"('s_1248', 0.1, 'cell')\n",
"('s_1250', 0.0, 'extracellular')\n",
"('s_1255', 0.1, 'cell')\n",
"('s_1257', 1.0, 'extracellular')\n",
"('s_1258', 0.1, 'cell')\n",
"('s_1259', 0.1, 'cell')\n",
"('s_1260', 0.1, 'cell')\n",
"('s_1261', 0.1, 'cell')\n",
"('s_1263', 1.0, 'extracellular')\n",
"('s_1264', 0.1, 'cell')\n",
"('s_1265', 0.1, 'cell')\n",
"('s_1274', 0.1, 'cell')\n",
"('s_1277', 0.1, 'cell')\n",
"('s_1278', 0.1, 'cell')\n",
"('s_1287', 0.1, 'cell')\n",
"('s_1302', 0.1, 'cell')\n",
"('s_1303', 0.1, 'cell')\n",
"('s_1304', 0.1, 'cell')\n",
"('s_1312', 0.1, 'cell')\n",
"('s_1315', 0.1, 'cell')\n",
"('s_1316', 0.1, 'cell')\n",
"('s_1318', 0.1, 'cell')\n",
"('s_1321', 0.1, 'cell')\n",
"('s_1322', 0.1, 'cell')\n",
"('s_1327', 0.1, 'cell')\n",
"('s_1329', 0.1, 'cell')\n",
"('s_1331', 1.0, 'extracellular')\n",
"('s_1333', 0.1, 'cell')\n",
"('s_1334', 0.1, 'cell')\n",
"('s_1335', 0.1, 'cell')\n",
"('s_1336', 0.1, 'cell')\n",
"('s_1340', 0.1, 'cell')\n",
"('s_1358', 0.1, 'cell')\n",
"('s_1362', 0.1, 'cell')\n",
"('s_1363', 0.1, 'cell')\n",
"('s_1364', 0.1, 'cell')\n",
"('s_1367', 0.1, 'cell')\n",
"('s_1372', 0.1, 'cell')\n",
"('s_1374', 1.0, 'extracellular')\n",
"('s_1390', 0.1, 'cell')\n",
"('s_1391', 0.1, 'cell')\n",
"('s_1394', 0.1, 'cell')\n",
"('s_1397', 0.1, 'cell')\n",
"('s_1399', 0.1, 'cell')\n",
"('s_1406', 0.1, 'cell')\n",
"('s_1407', 0.1, 'cell')\n",
"('s_1411', 0.1, 'cell')\n",
"('s_1412', 0.1, 'cell')\n",
"('s_1413', 0.1, 'cell')\n",
"('s_1429', 0.1, 'cell')\n",
"('s_1430', 0.1, 'cell')\n",
"('s_1432', 1.0, 'extracellular')\n",
"('s_1435', 0.1, 'cell')\n",
"('s_1437', 0.1, 'cell')\n",
"('s_1476', 0.1, 'cell')\n",
"('s_1477', 0.1, 'cell')\n",
"('s_1484', 0.1, 'cell')\n",
"('s_1491', 0.1, 'cell')\n",
"('s_1492', 0.1, 'cell')\n",
"('s_1493', 0.1, 'cell')\n",
"('s_1494', 0.1, 'cell')\n",
"('s_1496', 1.0, 'extracellular')\n",
"('s_1497', 0.1, 'cell')\n",
"('s_1508', 0.1, 'cell')\n",
"('s_1511', 0.1, 'cell')\n",
"('s_1512', 0.1, 'cell')\n",
"('s_1522', 0.1, 'cell')\n",
"('s_1530', 0.1, 'cell')\n",
"('s_1531', 0.1, 'cell')\n",
"('s_1537', 0.1, 'cell')\n",
"('s_1544', 0.1, 'cell')\n",
"('s_1546', 0.1, 'cell')\n",
"('s_1550', 0.1, 'cell')\n",
"('s_1551', 0.1, 'cell')\n",
"('s_1552', 0.1, 'cell')\n",
"('s_1558', 0.1, 'cell')\n",
"('s_1561', 0.1, 'cell')\n",
"('s_1571', 0.1, 'cell')\n",
"('s_1574', 0.1, 'cell')\n",
"('s_1577', 0.1, 'cell')\n",
"('s_1578', 0.1, 'cell')\n",
"('s_1595', 0.1, 'cell')\n",
"('s_1599', 0.1, 'cell')\n",
"('s_1609', 0.1, 'cell')\n",
"('s_1611', 1.0, 'extracellular')\n",
"('s_1612', 0.1, 'cell')\n",
"('s_1632', 0.1, 'cell')\n",
"('s_1643', 0.1, 'cell')\n",
"('s_1644', 0.1, 'cell')\n",
"('s_1668', 0.1, 'cell')\n",
"('s_1670', 0.1, 'cell')\n",
"('s_1672', 0.1, 'cell')\n",
"('s_1674', 0.1, 'cell')\n",
"('s_1676', 0.1, 'cell')\n",
"('s_1680', 0.1, 'cell')\n",
"('s_1690', 0.1, 'cell')\n",
"('s_1719', 0.1, 'cell')\n",
"('s_1725', 0.1, 'cell')\n",
"('s_1731', 0.1, 'cell')\n",
"('s_1732', 0.1, 'cell')\n",
"('s_1733', 0.1, 'cell')\n",
"('s_1734', 0.1, 'cell')\n",
"('s_1735', 0.1, 'cell')\n",
"('s_1736', 0.1, 'cell')\n",
"('s_1742', 0.1, 'cell')\n",
"('s_1745', 0.1, 'cell')\n",
"('s_1750', 0.1, 'cell')\n",
"('s_1751', 0.1, 'cell')\n",
"('s_1752', 0.1, 'cell')\n",
"('s_1754', 0.1, 'cell')\n",
"('s_1755', 0.1, 'cell')\n",
"('s_1762', 0.1, 'cell')\n",
"('s_1765', 0.1, 'cell')\n",
"('s_1768', 0.1, 'cell')\n",
"('s_1776', 0.1, 'cell')\n",
"('s_1777', 0.1, 'cell')\n",
"('s_1791', 0.1, 'cell')\n",
"('s_1792', 0.1, 'cell')\n",
"('s_1799', 0.1, 'cell')\n",
"('s_1804', 0.1, 'cell')\n",
"('s_1806', 1.0, 'extracellular')\n",
"('s_1807', 0.0, 'extracellular')\n",
"('s_1835', 0.0, 'extracellular')\n",
"('s_2072', 0.0, 'extracellular')\n",
"('s_2093', 0.0, 'extracellular')\n",
"('e_0001', 0.001, 'cell')\n",
"('e_0002', 0.001, 'cell')\n",
"('e_0003', 0.001, 'cell')\n",
"('e_0005', 0.001, 'cell')\n",
"('e_0006', 0.001, 'cell')\n",
"('e_0008', 0.001, 'cell')\n",
"('e_0010', 0.001, 'cell')\n",
"('e_0012', 0.001, 'cell')\n",
"('e_0020', 0.001, 'cell')\n",
"('e_0022', 0.001, 'cell')\n",
"('e_0030', 0.001, 'cell')\n",
"('e_0031', 0.001, 'cell')\n",
"('e_0032', 0.001, 'cell')\n",
"('e_0033', 0.001, 'cell')\n",
"('e_0034', 0.001, 'cell')\n",
"('e_0035', 0.001, 'cell')\n",
"('e_0036', 0.001, 'cell')\n",
"('e_0037', 0.001, 'cell')\n",
"('e_0038', 0.001, 'cell')\n",
"('e_0039', 0.001, 'cell')\n",
"('e_0040', 0.001, 'cell')\n",
"('e_0041', 0.001, 'cell')\n",
"('e_0042', 0.001, 'cell')\n",
"('e_0043', 0.001, 'cell')\n",
"('e_0044', 0.001, 'cell')\n",
"('e_0045', 0.001, 'cell')\n",
"('e_0046', 0.001, 'cell')\n",
"('e_0048', 0.001, 'cell')\n",
"('e_0051', 0.001, 'cell')\n",
"('e_0052', 0.001, 'cell')\n",
"('e_0053', 0.001, 'cell')\n",
"('e_0054', 0.001, 'cell')\n",
"('e_0060', 0.001, 'cell')\n",
"('e_0061', 0.001, 'cell')\n",
"('e_0062', 0.001, 'cell')\n",
"('e_0063', 0.001, 'cell')\n",
"('e_0064', 0.001, 'cell')\n",
"('e_0065', 0.001, 'cell')\n",
"('e_0071', 0.001, 'cell')\n",
"('e_0074', 0.001, 'cell')\n",
"('e_0076', 0.001, 'cell')\n",
"('e_0077', 0.001, 'cell')\n",
"('e_0078', 0.001, 'cell')\n",
"('e_0079', 0.001, 'cell')\n",
"('e_0080', 0.001, 'cell')\n",
"('e_0081', 0.001, 'cell')\n",
"('e_0082', 0.001, 'cell')\n",
"('e_0083', 0.001, 'cell')\n",
"('e_0084', 0.001, 'cell')\n",
"('e_0085', 0.001, 'cell')\n",
"('e_0094', 0.001, 'cell')\n",
"('e_0099', 0.001, 'cell')\n",
"('e_0100', 0.001, 'cell')\n",
"('e_0103', 0.001, 'cell')\n",
"('e_0110', 0.001, 'cell')\n",
"('e_0116', 0.001, 'cell')\n",
"('e_0125', 0.001, 'cell')\n",
"('e_0134', 0.001, 'cell')\n",
"('e_0135', 0.001, 'cell')\n",
"('e_0137', 0.001, 'cell')\n",
"('e_0138', 0.001, 'cell')\n",
"('e_0139', 0.001, 'cell')\n",
"('e_0144', 0.001, 'cell')\n",
"('e_0145', 0.001, 'cell')\n",
"('e_0146', 0.001, 'cell')\n",
"('e_0149', 0.001, 'cell')\n",
"('e_0150', 0.001, 'cell')\n",
"('e_0151', 0.001, 'cell')\n",
"('e_0152', 0.001, 'cell')\n",
"('e_0162', 0.001, 'cell')\n",
"('e_0167', 0.001, 'cell')\n",
"('e_0168', 0.001, 'cell')\n",
"('e_0175', 0.001, 'cell')\n",
"('e_0177', 0.001, 'cell')\n",
"('e_0183', 0.001, 'cell')\n",
"('e_0184', 0.001, 'cell')\n",
"('e_0185', 0.001, 'cell')\n",
"('e_0186', 0.001, 'cell')\n",
"('e_0188', 0.001, 'cell')\n",
"('e_0221', 0.001, 'cell')\n",
"('e_0223', 0.001, 'cell')\n",
"('e_0225', 0.001, 'cell')\n",
"('e_0238', 0.001, 'cell')\n",
"('e_0246', 0.001, 'cell')\n",
"('e_0253', 0.001, 'cell')\n",
"('e_0254', 0.001, 'cell')\n",
"('e_0260', 0.001, 'cell')\n",
"('e_0263', 0.001, 'cell')\n",
"('e_0264', 0.001, 'cell')\n",
"('e_0273', 0.001, 'cell')\n",
"('e_0274', 0.001, 'cell')\n",
"('e_0275', 0.001, 'cell')\n",
"('e_0276', 0.001, 'cell')\n",
"('e_0277', 0.001, 'cell')\n",
"('e_0278', 0.001, 'cell')\n",
"('e_0279', 0.001, 'cell')\n",
"('e_0280', 0.001, 'cell')\n",
"('e_0281', 0.001, 'cell')\n",
"('e_0282', 0.001, 'cell')\n",
"('e_0291', 0.001, 'cell')\n",
"('e_0292', 0.001, 'cell')\n",
"('e_0300', 0.001, 'cell')\n",
"('e_0313', 0.001, 'cell')\n",
"('e_0318', 0.001, 'cell')\n",
"('e_0323', 0.001, 'cell')\n",
"('e_0324', 0.001, 'cell')\n",
"('e_0326', 0.001, 'cell')\n",
"('e_0327', 0.001, 'cell')\n",
"('e_0328', 0.001, 'cell')\n",
"('e_0330', 0.001, 'cell')\n",
"('e_0331', 0.001, 'cell')\n",
"('e_0332', 0.001, 'cell')\n",
"('e_0342', 0.001, 'cell')\n",
"('e_0368', 0.001, 'cell')\n",
"('e_0372', 0.001, 'cell')\n",
"('e_0373', 0.001, 'cell')\n",
"('e_0374', 0.001, 'cell')\n",
"('e_0375', 0.001, 'cell')\n",
"('e_0376', 0.001, 'cell')\n",
"('e_0377', 0.001, 'cell')\n",
"('e_0378', 0.001, 'cell')\n",
"('e_0389', 0.001, 'cell')\n",
"('e_0391', 0.001, 'cell')\n",
"('e_0395', 0.001, 'cell')\n",
"('e_0403', 0.001, 'cell')\n",
"('e_0404', 0.001, 'cell')\n",
"('e_0405', 0.001, 'cell')\n",
"('e_0406', 0.001, 'cell')\n",
"('e_0416', 0.001, 'cell')\n",
"('e_0425', 0.001, 'cell')\n",
"('e_0426', 0.001, 'cell')\n",
"('e_0427', 0.001, 'cell')\n",
"('e_0428', 0.001, 'cell')\n",
"('e_0429', 0.001, 'cell')\n",
"('e_0431', 0.001, 'cell')\n",
"('e_0432', 0.001, 'cell')\n",
"('e_0433', 0.001, 'cell')\n",
"('e_0435', 0.001, 'cell')\n",
"('e_0436', 0.001, 'cell')\n",
"('e_0439', 0.001, 'cell')\n",
"('e_0451', 0.001, 'cell')\n",
"('e_0466', 0.001, 'cell')\n",
"('e_0514', 0.001, 'cell')\n",
"('e_0515', 0.001, 'cell')\n",
"('e_0516', 0.001, 'cell')\n",
"('e_0519', 0.001, 'cell')\n",
"('e_0531', 0.001, 'cell')\n",
"('e_0540', 0.001, 'cell')\n",
"('e_0541', 0.001, 'cell')\n",
"('e_0544', 0.001, 'cell')\n",
"('e_0554', 0.001, 'cell')\n",
"('e_0559', 0.001, 'cell')\n",
"('e_0561', 0.001, 'cell')\n",
"('e_0567', 0.001, 'cell')\n",
"('e_0572', 0.001, 'cell')\n",
"('e_0577', 0.001, 'cell')\n",
"('e_0578', 0.001, 'cell')\n",
"('e_0579', 0.001, 'cell')\n",
"('e_0580', 0.001, 'cell')\n",
"('e_0586', 0.001, 'cell')\n",
"('e_0605', 0.001, 'cell')\n",
"('e_0606', 0.001, 'cell')\n",
"('e_0607', 0.001, 'cell')\n",
"('e_0608', 0.001, 'cell')\n",
"('e_0609', 0.001, 'cell')\n",
"('e_0610', 0.001, 'cell')\n",
"('e_0611', 0.001, 'cell')\n",
"('e_0612', 0.001, 'cell')\n",
"('e_0641', 0.001, 'cell')\n",
"('e_0657', 0.001, 'cell')\n",
"('e_0682', 0.001, 'cell')\n",
"('e_0691', 0.001, 'cell')\n",
"('e_0717', 0.001, 'cell')\n",
"('e_0719', 0.001, 'cell')\n",
"('e_0720', 0.001, 'cell')\n",
"('e_0727', 0.001, 'cell')\n",
"('e_0728', 0.001, 'cell')\n",
"('e_0729', 0.001, 'cell')\n",
"('e_0730', 0.001, 'cell')\n",
"('e_0731', 0.001, 'cell')\n",
"('e_0732', 0.001, 'cell')\n",
"('e_0734', 0.001, 'cell')\n",
"('e_0735', 0.001, 'cell')\n",
"('e_0736', 0.001, 'cell')\n",
"('e_0742', 0.001, 'cell')\n",
"('e_0743', 0.001, 'cell')\n",
"('e_0746', 0.001, 'cell')\n",
"('e_0750', 0.001, 'cell')\n",
"('e_0757', 0.001, 'cell')\n",
"('e_0765', 0.001, 'cell')\n",
"('e_0768', 0.001, 'cell')\n",
"('e_0770', 0.001, 'cell')\n",
"('e_0771', 0.001, 'cell')\n",
"('e_0774', 0.001, 'cell')\n",
"('e_0775', 0.001, 'cell')\n",
"('e_0776', 0.001, 'cell')\n",
"('e_0791', 0.001, 'cell')\n",
"('e_0793', 0.001, 'cell')\n",
"('e_0795', 0.001, 'cell')\n",
"('e_0796', 0.001, 'cell')\n",
"('e_0798', 0.001, 'cell')\n",
"('e_0799', 0.001, 'cell')\n",
"('e_0803', 0.001, 'cell')\n",
"('e_0804', 0.001, 'cell')\n",
"('e_0805', 0.001, 'cell')\n",
"('e_0813', 0.001, 'cell')\n",
"('e_0815', 0.001, 'cell')\n",
"('e_0818', 0.001, 'cell')\n",
"('e_0819', 0.001, 'cell')\n",
"('e_0821', 0.001, 'cell')\n",
"('e_0822', 0.001, 'cell')\n",
"('e_0823', 0.001, 'cell')\n",
"('e_0825', 0.001, 'cell')\n",
"('e_0826', 0.001, 'cell')\n",
"('e_0827', 0.001, 'cell')\n",
"('e_0828', 0.001, 'cell')\n",
"('e_0839', 0.001, 'cell')\n",
"('e_0848', 0.001, 'cell')\n",
"('e_0866', 0.001, 'cell')\n",
"('e_0867', 0.001, 'cell')\n",
"('e_0868', 0.001, 'cell')\n",
"('e_0869', 0.001, 'cell')\n",
"('e_0870', 0.001, 'cell')\n",
"('e_0871', 0.001, 'cell')\n",
"('e_0872', 0.001, 'cell')\n",
"('e_0873', 0.001, 'cell')\n",
"('e_0875', 0.001, 'cell')\n",
"('e_0876', 0.001, 'cell')\n",
"('e_0893', 0.001, 'cell')\n",
"('e_0894', 0.001, 'cell')\n",
"('e_0896', 0.001, 'cell')\n",
"('e_0897', 0.001, 'cell')\n",
"('e_0903', 0.001, 'cell')\n",
"('e_0911', 0.001, 'cell')\n",
"('e_0918', 0.001, 'cell')\n",
"('e_0919', 0.001, 'cell')\n",
"('e_0925', 0.001, 'cell')\n",
"('e_0926', 0.001, 'cell')\n",
"('e_0928', 0.001, 'cell')\n",
"('e_0931', 0.001, 'cell')\n",
"('e_0941', 0.001, 'cell')\n",
"('e_0951', 0.001, 'cell')\n",
"('e_0953', 0.001, 'cell')\n",
"('e_0960', 0.001, 'cell')\n",
"('e_0962', 0.001, 'cell')\n",
"('e_0964', 0.001, 'cell')\n",
"('e_0974', 0.001, 'cell')\n",
"('e_0975', 0.001, 'cell')\n",
"('e_0977', 0.001, 'cell')\n",
"('e_0978', 0.001, 'cell')\n",
"('e_0979', 0.001, 'cell')\n",
"('e_0986', 0.001, 'cell')\n",
"('e_0987', 0.001, 'cell')\n",
"('e_0988', 0.001, 'cell')\n",
"('e_0990', 0.001, 'cell')\n",
"('e_0991', 0.001, 'cell')\n",
"('e_0993', 0.001, 'cell')\n",
"('e_0994', 0.001, 'cell')\n",
"('e_1004', 0.001, 'cell')\n",
"('e_1005', 0.001, 'cell')\n",
"('e_1006', 0.001, 'cell')\n",
"('e_1010', 0.001, 'cell')\n",
"('e_1014', 0.001, 'cell')\n",
"('e_1015', 0.001, 'cell')\n",
"('e_1019', 0.001, 'cell')\n",
"('e_1023', 0.001, 'cell')\n",
"('e_1026', 0.001, 'cell')\n",
"('e_1027', 0.001, 'cell')\n",
"('e_1028', 0.001, 'cell')\n",
"('e_1029', 0.001, 'cell')\n",
"('e_1034', 0.001, 'cell')\n",
"('e_1045', 0.001, 'cell')\n",
"('e_1086', 0.001, 'cell')\n",
"('e_1105', 0.001, 'cell')\n",
"('e_1106', 0.001, 'cell')\n",
"('e_1108', 0.001, 'cell')\n",
"('e_1109', 0.001, 'cell')\n",
"('e_1110', 0.001, 'cell')\n",
"('e_1125', 0.001, 'cell')\n",
"('e_1126', 0.001, 'cell')\n",
"('e_1127', 0.001, 'cell')\n",
"('e_1128', 0.001, 'cell')\n",
"('e_1129', 0.001, 'cell')\n",
"('e_1130', 0.001, 'cell')\n",
"('e_1136', 0.001, 'cell')\n",
"('e_1137', 0.001, 'cell')\n",
"('e_1141', 0.001, 'cell')\n",
"('e_1149', 0.001, 'cell')\n",
"('e_1150', 0.001, 'cell')\n",
"('e_1160', 0.001, 'cell')\n",
"('e_1167', 0.001, 'cell')\n",
"('e_1168', 0.001, 'cell')\n",
"('e_1169', 0.001, 'cell')\n",
"('e_1170', 0.001, 'cell')\n",
"('e_1172', 0.001, 'cell')\n",
"('e_1184', 0.001, 'cell')\n",
"('e_1185', 0.001, 'cell')\n",
"('e_1186', 0.001, 'cell')\n",
"('e_1188', 0.001, 'cell')\n",
"('e_1189', 0.001, 'cell')\n",
"('e_1196', 0.001, 'cell')\n",
"('e_1200', 0.001, 'cell')\n",
"('e_1201', 0.001, 'cell')\n",
"('e_1202', 0.001, 'cell')\n",
"('e_1203', 0.001, 'cell')\n",
"('e_1205', 0.001, 'cell')\n",
"('e_1206', 0.001, 'cell')\n",
"('e_1207', 0.001, 'cell')\n",
"('e_1210', 0.001, 'cell')\n",
"('e_1226', 0.001, 'cell')\n",
"('e_1227', 0.001, 'cell')\n",
"('e_1232', 0.001, 'cell')\n",
"('e_1233', 0.001, 'cell')\n",
"('e_1234', 0.001, 'cell')\n",
"('e_1238', 0.001, 'cell')\n",
"('e_1239', 0.001, 'cell')\n",
"('e_1240', 0.001, 'cell')\n",
"('e_1241', 0.001, 'cell')\n",
"('e_1242', 0.001, 'cell')\n",
"('e_1243', 0.001, 'cell')\n",
"('e_1244', 0.001, 'cell')\n",
"('e_1247', 0.001, 'cell')\n",
"('e_1248', 0.001, 'cell')\n",
"('e_1249', 0.001, 'cell')\n",
"('e_1250', 0.001, 'cell')\n",
"('e_1251', 0.001, 'cell')\n",
"('e_1252', 0.001, 'cell')\n",
"('e_1253', 0.001, 'cell')\n",
"('e_1254', 0.001, 'cell')\n",
"('e_1256', 0.001, 'cell')\n",
"('e_1257', 0.001, 'cell')\n",
"('e_1258', 0.001, 'cell')\n",
"('e_1259', 0.001, 'cell')\n",
"('e_1262', 0.001, 'cell')\n",
"('e_1263', 0.001, 'cell')\n",
"('e_1264', 0.001, 'cell')\n",
"('e_1271', 0.001, 'cell')\n",
"('e_1272', 0.001, 'cell')\n",
"('e_1273', 0.001, 'cell')\n",
"('e_1275', 0.001, 'cell')\n",
"('e_1276', 0.001, 'cell')\n",
"('e_1277', 0.001, 'cell')\n",
"('e_1291', 0.001, 'cell')\n",
"('e_1298', 0.001, 'cell')\n",
"('e_1312', 0.001, 'cell')\n",
"('e_1313', 0.001, 'cell')\n",
"('e_1315', 0.001, 'cell')\n",
"('e_1326', 0.001, 'cell')\n",
"('e_1334', 0.001, 'cell')\n",
"('e_1335', 0.001, 'cell')\n",
"('e_1339', 0.001, 'cell')\n",
"('e_1340', 0.001, 'cell')\n",
"('e_1341', 0.001, 'cell')\n",
"('e_1355', 0.001, 'cell')\n",
"('e_1366', 0.001, 'cell')\n",
"('e_1367', 0.001, 'cell')\n",
"('e_1369', 0.001, 'cell')\n",
"('e_1373', 0.001, 'cell')\n",
"('e_1374', 0.001, 'cell')\n",
"('e_1376', 0.001, 'cell')\n",
"('e_1377', 0.001, 'cell')\n"
]
}
],
"source": [
"for x in ds.initial_concentration():\n",
" print(x)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'zero_flux': 0.0, 'ic0003': 0.1, 'ic0004': 0.1, 'ic0017': 0.1, 'ic0018': 0.1, 'ic0028': 0.1, 'ic0029': 0.1, 'ic0032': 0.1, 'ic0033': 0.1, 'ic0040': 0.1, 'ic0041': 0.1, 'ic0042': 0.1, 'ic0043': 0.1, 'ic0044': 0.1, 'ic0045': 0.1, 'ic0046': 0.1, 'ic0047': 0.1, 'ic0049': 0.1, 'ic0050': 0.1, 'ic0051': 0.1, 'ic0052': 0.1, 'ic0073': 0.1, 'ic0075': 0.1, 'ic0096': 0.1, 'ic0097': 0.1, 'ic0098': 0.1, 'ic0099': 0.1, 'ic0116': 0.1, 'ic0119': 0.1, 'ic0121': 0.1, 'ic0123': 0.1, 'ic0128': 0.1, 'ic0133': 0.1, 'ic0147': 0.1, 'ic0148': 0.1, 'ic0149': 0.1, 'ic0155': 0.1, 'ic0160': 0.1, 'ic0162': 0.1, 'ic0191': 0.1, 'ic0193': 0.1, 'ic0194': 0.1, 'ic0195': 0.1, 'ic0201': 0.1, 'ic0203': 0.1, 'ic0214': 0.1, 'ic0217': 0.1, 'ic0218': 0.1, 'ic0226': 0.1, 'ic0229': 0.1, 'ic0231': 0.1, 'ic0232': 0.1, 'ic0233': 0.1, 'ic0237': 0.1, 'ic0252': 0.1, 'ic0255': 0.1, 'ic0262': 0.1, 'ic0263': 0.1, 'ic0265': 0.1, 'ic0266': 0.1, 'ic0267': 0.1, 'ic0269': 0.1, 'ic0270': 0.1, 'ic0271': 0.1, 'ic0272': 0.1, 'ic0276': 0.1, 'ic0277': 0.1, 'ic0282': 0.1, 'ic0283': 0.1, 'ic0289': 0.1, 'ic0290': 0.1, 'ic0293': 0.1, 'ic0295': 0.1, 'ic0297': 0.1, 'ic0299': 0.1, 'ic0303': 0.1, 'ic0304': 0.1, 'ic0305': 0.1, 'ic0306': 0.1, 'ic0307': 0.1, 'ic0308': 0.1, 'ic0310': 0.1, 'ic0311': 0.1, 'ic0312': 0.1, 'ic0313': 0.1, 'ic0316': 0.1, 'ic0318': 0.1, 'ic0325': 0.1, 'ic0328': 0.1, 'ic0330': 0.1, 'ic0331': 0.1, 'ic0332': 0.1, 'ic0333': 0.1, 'ic0334': 0.1, 'ic0335': 0.1, 'ic0336': 0.1, 'ic0337': 0.1, 'ic0341': 0.1, 'ic0342': 0.1, 'ic0343': 0.1, 'ic0344': 0.1, 'ic0345': 0.1, 'ic0346': 0.1, 'ic0347': 0.1, 'ic0352': 0.1, 'ic0354': 0.1, 'ic0359': 0.1, 'ic0360': 0.1, 'ic0361': 0.1, 'ic0362': 0.1, 'ic0364': 0.1, 'ic0367': 0.1, 'ic0368': 0.1, 'ic0369': 0.1, 'ic0370': 0.1, 'ic0371': 0.1, 'ic0372': 0.1, 'ic0376': 0.1, 'ic0377': 0.1, 'ic0378': 0.1, 'ic0380': 0.1, 'ic0381': 0.1, 'ic0384': 0.1, 'ic0391': 0.1, 'ic0393': 0.1, 'ic0395': 0.1, 'ic0397': 0.1, 'ic0405': 0.1, 'ic0408': 0.1, 'ic0411': 0.1, 'ic0412': 0.1, 'ic0420': 0.1, 'ic0421': 0.1, 'ic0435': 0.1, 'ic0445': 0.1, 'ic0446': 0.1, 'ic0451': 0.1, 'ic0453': 1.0, 'ic0454': 0.1, 'ic0457': 0.1, 'ic0467': 0.1, 'ic0470': 0.1, 'ic0474': 0.1, 'ic0476': 0.1, 'ic0479': 0.1, 'ic0480': 0.1, 'ic0481': 0.1, 'ic0488': 0.1, 'ic0493': 0.1, 'ic0497': 0.1, 'ic0499': 1.0, 'ic0502': 0.1, 'ic0510': 0.1, 'ic0512': 0.1, 'ic0513': 0.1, 'ic0520': 0.1, 'ic0522': 1.0, 'ic0526': 0.1, 'ic0530': 0.1, 'ic0533': 0.1, 'ic0536': 0.1, 'ic0539': 0.1, 'ic0542': 0.1, 'ic0543': 0.1, 'ic0546': 0.1, 'ic0548': 1.0, 'ic0555': 0.1, 'ic0565': 0.1, 'ic0574': 0.1, 'ic0575': 0.1, 'ic0579': 0.1, 'ic0581': 1.0, 'ic0585': 0.1, 'ic0599': 0.1, 'ic0600': 0.1, 'ic0603': 0.1, 'ic0611': 0.1, 'ic0620': 0.1, 'ic0621': 0.1, 'ic0622': 0.1, 'ic0627': 0.1, 'ic0653': 0.1, 'ic0654': 0.1, 'ic0657': 0.1, 'ic0659': 1.0, 'ic0663': 0.1, 'ic0671': 0.1, 'ic0675': 0.1, 'ic0704': 0.1, 'ic0721': 0.1, 'ic0726': 0.1, 'ic0731': 0.1, 'ic0732': 0.1, 'ic0737': 0.1, 'ic0738': 0.1, 'ic0754': 0.1, 'ic0755': 0.1, 'ic0760': 0.1, 'ic0765': 0.1, 'ic0766': 0.1, 'ic0767': 0.1, 'ic0768': 0.1, 'ic0772': 0.1, 'ic0779': 0.1, 'ic0783': 0.1, 'ic0785': 0.1, 'ic0789': 0.1, 'ic0790': 0.1, 'ic0795': 0.1, 'ic0802': 0.1, 'ic0805': 0.1, 'ic0807': 0.1, 'ic0810': 0.1, 'ic0812': 0.1, 'ic0813': 0.1, 'ic0826': 0.1, 'ic0838': 0.1, 'ic0840': 1.0, 'ic0841': 0.1, 'ic0843': 1.0, 'ic0859': 0.1, 'ic0860': 0.1, 'ic0861': 0.1, 'ic0862': 0.1, 'ic0863': 0.1, 'ic0867': 0.1, 'ic0875': 0.1, 'ic0896': 0.1, 'ic0903': 0.1, 'ic0910': 0.1, 'ic0913': 0.1, 'ic0920': 0.1, 'ic0929': 0.1, 'ic0936': 0.1, 'ic0937': 0.1, 'ic0941': 0.1, 'ic0942': 0.1, 'ic0945': 0.1, 'ic0971': 0.1, 'ic0976': 0.1, 'ic0979': 0.1, 'ic0984': 0.1, 'ic0991': 0.1, 'ic0994': 0.1, 'ic0998': 0.1, 'ic1005': 0.1, 'ic1006': 0.1, 'ic1009': 0.1, 'ic1017': 0.1, 'ic1018': 0.1, 'ic1019': 0.1, 'ic1020': 0.1, 'ic1021': 0.1, 'ic1022': 0.1, 'ic1027': 0.1, 'ic1028': 0.1, 'ic1033': 0.1, 'ic1038': 0.1, 'ic1040': 0.1, 'ic1041': 0.1, 'ic1061': 0.1, 'ic1068': 0.1, 'ic1072': 0.1, 'ic1075': 0.1, 'ic1081': 0.1, 'ic1082': 0.1, 'ic1083': 0.1, 'ic1095': 0.1, 'ic1098': 0.1, 'ic1099': 0.1, 'ic1100': 0.1, 'ic1101': 0.1, 'ic1105': 0.1, 'ic1106': 0.1, 'ic1109': 0.1, 'ic1110': 0.1, 'ic1112': 0.1, 'ic1113': 0.1, 'ic1119': 0.1, 'ic1127': 0.1, 'ic1131': 0.1, 'ic1138': 0.1, 'ic1141': 0.1, 'ic1151': 0.1, 'ic1155': 0.1, 'ic1170': 0.1, 'ic1179': 0.1, 'ic1185': 0.1, 'ic1189': 0.1, 'ic1193': 0.1, 'ic1204': 0.1, 'ic1211': 0.1, 'ic1212': 0.1, 'ic1214': 1.0, 'ic1216': 0.1, 'ic1217': 0.1, 'ic1218': 0.1, 'ic1239': 0.1, 'ic1240': 0.1, 'ic1242': 0.1, 'ic1248': 0.1, 'ic1255': 0.1, 'ic1257': 1.0, 'ic1258': 0.1, 'ic1259': 0.1, 'ic1260': 0.1, 'ic1261': 0.1, 'ic1263': 1.0, 'ic1264': 0.1, 'ic1265': 0.1, 'ic1274': 0.1, 'ic1277': 0.1, 'ic1278': 0.1, 'ic1287': 0.1, 'ic1302': 0.1, 'ic1303': 0.1, 'ic1304': 0.1, 'ic1312': 0.1, 'ic1315': 0.1, 'ic1316': 0.1, 'ic1318': 0.1, 'ic1321': 0.1, 'ic1322': 0.1, 'ic1327': 0.1, 'ic1329': 0.1, 'ic1331': 1.0, 'ic1333': 0.1, 'ic1334': 0.1, 'ic1335': 0.1, 'ic1336': 0.1, 'ic1340': 0.1, 'ic1358': 0.1, 'ic1362': 0.1, 'ic1363': 0.1, 'ic1364': 0.1, 'ic1367': 0.1, 'ic1372': 0.1, 'ic1374': 1.0, 'ic1390': 0.1, 'ic1391': 0.1, 'ic1394': 0.1, 'ic1397': 0.1, 'ic1399': 0.1, 'ic1406': 0.1, 'ic1407': 0.1, 'ic1411': 0.1, 'ic1412': 0.1, 'ic1413': 0.1, 'ic1429': 0.1, 'ic1430': 0.1, 'ic1432': 1.0, 'ic1435': 0.1, 'ic1437': 0.1, 'ic1476': 0.1, 'ic1477': 0.1, 'ic1484': 0.1, 'ic1491': 0.1, 'ic1492': 0.1, 'ic1493': 0.1, 'ic1494': 0.1, 'ic1496': 1.0, 'ic1497': 0.1, 'ic1508': 0.1, 'ic1511': 0.1, 'ic1512': 0.1, 'ic1522': 0.1, 'ic1530': 0.1, 'ic1531': 0.1, 'ic1537': 0.1, 'ic1544': 0.1, 'ic1546': 0.1, 'ic1550': 0.1, 'ic1551': 0.1, 'ic1552': 0.1, 'ic1558': 0.1, 'ic1561': 0.1, 'ic1571': 0.1, 'ic1574': 0.1, 'ic1577': 0.1, 'ic1578': 0.1, 'ic1595': 0.1, 'ic1599': 0.1, 'ic1609': 0.1, 'ic1611': 1.0, 'ic1612': 0.1, 'ic1632': 0.1, 'ic1643': 0.1, 'ic1644': 0.1, 'ic1668': 0.1, 'ic1670': 0.1, 'ic1672': 0.1, 'ic1674': 0.1, 'ic1676': 0.1, 'ic1680': 0.1, 'ic1690': 0.1, 'ic1719': 0.1, 'ic1725': 0.1, 'ic1731': 0.1, 'ic1732': 0.1, 'ic1733': 0.1, 'ic1734': 0.1, 'ic1735': 0.1, 'ic1736': 0.1, 'ic1742': 0.1, 'ic1745': 0.1, 'ic1750': 0.1, 'ic1751': 0.1, 'ic1752': 0.1, 'ic1754': 0.1, 'ic1755': 0.1, 'ic1762': 0.1, 'ic1765': 0.1, 'ic1768': 0.1, 'ic1776': 0.1, 'ic1777': 0.1, 'ic1791': 0.1, 'ic1792': 0.1, 'ic1799': 0.1, 'ic1804': 0.1, 'ic1806': 1.0, 'cell': 1.0, 'extracellular': 1.0}\n"
]
}
],
"source": [
"params = dict(ds.parameters())\n",
"params.update(ds.compartments())\n",
"print(params)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('s_0453',\n",
" 's_0499',\n",
" 's_0522',\n",
" 's_0545',\n",
" 's_0548',\n",
" 's_0581',\n",
" 's_0659',\n",
" 's_0840',\n",
" 's_0843',\n",
" 's_1214',\n",
" 's_1250',\n",
" 's_1257',\n",
" 's_1263',\n",
" 's_1331',\n",
" 's_1374',\n",
" 's_1432',\n",
" 's_1496',\n",
" 's_1611',\n",
" 's_1806',\n",
" 's_1807',\n",
" 's_1835',\n",
" 's_2072',\n",
" 's_2093',\n",
" 'e_0001',\n",
" 'e_0002',\n",
" 'e_0003',\n",
" 'e_0005',\n",
" 'e_0006',\n",
" 'e_0008',\n",
" 'e_0010',\n",
" 'e_0012',\n",
" 'e_0020',\n",
" 'e_0022',\n",
" 'e_0030',\n",
" 'e_0031',\n",
" 'e_0032',\n",
" 'e_0033',\n",
" 'e_0034',\n",
" 'e_0035',\n",
" 'e_0036',\n",
" 'e_0037',\n",
" 'e_0038',\n",
" 'e_0039',\n",
" 'e_0040',\n",
" 'e_0041',\n",
" 'e_0042',\n",
" 'e_0043',\n",
" 'e_0044',\n",
" 'e_0045',\n",
" 'e_0046',\n",
" 'e_0048',\n",
" 'e_0051',\n",
" 'e_0052',\n",
" 'e_0053',\n",
" 'e_0054',\n",
" 'e_0060',\n",
" 'e_0061',\n",
" 'e_0062',\n",
" 'e_0063',\n",
" 'e_0064',\n",
" 'e_0065',\n",
" 'e_0071',\n",
" 'e_0074',\n",
" 'e_0076',\n",
" 'e_0077',\n",
" 'e_0078',\n",
" 'e_0079',\n",
" 'e_0080',\n",
" 'e_0081',\n",
" 'e_0082',\n",
" 'e_0083',\n",
" 'e_0084',\n",
" 'e_0085',\n",
" 'e_0094',\n",
" 'e_0099',\n",
" 'e_0100',\n",
" 'e_0103',\n",
" 'e_0110',\n",
" 'e_0116',\n",
" 'e_0125',\n",
" 'e_0134',\n",
" 'e_0135',\n",
" 'e_0137',\n",
" 'e_0138',\n",
" 'e_0139',\n",
" 'e_0144',\n",
" 'e_0145',\n",
" 'e_0146',\n",
" 'e_0149',\n",
" 'e_0150',\n",
" 'e_0151',\n",
" 'e_0152',\n",
" 'e_0162',\n",
" 'e_0167',\n",
" 'e_0168',\n",
" 'e_0175',\n",
" 'e_0177',\n",
" 'e_0183',\n",
" 'e_0184',\n",
" 'e_0185',\n",
" 'e_0186',\n",
" 'e_0188',\n",
" 'e_0221',\n",
" 'e_0223',\n",
" 'e_0225',\n",
" 'e_0238',\n",
" 'e_0246',\n",
" 'e_0253',\n",
" 'e_0254',\n",
" 'e_0260',\n",
" 'e_0263',\n",
" 'e_0264',\n",
" 'e_0273',\n",
" 'e_0274',\n",
" 'e_0275',\n",
" 'e_0276',\n",
" 'e_0277',\n",
" 'e_0278',\n",
" 'e_0279',\n",
" 'e_0280',\n",
" 'e_0281',\n",
" 'e_0282',\n",
" 'e_0291',\n",
" 'e_0292',\n",
" 'e_0300',\n",
" 'e_0313',\n",
" 'e_0318',\n",
" 'e_0323',\n",
" 'e_0324',\n",
" 'e_0326',\n",
" 'e_0327',\n",
" 'e_0328',\n",
" 'e_0330',\n",
" 'e_0331',\n",
" 'e_0332',\n",
" 'e_0342',\n",
" 'e_0368',\n",
" 'e_0372',\n",
" 'e_0373',\n",
" 'e_0374',\n",
" 'e_0375',\n",
" 'e_0376',\n",
" 'e_0377',\n",
" 'e_0378',\n",
" 'e_0389',\n",
" 'e_0391',\n",
" 'e_0395',\n",
" 'e_0403',\n",
" 'e_0404',\n",
" 'e_0405',\n",
" 'e_0406',\n",
" 'e_0416',\n",
" 'e_0425',\n",
" 'e_0426',\n",
" 'e_0427',\n",
" 'e_0428',\n",
" 'e_0429',\n",
" 'e_0431',\n",
" 'e_0432',\n",
" 'e_0433',\n",
" 'e_0435',\n",
" 'e_0436',\n",
" 'e_0439',\n",
" 'e_0451',\n",
" 'e_0466',\n",
" 'e_0514',\n",
" 'e_0515',\n",
" 'e_0516',\n",
" 'e_0519',\n",
" 'e_0531',\n",
" 'e_0540',\n",
" 'e_0541',\n",
" 'e_0544',\n",
" 'e_0554',\n",
" 'e_0559',\n",
" 'e_0561',\n",
" 'e_0567',\n",
" 'e_0572',\n",
" 'e_0577',\n",
" 'e_0578',\n",
" 'e_0579',\n",
" 'e_0580',\n",
" 'e_0586',\n",
" 'e_0605',\n",
" 'e_0606',\n",
" 'e_0607',\n",
" 'e_0608',\n",
" 'e_0609',\n",
" 'e_0610',\n",
" 'e_0611',\n",
" 'e_0612',\n",
" 'e_0641',\n",
" 'e_0657',\n",
" 'e_0682',\n",
" 'e_0691',\n",
" 'e_0717',\n",
" 'e_0719',\n",
" 'e_0720',\n",
" 'e_0727',\n",
" 'e_0728',\n",
" 'e_0729',\n",
" 'e_0730',\n",
" 'e_0731',\n",
" 'e_0732',\n",
" 'e_0734',\n",
" 'e_0735',\n",
" 'e_0736',\n",
" 'e_0742',\n",
" 'e_0743',\n",
" 'e_0746',\n",
" 'e_0750',\n",
" 'e_0757',\n",
" 'e_0765',\n",
" 'e_0768',\n",
" 'e_0770',\n",
" 'e_0771',\n",
" 'e_0774',\n",
" 'e_0775',\n",
" 'e_0776',\n",
" 'e_0791',\n",
" 'e_0793',\n",
" 'e_0795',\n",
" 'e_0796',\n",
" 'e_0798',\n",
" 'e_0799',\n",
" 'e_0803',\n",
" 'e_0804',\n",
" 'e_0805',\n",
" 'e_0813',\n",
" 'e_0815',\n",
" 'e_0818',\n",
" 'e_0819',\n",
" 'e_0821',\n",
" 'e_0822',\n",
" 'e_0823',\n",
" 'e_0825',\n",
" 'e_0826',\n",
" 'e_0827',\n",
" 'e_0828',\n",
" 'e_0839',\n",
" 'e_0848',\n",
" 'e_0866',\n",
" 'e_0867',\n",
" 'e_0868',\n",
" 'e_0869',\n",
" 'e_0870',\n",
" 'e_0871',\n",
" 'e_0872',\n",
" 'e_0873',\n",
" 'e_0875',\n",
" 'e_0876',\n",
" 'e_0893',\n",
" 'e_0894',\n",
" 'e_0896',\n",
" 'e_0897',\n",
" 'e_0903',\n",
" 'e_0911',\n",
" 'e_0918',\n",
" 'e_0919',\n",
" 'e_0925',\n",
" 'e_0926',\n",
" 'e_0928',\n",
" 'e_0931',\n",
" 'e_0941',\n",
" 'e_0951',\n",
" 'e_0953',\n",
" 'e_0960',\n",
" 'e_0962',\n",
" 'e_0964',\n",
" 'e_0974',\n",
" 'e_0975',\n",
" 'e_0977',\n",
" 'e_0978',\n",
" 'e_0979',\n",
" 'e_0986',\n",
" 'e_0987',\n",
" 'e_0988',\n",
" 'e_0990',\n",
" 'e_0991',\n",
" 'e_0993',\n",
" 'e_0994',\n",
" 'e_1004',\n",
" 'e_1005',\n",
" 'e_1006',\n",
" 'e_1010',\n",
" 'e_1014',\n",
" 'e_1015',\n",
" 'e_1019',\n",
" 'e_1023',\n",
" 'e_1026',\n",
" 'e_1027',\n",
" 'e_1028',\n",
" 'e_1029',\n",
" 'e_1034',\n",
" 'e_1045',\n",
" 'e_1086',\n",
" 'e_1105',\n",
" 'e_1106',\n",
" 'e_1108',\n",
" 'e_1109',\n",
" 'e_1110',\n",
" 'e_1125',\n",
" 'e_1126',\n",
" 'e_1127',\n",
" 'e_1128',\n",
" 'e_1129',\n",
" 'e_1130',\n",
" 'e_1136',\n",
" 'e_1137',\n",
" 'e_1141',\n",
" 'e_1149',\n",
" 'e_1150',\n",
" 'e_1160',\n",
" 'e_1167',\n",
" 'e_1168',\n",
" 'e_1169',\n",
" 'e_1170',\n",
" 'e_1172',\n",
" 'e_1184',\n",
" 'e_1185',\n",
" 'e_1186',\n",
" 'e_1188',\n",
" 'e_1189',\n",
" 'e_1196',\n",
" 'e_1200',\n",
" 'e_1201',\n",
" 'e_1202',\n",
" 'e_1203',\n",
" 'e_1205',\n",
" 'e_1206',\n",
" 'e_1207',\n",
" 'e_1210',\n",
" 'e_1226',\n",
" 'e_1227',\n",
" 'e_1232',\n",
" 'e_1233',\n",
" 'e_1234',\n",
" 'e_1238',\n",
" 'e_1239',\n",
" 'e_1240',\n",
" 'e_1241',\n",
" 'e_1242',\n",
" 'e_1243',\n",
" 'e_1244',\n",
" 'e_1247',\n",
" 'e_1248',\n",
" 'e_1249',\n",
" 'e_1250',\n",
" 'e_1251',\n",
" 'e_1252',\n",
" 'e_1253',\n",
" 'e_1254',\n",
" 'e_1256',\n",
" 'e_1257',\n",
" 'e_1258',\n",
" 'e_1259',\n",
" 'e_1262',\n",
" 'e_1263',\n",
" 'e_1264',\n",
" 'e_1271',\n",
" 'e_1272',\n",
" 'e_1273',\n",
" 'e_1275',\n",
" 'e_1276',\n",
" 'e_1277',\n",
" 'e_1291',\n",
" 'e_1298',\n",
" 'e_1312',\n",
" 'e_1313',\n",
" 'e_1315',\n",
" 'e_1326',\n",
" 'e_1334',\n",
" 'e_1335',\n",
" 'e_1339',\n",
" 'e_1340',\n",
" 'e_1341',\n",
" 'e_1355',\n",
" 'e_1366',\n",
" 'e_1367',\n",
" 'e_1369',\n",
" 'e_1373',\n",
" 'e_1374',\n",
" 'e_1376',\n",
" 'e_1377')"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"constants = tuple(ds.constants())\n",
"constants"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'s_0003': 0.1, 's_0004': 0.1, 's_0017': 0.1, 's_0018': 0.1, 's_0028': 0.1, 's_0029': 0.1, 's_0032': 0.1, 's_0033': 0.1, 's_0040': 0.1, 's_0041': 0.1, 's_0042': 0.1, 's_0043': 0.1, 's_0044': 0.1, 's_0045': 0.1, 's_0046': 0.1, 's_0047': 0.1, 's_0049': 0.1, 's_0050': 0.1, 's_0051': 0.1, 's_0052': 0.1, 's_0073': 0.1, 's_0075': 0.1, 's_0096': 0.1, 's_0097': 0.1, 's_0098': 0.1, 's_0099': 0.1, 's_0116': 0.1, 's_0119': 0.1, 's_0121': 0.1, 's_0123': 0.1, 's_0128': 0.1, 's_0133': 0.1, 's_0147': 0.1, 's_0148': 0.1, 's_0149': 0.1, 's_0155': 0.1, 's_0160': 0.1, 's_0162': 0.1, 's_0191': 0.1, 's_0193': 0.1, 's_0194': 0.1, 's_0195': 0.1, 's_0201': 0.1, 's_0203': 0.1, 's_0214': 0.1, 's_0217': 0.1, 's_0218': 0.1, 's_0226': 0.1, 's_0229': 0.1, 's_0231': 0.1, 's_0232': 0.1, 's_0233': 0.1, 's_0237': 0.1, 's_0252': 0.1, 's_0255': 0.1, 's_0262': 0.1, 's_0263': 0.1, 's_0265': 0.1, 's_0266': 0.1, 's_0267': 0.1, 's_0269': 0.1, 's_0270': 0.1, 's_0271': 0.1, 's_0272': 0.1, 's_0276': 0.1, 's_0277': 0.1, 's_0282': 0.1, 's_0283': 0.1, 's_0289': 0.1, 's_0290': 0.1, 's_0293': 0.1, 's_0295': 0.1, 's_0297': 0.1, 's_0299': 0.1, 's_0303': 0.1, 's_0304': 0.1, 's_0305': 0.1, 's_0306': 0.1, 's_0307': 0.1, 's_0308': 0.1, 's_0310': 0.1, 's_0311': 0.1, 's_0312': 0.1, 's_0313': 0.1, 's_0316': 0.1, 's_0318': 0.1, 's_0325': 0.1, 's_0328': 0.1, 's_0330': 0.1, 's_0331': 0.1, 's_0332': 0.1, 's_0333': 0.1, 's_0334': 0.1, 's_0335': 0.1, 's_0336': 0.1, 's_0337': 0.1, 's_0341': 0.1, 's_0342': 0.1, 's_0343': 0.1, 's_0344': 0.1, 's_0345': 0.1, 's_0346': 0.1, 's_0347': 0.1, 's_0352': 0.1, 's_0354': 0.1, 's_0359': 0.1, 's_0360': 0.1, 's_0361': 0.1, 's_0362': 0.1, 's_0364': 0.1, 's_0367': 0.1, 's_0368': 0.1, 's_0369': 0.1, 's_0370': 0.1, 's_0371': 0.1, 's_0372': 0.1, 's_0376': 0.1, 's_0377': 0.1, 's_0378': 0.1, 's_0380': 0.1, 's_0381': 0.1, 's_0384': 0.1, 's_0391': 0.1, 's_0393': 0.1, 's_0395': 0.1, 's_0397': 0.1, 's_0405': 0.1, 's_0408': 0.1, 's_0411': 0.1, 's_0412': 0.1, 's_0420': 0.1, 's_0421': 0.1, 's_0435': 0.1, 's_0445': 0.1, 's_0446': 0.1, 's_0451': 0.1, 's_0454': 0.1, 's_0457': 0.1, 's_0467': 0.1, 's_0470': 0.1, 's_0474': 0.1, 's_0476': 0.1, 's_0479': 0.1, 's_0480': 0.1, 's_0481': 0.1, 's_0488': 0.1, 's_0493': 0.1, 's_0497': 0.1, 's_0502': 0.1, 's_0510': 0.1, 's_0512': 0.1, 's_0513': 0.1, 's_0520': 0.1, 's_0526': 0.1, 's_0530': 0.1, 's_0533': 0.1, 's_0536': 0.1, 's_0539': 0.1, 's_0542': 0.1, 's_0543': 0.1, 's_0546': 0.1, 's_0555': 0.1, 's_0565': 0.1, 's_0574': 0.1, 's_0575': 0.1, 's_0579': 0.1, 's_0585': 0.1, 's_0599': 0.1, 's_0600': 0.1, 's_0603': 0.1, 's_0611': 0.1, 's_0620': 0.1, 's_0621': 0.1, 's_0622': 0.1, 's_0627': 0.1, 's_0653': 0.1, 's_0654': 0.1, 's_0657': 0.1, 's_0663': 0.1, 's_0671': 0.1, 's_0675': 0.1, 's_0704': 0.1, 's_0721': 0.1, 's_0726': 0.1, 's_0731': 0.1, 's_0732': 0.1, 's_0737': 0.1, 's_0738': 0.1, 's_0754': 0.1, 's_0755': 0.1, 's_0760': 0.1, 's_0765': 0.1, 's_0766': 0.1, 's_0767': 0.1, 's_0768': 0.1, 's_0772': 0.1, 's_0779': 0.1, 's_0783': 0.1, 's_0785': 0.1, 's_0789': 0.1, 's_0790': 0.1, 's_0795': 0.1, 's_0802': 0.1, 's_0805': 0.1, 's_0807': 0.1, 's_0810': 0.1, 's_0812': 0.1, 's_0813': 0.1, 's_0826': 0.1, 's_0838': 0.1, 's_0841': 0.1, 's_0859': 0.1, 's_0860': 0.1, 's_0861': 0.1, 's_0862': 0.1, 's_0863': 0.1, 's_0867': 0.1, 's_0875': 0.1, 's_0896': 0.1, 's_0903': 0.1, 's_0910': 0.1, 's_0913': 0.1, 's_0920': 0.1, 's_0929': 0.1, 's_0936': 0.1, 's_0937': 0.1, 's_0941': 0.1, 's_0942': 0.1, 's_0945': 0.1, 's_0971': 0.1, 's_0976': 0.1, 's_0979': 0.1, 's_0984': 0.1, 's_0991': 0.1, 's_0994': 0.1, 's_0998': 0.1, 's_1005': 0.1, 's_1006': 0.1, 's_1009': 0.1, 's_1017': 0.1, 's_1018': 0.1, 's_1019': 0.1, 's_1020': 0.1, 's_1021': 0.1, 's_1022': 0.1, 's_1027': 0.1, 's_1028': 0.1, 's_1033': 0.1, 's_1038': 0.1, 's_1040': 0.1, 's_1041': 0.1, 's_1061': 0.1, 's_1068': 0.1, 's_1072': 0.1, 's_1075': 0.1, 's_1081': 0.1, 's_1082': 0.1, 's_1083': 0.1, 's_1095': 0.1, 's_1098': 0.1, 's_1099': 0.1, 's_1100': 0.1, 's_1101': 0.1, 's_1105': 0.1, 's_1106': 0.1, 's_1109': 0.1, 's_1110': 0.1, 's_1112': 0.1, 's_1113': 0.1, 's_1119': 0.1, 's_1127': 0.1, 's_1131': 0.1, 's_1138': 0.1, 's_1141': 0.1, 's_1151': 0.1, 's_1155': 0.1, 's_1170': 0.1, 's_1179': 0.1, 's_1185': 0.1, 's_1189': 0.1, 's_1193': 0.1, 's_1204': 0.1, 's_1211': 0.1, 's_1212': 0.1, 's_1216': 0.1, 's_1217': 0.1, 's_1218': 0.1, 's_1239': 0.1, 's_1240': 0.1, 's_1242': 0.1, 's_1248': 0.1, 's_1255': 0.1, 's_1258': 0.1, 's_1259': 0.1, 's_1260': 0.1, 's_1261': 0.1, 's_1264': 0.1, 's_1265': 0.1, 's_1274': 0.1, 's_1277': 0.1, 's_1278': 0.1, 's_1287': 0.1, 's_1302': 0.1, 's_1303': 0.1, 's_1304': 0.1, 's_1312': 0.1, 's_1315': 0.1, 's_1316': 0.1, 's_1318': 0.1, 's_1321': 0.1, 's_1322': 0.1, 's_1327': 0.1, 's_1329': 0.1, 's_1333': 0.1, 's_1334': 0.1, 's_1335': 0.1, 's_1336': 0.1, 's_1340': 0.1, 's_1358': 0.1, 's_1362': 0.1, 's_1363': 0.1, 's_1364': 0.1, 's_1367': 0.1, 's_1372': 0.1, 's_1390': 0.1, 's_1391': 0.1, 's_1394': 0.1, 's_1397': 0.1, 's_1399': 0.1, 's_1406': 0.1, 's_1407': 0.1, 's_1411': 0.1, 's_1412': 0.1, 's_1413': 0.1, 's_1429': 0.1, 's_1430': 0.1, 's_1435': 0.1, 's_1437': 0.1, 's_1476': 0.1, 's_1477': 0.1, 's_1484': 0.1, 's_1491': 0.1, 's_1492': 0.1, 's_1493': 0.1, 's_1494': 0.1, 's_1497': 0.1, 's_1508': 0.1, 's_1511': 0.1, 's_1512': 0.1, 's_1522': 0.1, 's_1530': 0.1, 's_1531': 0.1, 's_1537': 0.1, 's_1544': 0.1, 's_1546': 0.1, 's_1550': 0.1, 's_1551': 0.1, 's_1552': 0.1, 's_1558': 0.1, 's_1561': 0.1, 's_1571': 0.1, 's_1574': 0.1, 's_1577': 0.1, 's_1578': 0.1, 's_1595': 0.1, 's_1599': 0.1, 's_1609': 0.1, 's_1612': 0.1, 's_1632': 0.1, 's_1643': 0.1, 's_1644': 0.1, 's_1668': 0.1, 's_1670': 0.1, 's_1672': 0.1, 's_1674': 0.1, 's_1676': 0.1, 's_1680': 0.1, 's_1690': 0.1, 's_1719': 0.1, 's_1725': 0.1, 's_1731': 0.1, 's_1732': 0.1, 's_1733': 0.1, 's_1734': 0.1, 's_1735': 0.1, 's_1736': 0.1, 's_1742': 0.1, 's_1745': 0.1, 's_1750': 0.1, 's_1751': 0.1, 's_1752': 0.1, 's_1754': 0.1, 's_1755': 0.1, 's_1762': 0.1, 's_1765': 0.1, 's_1768': 0.1, 's_1776': 0.1, 's_1777': 0.1, 's_1791': 0.1, 's_1792': 0.1, 's_1799': 0.1, 's_1804': 0.1}\n"
]
}
],
"source": [
"y0 = dict()\n",
"for key, val, compartment in ds.initial_concentration():\n",
" if key in constants:\n",
" params[key] = val\n",
" else:\n",
" y0[key] = val\n",
"print(y0)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"assert 's_0659' in params\n",
"params['s_0659'] = 2.0"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"()"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tuple(ds.assignment_rules())"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(('max', (['x', 'y'], '(x + y + abs(x - y)) / 2')),)"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tuple(ds.function_definitions())"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"from ecell4 import *"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"with reaction_rules():\n",
" params['EmptySet'] = ~EmptySet #XXX: Just ignore EmptySet\n",
" params.update(dict(ds.assignment_rules(_eval, params)))\n",
" params.update(dict(ds.function_definitions(_eval, params)))\n",
"\n",
" for reactants, products, formula in ds.reactions(_eval, params):\n",
" reactants > products | formula\n",
"\n",
"m = get_model()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"s_0004 > s_0003 | (6.20554969142397e-05 * (1 + (1.0 * log((s_0004 / 0.1))) + (-1.0 * log((s_0003 / 0.1)))))\n",
"s_0097 > s_0341 | (0.0131230753965474 * (1 + (1.0 * log((s_0097 / 0.1))) + (-1.0 * log((s_0341 / 0.1)))))\n",
"s_0913 + s_1531 > s_0543 + s_0116 | (0.000392694941408386 * (1 + (1.0 * log((s_0913 / 0.1))) + (1.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_0116 / 0.1)))))\n",
"s_0116 + s_1336 > s_0194 + s_1335 | (0.000330916477964549 * (1 + (1.0 * log((s_0116 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_0194 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0119 + s_0533 > s_0397 + s_0073 | (0.0104178435779621 * (1 + (1.0 * log((s_0119 / 0.1))) + (1.0 * log((s_0533 / 0.1))) + (-1.0 * log((s_0397 / 0.1))) + (-1.0 * log((s_0073 / 0.1)))))\n",
"s_0121 + s_1411 > s_0397 + s_0075 | (0.00884013797559913 * (1 + (1.0 * log((s_0121 / 0.1))) + (1.0 * log((s_1411 / 0.1))) + (-1.0 * log((s_0397 / 0.1))) + (-1.0 * log((s_0075 / 0.1)))))\n",
"s_0123 + s_1334 > s_0779 + s_1333 | (3.85076520790662e-05 * (1 + (1.0 * log((s_0123 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0779 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0123 + s_1334 > s_1028 + s_1333 | (0.000292408825885483 * (1 + (1.0 * log((s_0123 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_1028 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0232 + s_1531 > s_0041 + s_0543 | (0.0402391112803253 * (1 + (1.0 * log((s_0232 / 0.1))) + (1.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_0041 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"s_0237 > s_0193 + s_0539 | (0.000330916477964549 * (1 + (1.0 * log((s_0237 / 0.1))) + (-1.0 * log((s_0193 / 0.1))) + (-1.0 * log((s_0539 / 0.1)))))\n",
"s_0194 + s_0575 > s_0312 + s_0783 | (0.000330916477964549 * (1 + (1.0 * log((s_0194 / 0.1))) + (1.0 * log((s_0575 / 0.1))) + (-1.0 * log((s_0312 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0201 > s_0913 + s_1531 | (0.87986351299776 * (1 + (1.0 * log((s_0201 / 0.1))) + (-1.0 * log((s_0913 / 0.1))) + (-1.0 * log((s_1531 / 0.1)))))\n",
"s_0203 + s_1336 > s_1335 + s_0032 | (7.97856388884133e-05 * (1 + (1.0 * log((s_0203 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_0032 / 0.1)))))\n",
"s_0266 > s_0217 | (0.0624017887496972 * (1 + (1.0 * log((s_0266 / 0.1))) + (-1.0 * log((s_0217 / 0.1)))))\n",
"s_0282 + s_0395 > s_0266 + s_0555 | (0.0624017887496972 * (1 + (1.0 * log((s_0282 / 0.1))) + (1.0 * log((s_0395 / 0.1))) + (-1.0 * log((s_0266 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0267 > s_0328 + s_0543 | (0.0624017887496972 * (1 + (1.0 * log((s_0267 / 0.1))) + (-1.0 * log((s_0328 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"s_0193 + 2 * s_0861 > 2 * s_0862 + s_0123 | (0.000330916477964549 * (1 + (1.0 * log((s_0193 / 0.1))) + (2.0 * log((s_0861 / 0.1))) + (-2.0 * log((s_0862 / 0.1))) + (-1.0 * log((s_0123 / 0.1)))))\n",
"s_0411 > s_0454 + s_1430 | (0.0343363591697952 * (1 + (1.0 * log((s_0411 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0704 > s_0255 + s_0867 | (0.000123556926891731 * (1 + (1.0 * log((s_0704 / 0.1))) + (-1.0 * log((s_0255 / 0.1))) + (-1.0 * log((s_0867 / 0.1)))))\n",
"s_1674 > s_0979 | (0.0208356871558827 * (1 + (1.0 * log((s_1674 / 0.1))) + (-1.0 * log((s_0979 / 0.1)))))\n",
"s_0269 > s_0270 | (0.052796345817737 * (1 + (1.0 * log((s_0269 / 0.1))) + (-1.0 * log((s_0270 / 0.1)))))\n",
"s_0195 > s_0269 + s_1430 | (0.052796345817737 * (1 + (1.0 * log((s_0195 / 0.1))) + (-1.0 * log((s_0269 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0611 + s_1484 > s_0272 + s_1430 | (0.00539107129442444 * (1 + (1.0 * log((s_0611 / 0.1))) + (1.0 * log((s_1484 / 0.1))) + (-1.0 * log((s_0272 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0621 + s_1484 > s_0195 + s_1430 | (0.052796345817737 * (1 + (1.0 * log((s_0621 / 0.1))) + (1.0 * log((s_1484 / 0.1))) + (-1.0 * log((s_0195 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0542 + s_0147 > s_0539 + s_1038 | (0.00269553564721213 * (1 + (1.0 * log((s_0542 / 0.1))) + (1.0 * log((s_0147 / 0.1))) + (-1.0 * log((s_0539 / 0.1))) + (-1.0 * log((s_1038 / 0.1)))))\n",
"s_0542 + s_1038 > s_0539 + s_1033 | (0.00269553564721213 * (1 + (1.0 * log((s_0542 / 0.1))) + (1.0 * log((s_1038 / 0.1))) + (-1.0 * log((s_0539 / 0.1))) + (-1.0 * log((s_1033 / 0.1)))))\n",
"s_0575 + s_0271 > s_0542 + s_0783 | (0.00539107129442444 * (1 + (1.0 * log((s_0575 / 0.1))) + (1.0 * log((s_0271 / 0.1))) + (-1.0 * log((s_0542 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0272 > s_0271 + s_1430 | (0.00539107129442444 * (1 + (1.0 * log((s_0272 / 0.1))) + (-1.0 * log((s_0271 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0043 > s_0574 | (0.0492981056959303 * (1 + (1.0 * log((s_0043 / 0.1))) + (-1.0 * log((s_0574 / 0.1)))))\n",
"s_0044 > s_1668 | (0.0492981056959448 * (1 + (1.0 * log((s_0044 / 0.1))) + (-1.0 * log((s_1668 / 0.1)))))\n",
"s_0045 > s_1670 | (0.0492981056959429 * (1 + (1.0 * log((s_0045 / 0.1))) + (-1.0 * log((s_1670 / 0.1)))))\n",
"s_0046 > s_1674 | (0.0385159631070915 * (1 + (1.0 * log((s_0046 / 0.1))) + (-1.0 * log((s_1674 / 0.1)))))\n",
"s_0047 > s_1672 | (0.0492981056959303 * (1 + (1.0 * log((s_0047 / 0.1))) + (-1.0 * log((s_1672 / 0.1)))))\n",
"s_0049 > s_1676 | (0.0492981056959303 * (1 + (1.0 * log((s_0049 / 0.1))) + (-1.0 * log((s_1676 / 0.1)))))\n",
"s_0050 > s_1680 | (0.0385159631070598 * (1 + (1.0 * log((s_0050 / 0.1))) + (-1.0 * log((s_1680 / 0.1)))))\n",
"s_0293 + s_1334 > s_0044 + s_1333 | (0.0492981056959448 * (1 + (1.0 * log((s_0293 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0044 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0295 + s_1334 > s_0045 + s_1333 | (0.0492981056959429 * (1 + (1.0 * log((s_0295 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0045 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0297 + s_1334 > s_0046 + s_1333 | (0.0385159631070915 * (1 + (1.0 * log((s_0297 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0046 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0299 + s_1334 > s_0047 + s_1333 | (0.0492981056959303 * (1 + (1.0 * log((s_0299 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0047 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0303 + s_1334 > s_0049 + s_1333 | (0.0492981056959303 * (1 + (1.0 * log((s_0303 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0049 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0305 + s_1334 > s_0050 + s_1333 | (0.0385159631070598 * (1 + (1.0 * log((s_0305 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0050 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0391 + s_1334 > s_0043 + s_1333 | (0.0492981056959303 * (1 + (1.0 * log((s_0391 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0043 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0217 > s_0265 | (0.0624017887496972 * (1 + (1.0 * log((s_0217 / 0.1))) + (-1.0 * log((s_0265 / 0.1)))))\n",
"s_0265 + s_1333 > s_0267 + s_1334 | (0.0624017887496972 * (1 + (1.0 * log((s_0265 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0267 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0282 + s_0336 > s_0203 + s_0337 | (7.97856388884133e-05 * (1 + (1.0 * log((s_0282 / 0.1))) + (1.0 * log((s_0336 / 0.1))) + (-1.0 * log((s_0203 / 0.1))) + (-1.0 * log((s_0337 / 0.1)))))\n",
"s_0276 > s_0812 | (2.77033467884759e-07 * (1 + (1.0 * log((s_0276 / 0.1))) + (-1.0 * log((s_0812 / 0.1)))))\n",
"s_1336 + s_0289 > s_0276 + s_1335 | (2.77033467884759e-07 * (1 + (1.0 * log((s_1336 / 0.1))) + (1.0 * log((s_0289 / 0.1))) + (-1.0 * log((s_0276 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_1216 + s_1218 > s_0543 + s_0555 + s_0289 | (2.77033467884759e-07 * (1 + (1.0 * log((s_1216 / 0.1))) + (1.0 * log((s_1218 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_0289 / 0.1)))))\n",
"s_0277 > s_0813 | (2.77033467884759e-07 * (1 + (1.0 * log((s_0277 / 0.1))) + (-1.0 * log((s_0813 / 0.1)))))\n",
"s_1336 + s_0290 > s_0277 + s_1335 | (2.77033467884759e-07 * (1 + (1.0 * log((s_1336 / 0.1))) + (1.0 * log((s_0290 / 0.1))) + (-1.0 * log((s_0277 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0910 + s_1216 > s_0397 + s_0543 + s_0290 | (2.77033467884759e-07 * (1 + (1.0 * log((s_0910 / 0.1))) + (1.0 * log((s_1216 / 0.1))) + (-1.0 * log((s_0397 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_0290 / 0.1)))))\n",
"s_0304 + s_1336 > s_0028 + s_1335 | (0.0107821425888488 * (1 + (1.0 * log((s_0304 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_0028 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0789 + s_1216 > s_0304 + s_0397 + s_0543 | (0.0107821425888488 * (1 + (1.0 * log((s_0789 / 0.1))) + (1.0 * log((s_1216 / 0.1))) + (-1.0 * log((s_0304 / 0.1))) + (-1.0 * log((s_0397 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"s_1484 + s_1574 > s_0359 + s_1430 | (0.0527963458177373 * (1 + (1.0 * log((s_1484 / 0.1))) + (1.0 * log((s_1574 / 0.1))) + (-1.0 * log((s_0359 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0310 > s_0004 | (6.20554969142397e-05 * (1 + (1.0 * log((s_0310 / 0.1))) + (-1.0 * log((s_0004 / 0.1)))))\n",
"s_0312 + s_0467 > s_0237 + s_0421 | (0.000330916477964549 * (1 + (1.0 * log((s_0312 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0237 / 0.1))) + (-1.0 * log((s_0421 / 0.1)))))\n",
"s_0342 + s_1333 > s_0313 + 2 * s_0867 + s_1334 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0342 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0313 / 0.1))) + (-2.0 * log((s_0867 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0526 + s_1101 > s_0316 + s_1095 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0526 / 0.1))) + (1.0 * log((s_1101 / 0.1))) + (-1.0 * log((s_0316 / 0.1))) + (-1.0 * log((s_1095 / 0.1)))))\n",
"s_0316 > s_0318 + s_1531 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0316 / 0.1))) + (-1.0 * log((s_0318 / 0.1))) + (-1.0 * log((s_1531 / 0.1)))))\n",
"s_0333 > s_0334 + s_0405 | (3.11662651885034e-05 * (1 + (1.0 * log((s_0333 / 0.1))) + (-1.0 * log((s_0334 / 0.1))) + (-1.0 * log((s_0405 / 0.1)))))\n",
"s_0336 + s_1334 > s_0354 + s_1333 | (0.0213832438061183 * (1 + (1.0 * log((s_0336 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0354 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0347 + s_1336 > s_0346 + s_1335 | (6.17784634458656e-05 * (1 + (1.0 * log((s_0347 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_0346 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0367 + s_0467 > s_0368 + s_0454 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0367 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0368 / 0.1))) + (-1.0 * log((s_0454 / 0.1)))))\n",
"s_0369 > s_0201 | (0.87986351299775 * (1 + (1.0 * log((s_0369 / 0.1))) + (-1.0 * log((s_0201 / 0.1)))))\n",
"s_0370 > s_0369 | (0.879863512997714 * (1 + (1.0 * log((s_0370 / 0.1))) + (-1.0 * log((s_0369 / 0.1)))))\n",
"s_1041 + s_1491 > s_0376 + s_0397 + s_0543 | (2.77033467884759e-07 * (1 + (1.0 * log((s_1041 / 0.1))) + (1.0 * log((s_1491 / 0.1))) + (-1.0 * log((s_0376 / 0.1))) + (-1.0 * log((s_0397 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"s_0381 + s_0555 + s_1333 > s_0395 + s_1334 | (0.0414265806134143 * (1 + (1.0 * log((s_0381 / 0.1))) + (1.0 * log((s_0555 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0395 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0384 + s_0467 > s_0393 + s_0421 | (0.0807006804356794 * (1 + (1.0 * log((s_0384 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0393 / 0.1))) + (-1.0 * log((s_0421 / 0.1)))))\n",
"2 * s_1531 > s_0042 + s_0543 | (0.121101856295072 * (1 + (2.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_0042 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"2 * s_0395 > s_0391 + s_0555 | (0.0492981056959303 * (1 + (2.0 * log((s_0395 / 0.1))) + (-1.0 * log((s_0391 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0395 + s_0488 > s_0299 + s_0555 | (0.0492981056959303 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_0488 / 0.1))) + (-1.0 * log((s_0299 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0395 + s_0737 > s_0295 + s_0555 | (0.0492981056959429 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_0737 / 0.1))) + (-1.0 * log((s_0295 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0395 + s_0790 > s_0305 + s_0555 | (0.0385159631070598 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_0790 / 0.1))) + (-1.0 * log((s_0305 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0395 + s_0984 > s_0303 + s_0555 | (0.0492981056959303 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_0984 / 0.1))) + (-1.0 * log((s_0303 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0395 + s_1390 > s_0293 + s_0555 | (0.0492981056959448 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_1390 / 0.1))) + (-1.0 * log((s_0293 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0395 + s_1632 > s_0297 + s_0555 | (0.0385159631070916 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_1632 / 0.1))) + (-1.0 * log((s_0297 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0395 + s_0467 + s_0474 > s_0421 + s_1217 + s_1430 | (0.0107829736892899 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0474 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1217 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1302 + s_0467 > s_1304 + s_0421 | (0.0409732499715063 * (1 + (1.0 * log((s_1302 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_1304 / 0.1))) + (-1.0 * log((s_0421 / 0.1)))))\n",
"s_1321 > s_0384 + s_1391 | (0.040973249971501 * (1 + (1.0 * log((s_1321 / 0.1))) + (-1.0 * log((s_0384 / 0.1))) + (-1.0 * log((s_1391 / 0.1)))))\n",
"s_1303 + s_1095 > s_1321 + s_0233 | (0.040973249971501 * (1 + (1.0 * log((s_1303 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_1321 / 0.1))) + (-1.0 * log((s_0233 / 0.1)))))\n",
"s_0536 > s_0530 | (0.148949399052035 * (1 + (1.0 * log((s_0536 / 0.1))) + (-1.0 * log((s_0530 / 0.1)))))\n",
"s_0530 > s_1027 | (0.148949399052035 * (1 + (1.0 * log((s_0530 / 0.1))) + (-1.0 * log((s_1027 / 0.1)))))\n",
"s_0397 + s_0467 + s_0785 > s_0454 + s_0789 + s_0783 | (0.0107821425888425 * (1 + (1.0 * log((s_0397 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0785 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_0789 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0397 + s_0467 + s_0971 > s_0454 + s_1411 + s_0783 | (0.0176802759511862 * (1 + (1.0 * log((s_0397 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0971 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_1411 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0397 + s_0467 + s_0976 > s_0454 + s_0533 + s_0783 | (0.0208356871559117 * (1 + (1.0 * log((s_0397 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0976 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_0533 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0574 + s_0860 > s_0488 + s_0859 | (0.0492981056959303 * (1 + (1.0 * log((s_0574 / 0.1))) + (1.0 * log((s_0860 / 0.1))) + (-1.0 * log((s_0488 / 0.1))) + (-1.0 * log((s_0859 / 0.1)))))\n",
"s_1668 + s_0860 > s_0737 + s_0859 | (0.0492981056959448 * (1 + (1.0 * log((s_1668 / 0.1))) + (1.0 * log((s_0860 / 0.1))) + (-1.0 * log((s_0737 / 0.1))) + (-1.0 * log((s_0859 / 0.1)))))\n",
"s_1670 + s_0860 > s_0790 + s_0859 | (0.0492981056959429 * (1 + (1.0 * log((s_1670 / 0.1))) + (1.0 * log((s_0860 / 0.1))) + (-1.0 * log((s_0790 / 0.1))) + (-1.0 * log((s_0859 / 0.1)))))\n",
"s_0860 + s_1674 > s_0859 + s_1412 | (0.0176802759511649 * (1 + (1.0 * log((s_0860 / 0.1))) + (1.0 * log((s_1674 / 0.1))) + (-1.0 * log((s_0859 / 0.1))) + (-1.0 * log((s_1412 / 0.1)))))\n",
"s_0860 + s_1672 > s_0859 + s_0984 | (0.0492981056959303 * (1 + (1.0 * log((s_0860 / 0.1))) + (1.0 * log((s_1672 / 0.1))) + (-1.0 * log((s_0859 / 0.1))) + (-1.0 * log((s_0984 / 0.1)))))\n",
"s_0860 + s_1676 > s_0859 + s_1390 | (0.0492981056959303 * (1 + (1.0 * log((s_0860 / 0.1))) + (1.0 * log((s_1676 / 0.1))) + (-1.0 * log((s_0859 / 0.1))) + (-1.0 * log((s_1390 / 0.1)))))\n",
"s_0860 + s_1680 > s_0859 + s_1632 | (0.0385159631070833 * (1 + (1.0 * log((s_0860 / 0.1))) + (1.0 * log((s_1680 / 0.1))) + (-1.0 * log((s_0859 / 0.1))) + (-1.0 * log((s_1632 / 0.1)))))\n",
"s_0408 + s_0467 > s_0421 + s_0454 | (9.32217621027432e-05 * (1 + (1.0 * log((s_0408 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0454 / 0.1)))))\n",
"s_0376 + s_1552 > s_1550 + s_0371 | (2.77033467884759e-07 * (1 + (1.0 * log((s_0376 / 0.1))) + (1.0 * log((s_1552 / 0.1))) + (-1.0 * log((s_1550 / 0.1))) + (-1.0 * log((s_0371 / 0.1)))))\n",
"s_0454 + s_0467 > 2 * s_0421 | (0.362277497683991 * (1 + (1.0 * log((s_0454 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-2.0 * log((s_0421 / 0.1)))))\n",
"s_0040 > s_0343 + s_0875 | (0.0613899240064973 * (1 + (1.0 * log((s_0040 / 0.1))) + (-1.0 * log((s_0343 / 0.1))) + (-1.0 * log((s_0875 / 0.1)))))\n",
"s_1072 + s_0945 + s_1006 > s_1327 + s_0896 + s_1430 | (0.0407532853976299 * (1 + (1.0 * log((s_1072 / 0.1))) + (1.0 * log((s_0945 / 0.1))) + (1.0 * log((s_1006 / 0.1))) + (-1.0 * log((s_1327 / 0.1))) + (-1.0 * log((s_0896 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1327 > s_0454 + s_0875 | (0.0407532853976299 * (1 + (1.0 * log((s_1327 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_0875 / 0.1)))))\n",
"s_0412 + s_0467 > s_0421 + s_0252 | (0.0343363591697952 * (1 + (1.0 * log((s_0412 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0252 / 0.1)))))\n",
"s_1041 > s_0600 | (0.00577199231356107 * (1 + (1.0 * log((s_1041 / 0.1))) + (-1.0 * log((s_0600 / 0.1)))))\n",
"s_0457 + s_0360 > s_0783 + s_1278 | (0.00787329117099325 * (1 + (1.0 * log((s_0457 / 0.1))) + (1.0 * log((s_0360 / 0.1))) + (-1.0 * log((s_0783 / 0.1))) + (-1.0 * log((s_1278 / 0.1)))))\n",
"s_0526 + s_1101 > s_0457 + s_1095 + s_1531 | (0.00787329117099325 * (1 + (1.0 * log((s_0526 / 0.1))) + (1.0 * log((s_1101 / 0.1))) + (-1.0 * log((s_0457 / 0.1))) + (-1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_1531 / 0.1)))))\n",
"s_0704 > s_0611 | (0.00539107129442444 * (1 + (1.0 * log((s_0704 / 0.1))) + (-1.0 * log((s_0611 / 0.1)))))\n",
"s_1274 > s_1061 + s_0875 | (0.0409732499715002 * (1 + (1.0 * log((s_1274 / 0.1))) + (-1.0 * log((s_1061 / 0.1))) + (-1.0 * log((s_0875 / 0.1)))))\n",
"s_1072 + s_0467 + s_1081 > s_0454 + s_1274 + s_0783 | (0.040973249971501 * (1 + (1.0 * log((s_1072 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1081 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_1274 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1072 + s_0467 + s_0451 > s_0454 + s_1068 + s_0783 | (0.033396384611683 * (1 + (1.0 * log((s_1072 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0451 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_1068 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1072 > s_0470 + s_0543 | (7.97856388811725e-05 * (1 + (1.0 * log((s_1072 / 0.1))) + (-1.0 * log((s_0470 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"s_1072 + s_0502 > s_1312 + s_1430 | (0.0458199505005817 * (1 + (1.0 * log((s_1072 / 0.1))) + (1.0 * log((s_0502 / 0.1))) + (-1.0 * log((s_1312 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1072 + s_0467 > s_0332 + s_0421 | (0.230942094325926 * (1 + (1.0 * log((s_1072 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0332 / 0.1))) + (-1.0 * log((s_0421 / 0.1)))))\n",
"s_1095 + s_1399 > s_0233 + s_1072 | (0.487066600184804 * (1 + (1.0 * log((s_1095 / 0.1))) + (1.0 * log((s_1399 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1072 / 0.1)))))\n",
"s_0332 + s_1336 > s_1075 + s_1335 + s_1430 | (0.230942094325926 * (1 + (1.0 * log((s_0332 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1075 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0467 + s_0360 > s_0783 + s_0099 | (0.0131230753965474 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0360 / 0.1))) + (-1.0 * log((s_0783 / 0.1))) + (-1.0 * log((s_0099 / 0.1)))))\n",
"s_0378 + s_1552 + s_0755 > s_0377 + s_0476 + s_0333 + s_1141 | (2.77033467884759e-07 * (1 + (1.0 * log((s_0378 / 0.1))) + (1.0 * log((s_1552 / 0.1))) + (1.0 * log((s_0755 / 0.1))) + (-1.0 * log((s_0377 / 0.1))) + (-1.0 * log((s_0476 / 0.1))) + (-1.0 * log((s_0333 / 0.1))) + (-1.0 * log((s_1141 / 0.1)))))\n",
"s_1264 + s_0420 > s_0454 + s_0479 + s_0579 | (1.68990415703956e-05 * (1 + (1.0 * log((s_1264 / 0.1))) + (1.0 * log((s_0420 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_0479 / 0.1))) + (-1.0 * log((s_0579 / 0.1)))))\n",
"s_0481 + s_0945 > s_0480 + s_0783 | (1.68990415703956e-05 * (1 + (1.0 * log((s_0481 / 0.1))) + (1.0 * log((s_0945 / 0.1))) + (-1.0 * log((s_0480 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0479 + s_0945 > s_0481 + s_0783 | (1.68990415703956e-05 * (1 + (1.0 * log((s_0479 / 0.1))) + (1.0 * log((s_0945 / 0.1))) + (-1.0 * log((s_0481 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0467 + s_0543 + s_0451 > s_0421 + s_0502 | (0.0867932004720827 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0543 / 0.1))) + (1.0 * log((s_0451 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0502 / 0.1)))))\n",
"s_0575 + s_0075 > s_0513 + s_0783 | (0.00884013797559549 * (1 + (1.0 * log((s_0575 / 0.1))) + (1.0 * log((s_0075 / 0.1))) + (-1.0 * log((s_0513 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0575 + s_0073 > s_0512 + s_0783 | (0.0104178435779464 * (1 + (1.0 * log((s_0575 / 0.1))) + (1.0 * log((s_0073 / 0.1))) + (-1.0 * log((s_0512 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0526 > s_1497 | (0.0447994977198517 * (1 + (1.0 * log((s_0526 / 0.1))) + (-1.0 * log((s_1497 / 0.1)))))\n",
"s_0526 > s_0325 + s_1531 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0526 / 0.1))) + (-1.0 * log((s_0325 / 0.1))) + (-1.0 * log((s_1531 / 0.1)))))\n",
"s_0359 > s_0526 + s_1430 | (0.0527963458177373 * (1 + (1.0 * log((s_0359 / 0.1))) + (-1.0 * log((s_0526 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0395 + s_1399 > s_0536 + s_0555 | (0.148949399052133 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_1399 / 0.1))) + (-1.0 * log((s_0536 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0565 + s_1372 > 2 * s_0543 + s_1512 | (3.08892317225085e-05 * (1 + (1.0 * log((s_0565 / 0.1))) + (1.0 * log((s_1372 / 0.1))) + (-2.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1512 / 0.1)))))\n",
"s_0467 + s_1101 + s_1792 > s_0421 + s_0575 + s_1095 + s_1430 | (0.0222347061711993 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1101 / 0.1))) + (1.0 * log((s_1792 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0575 / 0.1))) + (-1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0945 > s_0585 + s_0783 | (3.37980831407913e-05 * (1 + (1.0 * log((s_0945 / 0.1))) + (-1.0 * log((s_0585 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1082 > s_1112 + s_0451 + s_1531 | (0.0213211883092039 * (1 + (1.0 * log((s_1082 / 0.1))) + (-1.0 * log((s_1112 / 0.1))) + (-1.0 * log((s_0451 / 0.1))) + (-1.0 * log((s_1531 / 0.1)))))\n",
"s_1358 + s_0994 > s_0384 + s_1083 | (0.0343363591698377 * (1 + (1.0 * log((s_1358 / 0.1))) + (1.0 * log((s_0994 / 0.1))) + (-1.0 * log((s_0384 / 0.1))) + (-1.0 * log((s_1083 / 0.1)))))\n",
"s_0467 + s_0539 > s_0421 + s_0510 | (0.0250597549648415 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0539 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0510 / 0.1)))))\n",
"2 * s_0600 + s_0467 > s_0421 + s_0603 + s_1430 | (0.00384799487561516 * (1 + (2.0 * log((s_0600 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0603 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0467 + s_0754 > s_0421 + s_0555 | (7.97856388897518e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0754 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0467 + s_0543 + s_0371 > s_0421 + s_0755 + s_1430 | (2.77033467884759e-07 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0543 / 0.1))) + (1.0 * log((s_0371 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0755 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0160 > s_0347 + s_0451 | (6.17784634458656e-05 * (1 + (1.0 * log((s_0160 / 0.1))) + (-1.0 * log((s_0347 / 0.1))) + (-1.0 * log((s_0451 / 0.1)))))\n",
"s_1242 > s_0543 + s_1131 | (0.0475389431717989 * (1 + (1.0 * log((s_1242 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1131 / 0.1)))))\n",
"s_1211 > s_1242 | (0.0513869380474194 * (1 + (1.0 * log((s_1211 / 0.1))) + (-1.0 * log((s_1242 / 0.1)))))\n",
"s_0052 + s_1732 > s_1394 + s_1731 | (0.0229099752504581 * (1 + (1.0 * log((s_0052 / 0.1))) + (1.0 * log((s_1732 / 0.1))) + (-1.0 * log((s_1394 / 0.1))) + (-1.0 * log((s_1731 / 0.1)))))\n",
"s_0155 + s_1336 > s_1335 + s_0148 | (0.0513869380474194 * (1 + (1.0 * log((s_0155 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_0148 / 0.1)))))\n",
"s_1075 + s_1531 > s_0155 | (0.0513869380474194 * (1 + (1.0 * log((s_1075 / 0.1))) + (1.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_0155 / 0.1)))))\n",
"s_0372 + s_1336 > s_1335 + s_0337 | (0.00371765062874906 * (1 + (1.0 * log((s_0372 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_0337 / 0.1)))))\n",
"s_0467 + s_0767 + s_1095 > s_0421 + s_0372 + s_1430 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0767 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0372 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0765 > s_0367 + s_0936 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0765 / 0.1))) + (-1.0 * log((s_0367 / 0.1))) + (-1.0 * log((s_0936 / 0.1)))))\n",
"s_0191 > s_0766 + s_0783 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0191 / 0.1))) + (-1.0 * log((s_0766 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1312 > s_0052 | (0.0458199505005817 * (1 + (1.0 * log((s_1312 / 0.1))) + (-1.0 * log((s_0052 / 0.1)))))\n",
"s_0052 + s_1240 > s_1239 + s_1394 | (0.0229099752501236 * (1 + (1.0 * log((s_0052 / 0.1))) + (1.0 * log((s_1240 / 0.1))) + (-1.0 * log((s_1239 / 0.1))) + (-1.0 * log((s_1394 / 0.1)))))\n",
"s_0318 + s_0368 > s_0767 + s_0783 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0318 / 0.1))) + (1.0 * log((s_0368 / 0.1))) + (-1.0 * log((s_0767 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0017 > s_0282 | (0.121101856295072 * (1 + (1.0 * log((s_0017 / 0.1))) + (-1.0 * log((s_0282 / 0.1)))))\n",
"s_0018 > s_0051 | (0.0402391112803253 * (1 + (1.0 * log((s_0018 / 0.1))) + (-1.0 * log((s_0051 / 0.1)))))\n",
"s_0779 + s_1028 > s_0903 + s_0783 | (3.85076521030325e-05 * (1 + (1.0 * log((s_0779 / 0.1))) + (1.0 * log((s_1028 / 0.1))) + (-1.0 * log((s_0903 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0467 + s_0802 > s_0421 + s_0795 | (0.00362498293358209 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0802 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0795 / 0.1)))))\n",
"s_0810 > s_0807 + s_0783 | (0.00362498293355932 * (1 + (1.0 * log((s_0810 / 0.1))) + (-1.0 * log((s_0807 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0675 > s_1484 | (0.640969334565238 * (1 + (1.0 * log((s_0675 / 0.1))) + (-1.0 * log((s_1484 / 0.1)))))\n",
"s_0812 + s_1336 > s_0910 + s_1335 | (2.77033467884759e-07 * (1 + (1.0 * log((s_0812 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_0910 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0813 + s_1336 > s_1335 + s_1492 | (2.77033467884759e-07 * (1 + (1.0 * log((s_0813 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1492 / 0.1)))))\n",
"s_0331 + s_1333 > s_1334 + s_0231 | (3.08892317222495e-05 * (1 + (1.0 * log((s_0331 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0231 / 0.1)))))\n",
"s_0621 + s_1333 > s_0331 + s_1334 | (3.08892317222495e-05 * (1 + (1.0 * log((s_0621 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0331 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0859 + s_1334 > s_0860 + s_1333 | (0.302798412025661 * (1 + (1.0 * log((s_0859 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0860 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0790 > s_0555 + s_0785 | (0.0107821425888423 * (1 + (1.0 * log((s_0790 / 0.1))) + (-1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_0785 / 0.1)))))\n",
"s_1412 > s_0555 + s_0971 | (0.0176802759511998 * (1 + (1.0 * log((s_1412 / 0.1))) + (-1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_0971 / 0.1)))))\n",
"s_0979 > s_0555 + s_0976 | (0.0208356871558925 * (1 + (1.0 * log((s_0979 / 0.1))) + (-1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_0976 / 0.1)))))\n",
"s_0838 + s_1511 > s_1508 | (3.08892317225085e-05 * (1 + (1.0 * log((s_0838 / 0.1))) + (1.0 * log((s_1511 / 0.1))) + (-1.0 * log((s_1508 / 0.1)))))\n",
"s_0467 + s_0863 > s_0859 + s_0783 | (3.08892317229329e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0863 / 0.1))) + (-1.0 * log((s_0859 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0467 + s_0867 + s_0337 > s_0133 + s_0421 + s_1430 | (0.0362397868726823 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0867 / 0.1))) + (1.0 * log((s_0337 / 0.1))) + (-1.0 * log((s_0133 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0875 > s_1138 | (0.143116459375637 * (1 + (1.0 * log((s_0875 / 0.1))) + (-1.0 * log((s_1138 / 0.1)))))\n",
"s_0467 + s_0867 + s_1318 > s_0421 + s_1322 + s_1430 | (0.0614208132382477 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0867 / 0.1))) + (1.0 * log((s_1318 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1322 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0903 + s_1028 > s_0826 + s_0783 | (3.85076521030325e-05 * (1 + (1.0 * log((s_0903 / 0.1))) + (1.0 * log((s_1028 / 0.1))) + (-1.0 * log((s_0826 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0395 + s_0653 > s_1287 + s_0555 | (0.0130870610456735 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_0653 / 0.1))) + (-1.0 * log((s_1287 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0663 + s_1335 > s_0370 + s_1336 | (0.879863512997714 * (1 + (1.0 * log((s_0663 / 0.1))) + (1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_0370 / 0.1))) + (-1.0 * log((s_1336 / 0.1)))))\n",
"s_0663 > s_0627 | (0.0545285720060003 * (1 + (1.0 * log((s_0663 / 0.1))) + (-1.0 * log((s_0627 / 0.1)))))\n",
"s_0467 + s_1095 > s_0421 + s_1099 | (0.0306260499279916 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1099 / 0.1)))))\n",
"s_0233 + s_1336 + s_0451 > s_1095 + s_1335 | (1.17502637474065 * (1 + (1.0 * log((s_0233 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (1.0 * log((s_0451 / 0.1))) + (-1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_1095 > s_0671 | (0.00384799487562186 * (1 + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0671 / 0.1)))))\n",
"s_1098 > s_0345 | (0.000494227707563336 * (1 + (1.0 * log((s_1098 / 0.1))) + (-1.0 * log((s_0345 / 0.1)))))\n",
"s_1099 + s_1336 > s_1100 + s_1335 + s_1430 | (0.0306260499279916 * (1 + (1.0 * log((s_1099 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1100 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1101 + s_0360 > s_1095 + s_0783 + s_0361 | (0.0614208132382202 * (1 + (1.0 * log((s_1101 / 0.1))) + (1.0 * log((s_0360 / 0.1))) + (-1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0783 / 0.1))) + (-1.0 * log((s_0361 / 0.1)))))\n",
"s_0467 + s_1095 + s_0451 > s_0421 + s_1101 + s_1430 | (0.249469746398485 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (1.0 * log((s_0451 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1101 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0627 + s_1101 > s_0654 + s_1095 | (0.0130870610456636 * (1 + (1.0 * log((s_0627 / 0.1))) + (1.0 * log((s_1101 / 0.1))) + (-1.0 * log((s_0654 / 0.1))) + (-1.0 * log((s_1095 / 0.1)))))\n",
"s_1105 + s_1336 > s_1098 + s_1335 + s_1690 | (0.000494227707563336 * (1 + (1.0 * log((s_1105 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1098 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1690 / 0.1)))))\n",
"s_0467 + s_1095 + s_1690 > s_0454 + s_1105 + s_0783 | (0.000494227707563336 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (1.0 * log((s_1690 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_1105 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0913 + s_1333 + s_1430 > s_0307 + s_1334 | (0.787832256050213 * (1 + (1.0 * log((s_0913 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_0307 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0467 + s_0029 > s_0675 + s_0421 | (4.63338475844011e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0029 / 0.1))) + (-1.0 * log((s_0675 / 0.1))) + (-1.0 * log((s_0421 / 0.1)))))\n",
"s_0920 + s_1411 > s_0121 + s_0397 | (0.00884013797513179 * (1 + (1.0 * log((s_0920 / 0.1))) + (1.0 * log((s_1411 / 0.1))) + (-1.0 * log((s_0121 / 0.1))) + (-1.0 * log((s_0397 / 0.1)))))\n",
"s_0920 + s_0533 > s_0119 + s_0397 | (0.0104178435776096 * (1 + (1.0 * log((s_0920 / 0.1))) + (1.0 * log((s_0533 / 0.1))) + (-1.0 * log((s_0119 / 0.1))) + (-1.0 * log((s_0397 / 0.1)))))\n",
"s_0772 + s_1336 > s_0920 + s_1335 | (0.0192579815535505 * (1 + (1.0 * log((s_0772 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_0920 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_1040 + s_0555 > s_0395 + s_0929 | (0.0414265806134066 * (1 + (1.0 * log((s_1040 / 0.1))) + (1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_0395 / 0.1))) + (-1.0 * log((s_0929 / 0.1)))))\n",
"s_1170 + s_0337 > s_0929 + s_0336 | (0.0634230033724642 * (1 + (1.0 * log((s_1170 / 0.1))) + (1.0 * log((s_0337 / 0.1))) + (-1.0 * log((s_0929 / 0.1))) + (-1.0 * log((s_0336 / 0.1)))))\n",
"s_0936 + s_1333 > s_0937 + s_1334 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0936 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0937 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0937 + s_1732 > s_0941 + s_1731 | (4.63338477495988e-05 * (1 + (1.0 * log((s_0937 / 0.1))) + (1.0 * log((s_1732 / 0.1))) + (-1.0 * log((s_0941 / 0.1))) + (-1.0 * log((s_1731 / 0.1)))))\n",
"s_0937 + s_1240 > s_0941 + s_1239 | (4.63338474145563e-05 * (1 + (1.0 * log((s_0937 / 0.1))) + (1.0 * log((s_1240 / 0.1))) + (-1.0 * log((s_0941 / 0.1))) + (-1.0 * log((s_1239 / 0.1)))))\n",
"2 * s_0941 > s_0214 + s_0543 | (4.63338475820775e-05 * (1 + (2.0 * log((s_0941 / 0.1))) + (-1.0 * log((s_0214 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"s_0467 + s_1101 + s_1799 > s_0454 + s_1095 + s_0942 + s_0783 | (0.0337597140054242 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1101 / 0.1))) + (1.0 * log((s_1799 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0942 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0945 > s_0191 + s_0867 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0945 / 0.1))) + (-1.0 * log((s_0191 / 0.1))) + (-1.0 * log((s_0867 / 0.1)))))\n",
"s_0945 > s_0160 + s_0867 + s_0783 | (6.17784634458656e-05 * (1 + (1.0 * log((s_0945 / 0.1))) + (-1.0 * log((s_0160 / 0.1))) + (-1.0 * log((s_0867 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0467 + s_0942 > s_0421 + s_0896 | (0.0337597140054224 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0942 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0896 / 0.1)))))\n",
"s_0543 > s_0474 | (0.0721728976957654 * (1 + (1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_0474 / 0.1)))))\n",
"s_0467 + s_0622 > s_0421 + s_0627 | (0.0545285700240656 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0622 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0627 / 0.1)))))\n",
"s_0467 + s_0657 > s_0421 + s_0663 | (0.912233393077452 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0657 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0663 / 0.1)))))\n",
"s_1109 + 2 * s_1333 > s_1106 + 2 * s_1334 | (0.0131230753965474 * (1 + (1.0 * log((s_1109 / 0.1))) + (2.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_1106 / 0.1))) + (-2.0 * log((s_1334 / 0.1)))))\n",
"s_1110 > s_1109 + s_1430 | (0.0131230753965474 * (1 + (1.0 * log((s_1110 / 0.1))) + (-1.0 * log((s_1109 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1095 + s_0263 > s_0233 + s_1110 | (0.0131230753965474 * (1 + (1.0 * log((s_1095 / 0.1))) + (1.0 * log((s_0263 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1110 / 0.1)))))\n",
"s_1075 + s_1336 > s_1113 + s_1335 | (0.179555156278507 * (1 + (1.0 * log((s_1075 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1113 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0467 + s_1113 > s_0421 + s_1363 | (0.158233967969303 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1113 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1363 / 0.1)))))\n",
"s_1113 + s_1599 > s_0555 + s_1367 | (0.0213211883092039 * (1 + (1.0 * log((s_1113 / 0.1))) + (1.0 * log((s_1599 / 0.1))) + (-1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_1367 / 0.1)))))\n",
"s_0325 + s_0435 > s_0283 + s_0783 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0325 / 0.1))) + (1.0 * log((s_0435 / 0.1))) + (-1.0 * log((s_0283 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"4 * s_1493 > s_0998 + 4 * s_0451 | (6.1778463445417e-05 * (1 + (4.0 * log((s_1493 / 0.1))) + (-1.0 * log((s_0998 / 0.1))) + (-4.0 * log((s_0451 / 0.1)))))\n",
"s_1101 + s_0341 > s_0343 + s_0620 + s_1095 | (0.0131230753965474 * (1 + (1.0 * log((s_1101 / 0.1))) + (1.0 * log((s_0341 / 0.1))) + (-1.0 * log((s_0343 / 0.1))) + (-1.0 * log((s_0620 / 0.1))) + (-1.0 * log((s_1095 / 0.1)))))\n",
"s_0620 > s_0263 | (0.0131230753965474 * (1 + (1.0 * log((s_0620 / 0.1))) + (-1.0 * log((s_0263 / 0.1)))))\n",
"s_0352 > s_1006 | (0.0745129994030467 * (1 + (1.0 * log((s_0352 / 0.1))) + (-1.0 * log((s_1006 / 0.1)))))\n",
"s_1006 + s_1333 > s_1334 + s_1799 | (0.0337597140054643 * (1 + (1.0 * log((s_1006 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_1799 / 0.1)))))\n",
"s_0096 > s_0493 + s_0543 | (0.00787329117099325 * (1 + (1.0 * log((s_0096 / 0.1))) + (-1.0 * log((s_0493 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"s_0377 + s_1018 + s_1019 > s_1017 + s_1020 | (2.77033467753811e-07 * (1 + (1.0 * log((s_0377 / 0.1))) + (1.0 * log((s_1018 / 0.1))) + (1.0 * log((s_1019 / 0.1))) + (-1.0 * log((s_1017 / 0.1))) + (-1.0 * log((s_1020 / 0.1)))))\n",
"s_0860 + 2 * s_0838 + 2 * s_1018 + s_1019 > s_0859 + 2 * s_1017 + s_1020 | (3.96157859771697e-05 * (1 + (1.0 * log((s_0860 / 0.1))) + (2.0 * log((s_0838 / 0.1))) + (2.0 * log((s_1018 / 0.1))) + (1.0 * log((s_1019 / 0.1))) + (-1.0 * log((s_0859 / 0.1))) + (-2.0 * log((s_1017 / 0.1))) + (-1.0 * log((s_1020 / 0.1)))))\n",
"s_0860 + 2 * s_0838 + 2 * s_1018 + s_1020 > s_0859 + 2 * s_1017 + s_1022 | (3.60143508877284e-05 * (1 + (1.0 * log((s_0860 / 0.1))) + (2.0 * log((s_0838 / 0.1))) + (2.0 * log((s_1018 / 0.1))) + (1.0 * log((s_1020 / 0.1))) + (-1.0 * log((s_0859 / 0.1))) + (-2.0 * log((s_1017 / 0.1))) + (-1.0 * log((s_1022 / 0.1)))))\n",
"s_1020 > s_0378 + s_1019 | (3.87846855703637e-06 * (1 + (1.0 * log((s_1020 / 0.1))) + (-1.0 * log((s_0378 / 0.1))) + (-1.0 * log((s_1019 / 0.1)))))\n",
"s_0860 + s_1022 > s_0859 + s_1021 | (3.60143508877284e-05 * (1 + (1.0 * log((s_0860 / 0.1))) + (1.0 * log((s_1022 / 0.1))) + (-1.0 * log((s_0859 / 0.1))) + (-1.0 * log((s_1021 / 0.1)))))\n",
"s_1021 > s_0380 + s_1019 | (3.60143508877284e-05 * (1 + (1.0 * log((s_1021 / 0.1))) + (-1.0 * log((s_0380 / 0.1))) + (-1.0 * log((s_1019 / 0.1)))))\n",
"s_1083 + s_1017 > s_1041 + s_1018 | (0.000250022705200688 * (1 + (1.0 * log((s_1083 / 0.1))) + (1.0 * log((s_1017 / 0.1))) + (-1.0 * log((s_1041 / 0.1))) + (-1.0 * log((s_1018 / 0.1)))))\n",
"s_1027 + s_1335 > s_0233 + s_0543 + s_1336 | (0.148949399052035 * (1 + (1.0 * log((s_1027 / 0.1))) + (1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1336 / 0.1)))))\n",
"s_0051 + s_1095 > s_0233 + s_1119 | (0.0402391112803253 * (1 + (1.0 * log((s_0051 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1119 / 0.1)))))\n",
"s_0042 + s_1336 > s_0017 + s_1335 | (0.121101856295072 * (1 + (1.0 * log((s_0042 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_0017 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0041 + s_1336 > s_0018 + s_1335 | (0.0402391112803253 * (1 + (1.0 * log((s_0041 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_0018 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_1095 + s_1531 > s_0233 + s_1041 | (0.0805262878673574 * (1 + (1.0 * log((s_1095 / 0.1))) + (1.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1041 / 0.1)))))\n",
"s_1072 + s_1372 > s_0991 + s_1005 | (0.000315541120488056 * (1 + (1.0 * log((s_1072 / 0.1))) + (1.0 * log((s_1372 / 0.1))) + (-1.0 * log((s_0991 / 0.1))) + (-1.0 * log((s_1005 / 0.1)))))\n",
"s_1100 > s_0128 | (0.0306260499280044 * (1 + (1.0 * log((s_1100 / 0.1))) + (-1.0 * log((s_0128 / 0.1)))))\n",
"s_1179 > s_0232 + s_0451 | (0.0402391112802679 * (1 + (1.0 * log((s_1179 / 0.1))) + (-1.0 * log((s_0232 / 0.1))) + (-1.0 * log((s_0451 / 0.1)))))\n",
"s_1333 + s_1179 > s_1040 + s_1334 | (0.0414265806134066 * (1 + (1.0 * log((s_1333 / 0.1))) + (1.0 * log((s_1179 / 0.1))) + (-1.0 * log((s_1040 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0328 + s_1095 > s_0233 + s_1127 | (0.0624017887496972 * (1 + (1.0 * log((s_0328 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1127 / 0.1)))))\n",
"s_0149 + s_1734 > s_1204 + s_1733 | (0.00269553564721213 * (1 + (1.0 * log((s_0149 / 0.1))) + (1.0 * log((s_1734 / 0.1))) + (-1.0 * log((s_1204 / 0.1))) + (-1.0 * log((s_1733 / 0.1)))))\n",
"s_1138 + s_1333 > s_1334 + s_1399 | (0.143432000495696 * (1 + (1.0 * log((s_1138 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_1399 / 0.1)))))\n",
"s_0991 + s_1399 > s_1138 + s_1372 | (0.000315541120779209 * (1 + (1.0 * log((s_0991 / 0.1))) + (1.0 * log((s_1399 / 0.1))) + (-1.0 * log((s_1138 / 0.1))) + (-1.0 * log((s_1372 / 0.1)))))\n",
"s_1552 + s_1217 > s_1551 + s_1218 | (2.77033467884759e-07 * (1 + (1.0 * log((s_1552 / 0.1))) + (1.0 * log((s_1217 / 0.1))) + (-1.0 * log((s_1551 / 0.1))) + (-1.0 * log((s_1218 / 0.1)))))\n",
"s_0397 + s_1217 > s_0555 + s_1216 | (0.0107826966558221 * (1 + (1.0 * log((s_0397 / 0.1))) + (1.0 * log((s_1217 / 0.1))) + (-1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_1216 / 0.1)))))\n",
"s_0335 > s_0133 | (0.0383041017619642 * (1 + (1.0 * log((s_0335 / 0.1))) + (-1.0 * log((s_0133 / 0.1)))))\n",
"s_0467 + s_1141 > s_1552 + s_1430 + s_0783 | (0.000124388027294171 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1141 / 0.1))) + (-1.0 * log((s_1552 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0354 + s_1112 > s_1141 + s_0337 | (0.0213832438061183 * (1 + (1.0 * log((s_0354 / 0.1))) + (1.0 * log((s_1112 / 0.1))) + (-1.0 * log((s_1141 / 0.1))) + (-1.0 * log((s_0337 / 0.1)))))\n",
"s_0336 + s_1335 > s_0335 + s_1336 | (0.0383041017619642 * (1 + (1.0 * log((s_0336 / 0.1))) + (1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_0335 / 0.1))) + (-1.0 * log((s_1336 / 0.1)))))\n",
"s_1018 + s_1258 + s_1334 > s_0454 + s_1017 + s_1260 + s_1333 | (6.75961662815825e-05 * (1 + (1.0 * log((s_1018 / 0.1))) + (1.0 * log((s_1258 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_1017 / 0.1))) + (-1.0 * log((s_1260 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_1261 + s_0420 > s_0454 + s_0579 + s_1264 | (1.68990415703956e-05 * (1 + (1.0 * log((s_1261 / 0.1))) + (1.0 * log((s_0420 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_0579 / 0.1))) + (-1.0 * log((s_1264 / 0.1)))))\n",
"s_0467 + s_1265 > s_0420 + s_0783 | (3.37980831407913e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1265 / 0.1))) + (-1.0 * log((s_0420 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0585 + s_0579 + 2 * s_1260 > 2 * s_1259 + s_1265 | (3.37980831407913e-05 * (1 + (1.0 * log((s_0585 / 0.1))) + (1.0 * log((s_0579 / 0.1))) + (2.0 * log((s_1260 / 0.1))) + (-2.0 * log((s_1259 / 0.1))) + (-1.0 * log((s_1265 / 0.1)))))\n",
"s_0467 + s_1259 > s_1258 + s_0783 | (6.75961662815825e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1259 / 0.1))) + (-1.0 * log((s_1258 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1725 > s_0600 + s_1719 | (0.0019239974378098 * (1 + (1.0 * log((s_1725 / 0.1))) + (-1.0 * log((s_0600 / 0.1))) + (-1.0 * log((s_1719 / 0.1)))))\n",
"s_1304 + s_1336 > s_1303 + s_1335 + s_1430 | (0.0409732499715063 * (1 + (1.0 * log((s_1304 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1303 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0395 + s_1095 > s_1302 + s_0555 | (0.0409732499715063 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_1302 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0467 + s_1333 > s_0421 + s_1335 | (6.1916980210075e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0467 + s_0732 + s_0451 > s_0454 + s_1333 + s_0783 | (0.000315541120476312 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0732 / 0.1))) + (1.0 * log((s_0451 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0467 + s_1340 > s_0732 + s_0783 | (0.000315541120469206 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1340 / 0.1))) + (-1.0 * log((s_0732 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0360 + s_1537 > s_0543 + s_1340 + s_0783 | (0.000315541120467916 * (1 + (1.0 * log((s_0360 / 0.1))) + (1.0 * log((s_1537 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1340 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0467 + s_0510 > s_0421 + s_0575 | (0.0250597549647999 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0510 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0575 / 0.1)))))\n",
"s_0467 + s_0795 > s_0421 + s_0805 | (0.00362498293358405 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0795 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0805 / 0.1)))))\n",
"s_0467 + s_0896 > s_0421 + s_0945 | (0.10884935857298 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0896 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0945 / 0.1)))))\n",
"s_0467 + s_1733 > s_0421 + s_1792 | (0.0589070115461784 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1733 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1792 / 0.1)))))\n",
"s_0467 > s_0421 + s_1430 | (3.15000000000004 * (1 + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1095 + s_0231 > s_0233 + s_1362 | (3.08892317222495e-05 * (1 + (1.0 * log((s_1095 / 0.1))) + (1.0 * log((s_0231 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1362 / 0.1)))))\n",
"s_1083 + s_1367 > s_1082 + s_1595 | (0.0213211883092039 * (1 + (1.0 * log((s_1083 / 0.1))) + (1.0 * log((s_1367 / 0.1))) + (-1.0 * log((s_1082 / 0.1))) + (-1.0 * log((s_1595 / 0.1)))))\n",
"s_0826 + 5 * s_1028 > s_0435 + 5 * s_0783 | (3.08892317229362e-05 * (1 + (1.0 * log((s_0826 / 0.1))) + (5.0 * log((s_1028 / 0.1))) + (-1.0 * log((s_0435 / 0.1))) + (-5.0 * log((s_0783 / 0.1)))))\n",
"s_0283 > s_0229 + s_0543 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0283 / 0.1))) + (-1.0 * log((s_0229 / 0.1))) + (-1.0 * log((s_0543 / 0.1)))))\n",
"s_0502 + s_1391 > s_1081 + s_1430 | (0.040973249971501 * (1 + (1.0 * log((s_0502 / 0.1))) + (1.0 * log((s_1391 / 0.1))) + (-1.0 * log((s_1081 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1394 + s_0360 > s_1397 + s_0783 | (0.0458199505005801 * (1 + (1.0 * log((s_1394 / 0.1))) + (1.0 * log((s_0360 / 0.1))) + (-1.0 * log((s_1397 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1397 > s_0543 + s_1762 | (0.0458199505005801 * (1 + (1.0 * log((s_1397 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1762 / 0.1)))))\n",
"s_0467 + s_1413 > s_0754 + s_0783 | (7.97856388897518e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1413 / 0.1))) + (-1.0 * log((s_0754 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_0467 + s_0033 > s_0599 + s_0421 | (7.97856388897518e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0033 / 0.1))) + (-1.0 * log((s_0599 / 0.1))) + (-1.0 * log((s_0421 / 0.1)))))\n",
"s_0470 + s_0467 + s_0032 > s_0454 + s_0033 + s_0783 | (7.97856388884133e-05 * (1 + (1.0 * log((s_0470 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0032 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_0033 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1095 + s_1429 > s_0233 + s_1151 | (0.0256671508442138 * (1 + (1.0 * log((s_1095 / 0.1))) + (1.0 * log((s_1429 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1151 / 0.1)))))\n",
"s_1477 > s_0543 + s_1437 | (0.00884013797559549 * (1 + (1.0 * log((s_1477 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1437 / 0.1)))))\n",
"s_1476 > s_0543 + s_1435 | (0.0104178435779464 * (1 + (1.0 * log((s_1476 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1435 / 0.1)))))\n",
"s_0513 + s_1170 > s_0539 + s_1477 | (0.00884013797559936 * (1 + (1.0 * log((s_0513 / 0.1))) + (1.0 * log((s_1170 / 0.1))) + (-1.0 * log((s_0539 / 0.1))) + (-1.0 * log((s_1477 / 0.1)))))\n",
"s_0512 + s_1170 > s_0539 + s_1476 | (0.0104178435779464 * (1 + (1.0 * log((s_0512 / 0.1))) + (1.0 * log((s_1170 / 0.1))) + (-1.0 * log((s_0539 / 0.1))) + (-1.0 * log((s_1476 / 0.1)))))\n",
"s_1364 > s_1430 + s_1170 | (0.146909255332631 * (1 + (1.0 * log((s_1364 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1170 / 0.1)))))\n",
"s_1768 + s_1755 > s_1777 + s_1762 | (0.0038479948756196 * (1 + (1.0 * log((s_1768 / 0.1))) + (1.0 * log((s_1755 / 0.1))) + (-1.0 * log((s_1777 / 0.1))) + (-1.0 * log((s_1762 / 0.1)))))\n",
"s_0252 + s_1544 > s_0411 + s_1612 + s_1406 | (0.0343363591697112 * (1 + (1.0 * log((s_0252 / 0.1))) + (1.0 * log((s_1544 / 0.1))) + (-1.0 * log((s_0411 / 0.1))) + (-1.0 * log((s_1612 / 0.1))) + (-1.0 * log((s_1406 / 0.1)))))\n",
"s_0543 + s_1484 > s_1399 + s_1430 | (0.492899539861318 * (1 + (1.0 * log((s_0543 / 0.1))) + (1.0 * log((s_1484 / 0.1))) + (-1.0 * log((s_1399 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0654 > s_0653 | (0.0130870610456735 * (1 + (1.0 * log((s_0654 / 0.1))) + (-1.0 * log((s_0653 / 0.1)))))\n",
"s_0306 + s_1333 > s_0308 + s_1334 | (0.146909255332631 * (1 + (1.0 * log((s_0306 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0308 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0307 + s_0421 > s_0306 + s_0467 | (0.787832256050213 * (1 + (1.0 * log((s_0307 / 0.1))) + (1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0306 / 0.1))) + (-1.0 * log((s_0467 / 0.1)))))\n",
"s_0306 > s_0675 | (0.64092300071826 * (1 + (1.0 * log((s_0306 / 0.1))) + (-1.0 * log((s_0675 / 0.1)))))\n",
"s_0313 + s_0467 > s_0218 + s_0421 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0313 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0218 / 0.1))) + (-1.0 * log((s_0421 / 0.1)))))\n",
"s_0599 + s_0575 + s_1083 > s_1277 + s_0539 + s_0783 | (7.97856388897518e-05 * (1 + (1.0 * log((s_0599 / 0.1))) + (1.0 * log((s_0575 / 0.1))) + (1.0 * log((s_1083 / 0.1))) + (-1.0 * log((s_1277 / 0.1))) + (-1.0 * log((s_0539 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1277 > s_0543 + s_1413 | (7.97856388897518e-05 * (1 + (1.0 * log((s_1277 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1413 / 0.1)))))\n",
"s_0446 > s_0445 | (9.32217621775477e-05 * (1 + (1.0 * log((s_0446 / 0.1))) + (-1.0 * log((s_0445 / 0.1)))))\n",
"s_0098 > s_0097 | (0.0131230753965474 * (1 + (1.0 * log((s_0098 / 0.1))) + (-1.0 * log((s_0097 / 0.1)))))\n",
"s_0099 > s_0783 + s_0098 | (0.0131230753965474 * (1 + (1.0 * log((s_0099 / 0.1))) + (-1.0 * log((s_0783 / 0.1))) + (-1.0 * log((s_0098 / 0.1)))))\n",
"s_0342 + s_0467 + s_0474 > s_0362 + s_0421 + s_1430 | (0.0613899240064973 * (1 + (1.0 * log((s_0342 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0474 / 0.1))) + (-1.0 * log((s_0362 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0362 > s_0344 | (0.0613899240064973 * (1 + (1.0 * log((s_0362 / 0.1))) + (-1.0 * log((s_0344 / 0.1)))))\n",
"s_0467 + s_0162 > s_0421 + s_0342 + s_1430 | (0.0614208132382202 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0162 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0342 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0133 + s_0343 > s_0352 + s_0337 | (0.0745129994030467 * (1 + (1.0 * log((s_0133 / 0.1))) + (1.0 * log((s_0343 / 0.1))) + (-1.0 * log((s_0352 / 0.1))) + (-1.0 * log((s_0337 / 0.1)))))\n",
"s_0344 + s_1072 + s_0467 > s_0040 + s_0421 + s_1430 | (0.0613899240064973 * (1 + (1.0 * log((s_0344 / 0.1))) + (1.0 * log((s_1072 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_0040 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1278 > s_0096 | (0.00787329117099325 * (1 + (1.0 * log((s_1278 / 0.1))) + (-1.0 * log((s_0096 / 0.1)))))\n",
"s_0467 + s_1322 + s_1101 > s_0421 + s_0162 + s_1095 + s_1430 | (0.0614208132382202 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1322 / 0.1))) + (1.0 * log((s_1101 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0162 / 0.1))) + (-1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0467 + s_0929 + s_0361 > s_0421 + s_1318 + s_1430 | (0.0614208132382202 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0929 / 0.1))) + (1.0 * log((s_0361 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1318 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0467 + s_0446 > s_0454 + s_0360 | (0.128552671426845 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0446 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_0360 / 0.1)))))\n",
"s_0308 + s_1095 > s_0233 + s_1364 | (0.146909255332631 * (1 + (1.0 * log((s_0308 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1364 / 0.1)))))\n",
"s_0393 + s_0555 > s_0395 + s_1430 | (0.0807006804356794 * (1 + (1.0 * log((s_0393 / 0.1))) + (1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_0395 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1492 > s_1248 + s_1491 | (2.77033467884759e-07 * (1 + (1.0 * log((s_1492 / 0.1))) + (-1.0 * log((s_1248 / 0.1))) + (-1.0 * log((s_1491 / 0.1)))))\n",
"s_0421 + s_0783 > s_0467 + s_1430 | (0.484650799082247 * (1 + (1.0 * log((s_0421 / 0.1))) + (1.0 * log((s_0783 / 0.1))) + (-1.0 * log((s_0467 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"2 * s_0345 > s_1493 | (0.000247113853781668 * (1 + (2.0 * log((s_0345 / 0.1))) + (-1.0 * log((s_1493 / 0.1)))))\n",
"s_1497 > s_0543 + s_1429 | (0.0256671508442138 * (1 + (1.0 * log((s_1497 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1429 / 0.1)))))\n",
"s_1333 + s_1497 > s_0262 + s_0543 + s_1334 | (0.0191323468756361 * (1 + (1.0 * log((s_1333 / 0.1))) + (1.0 * log((s_1497 / 0.1))) + (-1.0 * log((s_0262 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"1.5 * s_1372 + s_1512 > s_1511 | (3.08892317222945e-05 * (1 + (1.5 * log((s_1372 / 0.1))) + (1.0 * log((s_1512 / 0.1))) + (-1.0 * log((s_1511 / 0.1)))))\n",
"s_0405 + s_0445 > s_0408 + s_1430 | (9.32217619764956e-05 * (1 + (1.0 * log((s_0405 / 0.1))) + (1.0 * log((s_0445 / 0.1))) + (-1.0 * log((s_0408 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0116 + s_1333 + s_1362 > s_0543 + s_1334 + s_1530 + s_1430 | (3.08892317222495e-05 * (1 + (1.0 * log((s_0116 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (1.0 * log((s_1362 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_1530 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0128 + s_1336 > s_1335 + s_1155 | (0.0306260499280495 * (1 + (1.0 * log((s_0128 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1155 / 0.1)))))\n",
"s_0555 + s_1333 + s_1531 > s_0395 + s_0543 + s_1334 | (0.407410405183232 * (1 + (1.0 * log((s_0555 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (1.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_0395 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1334 / 0.1)))))\n",
"s_0555 + s_1531 > s_0395 + s_0867 | (0.0973208185619302 * (1 + (1.0 * log((s_0555 / 0.1))) + (1.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_0395 / 0.1))) + (-1.0 * log((s_0867 / 0.1)))))\n",
"s_0555 + 2 * s_0862 + s_1531 > s_0395 + s_0543 + 2 * s_0861 | (0.0150663266603607 * (1 + (1.0 * log((s_0555 / 0.1))) + (2.0 * log((s_0862 / 0.1))) + (1.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_0395 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-2.0 * log((s_0861 / 0.1)))))\n",
"s_0772 + s_1005 > s_1430 + s_1537 | (0.000315541120467916 * (1 + (1.0 * log((s_0772 / 0.1))) + (1.0 * log((s_1005 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1537 / 0.1)))))\n",
"s_0467 + s_1546 > s_0421 + s_0863 | (3.08892317229329e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1546 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0863 / 0.1)))))\n",
"s_0311 + s_0255 > s_0364 + s_1430 | (0.000123556926891731 * (1 + (1.0 * log((s_0311 / 0.1))) + (1.0 * log((s_0255 / 0.1))) + (-1.0 * log((s_0364 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"2 * s_0364 > s_0311 + s_1546 | (6.17784634458656e-05 * (1 + (2.0 * log((s_0364 / 0.1))) + (-1.0 * log((s_0311 / 0.1))) + (-1.0 * log((s_1546 / 0.1)))))\n",
"s_0467 + 2 * s_0861 > s_0726 + 2 * s_0862 | (0.0036249829336045 * (1 + (1.0 * log((s_0467 / 0.1))) + (2.0 * log((s_0861 / 0.1))) + (-1.0 * log((s_0726 / 0.1))) + (-2.0 * log((s_0862 / 0.1)))))\n",
"s_0575 + 2 * s_0861 > s_0731 + 2 * s_0862 | (0.00374272215765511 * (1 + (1.0 * log((s_0575 / 0.1))) + (2.0 * log((s_0861 / 0.1))) + (-1.0 * log((s_0731 / 0.1))) + (-2.0 * log((s_0862 / 0.1)))))\n",
"2 * s_0861 + s_0945 > s_0760 + 2 * s_0862 | (0.00374272215760098 * (1 + (2.0 * log((s_0861 / 0.1))) + (1.0 * log((s_0945 / 0.1))) + (-1.0 * log((s_0760 / 0.1))) + (-2.0 * log((s_0862 / 0.1)))))\n",
"2 * s_0861 + s_1792 > s_0810 + 2 * s_0862 | (0.00362498293356975 * (1 + (2.0 * log((s_0861 / 0.1))) + (1.0 * log((s_1792 / 0.1))) + (-1.0 * log((s_0810 / 0.1))) + (-2.0 * log((s_0862 / 0.1)))))\n",
"s_0704 > s_0446 | (0.101534797735323 * (1 + (1.0 * log((s_0704 / 0.1))) + (-1.0 * log((s_0446 / 0.1)))))\n",
"s_0721 > s_0704 | (0.107049425956634 * (1 + (1.0 * log((s_0721 / 0.1))) + (-1.0 * log((s_0704 / 0.1)))))\n",
"s_1551 > s_0405 + s_1558 | (6.20554969142397e-05 * (1 + (1.0 * log((s_1551 / 0.1))) + (-1.0 * log((s_0405 / 0.1))) + (-1.0 * log((s_1558 / 0.1)))))\n",
"s_1558 > s_0310 + s_1112 | (6.20554969142397e-05 * (1 + (1.0 * log((s_1558 / 0.1))) + (-1.0 * log((s_0310 / 0.1))) + (-1.0 * log((s_1112 / 0.1)))))\n",
"s_0395 + s_1170 > s_1358 + s_0555 | (0.0343363591698377 * (1 + (1.0 * log((s_0395 / 0.1))) + (1.0 * log((s_1170 / 0.1))) + (-1.0 * log((s_1358 / 0.1))) + (-1.0 * log((s_0555 / 0.1)))))\n",
"s_0270 + s_1336 > s_1335 + s_1571 | (0.052796345817737 * (1 + (1.0 * log((s_0270 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1571 / 0.1)))))\n",
"s_0467 + s_1571 > s_0421 + s_1574 | (0.0527963458177373 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1571 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1574 / 0.1)))))\n",
"s_0768 + s_1333 > s_1334 + s_1578 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0768 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_1578 / 0.1)))))\n",
"s_0838 + s_1578 > s_1577 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0838 / 0.1))) + (1.0 * log((s_1578 / 0.1))) + (-1.0 * log((s_1577 / 0.1)))))\n",
"s_0467 + s_0555 + s_1595 > s_0421 + s_1430 + s_1599 | (0.0727081263565024 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0555 / 0.1))) + (1.0 * log((s_1595 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1599 / 0.1)))))\n",
"s_1316 > s_1211 + s_1595 | (0.0513869380474194 * (1 + (1.0 * log((s_1316 / 0.1))) + (-1.0 * log((s_1211 / 0.1))) + (-1.0 * log((s_1595 / 0.1)))))\n",
"s_1095 + s_1315 > s_0233 + s_1316 | (0.0513869380474194 * (1 + (1.0 * log((s_1095 / 0.1))) + (1.0 * log((s_1315 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1316 / 0.1)))))\n",
"s_0467 + s_0945 + s_1609 > s_0412 + s_0896 + s_1430 + s_0783 | (0.0343363591697952 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0945 / 0.1))) + (1.0 * log((s_1609 / 0.1))) + (-1.0 * log((s_0412 / 0.1))) + (-1.0 * log((s_0896 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"3 * s_1336 + s_1612 > s_0994 + 3 * s_1335 | (0.0343363591698208 * (1 + (3.0 * log((s_1336 / 0.1))) + (1.0 * log((s_1612 / 0.1))) + (-1.0 * log((s_0994 / 0.1))) + (-3.0 * log((s_1335 / 0.1)))))\n",
"s_0214 + s_1334 > s_0029 + s_1333 | (4.63338474645892e-05 * (1 + (1.0 * log((s_0214 / 0.1))) + (1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_0029 / 0.1))) + (-1.0 * log((s_1333 / 0.1)))))\n",
"s_0467 + s_1204 > s_0421 + s_0147 | (0.00269553564721213 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1204 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_0147 / 0.1)))))\n",
"s_1599 + s_0148 > s_0555 + s_1315 | (0.0513869380474194 * (1 + (1.0 * log((s_1599 / 0.1))) + (1.0 * log((s_0148 / 0.1))) + (-1.0 * log((s_0555 / 0.1))) + (-1.0 * log((s_1315 / 0.1)))))\n",
"s_0218 + s_0330 > s_0783 + s_1643 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0218 / 0.1))) + (1.0 * log((s_0330 / 0.1))) + (-1.0 * log((s_0783 / 0.1))) + (-1.0 * log((s_1643 / 0.1)))))\n",
"s_0467 + s_1643 > s_0421 + s_1644 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1643 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1644 / 0.1)))))\n",
"s_0467 + s_0738 + s_0116 + s_1018 + s_1336 > s_0330 + s_0454 + s_0543 + s_1017 + s_1335 + s_0783 | (3.08892317229363e-05 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0738 / 0.1))) + (1.0 * log((s_0116 / 0.1))) + (1.0 * log((s_1018 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (-1.0 * log((s_0330 / 0.1))) + (-1.0 * log((s_0454 / 0.1))) + (-1.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_1017 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_0783 / 0.1)))))\n",
"s_1336 + s_1406 > s_1335 + s_1544 | (0.034336359169748 * (1 + (1.0 * log((s_1336 / 0.1))) + (1.0 * log((s_1406 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1544 / 0.1)))))\n",
"s_1179 > s_0381 + s_0929 | (0.0414265806134143 * (1 + (1.0 * log((s_1179 / 0.1))) + (-1.0 * log((s_0381 / 0.1))) + (-1.0 * log((s_0929 / 0.1)))))\n",
"s_1363 > s_1430 + s_1179 | (0.158233967969303 * (1 + (1.0 * log((s_1363 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1179 / 0.1)))))\n",
"s_0807 + s_0336 > s_0372 + s_0802 | (0.00362498293358012 * (1 + (1.0 * log((s_0807 / 0.1))) + (1.0 * log((s_0336 / 0.1))) + (-1.0 * log((s_0372 / 0.1))) + (-1.0 * log((s_0802 / 0.1)))))\n",
"s_0621 + s_0627 > s_0913 + s_1561 | (0.0271110954536016 * (1 + (1.0 * log((s_0621 / 0.1))) + (1.0 * log((s_0627 / 0.1))) + (-1.0 * log((s_0913 / 0.1))) + (-1.0 * log((s_1561 / 0.1)))))\n",
"s_0913 + s_1561 > s_0446 + s_0721 | (0.0271110954535792 * (1 + (1.0 * log((s_0913 / 0.1))) + (1.0 * log((s_1561 / 0.1))) + (-1.0 * log((s_0446 / 0.1))) + (-1.0 * log((s_0721 / 0.1)))))\n",
"s_0627 + s_0913 > s_0621 + s_0721 | (0.0799383305030384 * (1 + (1.0 * log((s_0627 / 0.1))) + (1.0 * log((s_0913 / 0.1))) + (-1.0 * log((s_0621 / 0.1))) + (-1.0 * log((s_0721 / 0.1)))))\n",
"s_0913 > s_0772 | (0.0195735226740616 * (1 + (1.0 * log((s_0913 / 0.1))) + (-1.0 * log((s_0772 / 0.1)))))\n",
"s_0493 > s_0913 + s_1009 | (0.00787329117099211 * (1 + (1.0 * log((s_0493 / 0.1))) + (-1.0 * log((s_0913 / 0.1))) + (-1.0 * log((s_1009 / 0.1)))))\n",
"s_1009 + s_0451 + s_1531 > s_1185 | (0.00787329117099173 * (1 + (1.0 * log((s_1009 / 0.1))) + (1.0 * log((s_0451 / 0.1))) + (1.0 * log((s_1531 / 0.1))) + (-1.0 * log((s_1185 / 0.1)))))\n",
"s_1552 + s_1336 + s_1189 > s_1407 + s_0333 + s_0738 + s_1141 + s_1335 | (3.08892317229363e-05 * (1 + (1.0 * log((s_1552 / 0.1))) + (1.0 * log((s_1336 / 0.1))) + (1.0 * log((s_1189 / 0.1))) + (-1.0 * log((s_1407 / 0.1))) + (-1.0 * log((s_0333 / 0.1))) + (-1.0 * log((s_0738 / 0.1))) + (-1.0 * log((s_1141 / 0.1))) + (-1.0 * log((s_1335 / 0.1)))))\n",
"s_0262 + s_1095 > s_0233 + s_1189 | (0.0191323468756361 * (1 + (1.0 * log((s_0262 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1189 / 0.1)))))\n",
"s_0028 + s_1735 > s_0397 + s_1734 | (0.00539107129442425 * (1 + (1.0 * log((s_0028 / 0.1))) + (1.0 * log((s_1735 / 0.1))) + (-1.0 * log((s_0397 / 0.1))) + (-1.0 * log((s_1734 / 0.1)))))\n",
"s_1736 > s_0384 + s_1735 | (0.00539107129442425 * (1 + (1.0 * log((s_1736 / 0.1))) + (-1.0 * log((s_0384 / 0.1))) + (-1.0 * log((s_1735 / 0.1)))))\n",
"s_1336 + s_1742 > s_1335 + s_1750 | (0.0038479948756196 * (1 + (1.0 * log((s_1336 / 0.1))) + (1.0 * log((s_1742 / 0.1))) + (-1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1750 / 0.1)))))\n",
"s_1484 + s_1745 > s_1430 + s_1742 | (0.0038479948756196 * (1 + (1.0 * log((s_1484 / 0.1))) + (1.0 * log((s_1745 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1742 / 0.1)))))\n",
"s_0028 + s_1745 > s_0397 + s_1736 | (0.00539107129442425 * (1 + (1.0 * log((s_0028 / 0.1))) + (1.0 * log((s_1745 / 0.1))) + (-1.0 * log((s_0397 / 0.1))) + (-1.0 * log((s_1736 / 0.1)))))\n",
"s_1287 + s_1792 > s_0783 + s_1745 | (0.0130870610456636 * (1 + (1.0 * log((s_1287 / 0.1))) + (1.0 * log((s_1792 / 0.1))) + (-1.0 * log((s_0783 / 0.1))) + (-1.0 * log((s_1745 / 0.1)))))\n",
"s_1745 + s_1777 > s_1776 + s_1733 | (0.0038479948756196 * (1 + (1.0 * log((s_1745 / 0.1))) + (1.0 * log((s_1777 / 0.1))) + (-1.0 * log((s_1776 / 0.1))) + (-1.0 * log((s_1733 / 0.1)))))\n",
"s_1041 + s_0467 + s_1750 > s_0421 + s_1430 + s_1751 | (0.00384799487562186 * (1 + (1.0 * log((s_1041 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1750 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1751 / 0.1)))))\n",
"s_0467 + s_0671 + s_1751 > s_0421 + s_1430 + s_1754 | (0.00384799487562186 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_0671 / 0.1))) + (1.0 * log((s_1751 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1754 / 0.1)))))\n",
"s_1242 + s_0467 + s_1754 > s_0421 + s_1430 + s_1752 | (0.00384799487562186 * (1 + (1.0 * log((s_1242 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1754 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1752 / 0.1)))))\n",
"s_0603 + s_0467 + s_1752 > s_0421 + s_1430 + s_1755 | (0.0038479948756196 * (1 + (1.0 * log((s_0603 / 0.1))) + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1752 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1755 / 0.1)))))\n",
"s_1734 > s_0149 + s_1762 | (0.00269553564721213 * (1 + (1.0 * log((s_1734 / 0.1))) + (-1.0 * log((s_0149 / 0.1))) + (-1.0 * log((s_1762 / 0.1)))))\n",
"s_0467 + s_1762 > s_0421 + s_1733 | (0.0523634810234329 * (1 + (1.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1762 / 0.1))) + (-1.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1733 / 0.1)))))\n",
"s_0826 + 8 * s_1028 > 8 * s_0783 + s_1765 | (7.61842038009631e-06 * (1 + (1.0 * log((s_0826 / 0.1))) + (8.0 * log((s_1028 / 0.1))) + (-8.0 * log((s_0783 / 0.1))) + (-1.0 * log((s_1765 / 0.1)))))\n",
"s_1765 > s_1430 + s_1768 | (0.0038479948756196 * (1 + (1.0 * log((s_1765 / 0.1))) + (-1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_1768 / 0.1)))))\n",
"s_1791 > 4 * s_0543 + s_0565 | (3.08892317225085e-05 * (1 + (1.0 * log((s_1791 / 0.1))) + (-4.0 * log((s_0543 / 0.1))) + (-1.0 * log((s_0565 / 0.1)))))\n",
"2 * s_1552 + s_1791 > 2 * s_1551 + s_0768 | (3.08892317229363e-05 * (1 + (2.0 * log((s_1552 / 0.1))) + (1.0 * log((s_1791 / 0.1))) + (-2.0 * log((s_1551 / 0.1))) + (-1.0 * log((s_0768 / 0.1)))))\n",
"s_0998 > s_1791 | (6.1778463445417e-05 * (1 + (1.0 * log((s_0998 / 0.1))) + (-1.0 * log((s_1791 / 0.1)))))\n",
"s_0282 + s_1095 > s_0233 + s_1193 | (0.0586202819065749 * (1 + (1.0 * log((s_0282 / 0.1))) + (1.0 * log((s_1095 / 0.1))) + (-1.0 * log((s_0233 / 0.1))) + (-1.0 * log((s_1193 / 0.1)))))\n",
"s_0657 > s_0622 | (0.0656079149963033 * (1 + (1.0 * log((s_0657 / 0.1))) + (-1.0 * log((s_0622 / 0.1)))))\n",
" > s_0451 | (1.49280744931915 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_0451 / 0.1)))))\n",
"s_0421 + s_1430 > s_0467 | (12.8512360032879 * (1 + (1.0 * log((s_0421 / 0.1))) + (1.0 * log((s_1430 / 0.1))) + (-1.0 * log((s_0467 / 0.1)))))\n",
" > s_0497 | (0.000720979601425486 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_0497 / 0.1)))))\n",
" > s_0520 | (0.000720979601425486 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_0520 / 0.1)))))\n",
"s_0543 > | (1.0 * (((0.320567754236931 * (1 + (1.0 * log((s_0543 / 0.1))))) + 0.0 + abs(((0.320567754236931 * (1 + (1.0 * log((s_0543 / 0.1))))) - 0.0))) / 2))\n",
" > s_0546 | (3.46291835458927e-06 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_0546 / 0.1)))))\n",
" > s_0579 | (9.82083645361517e-05 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_0579 / 0.1)))))\n",
"s_1239 + 0.5 * s_1372 > s_1240 | (0.0229563090982916 * (1 + (1.0 * log((s_1239 / 0.1))) + (0.5 * log((s_1372 / 0.1))) + (-1.0 * log((s_1240 / 0.1)))))\n",
"0.5 * s_1372 + s_1731 > s_1732 | (0.0229563090980402 * (1 + (0.5 * log((s_1372 / 0.1))) + (1.0 * log((s_1731 / 0.1))) + (-1.0 * log((s_1732 / 0.1)))))\n",
" > s_0657 | (1.0 * (1 + (1.0 * log(2.0)) + (-1.0 * log((s_0657 / 0.1)))))\n",
"s_1484 + s_0657 > s_0663 + s_1531 | (0.0221586919261637 * (1 + (1.0 * log((s_1484 / 0.1))) + (1.0 * log((s_0657 / 0.1))) + (-1.0 * log((s_0663 / 0.1))) + (-1.0 * log((s_1531 / 0.1)))))\n",
"s_1484 + s_0622 > s_0627 + s_1531 | (0.0110793449722376 * (1 + (1.0 * log((s_1484 / 0.1))) + (1.0 * log((s_0622 / 0.1))) + (-1.0 * log((s_0627 / 0.1))) + (-1.0 * log((s_1531 / 0.1)))))\n",
" > s_0838 | (0.001143178607316 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_0838 / 0.1)))))\n",
" > s_0841 | (0.00108153866040612 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_0841 / 0.1)))))\n",
" > s_1212 | (0.00120163266904248 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1212 / 0.1)))))\n",
" > s_1255 | (9.57150633208474e-05 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1255 / 0.1)))))\n",
"s_1248 > | (1.0 * (((2.77033467884759e-07 * (1 + (1.0 * log((s_1248 / 0.1))))) + 0.0 + abs(((2.77033467884759e-07 * (1 + (1.0 * log((s_1248 / 0.1))))) - 0.0))) / 2))\n",
" > s_1261 | (1.78686587096806e-05 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1261 / 0.1)))))\n",
"2 * s_1776 > 2 * s_1765 + s_1725 | (0.0019239974378098 * (1 + (2.0 * log((s_1776 / 0.1))) + (-2.0 * log((s_1765 / 0.1))) + (-1.0 * log((s_1725 / 0.1)))))\n",
"s_1334 + s_1335 > s_1333 + s_1336 | (1.06213701401227 * (1 + (1.0 * log((s_1334 / 0.1))) + (1.0 * log((s_1335 / 0.1))) + (-1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_1336 / 0.1)))))\n",
" > s_1329 | (4.47409051412934e-05 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1329 / 0.1)))))\n",
" > s_1372 | (0.0230335321771807 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1372 / 0.1)))))\n",
" > s_1430 | (0.131013836759781 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1430 / 0.1)))))\n",
" > s_1494 | (0.027038466512633 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1494 / 0.1)))))\n",
" > s_1609 | (0.0349372447626834 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1609 / 0.1)))))\n",
" > s_1804 | (4.72342063565976e-05 * (1 + (1.0 * log(1.0)) + (-1.0 * log((s_1804 / 0.1)))))\n",
"s_0229 + 2 * s_0467 + s_1333 > s_0226 + 2 * s_0421 + s_1334 + 2 * s_1430 | (3.08892317453432e-05 * (1 + (1.0 * log((s_0229 / 0.1))) + (2.0 * log((s_0467 / 0.1))) + (1.0 * log((s_1333 / 0.1))) + (-1.0 * log((s_0226 / 0.1))) + (-2.0 * log((s_0421 / 0.1))) + (-1.0 * log((s_1334 / 0.1))) + (-2.0 * log((s_1430 / 0.1)))))\n",
"s_0766 > s_0765 + s_1430 | (9.26676951688061e-05 * (1 + (1.0 * log((s_0766 / 0.1))) + (-1.0 * log((s_0765 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_1333 + s_1530 > s_1334 + s_1522 | (3.08892316991383e-05 * (1 + (1.0 * log((s_1333 / 0.1))) + (1.0 * log((s_1530 / 0.1))) + (-1.0 * log((s_1334 / 0.1))) + (-1.0 * log((s_1522 / 0.1)))))\n",
"s_0346 > s_0311 + s_1430 | (6.17784634458656e-05 * (1 + (1.0 * log((s_0346 / 0.1))) + (-1.0 * log((s_0311 / 0.1))) + (-1.0 * log((s_1430 / 0.1)))))\n",
"s_0003 > | (1.0 * (((6.20554969142397e-05 * (1 + (1.0 * log((s_0003 / 0.1))))) + 0.0 + abs(((6.20554969142397e-05 * (1 + (1.0 * log((s_0003 / 0.1))))) - 0.0))) / 2))\n",
"s_0334 > | (1.0 * (((3.11662651885034e-05 * (1 + (1.0 * log((s_0334 / 0.1))))) + 0.0 + abs(((3.11662651885034e-05 * (1 + (1.0 * log((s_0334 / 0.1))))) - 0.0))) / 2))\n",
"s_1407 > | (1.0 * (((3.08892317229363e-05 * (1 + (1.0 * log((s_1407 / 0.1))))) + 0.0 + abs(((3.08892317229363e-05 * (1 + (1.0 * log((s_1407 / 0.1))))) - 0.0))) / 2))\n",
"s_1550 > | (1.0 * (((2.77033467995043e-07 * (1 + (1.0 * log((s_1550 / 0.1))))) + 0.0 + abs(((2.77033467995043e-07 * (1 + (1.0 * log((s_1550 / 0.1))))) - 0.0))) / 2))\n",
"0.000223 * s_0133 + 2.6e-05 * s_0378 + 0.000223 * s_0226 + 0.00026 * s_0380 + 0.5137 * s_1041 + 0.000223 * s_1552 + 0.2958 * s_1061 + 0.2411 * s_1068 + 0.2411 * s_1072 + 54.12 * s_0467 + 0.000122 * s_0480 + 2e-06 * s_0476 + 0.005205 * s_0497 + 0.005205 * s_0520 + 0.000576 * s_0555 + 2.5e-05 * s_0546 + 0.1335 * s_0575 + 0.000709 * s_0579 + 0.09158 * s_1083 + 0.02617 * s_0726 + 0.02702 * s_0731 + 0.02702 * s_0760 + 0.02617 * s_0805 + 0.000223 * s_0859 + 0.006715 * s_0838 + 0.007808 * s_0841 + 0.2632 * s_1101 + 0.2632 * s_1095 + 0.6126 * s_0929 + 0.2151 * s_0945 + 0.09474 * s_1106 + 0.2905 * s_1119 + 0.1952 * s_1494 + 0.4505 * s_1127 + 0.3432 * s_1131 + 0.1537 * s_1141 + 0.008675 * s_1212 + 0.000223 * s_0336 + 0.000691 * s_1255 + 7e-06 * s_1261 + 0.001831 * s_1333 + 0.000447 * s_1335 + 0.01301 * s_0451 + 0.000323 * s_1329 + 0.06382 * s_1437 + 0.07521 * s_1435 + 0.1853 * s_1151 + 0.000223 * s_1508 + 0.2211 * s_1155 + 0.000223 * s_1522 + 0.000223 * s_1546 + 0.2158 * s_1170 + 0.000223 * s_1577 + 0.004338 * s_1609 + 0.000223 * s_0337 + 0.000223 * s_1644 + 0.2537 * s_1179 + 0.05684 * s_1185 + 0.1379 * s_1189 + 5.5e-05 * s_1765 + 0.1441 * s_1792 + 0.4232 * s_1193 + 0.000341 * s_1804 + 0.01946 * s_1033 + 0.01389 * s_1719 > 53.95 * s_0421 + 53.95 * s_1430 + 0.7739 * s_0783 | (1.0 * (((0.138516734183571 * (1 + (0.000223 * log((s_0133 / 0.1))) + (2.6e-05 * log((s_0378 / 0.1))) + (0.000223 * log((s_0226 / 0.1))) + (0.00026 * log((s_0380 / 0.1))) + (0.5137 * log((s_1041 / 0.1))) + (0.000223 * log((s_1552 / 0.1))) + (0.2958 * log((s_1061 / 0.1))) + (0.2411 * log((s_1068 / 0.1))) + (0.2411 * log((s_1072 / 0.1))) + (54.12 * log((s_0467 / 0.1))) + (0.000122 * log((s_0480 / 0.1))) + (2e-06 * log((s_0476 / 0.1))) + (0.005205 * log((s_0497 / 0.1))) + (0.005205 * log((s_0520 / 0.1))) + (0.000576 * log((s_0555 / 0.1))) + (2.5e-05 * log((s_0546 / 0.1))) + (0.1335 * log((s_0575 / 0.1))) + (0.000709 * log((s_0579 / 0.1))) + (0.09158 * log((s_1083 / 0.1))) + (0.02617 * log((s_0726 / 0.1))) + (0.02702 * log((s_0731 / 0.1))) + (0.02702 * log((s_0760 / 0.1))) + (0.02617 * log((s_0805 / 0.1))) + (0.000223 * log((s_0859 / 0.1))) + (0.006715 * log((s_0838 / 0.1))) + (0.007808 * log((s_0841 / 0.1))) + (0.2632 * log((s_1101 / 0.1))) + (0.2632 * log((s_1095 / 0.1))) + (0.6126 * log((s_0929 / 0.1))) + (0.2151 * log((s_0945 / 0.1))) + (0.09474 * log((s_1106 / 0.1))) + (0.2905 * log((s_1119 / 0.1))) + (0.1952 * log((s_1494 / 0.1))) + (0.4505 * log((s_1127 / 0.1))) + (0.3432 * log((s_1131 / 0.1))) + (0.1537 * log((s_1141 / 0.1))) + (0.008675 * log((s_1212 / 0.1))) + (0.000223 * log((s_0336 / 0.1))) + (0.000691 * log((s_1255 / 0.1))) + (7e-06 * log((s_1261 / 0.1))) + (0.001831 * log((s_1333 / 0.1))) + (0.000447 * log((s_1335 / 0.1))) + (0.01301 * log((s_0451 / 0.1))) + (0.000323 * log((s_1329 / 0.1))) + (0.06382 * log((s_1437 / 0.1))) + (0.07521 * log((s_1435 / 0.1))) + (0.1853 * log((s_1151 / 0.1))) + (0.000223 * log((s_1508 / 0.1))) + (0.2211 * log((s_1155 / 0.1))) + (0.000223 * log((s_1522 / 0.1))) + (0.000223 * log((s_1546 / 0.1))) + (0.2158 * log((s_1170 / 0.1))) + (0.000223 * log((s_1577 / 0.1))) + (0.004338 * log((s_1609 / 0.1))) + (0.000223 * log((s_0337 / 0.1))) + (0.000223 * log((s_1644 / 0.1))) + (0.2537 * log((s_1179 / 0.1))) + (0.05684 * log((s_1185 / 0.1))) + (0.1379 * log((s_1189 / 0.1))) + (5.5e-05 * log((s_1765 / 0.1))) + (0.1441 * log((s_1792 / 0.1))) + (0.4232 * log((s_1193 / 0.1))) + (0.000341 * log((s_1804 / 0.1))) + (0.01946 * log((s_1033 / 0.1))) + (0.01389 * log((s_1719 / 0.1))))) + 0.0 + abs(((0.138516734183571 * (1 + (0.000223 * log((s_0133 / 0.1))) + (2.6e-05 * log((s_0378 / 0.1))) + (0.000223 * log((s_0226 / 0.1))) + (0.00026 * log((s_0380 / 0.1))) + (0.5137 * log((s_1041 / 0.1))) + (0.000223 * log((s_1552 / 0.1))) + (0.2958 * log((s_1061 / 0.1))) + (0.2411 * log((s_1068 / 0.1))) + (0.2411 * log((s_1072 / 0.1))) + (54.12 * log((s_0467 / 0.1))) + (0.000122 * log((s_0480 / 0.1))) + (2e-06 * log((s_0476 / 0.1))) + (0.005205 * log((s_0497 / 0.1))) + (0.005205 * log((s_0520 / 0.1))) + (0.000576 * log((s_0555 / 0.1))) + (2.5e-05 * log((s_0546 / 0.1))) + (0.1335 * log((s_0575 / 0.1))) + (0.000709 * log((s_0579 / 0.1))) + (0.09158 * log((s_1083 / 0.1))) + (0.02617 * log((s_0726 / 0.1))) + (0.02702 * log((s_0731 / 0.1))) + (0.02702 * log((s_0760 / 0.1))) + (0.02617 * log((s_0805 / 0.1))) + (0.000223 * log((s_0859 / 0.1))) + (0.006715 * log((s_0838 / 0.1))) + (0.007808 * log((s_0841 / 0.1))) + (0.2632 * log((s_1101 / 0.1))) + (0.2632 * log((s_1095 / 0.1))) + (0.6126 * log((s_0929 / 0.1))) + (0.2151 * log((s_0945 / 0.1))) + (0.09474 * log((s_1106 / 0.1))) + (0.2905 * log((s_1119 / 0.1))) + (0.1952 * log((s_1494 / 0.1))) + (0.4505 * log((s_1127 / 0.1))) + (0.3432 * log((s_1131 / 0.1))) + (0.1537 * log((s_1141 / 0.1))) + (0.008675 * log((s_1212 / 0.1))) + (0.000223 * log((s_0336 / 0.1))) + (0.000691 * log((s_1255 / 0.1))) + (7e-06 * log((s_1261 / 0.1))) + (0.001831 * log((s_1333 / 0.1))) + (0.000447 * log((s_1335 / 0.1))) + (0.01301 * log((s_0451 / 0.1))) + (0.000323 * log((s_1329 / 0.1))) + (0.06382 * log((s_1437 / 0.1))) + (0.07521 * log((s_1435 / 0.1))) + (0.1853 * log((s_1151 / 0.1))) + (0.000223 * log((s_1508 / 0.1))) + (0.2211 * log((s_1155 / 0.1))) + (0.000223 * log((s_1522 / 0.1))) + (0.000223 * log((s_1546 / 0.1))) + (0.2158 * log((s_1170 / 0.1))) + (0.000223 * log((s_1577 / 0.1))) + (0.004338 * log((s_1609 / 0.1))) + (0.000223 * log((s_0337 / 0.1))) + (0.000223 * log((s_1644 / 0.1))) + (0.2537 * log((s_1179 / 0.1))) + (0.05684 * log((s_1185 / 0.1))) + (0.1379 * log((s_1189 / 0.1))) + (5.5e-05 * log((s_1765 / 0.1))) + (0.1441 * log((s_1792 / 0.1))) + (0.4232 * log((s_1193 / 0.1))) + (0.000341 * log((s_1804 / 0.1))) + (0.01946 * log((s_1033 / 0.1))) + (0.01389 * log((s_1719 / 0.1))))) - 0.0))) / 2))\n"
]
}
],
"source": [
"show(m)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"ATP = \"s_0467\"\n",
"ADP = \"s_0421\"\n",
"AMP = \"s_0454\""
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"from ecell4_base import *\n",
"from ecell4_base.core import *"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [],
"source": [
"w = ode.ODEWorld()\n",
"for key, value in y0.items():\n",
" w.set_value(Species(key), value)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"# sim = ode.ODESimulator(w, m, ode.RUNGE_KUTTA_CASH_KARP54)\n",
"sim = ode.ODESimulator(w, m)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"sim.set_absolute_tolerance(1e-12)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [],
"source": [
"#sim.set_maximum_step_interval(0.01)"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"# obs = FixedIntervalNumberObserver(1.0, [ATP, ADP, AMP])\n",
"obs = FixedIntervalNumberObserver(0.1, [ATP, ADP, AMP])"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"# sim.run(30, obs)\n",
"sim.run(100, obs)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"# obs = run_simulation(6.0, model=m, y0=y0, species_list=[ATP, ADP, AMP], return_type='observer')"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support. ' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>');\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option);\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>');\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAgAElEQVR4nOzdeVxUZd8/8AMhSKhJu3c+jxI+9fQwKuJKi7ZKppW5ZGpC5q1Ymomp3WqGhkaaW2VmgjkIbqmQmBIuuQFuCAIquLCICiKiIPvAzOf3Rz9PTjPAwMA5h5nP+/W6/vDMzJnv6Nfh+nCWSwAREREREZFEBLkLICIiIiIi68EAQkREREREkmEAISIiIiIiyTCAEBERERGRZBhAiIiIiIhIMgwgREREREQkGQYQIiIiIiKSDAMIERERERFJhgGEiIiIiIgkwwBCRERERESSYQAhIiIiIiLJMIAQEREREZFkGECIiIiIiEgyDCBERERERCQZBhAiIiIiIpIMAwgREREREUmGAYSIiIiIiCTDAEJERERERJJhACEiIiIiIskwgBARERERkWQYQIiIiIiISDIMIEREREREJBkGECIiIiIikgwDCBERERERSYYBhIiIiIiIJMMAQkREREREkmEAISIiIiIiyTCAEBERERGRZBhAiIiIiIhIMgwgREREREQkGQYQIiIiIiKSDAMIERERERFJhgGEiIiIiIgkwwBCRERERESSYQAhIiIiIiLJMIAQEREREZFkGECIiIiIiEgyDCBERERERCQZBhAiIiIiIpIMAwgREREREUmGAYSIiIiIiCTDAEJERERERJJhACEiIiIiIskwgBARERERkWQYQIiIiIiISDIMIEREREREJBkGECIiIiIikgwDCBERERERSYYBhIiIiIiIJMMAQkREREREkmEAISIiIiIiyTCAEBERERGRZBhAiIiIiIhIMgwgREREREQkGQYQIiIiIiKSDAMIERERERFJhgGEiIiIiIgkwwBCRERERESSYQAhIiIiIiLJMIAQEREREZFkGECIiIiIiEgyDCBERERERCQZBhAiIiIiIpIMAwgREREREUmGAYSIiIiIiCTDAEJERERERJJhACEiIiIiIskwgBARERERkWQYQIiIiIiISDIMIEREREREJBkGEAXJz89HWFgYYmJicOrUKQ4ODg4ODg4ODoWNmJgYhIWFIT8/X+6pY7PFAKIgYWFhEASBg4ODg4ODg4ND4SMsLEzuqWOzxQCiIDExMWJDy53uOTg4ODg4ODg4DMfdXxjHxMTIPXVsthhAFOTUqVMQBAGnTp2SuxQi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W1tbMWjQIAwdOlTtzMiiRYsgk8mQnZ2t7aEREZEeMYAQEZFGjxpAunTponZz+tixYyGEQH5+vsr22bNnQwiBuro6AEBmZqYywFRWVqq0I0eOQAiB7du3P8ajJCIiXWMAISIijR41gDg4OKj1fe+99yCEQHNzs8r2RYsWQQiBkpISAMDu3bs7fAzwqlWrHtMREhGRPjCAEBGRRtrchP57bQHk99oCSHFxMQDgm2++Ud4XcvjwYY3t2rVrj+HoiIhIXxhAiIhII30EkPPnz0MIgeDg4MdwBEREJEUMIEREpJE+AkhLSwsGDBgAe3t7lJWVqfW/e/cuX35IRGTgGECIiEgjfQQQADh37hysra3Ro0cPLFmyBFFRUdiwYQOmT58OS0tLvhiRiMjAMYAQEZFG+gogAJCTk4OZM2eiV69eMDMzg729PV577TVs3LhR+cQsIiIyTAwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkM/8PiazRDhFQUqsAAAAASUVORK5CYII=\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show(obs)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support. ' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>');\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option);\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>');\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAYAAACadoJwAAAgAElEQVR4nOzdeVxUZd8/8AMhSKhJu3c+jxI+9fQwKuJKi7ZKppW5ZGpC5q1Ymomp3WqGhkaaW2VmgjkIbqmQmBIuuQFuCAIquLCICiKiIPvAzOf3Rz9PTjPAwMA5h5nP+/W6/vDMzJnv6Nfh+nCWSwAREREREZFEBLkLICIiIiIi68EAQkREREREkmEAISIiIiIiyTCAEBERERGRZBhAiIiIiIhIMgwgREREREQkGQYQIiIiIiKSDAMIERERERFJhgGEiIiIiIgkwwBCRERERESSYQAhIiIiIiLJMIAQEREREZFkGECIiIiIiEgyDCBERERERCQZBhAiIiIiIpIMAwgREREREUmGAYSIiIiIiCTDAEJERERERJJhACEiIiIiIskwgBARERERkWQYQIiIiIiISDIMIEREREREJBkGECIiIiIikgwDCBERERERSYYBhIiIiIiIJMMAQkREREREkmEAISIiIiIiyTCAEBERERGRZBhAiIiIiIhIMgwgREREREQkGQYQIiIiIiKSDAMIERERERFJhgGEiIiIiIgkwwBCRERERESSYQAhIiIiIiLJMIAQEREREZFkGECIiIiIiEgyDCBERERERCQZBhAiIiIiIpIMAwgREREREUmGAYSIiIiIiCTDAEJERERERJJhACEiIiIiIskwgBARERERkWQYQIiIiIiISDIMIEREREREJBkGECIiIiIikgwDCBERERERSYYBhIiIiIiIJMMAQkREREREkmEAISIiIiIiyTCAEBERERGRZBhAiIiIiIhIMgwgREREREQkGQYQIiIiIiKSDAMIERERERFJhgGEiIiIiIgkwwBCRERERESSYQAhIiIiIiLJMIAQEREREZFkGECIiIiIiEgyDCBERERERCQZBhAiIiIiIpIMAwgREREREUmGAYSIiIiIiCTDAEJERERERJJhACEiIiIiIskwgBARERERkWQYQIiIiIiISDIMIEREREREJBkGEAXJz89HWFgYYmJicOrUKQ4ODg4ODg4ODoWNmJgYhIWFIT8/X+6pY7PFAKIgYWFhEASBg4ODg4ODg4ND4SMsLEzuqWOzxQCiIDExMWJDy53uOTg4ODg4ODg4DMfdXxjHxMTIPXVsthhAFOTUqVMQBAGnTp2SuxQi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W1tbMWjQIAwdOlTtzMiiRYsgk8mQnZ2t7aEREZEeMYAQEZFGjxpAunTponZz+tixYyGEQH5+vsr22bNnQwiBuro6AEBmZqYywFRWVqq0I0eOQAiB7du3P8ajJCIiXWMAISIijR41gDg4OKj1fe+99yCEQHNzs8r2RYsWQQiBkpISAMDu3bs7fAzwqlWrHtMREhGRPjCAEBGRRtrchP57bQHk99oCSHFxMQDgm2++Ud4XcvjwYY3t2rVrj+HoiIhIXxhAiIhII30EkPPnz0MIgeDg4MdwBEREJEUMIEREpJE+AkhLSwsGDBgAe3t7lJWVqfW/e/cuX35IRGTgGECIiEgjfQQQADh37hysra3Ro0cPLFmyBFFRUdiwYQOmT58OS0tLvhiRiMjAMYAQEZFG+gogAJCTk4OZM2eiV69eMDMzg729PV577TVs3LhR+cQsIiIyTAwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkMwwgRERERESkM/8PiazRDhFQUqsAAAAASUVORK5CYII=\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"show(obs)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"data = numpy.array(obs.data()).T"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"/* Put everything inside the global mpl namespace */\n",
"window.mpl = {};\n",
"\n",
"\n",
"mpl.get_websocket_type = function() {\n",
" if (typeof(WebSocket) !== 'undefined') {\n",
" return WebSocket;\n",
" } else if (typeof(MozWebSocket) !== 'undefined') {\n",
" return MozWebSocket;\n",
" } else {\n",
" alert('Your browser does not have WebSocket support. ' +\n",
" 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n",
" 'Firefox 4 and 5 are also supported but you ' +\n",
" 'have to enable WebSockets in about:config.');\n",
" };\n",
"}\n",
"\n",
"mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n",
" this.id = figure_id;\n",
"\n",
" this.ws = websocket;\n",
"\n",
" this.supports_binary = (this.ws.binaryType != undefined);\n",
"\n",
" if (!this.supports_binary) {\n",
" var warnings = document.getElementById(\"mpl-warnings\");\n",
" if (warnings) {\n",
" warnings.style.display = 'block';\n",
" warnings.textContent = (\n",
" \"This browser does not support binary websocket messages. \" +\n",
" \"Performance may be slow.\");\n",
" }\n",
" }\n",
"\n",
" this.imageObj = new Image();\n",
"\n",
" this.context = undefined;\n",
" this.message = undefined;\n",
" this.canvas = undefined;\n",
" this.rubberband_canvas = undefined;\n",
" this.rubberband_context = undefined;\n",
" this.format_dropdown = undefined;\n",
"\n",
" this.image_mode = 'full';\n",
"\n",
" this.root = $('<div/>');\n",
" this._root_extra_style(this.root)\n",
" this.root.attr('style', 'display: inline-block');\n",
"\n",
" $(parent_element).append(this.root);\n",
"\n",
" this._init_header(this);\n",
" this._init_canvas(this);\n",
" this._init_toolbar(this);\n",
"\n",
" var fig = this;\n",
"\n",
" this.waiting = false;\n",
"\n",
" this.ws.onopen = function () {\n",
" fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n",
" fig.send_message(\"send_image_mode\", {});\n",
" if (mpl.ratio != 1) {\n",
" fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n",
" }\n",
" fig.send_message(\"refresh\", {});\n",
" }\n",
"\n",
" this.imageObj.onload = function() {\n",
" if (fig.image_mode == 'full') {\n",
" // Full images could contain transparency (where diff images\n",
" // almost always do), so we need to clear the canvas so that\n",
" // there is no ghosting.\n",
" fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n",
" }\n",
" fig.context.drawImage(fig.imageObj, 0, 0);\n",
" };\n",
"\n",
" this.imageObj.onunload = function() {\n",
" fig.ws.close();\n",
" }\n",
"\n",
" this.ws.onmessage = this._make_on_message_function(this);\n",
"\n",
" this.ondownload = ondownload;\n",
"}\n",
"\n",
"mpl.figure.prototype._init_header = function() {\n",
" var titlebar = $(\n",
" '<div class=\"ui-dialog-titlebar ui-widget-header ui-corner-all ' +\n",
" 'ui-helper-clearfix\"/>');\n",
" var titletext = $(\n",
" '<div class=\"ui-dialog-title\" style=\"width: 100%; ' +\n",
" 'text-align: center; padding: 3px;\"/>');\n",
" titlebar.append(titletext)\n",
" this.root.append(titlebar);\n",
" this.header = titletext[0];\n",
"}\n",
"\n",
"\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(canvas_div) {\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._init_canvas = function() {\n",
" var fig = this;\n",
"\n",
" var canvas_div = $('<div/>');\n",
"\n",
" canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n",
"\n",
" function canvas_keyboard_event(event) {\n",
" return fig.key_event(event, event['data']);\n",
" }\n",
"\n",
" canvas_div.keydown('key_press', canvas_keyboard_event);\n",
" canvas_div.keyup('key_release', canvas_keyboard_event);\n",
" this.canvas_div = canvas_div\n",
" this._canvas_extra_style(canvas_div)\n",
" this.root.append(canvas_div);\n",
"\n",
" var canvas = $('<canvas/>');\n",
" canvas.addClass('mpl-canvas');\n",
" canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n",
"\n",
" this.canvas = canvas[0];\n",
" this.context = canvas[0].getContext(\"2d\");\n",
"\n",
" var backingStore = this.context.backingStorePixelRatio ||\n",
"\tthis.context.webkitBackingStorePixelRatio ||\n",
"\tthis.context.mozBackingStorePixelRatio ||\n",
"\tthis.context.msBackingStorePixelRatio ||\n",
"\tthis.context.oBackingStorePixelRatio ||\n",
"\tthis.context.backingStorePixelRatio || 1;\n",
"\n",
" mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n",
"\n",
" var rubberband = $('<canvas/>');\n",
" rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n",
"\n",
" var pass_mouse_events = true;\n",
"\n",
" canvas_div.resizable({\n",
" start: function(event, ui) {\n",
" pass_mouse_events = false;\n",
" },\n",
" resize: function(event, ui) {\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" stop: function(event, ui) {\n",
" pass_mouse_events = true;\n",
" fig.request_resize(ui.size.width, ui.size.height);\n",
" },\n",
" });\n",
"\n",
" function mouse_event_fn(event) {\n",
" if (pass_mouse_events)\n",
" return fig.mouse_event(event, event['data']);\n",
" }\n",
"\n",
" rubberband.mousedown('button_press', mouse_event_fn);\n",
" rubberband.mouseup('button_release', mouse_event_fn);\n",
" // Throttle sequential mouse events to 1 every 20ms.\n",
" rubberband.mousemove('motion_notify', mouse_event_fn);\n",
"\n",
" rubberband.mouseenter('figure_enter', mouse_event_fn);\n",
" rubberband.mouseleave('figure_leave', mouse_event_fn);\n",
"\n",
" canvas_div.on(\"wheel\", function (event) {\n",
" event = event.originalEvent;\n",
" event['data'] = 'scroll'\n",
" if (event.deltaY < 0) {\n",
" event.step = 1;\n",
" } else {\n",
" event.step = -1;\n",
" }\n",
" mouse_event_fn(event);\n",
" });\n",
"\n",
" canvas_div.append(canvas);\n",
" canvas_div.append(rubberband);\n",
"\n",
" this.rubberband = rubberband;\n",
" this.rubberband_canvas = rubberband[0];\n",
" this.rubberband_context = rubberband[0].getContext(\"2d\");\n",
" this.rubberband_context.strokeStyle = \"#000000\";\n",
"\n",
" this._resize_canvas = function(width, height) {\n",
" // Keep the size of the canvas, canvas container, and rubber band\n",
" // canvas in synch.\n",
" canvas_div.css('width', width)\n",
" canvas_div.css('height', height)\n",
"\n",
" canvas.attr('width', width * mpl.ratio);\n",
" canvas.attr('height', height * mpl.ratio);\n",
" canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n",
"\n",
" rubberband.attr('width', width);\n",
" rubberband.attr('height', height);\n",
" }\n",
"\n",
" // Set the figure to an initial 600x600px, this will subsequently be updated\n",
" // upon first draw.\n",
" this._resize_canvas(600, 600);\n",
"\n",
" // Disable right mouse context menu.\n",
" $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n",
" return false;\n",
" });\n",
"\n",
" function set_focus () {\n",
" canvas.focus();\n",
" canvas_div.focus();\n",
" }\n",
"\n",
" window.setTimeout(set_focus, 100);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>');\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items) {\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) {\n",
" // put a spacer in here.\n",
" continue;\n",
" }\n",
" var button = $('<button/>');\n",
" button.addClass('ui-button ui-widget ui-state-default ui-corner-all ' +\n",
" 'ui-button-icon-only');\n",
" button.attr('role', 'button');\n",
" button.attr('aria-disabled', 'false');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
"\n",
" var icon_img = $('<span/>');\n",
" icon_img.addClass('ui-button-icon-primary ui-icon');\n",
" icon_img.addClass(image);\n",
" icon_img.addClass('ui-corner-all');\n",
"\n",
" var tooltip_span = $('<span/>');\n",
" tooltip_span.addClass('ui-button-text');\n",
" tooltip_span.html(tooltip);\n",
"\n",
" button.append(icon_img);\n",
" button.append(tooltip_span);\n",
"\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" var fmt_picker_span = $('<span/>');\n",
"\n",
" var fmt_picker = $('<select/>');\n",
" fmt_picker.addClass('mpl-toolbar-option ui-widget ui-widget-content');\n",
" fmt_picker_span.append(fmt_picker);\n",
" nav_element.append(fmt_picker_span);\n",
" this.format_dropdown = fmt_picker[0];\n",
"\n",
" for (var ind in mpl.extensions) {\n",
" var fmt = mpl.extensions[ind];\n",
" var option = $(\n",
" '<option/>', {selected: fmt === mpl.default_extension}).html(fmt);\n",
" fmt_picker.append(option);\n",
" }\n",
"\n",
" // Add hover states to the ui-buttons\n",
" $( \".ui-button\" ).hover(\n",
" function() { $(this).addClass(\"ui-state-hover\");},\n",
" function() { $(this).removeClass(\"ui-state-hover\");}\n",
" );\n",
"\n",
" var status_bar = $('<span class=\"mpl-message\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"}\n",
"\n",
"mpl.figure.prototype.request_resize = function(x_pixels, y_pixels) {\n",
" // Request matplotlib to resize the figure. Matplotlib will then trigger a resize in the client,\n",
" // which will in turn request a refresh of the image.\n",
" this.send_message('resize', {'width': x_pixels, 'height': y_pixels});\n",
"}\n",
"\n",
"mpl.figure.prototype.send_message = function(type, properties) {\n",
" properties['type'] = type;\n",
" properties['figure_id'] = this.id;\n",
" this.ws.send(JSON.stringify(properties));\n",
"}\n",
"\n",
"mpl.figure.prototype.send_draw_message = function() {\n",
" if (!this.waiting) {\n",
" this.waiting = true;\n",
" this.ws.send(JSON.stringify({type: \"draw\", figure_id: this.id}));\n",
" }\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" var format_dropdown = fig.format_dropdown;\n",
" var format = format_dropdown.options[format_dropdown.selectedIndex].value;\n",
" fig.ondownload(fig, format);\n",
"}\n",
"\n",
"\n",
"mpl.figure.prototype.handle_resize = function(fig, msg) {\n",
" var size = msg['size'];\n",
" if (size[0] != fig.canvas.width || size[1] != fig.canvas.height) {\n",
" fig._resize_canvas(size[0], size[1]);\n",
" fig.send_message(\"refresh\", {});\n",
" };\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_rubberband = function(fig, msg) {\n",
" var x0 = msg['x0'] / mpl.ratio;\n",
" var y0 = (fig.canvas.height - msg['y0']) / mpl.ratio;\n",
" var x1 = msg['x1'] / mpl.ratio;\n",
" var y1 = (fig.canvas.height - msg['y1']) / mpl.ratio;\n",
" x0 = Math.floor(x0) + 0.5;\n",
" y0 = Math.floor(y0) + 0.5;\n",
" x1 = Math.floor(x1) + 0.5;\n",
" y1 = Math.floor(y1) + 0.5;\n",
" var min_x = Math.min(x0, x1);\n",
" var min_y = Math.min(y0, y1);\n",
" var width = Math.abs(x1 - x0);\n",
" var height = Math.abs(y1 - y0);\n",
"\n",
" fig.rubberband_context.clearRect(\n",
" 0, 0, fig.canvas.width, fig.canvas.height);\n",
"\n",
" fig.rubberband_context.strokeRect(min_x, min_y, width, height);\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_figure_label = function(fig, msg) {\n",
" // Updates the figure title.\n",
" fig.header.textContent = msg['label'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_cursor = function(fig, msg) {\n",
" var cursor = msg['cursor'];\n",
" switch(cursor)\n",
" {\n",
" case 0:\n",
" cursor = 'pointer';\n",
" break;\n",
" case 1:\n",
" cursor = 'default';\n",
" break;\n",
" case 2:\n",
" cursor = 'crosshair';\n",
" break;\n",
" case 3:\n",
" cursor = 'move';\n",
" break;\n",
" }\n",
" fig.rubberband_canvas.style.cursor = cursor;\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_message = function(fig, msg) {\n",
" fig.message.textContent = msg['message'];\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_draw = function(fig, msg) {\n",
" // Request the server to send over a new figure.\n",
" fig.send_draw_message();\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_image_mode = function(fig, msg) {\n",
" fig.image_mode = msg['mode'];\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Called whenever the canvas gets updated.\n",
" this.send_message(\"ack\", {});\n",
"}\n",
"\n",
"// A function to construct a web socket function for onmessage handling.\n",
"// Called in the figure constructor.\n",
"mpl.figure.prototype._make_on_message_function = function(fig) {\n",
" return function socket_on_message(evt) {\n",
" if (evt.data instanceof Blob) {\n",
" /* FIXME: We get \"Resource interpreted as Image but\n",
" * transferred with MIME type text/plain:\" errors on\n",
" * Chrome. But how to set the MIME type? It doesn't seem\n",
" * to be part of the websocket stream */\n",
" evt.data.type = \"image/png\";\n",
"\n",
" /* Free the memory for the previous frames */\n",
" if (fig.imageObj.src) {\n",
" (window.URL || window.webkitURL).revokeObjectURL(\n",
" fig.imageObj.src);\n",
" }\n",
"\n",
" fig.imageObj.src = (window.URL || window.webkitURL).createObjectURL(\n",
" evt.data);\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
" else if (typeof evt.data === 'string' && evt.data.slice(0, 21) == \"data:image/png;base64\") {\n",
" fig.imageObj.src = evt.data;\n",
" fig.updated_canvas_event();\n",
" fig.waiting = false;\n",
" return;\n",
" }\n",
"\n",
" var msg = JSON.parse(evt.data);\n",
" var msg_type = msg['type'];\n",
"\n",
" // Call the \"handle_{type}\" callback, which takes\n",
" // the figure and JSON message as its only arguments.\n",
" try {\n",
" var callback = fig[\"handle_\" + msg_type];\n",
" } catch (e) {\n",
" console.log(\"No handler for the '\" + msg_type + \"' message type: \", msg);\n",
" return;\n",
" }\n",
"\n",
" if (callback) {\n",
" try {\n",
" // console.log(\"Handling '\" + msg_type + \"' message: \", msg);\n",
" callback(fig, msg);\n",
" } catch (e) {\n",
" console.log(\"Exception inside the 'handler_\" + msg_type + \"' callback:\", e, e.stack, msg);\n",
" }\n",
" }\n",
" };\n",
"}\n",
"\n",
"// from http://stackoverflow.com/questions/1114465/getting-mouse-location-in-canvas\n",
"mpl.findpos = function(e) {\n",
" //this section is from http://www.quirksmode.org/js/events_properties.html\n",
" var targ;\n",
" if (!e)\n",
" e = window.event;\n",
" if (e.target)\n",
" targ = e.target;\n",
" else if (e.srcElement)\n",
" targ = e.srcElement;\n",
" if (targ.nodeType == 3) // defeat Safari bug\n",
" targ = targ.parentNode;\n",
"\n",
" // jQuery normalizes the pageX and pageY\n",
" // pageX,Y are the mouse positions relative to the document\n",
" // offset() returns the position of the element relative to the document\n",
" var x = e.pageX - $(targ).offset().left;\n",
" var y = e.pageY - $(targ).offset().top;\n",
"\n",
" return {\"x\": x, \"y\": y};\n",
"};\n",
"\n",
"/*\n",
" * return a copy of an object with only non-object keys\n",
" * we need this to avoid circular references\n",
" * http://stackoverflow.com/a/24161582/3208463\n",
" */\n",
"function simpleKeys (original) {\n",
" return Object.keys(original).reduce(function (obj, key) {\n",
" if (typeof original[key] !== 'object')\n",
" obj[key] = original[key]\n",
" return obj;\n",
" }, {});\n",
"}\n",
"\n",
"mpl.figure.prototype.mouse_event = function(event, name) {\n",
" var canvas_pos = mpl.findpos(event)\n",
"\n",
" if (name === 'button_press')\n",
" {\n",
" this.canvas.focus();\n",
" this.canvas_div.focus();\n",
" }\n",
"\n",
" var x = canvas_pos.x * mpl.ratio;\n",
" var y = canvas_pos.y * mpl.ratio;\n",
"\n",
" this.send_message(name, {x: x, y: y, button: event.button,\n",
" step: event.step,\n",
" guiEvent: simpleKeys(event)});\n",
"\n",
" /* This prevents the web browser from automatically changing to\n",
" * the text insertion cursor when the button is pressed. We want\n",
" * to control all of the cursor setting manually through the\n",
" * 'cursor' event from matplotlib */\n",
" event.preventDefault();\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" // Handle any extra behaviour associated with a key event\n",
"}\n",
"\n",
"mpl.figure.prototype.key_event = function(event, name) {\n",
"\n",
" // Prevent repeat events\n",
" if (name == 'key_press')\n",
" {\n",
" if (event.which === this._key)\n",
" return;\n",
" else\n",
" this._key = event.which;\n",
" }\n",
" if (name == 'key_release')\n",
" this._key = null;\n",
"\n",
" var value = '';\n",
" if (event.ctrlKey && event.which != 17)\n",
" value += \"ctrl+\";\n",
" if (event.altKey && event.which != 18)\n",
" value += \"alt+\";\n",
" if (event.shiftKey && event.which != 16)\n",
" value += \"shift+\";\n",
"\n",
" value += 'k';\n",
" value += event.which.toString();\n",
"\n",
" this._key_event_extra(event, name);\n",
"\n",
" this.send_message(name, {key: value,\n",
" guiEvent: simpleKeys(event)});\n",
" return false;\n",
"}\n",
"\n",
"mpl.figure.prototype.toolbar_button_onclick = function(name) {\n",
" if (name == 'download') {\n",
" this.handle_save(this, null);\n",
" } else {\n",
" this.send_message(\"toolbar_button\", {name: name});\n",
" }\n",
"};\n",
"\n",
"mpl.figure.prototype.toolbar_button_onmouseover = function(tooltip) {\n",
" this.message.textContent = tooltip;\n",
"};\n",
"mpl.toolbar_items = [[\"Home\", \"Reset original view\", \"fa fa-home icon-home\", \"home\"], [\"Back\", \"Back to previous view\", \"fa fa-arrow-left icon-arrow-left\", \"back\"], [\"Forward\", \"Forward to next view\", \"fa fa-arrow-right icon-arrow-right\", \"forward\"], [\"\", \"\", \"\", \"\"], [\"Pan\", \"Pan axes with left mouse, zoom with right\", \"fa fa-arrows icon-move\", \"pan\"], [\"Zoom\", \"Zoom to rectangle\", \"fa fa-square-o icon-check-empty\", \"zoom\"], [\"\", \"\", \"\", \"\"], [\"Download\", \"Download plot\", \"fa fa-floppy-o icon-save\", \"download\"]];\n",
"\n",
"mpl.extensions = [\"eps\", \"pdf\", \"png\", \"ps\", \"raw\", \"svg\"];\n",
"\n",
"mpl.default_extension = \"png\";var comm_websocket_adapter = function(comm) {\n",
" // Create a \"websocket\"-like object which calls the given IPython comm\n",
" // object with the appropriate methods. Currently this is a non binary\n",
" // socket, so there is still some room for performance tuning.\n",
" var ws = {};\n",
"\n",
" ws.close = function() {\n",
" comm.close()\n",
" };\n",
" ws.send = function(m) {\n",
" //console.log('sending', m);\n",
" comm.send(m);\n",
" };\n",
" // Register the callback with on_msg.\n",
" comm.on_msg(function(msg) {\n",
" //console.log('receiving', msg['content']['data'], msg);\n",
" // Pass the mpl event to the overridden (by mpl) onmessage function.\n",
" ws.onmessage(msg['content']['data'])\n",
" });\n",
" return ws;\n",
"}\n",
"\n",
"mpl.mpl_figure_comm = function(comm, msg) {\n",
" // This is the function which gets called when the mpl process\n",
" // starts-up an IPython Comm through the \"matplotlib\" channel.\n",
"\n",
" var id = msg.content.data.id;\n",
" // Get hold of the div created by the display call when the Comm\n",
" // socket was opened in Python.\n",
" var element = $(\"#\" + id);\n",
" var ws_proxy = comm_websocket_adapter(comm)\n",
"\n",
" function ondownload(figure, format) {\n",
" window.open(figure.imageObj.src);\n",
" }\n",
"\n",
" var fig = new mpl.figure(id, ws_proxy,\n",
" ondownload,\n",
" element.get(0));\n",
"\n",
" // Call onopen now - mpl needs it, as it is assuming we've passed it a real\n",
" // web socket which is closed, not our websocket->open comm proxy.\n",
" ws_proxy.onopen();\n",
"\n",
" fig.parent_element = element.get(0);\n",
" fig.cell_info = mpl.find_output_cell(\"<div id='\" + id + \"'></div>\");\n",
" if (!fig.cell_info) {\n",
" console.error(\"Failed to find cell for figure\", id, fig);\n",
" return;\n",
" }\n",
"\n",
" var output_index = fig.cell_info[2]\n",
" var cell = fig.cell_info[0];\n",
"\n",
"};\n",
"\n",
"mpl.figure.prototype.handle_close = function(fig, msg) {\n",
" var width = fig.canvas.width/mpl.ratio\n",
" fig.root.unbind('remove')\n",
"\n",
" // Update the output cell to use the data from the current canvas.\n",
" fig.push_to_output();\n",
" var dataURL = fig.canvas.toDataURL();\n",
" // Re-enable the keyboard manager in IPython - without this line, in FF,\n",
" // the notebook keyboard shortcuts fail.\n",
" IPython.keyboard_manager.enable()\n",
" $(fig.parent_element).html('<img src=\"' + dataURL + '\" width=\"' + width + '\">');\n",
" fig.close_ws(fig, msg);\n",
"}\n",
"\n",
"mpl.figure.prototype.close_ws = function(fig, msg){\n",
" fig.send_message('closing', msg);\n",
" // fig.ws.close()\n",
"}\n",
"\n",
"mpl.figure.prototype.push_to_output = function(remove_interactive) {\n",
" // Turn the data on the canvas into data in the output cell.\n",
" var width = this.canvas.width/mpl.ratio\n",
" var dataURL = this.canvas.toDataURL();\n",
" this.cell_info[1]['text/html'] = '<img src=\"' + dataURL + '\" width=\"' + width + '\">';\n",
"}\n",
"\n",
"mpl.figure.prototype.updated_canvas_event = function() {\n",
" // Tell IPython that the notebook contents must change.\n",
" IPython.notebook.set_dirty(true);\n",
" this.send_message(\"ack\", {});\n",
" var fig = this;\n",
" // Wait a second, then push the new image to the DOM so\n",
" // that it is saved nicely (might be nice to debounce this).\n",
" setTimeout(function () { fig.push_to_output() }, 1000);\n",
"}\n",
"\n",
"mpl.figure.prototype._init_toolbar = function() {\n",
" var fig = this;\n",
"\n",
" var nav_element = $('<div/>');\n",
" nav_element.attr('style', 'width: 100%');\n",
" this.root.append(nav_element);\n",
"\n",
" // Define a callback function for later on.\n",
" function toolbar_event(event) {\n",
" return fig.toolbar_button_onclick(event['data']);\n",
" }\n",
" function toolbar_mouse_event(event) {\n",
" return fig.toolbar_button_onmouseover(event['data']);\n",
" }\n",
"\n",
" for(var toolbar_ind in mpl.toolbar_items){\n",
" var name = mpl.toolbar_items[toolbar_ind][0];\n",
" var tooltip = mpl.toolbar_items[toolbar_ind][1];\n",
" var image = mpl.toolbar_items[toolbar_ind][2];\n",
" var method_name = mpl.toolbar_items[toolbar_ind][3];\n",
"\n",
" if (!name) { continue; };\n",
"\n",
" var button = $('<button class=\"btn btn-default\" href=\"#\" title=\"' + name + '\"><i class=\"fa ' + image + ' fa-lg\"></i></button>');\n",
" button.click(method_name, toolbar_event);\n",
" button.mouseover(tooltip, toolbar_mouse_event);\n",
" nav_element.append(button);\n",
" }\n",
"\n",
" // Add the status bar.\n",
" var status_bar = $('<span class=\"mpl-message\" style=\"text-align:right; float: right;\"/>');\n",
" nav_element.append(status_bar);\n",
" this.message = status_bar[0];\n",
"\n",
" // Add the close button to the window.\n",
" var buttongrp = $('<div class=\"btn-group inline pull-right\"></div>');\n",
" var button = $('<button class=\"btn btn-mini btn-primary\" href=\"#\" title=\"Stop Interaction\"><i class=\"fa fa-power-off icon-remove icon-large\"></i></button>');\n",
" button.click(function (evt) { fig.handle_close(fig, {}); } );\n",
" button.mouseover('Stop Interaction', toolbar_mouse_event);\n",
" buttongrp.append(button);\n",
" var titlebar = this.root.find($('.ui-dialog-titlebar'));\n",
" titlebar.prepend(buttongrp);\n",
"}\n",
"\n",
"mpl.figure.prototype._root_extra_style = function(el){\n",
" var fig = this\n",
" el.on(\"remove\", function(){\n",
"\tfig.close_ws(fig, {});\n",
" });\n",
"}\n",
"\n",
"mpl.figure.prototype._canvas_extra_style = function(el){\n",
" // this is important to make the div 'focusable\n",
" el.attr('tabindex', 0)\n",
" // reach out to IPython and tell the keyboard manager to turn it's self\n",
" // off when our div gets focus\n",
"\n",
" // location in version 3\n",
" if (IPython.notebook.keyboard_manager) {\n",
" IPython.notebook.keyboard_manager.register_events(el);\n",
" }\n",
" else {\n",
" // location in version 2\n",
" IPython.keyboard_manager.register_events(el);\n",
" }\n",
"\n",
"}\n",
"\n",
"mpl.figure.prototype._key_event_extra = function(event, name) {\n",
" var manager = IPython.notebook.keyboard_manager;\n",
" if (!manager)\n",
" manager = IPython.keyboard_manager;\n",
"\n",
" // Check for shift+enter\n",
" if (event.shiftKey && event.which == 13) {\n",
" this.canvas_div.blur();\n",
" event.shiftKey = false;\n",
" // Send a \"J\" for go to next cell\n",
" event.which = 74;\n",
" event.keyCode = 74;\n",
" manager.command_mode();\n",
" manager.handle_keydown(event);\n",
" }\n",
"}\n",
"\n",
"mpl.figure.prototype.handle_save = function(fig, msg) {\n",
" fig.ondownload(fig, null);\n",
"}\n",
"\n",
"\n",
"mpl.find_output_cell = function(html_output) {\n",
" // Return the cell and output element which can be found *uniquely* in the notebook.\n",
" // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n",
" // IPython event is triggered only after the cells have been serialised, which for\n",
" // our purposes (turning an active figure into a static one), is too late.\n",
" var cells = IPython.notebook.get_cells();\n",
" var ncells = cells.length;\n",
" for (var i=0; i<ncells; i++) {\n",
" var cell = cells[i];\n",
" if (cell.cell_type === 'code'){\n",
" for (var j=0; j<cell.output_area.outputs.length; j++) {\n",
" var data = cell.output_area.outputs[j];\n",
" if (data.data) {\n",
" // IPython >= 3 moved mimebundle to data attribute of output\n",
" data = data.data;\n",
" }\n",
" if (data['text/html'] == html_output) {\n",
" return [cell, data, j];\n",
" }\n",
" }\n",
" }\n",
" }\n",
"}\n",
"\n",
"// Register the function which deals with the matplotlib target/channel.\n",
"// The kernel may be null if the page has been refreshed.\n",
"if (IPython.notebook.kernel != null) {\n",
" IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n",
"}\n"
],
"text/plain": [
"<IPython.core.display.Javascript object>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<img src=\"data:image/png;base64,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6tixo7KysnTmzJmgeaWlperevbtiY2PVuXNnLViwQNevX4/QqtEQ586d0xtvvCG/36+4uDilpKTotdde02+//RY0j9fzxuXq1ataunSpsrKy1LFjx5BbOvxbOHtLHTwcAcQCM2fODNxssaysTFOnTpUxRrNmzYr00tBA2dnZeuyxx5Sbm6uSkhKtWrVKGRkZMsaouLg4aC773/Tcvn1bTz/9tOLj42sNIC+99JI8Ho/y8vJUWlqqESNGyBijlStXRmjFCNeJEyfUsWNHpaSk6O2339b69eu1cuVKZWdn69ChQ4F5K1askDFGI0aMUGlpqfLy8tS8eXO9/PLLEVw9wnH58mV16tRJbdu21eLFi1VeXq6FCxcqKSlJbdq00dmzZwNzeT1vXO7fR65Tp07KysqqM4CEs7fUwcMRQCLsyJEjiomJ0ezZs4OOz549WzExMTpy5EiEVgYn9u7dq5s3bwYdu379utLT0+Xz+QI30mT/m6Z3331X7du3V15eXkgA2bZtm4wxWr16ddBjhg8frpYtW+rSpUtuLxdhunfvnp5//nk9++yz+vvvvx8479KlS2rZsqWGDx8edHz16tUyxmj79u2Peqn4DxQXF8sYo61btwYd37Rpk4wxKioqksTreWN08+ZNnTt3TtI/N75+UAAJZ2+pg/ohgERYfn6+jDE6efJk0PGTJ0/KGKPFixdHaGV4FObNmydjTOAdM/a/6Tlz5oxatWqljz/+WEuXLg0JIBMmTFBcXFzIV3B27dolY4zKysrcXjLCdP/rdfcb0hs3bujWrVsh80pLS2WM0a5du4KOX7t2TXFxcZo4caIr64UzhYWFMsZo//79Qcf37dsnY4xKSkok8Xre2NUVQMLZW+qgfgggETZkyBB16NCh1nPt27fX0KFDXV4RHqVx48bJ4/Ho6tWrktj/pmjkyJHq3bu37t27V2sASU9PV+/evUMed+3aNRljlJub6+Zy0QBvvfWWjDH67rvvNGDAABljFBMToz59+mjfvn2BedOnT5cxptbfe/Tq1UtPPfWUm8tGA/30008yxqhPnz7au3evzp07pz179qhnz55KT0/XX3/9JYnX88aurgASzt5SB/VDAImwjIwM9ezZs9ZzPXr0UEZGhssrwqPy66+/yuv1atSoUYFj7H/Tsn37djVr1izwTmltASQhISGoBv7N5/MpKyvLlbWi4e7/Zqddu3YaPny4Pv/8cxUXF+vxxx9XXFxc4CsWWVlZatu2ba3P8corryghIcHNZcOB4uJi+Xy+wIUljDF64YUX9Oeffwbm8HreuNUVQMLZW+qgfgggEda1a1f17du31nN9+/ZVWlqayyvCo3DlyhV169ZNSUlJOn36dOA4+9903LhxQ127dtXrr78eOFZbAGnWrJnGjx9f63N06tRJgwcPfuRrhTODBw+WMUYDBw4MOn7s2DE1b95cY8aMkSQNGjRInTp1qvU5xo8fr+bNmz/qpeI/snXrVmVmZmrVqlXasmWL3nnnHSUlJal///6qrq6WxOt5Y1dXAAlnb6mD+iGARBhJuem7fv26BgwYoNjY2JDvgrP/TceSJUvk8/lUVVUVOMYnIE3T/avllJeXh5zr16+f2rdvH5jHJyCN3+bNm+XxeEJ+PLxjxw4ZY7RixQpJvJ43dnwC4i4CSITxXcGm7datWxo6dKg8Ho82b94ccp79bxoqKysVGxurhQsX6tSpU4ExZ84cGWO0Z8+ewL0h+A1I45ebmytjjLZt2xZyLjs7Wy1atJDEb0CaihdffFHdunWr9VxiYmLgksq8njdu/AbEXQSQCFu0aFGdV0vIz8+P0MrgVE1NjUaMGKFmzZpp48aNtc5h/5uGgwcPBn03vLYRHx8v6Z+v3tR1FSxuSGi/8vJyGWO0du3akHO9evVScnKyJKmkpKTOq2BNmDDBlfXCmfT0dKWnp4ccv3fvnlq1ahVoKHk9b9zqCiDh7C11UD8EkAg7dOhQndeLPnz4cIRWBifu3r2rsWPHyhijdevWPXAe+980XLlyRV9++WXIuF8Da9euDbxbvnXr1jrvA3Lx4sVI/AkIQ1VVlVq1aqXnnnsucE8fSfr5558VExOjadOmSZIuXryouLg4jRgxIujx9+8D8v/3lYCdhg8frpiYmKArnEnSF198EXRZVV7PG7e6Akg4e0sd1A8BxAL3P87PyclReXm5cnJy+CpGIzd37tzAVVI2bNgQMi5cuBCYy/43XbX9BkRS4Gt5c+fOVVlZWeCqSoWFhRFaKcL1wQcfyBijfv366cMPP9SSJUuUlJSkdu3aqaKiIjDv/j0kRo4cqbKyMuXl5cnj8SgzMzOCq0c4vv/+e7Vo0UIJCQlasGCBSkpK9Oabb8rr9apjx446f/58YC6v543PmjVrtHz5ci1btkzGGPXo0UPLly/X8uXLg8JCOHtLHTwcAcQCNTU1KigokN/vl9frld/vV0FBQdA7a2hcBg4cWOfXcXbv3h2Yy/43XQ8KINeuXdP8+fOVnJwsr9erbt261flJGey0YcMG9ejRQ7GxsfL5fHr11Vf1xx9/hMxbt26dunXrJq/Xq+TkZM2fP1/Xrl2LwIrRUIcPH1Z2drZSUlLUokULdejQQZMmTQq6qqHE63ljlJKS8sD/qz/55JPAvHD2ljp4OAIIAAAAANcQQAAAAAC4hgACAAAAwDUEEAAAAACuIYAAAAAAcA0BBAAAAIBrCCAAAAAAXEMAAQAAAOAaAggAAAAA1xBAAAAAALiGAAIAAADANQQQAAAAAK4hgAAAAABwDQEEAAAAgGsIIAAAAABcQwABAAAA4BoCCAAAAADXEEAAAAAAuIYAAgAAAMA1BBAAAAAAriGAAAAAAHANAQQAAACAawggAAAAAFxDAAEAAADgGgIIAAAAANcQQAAAAAC4hgACAAAAwDUEEAAAAACuIYAAAAAAcA0BBAAAAIBrCCAAAAAAXEMAAQAAAOAaAggAAAAA1xBAAAAAALiGAAIAAADANQQQAAAAAK4hgAAAAABwDQEEAAAAgGsIIAAAAABcQwABAAAA4Jr/Ae4Oz8qY5t3iAAAAAElFTkSuQmCC\" width=\"640\">"
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = plt.figure()\n",
"plt.plot(data[0], (data[1] + data[2] / 2) / (data[1] + data[2] + data[3]), 'r-')\n",
"plt.ylim(0.3, 0.5)\n",
"plt.xlim(0.0, 100.0)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment