├── .gitignore ├── LICENSE ├── README.md ├── Writeup.docx ├── Writeup.pdf ├── data ├── MiniKaiRun │ ├── flux_0.json │ ├── flux_1.json │ ├── flux_10.json │ ├── flux_100.json │ ├── flux_101.json │ ├── flux_102.json │ ├── flux_103.json │ ├── flux_104.json │ ├── flux_105.json │ ├── flux_106.json │ ├── flux_107.json │ ├── flux_108.json │ ├── flux_109.json │ ├── flux_11.json │ ├── flux_110.json │ ├── flux_111.json │ ├── flux_112.json │ ├── flux_113.json │ ├── flux_114.json │ ├── flux_115.json │ ├── flux_116.json │ ├── flux_117.json │ ├── flux_118.json │ ├── flux_119.json │ ├── flux_12.json │ ├── flux_120.json │ ├── flux_121.json │ ├── flux_122.json │ ├── flux_123.json │ ├── flux_124.json │ ├── flux_125.json │ ├── flux_126.json │ ├── flux_127.json │ ├── flux_128.json │ ├── flux_129.json │ ├── flux_13.json │ ├── flux_130.json │ ├── flux_131.json │ ├── flux_132.json │ ├── flux_133.json │ ├── flux_134.json │ ├── flux_135.json │ ├── flux_136.json │ ├── flux_137.json │ ├── flux_138.json │ ├── flux_139.json │ ├── flux_14.json │ ├── flux_140.json │ ├── flux_141.json │ ├── flux_142.json │ ├── flux_143.json │ ├── flux_144.json │ ├── flux_145.json │ ├── flux_146.json │ ├── flux_147.json │ ├── flux_148.json │ ├── flux_15.json │ ├── flux_16.json │ ├── flux_17.json │ ├── flux_18.json │ ├── flux_19.json │ ├── flux_2.json │ ├── flux_20.json │ ├── flux_21.json │ ├── flux_22.json │ ├── flux_23.json │ ├── flux_24.json │ ├── flux_25.json │ ├── flux_26.json │ ├── flux_27.json │ ├── flux_28.json │ ├── flux_29.json │ ├── flux_3.json │ ├── flux_30.json │ ├── flux_31.json │ ├── flux_32.json │ ├── flux_33.json │ ├── flux_34.json │ ├── flux_35.json │ ├── flux_36.json │ ├── flux_37.json │ ├── flux_38.json │ ├── flux_39.json │ ├── flux_4.json │ ├── flux_40.json │ ├── flux_41.json │ ├── flux_42.json │ ├── flux_43.json │ ├── flux_44.json │ ├── flux_45.json │ ├── flux_46.json │ ├── flux_47.json │ ├── flux_48.json │ ├── flux_49.json │ ├── flux_5.json │ ├── flux_50.json │ ├── flux_51.json │ ├── flux_52.json │ ├── flux_53.json │ ├── flux_54.json │ ├── flux_55.json │ ├── flux_56.json │ ├── flux_57.json │ ├── flux_58.json │ ├── flux_59.json │ ├── flux_6.json │ ├── flux_60.json │ ├── flux_61.json │ ├── flux_62.json │ ├── flux_63.json │ ├── flux_64.json │ ├── flux_65.json │ ├── flux_66.json │ ├── flux_67.json │ ├── flux_68.json │ ├── flux_69.json │ ├── flux_7.json │ ├── flux_70.json │ ├── flux_71.json │ ├── flux_72.json │ ├── flux_73.json │ ├── flux_74.json │ ├── flux_75.json │ ├── flux_76.json │ ├── flux_77.json │ ├── flux_78.json │ ├── flux_79.json │ ├── flux_8.json │ ├── flux_80.json │ ├── flux_81.json │ ├── flux_82.json │ ├── flux_83.json │ ├── flux_84.json │ ├── flux_85.json │ ├── flux_86.json │ ├── flux_87.json │ ├── flux_88.json │ ├── flux_89.json │ ├── flux_9.json │ ├── flux_90.json │ ├── flux_91.json │ ├── flux_92.json │ ├── flux_93.json │ ├── flux_94.json │ ├── flux_95.json │ ├── flux_96.json │ ├── flux_97.json │ ├── flux_98.json │ └── flux_99.json ├── Minimal.json ├── PreyPred │ ├── data.csv │ ├── flux_0.json │ ├── flux_1.json │ ├── flux_10.json │ ├── flux_11.json │ ├── flux_12.json │ ├── flux_13.json │ ├── flux_14.json │ ├── flux_15.json │ ├── flux_16.json │ ├── flux_17.json │ ├── flux_18.json │ ├── flux_19.json │ ├── flux_2.json │ ├── flux_20.json │ ├── flux_21.json │ ├── flux_22.json │ ├── flux_23.json │ ├── flux_24.json │ ├── flux_25.json │ ├── flux_26.json │ ├── flux_27.json │ ├── flux_28.json │ ├── flux_29.json │ ├── flux_3.json │ ├── flux_30.json │ ├── flux_31.json │ ├── flux_32.json │ ├── flux_33.json │ ├── flux_34.json │ ├── flux_35.json │ ├── flux_36.json │ ├── flux_37.json │ ├── flux_38.json │ ├── flux_39.json │ ├── flux_4.json │ ├── flux_40.json │ ├── flux_41.json │ ├── flux_42.json │ ├── flux_43.json │ ├── flux_44.json │ ├── flux_45.json │ ├── flux_46.json │ ├── flux_47.json │ ├── flux_48.json │ ├── flux_49.json │ ├── flux_5.json │ ├── flux_50.json │ ├── flux_51.json │ ├── flux_52.json │ ├── flux_53.json │ ├── flux_54.json │ ├── flux_55.json │ ├── flux_56.json │ ├── flux_57.json │ ├── flux_58.json │ ├── flux_59.json │ ├── flux_6.json │ ├── flux_60.json │ ├── flux_61.json │ ├── flux_62.json │ ├── flux_63.json │ ├── flux_64.json │ ├── flux_65.json │ ├── flux_66.json │ ├── flux_67.json │ ├── flux_68.json │ ├── flux_69.json │ ├── flux_7.json │ ├── flux_70.json │ ├── flux_71.json │ ├── flux_72.json │ ├── flux_73.json │ ├── flux_74.json │ ├── flux_75.json │ ├── flux_76.json │ ├── flux_77.json │ ├── flux_78.json │ ├── flux_79.json │ ├── flux_8.json │ ├── flux_80.json │ ├── flux_81.json │ ├── flux_82.json │ ├── flux_83.json │ ├── flux_84.json │ ├── flux_85.json │ ├── flux_86.json │ ├── flux_87.json │ ├── flux_88.json │ ├── flux_89.json │ ├── flux_9.json │ ├── flux_90.json │ ├── flux_91.json │ ├── flux_92.json │ ├── flux_93.json │ ├── flux_94.json │ ├── flux_95.json │ └── inputs.ka ├── Real.json ├── flux_0.json ├── flux_1.json ├── flux_10.json ├── flux_11.json ├── flux_12.json ├── flux_13.json ├── flux_14.json ├── flux_15.json ├── flux_16.json ├── flux_17.json ├── flux_18.json ├── flux_19.json ├── flux_2.json ├── flux_20.json ├── flux_21.json ├── flux_22.json ├── flux_23.json ├── flux_24.json ├── flux_25.json ├── flux_26.json ├── flux_27.json ├── flux_28.json ├── flux_29.json ├── flux_3.json ├── flux_30.json ├── flux_31.json ├── flux_32.json ├── flux_33.json ├── flux_34.json ├── flux_35.json ├── flux_36.json ├── flux_37.json ├── flux_38.json ├── flux_39.json ├── flux_4.json ├── flux_40.json ├── flux_41.json ├── flux_42.json ├── flux_43.json ├── flux_44.json ├── flux_5.json ├── flux_6.json ├── flux_7.json ├── flux_8.json ├── flux_9.json ├── global.csv └── miniKaiProb3.zip ├── index.html ├── lib ├── README ├── WebContent │ ├── .jshintrc │ ├── deflate.js │ ├── inflate.js │ ├── mime-types.js │ ├── pako │ │ └── codecs.js │ ├── z-worker.js │ ├── zip-ext.js │ ├── zip-fs.js │ ├── zip.js │ └── zlib-asm │ │ └── codecs.js ├── d3.v4.js └── lodash.js ├── screencaps ├── Buttons.png ├── Cluster1.png ├── Cluster2.png ├── ClusteringThreshold.png ├── Hover.png ├── OverTime.png ├── PinAndMark.png ├── Supplement.png ├── VisibilityThreshold.png └── teaser.png └── src ├── css ├── main.css └── toolbar.css └── js ├── animation.js ├── focusSlider.js ├── forceDirected.js ├── forceDirectedUI.js ├── lineGraph.js ├── main.js ├── paintingManager.js ├── phenotype.js └── sliderUI.js /.gitignore: -------------------------------------------------------------------------------- 1 | d3.min.js 2 | *.DS_Store 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 UCSC Creative Coding 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Dynamic Influence Networks for Rule-based Models 2 | 3 | ![alt text](screencaps/teaser.png "Dynamic Influence Networks") 4 | 5 | 6 | DIN Project members: 7 | 8 | Angus Forbes, Andrew Burks, Kristine Lee, and Xing Li (University of Illinois at Chicago); Jean Krivine (Universite Paris Diderot); Pierre Boutillier and Walter Fontana (Harvard Medical School) 9 | 10 | DIN-Viz Software Development: 11 | 12 | Andrew Burks, Kristine Lee, Xing Li (University of Illinois at Chicago) 13 | 14 | 15 | # Installation Instructions 16 | 17 | - Extract the Github repo's contents to a folder of your choice. 18 | - Navigate to the folder (which should now contain an "index.html" file) and use the command: 19 | ```[path to python.exe]\python -m SimpleHTTPServer 8080``` to start the server. If this command cannot start the server, use the command: ```[path to python.exe]\python -m http.server 8080``` instead. 20 | - Go to localhost:8080 to load the visualization. The software was tested on Google Chrome, but should work on other browsers as well. 21 | 22 | Alternatively, the page is hosted using GitHub Pages at https://creativecodinglab.github.io/DynamicInfluenceNetworks/. (Use the "Dataset" menu to load in data/miniKaiProb3.zip to explore a larger example dataset, or choose your own KaSim output - see below.) 23 | 24 | # How to Use 25 | 26 | To load data, please click on the "Dataset" menu on the toolbar to load in individual json files or zipped time series json files. Alternatively, you can drag the files into the application to load the data. 27 | 28 | _Please make sure that the times series json files are in the format name_\__\[0-x]\.json (i.e flux_1.json, flux_2.json etc)_ 29 | 30 | # Background 31 | 32 | For many systems, the specifics regarding the interactions and effects within complex biological systems are unknown. The Kappa Simulator ([KaSim](http://www.kappalanguage.org)) is a stochastic simulator of biological "rules" defined using the Kappa language, used to generate simulations of protein-protein interaction networks. A tool to represent the outputs of these simulations can help systems biologists to better understand the complex systems that they are modeling. This creates a feedback loop between the creation and the visualization of the simulations which iteratively improves both the system models as well as the visual analytics tools which aid in representing and analyzing the biological systems. The current tools do not scale well, are static, cluttered, and can not support time-series visualization. We define the Dynamic Influence Network (DIN) to represent the rules and the influence these rules have on other rules that model the system. Our software tool, DIN-Viz, facilitates the analysis of DINs created from KaSim simulation output. 33 | 34 | # The DIN-Viz Visual Analytics Software 35 | 36 | DIN-Viz utilizes a force-directed network overlaid on top of influence-based clustering information for the Kappa rules (these influences are generated using Kappa Simulator output data). Due to relatively small number of nodes in these protein-protein interaction simulations, along with our threshold clustering method, the threshold is interactively controllable, and the clustering can recompute in real-time. To reduce clutter, the user may choose to manually rearrange areas of the network, as well as hide nodes or edges which fall below the clustering threshold. Individual nodes can also be manually marked and clustered. Time series data based on a sliding time window can be viewed (assuming the proper JSON data files have been loaded). Supplemental visualizations show overviews of the time series data, such as the influence that a selected rule has over other rules in the DIN throughout the simulation. 37 | 38 | # Screenshots 39 | 40 | - Clustering 41 | 42 | ![alt text](screencaps/ClusteringThreshold.png "Clustering effects with different thresholds applied") 43 | 44 | - Hovering 45 | 46 | ![alt text](screencaps/Hover.png "Hover") 47 | 48 | 49 | - Pinning and Marking 50 | 51 | ![alt text](screencaps/PinAndMark.png "Pinning and marking") 52 | 53 | 54 | - Link Visibility 55 | 56 | ![alt text](screencaps/VisibilityThreshold.png "Link visibility with different thresholds applied") 57 | 58 | 59 | - Dynamic Network Animation 60 | 61 | ![alt text](screencaps/OverTime.png "Evolution of DIN over time") 62 | 63 | 64 | 65 | # Demonstration Video 66 | 67 | See a video of DIN-Viz in action [here](https://vimeo.com/195336381), or another newer one [here](https://dl.dropboxusercontent.com/u/571874/DIN-Viz_03312007_hd.mp4). 68 | 69 | 70 | # Article 71 | 72 | Our article, [Rule-based Models for Dynamic Influence Networks](https://creativecoding.soe.ucsc.edu/pdfs/Forbes_DIN-Viz_VAST2017.pdf), describing the DIN representation and the DIN-Viz software is accepted to [IEEE Transactions on Visualization and Computer Graphics](https://creativecoding.soe.ucsc.edu/pdfs/Forbes_DIN-Viz_VAST2017.pdf) and will be presented at [IEEE VIS](http://ieeevis.org/) in October 2017. 73 | 74 | 75 | A. G. Forbes, A. Burks, K. Lee, X. Li, P. Boutillier, J. Krivine, and W. Fontana. Dynamic influence networks for rule-based models. IEEE Transactions on Visualization and Computer Graphics, 24(1), January 2018. 76 | 77 | 78 | @article{ 79 |
    ForbesFontana_TVCG_2018, 80 |
    title = {Dynamic Influence Networks for Rule-based Models}, 81 |
    author = {Angus G. Forbes and Andrew Burks and Kristine Lee and Xing Li and Pierre Boutillier and Jean Krivine and Walter Fontana}, 82 |
    journal = {IEEE Transactions on Visualization and Computer Graphics}, 83 |
    volume = {24}, 84 |
    number = {1}, 85 |
    month = {January}, 86 |
    year = {2018} 87 |
} 88 | -------------------------------------------------------------------------------- /Writeup.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/Writeup.docx -------------------------------------------------------------------------------- /Writeup.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/Writeup.pdf -------------------------------------------------------------------------------- /data/Minimal.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 0.000000e+00, 3 | "bioEndTime" : 2.000070e+01, 4 | "rules" : 5 | ["Perturbations", "a.b", "a.b_op", "ab.c", "mod x1", "a.c", "mod x2"], 6 | "hits" : [0, 986, 600, 2920, 2764, 997, 879], 7 | "fluxs" : 8 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 9 | [0.000000e+00, -2.805324e+00, 8.417340e+00, 1.070723e+01, 0.000000e+00, -1.382619e+00, -1.501420e+00], 10 | [0.000000e+00, 1.836702e+00, -1.878817e+00, -1.901879e+00, 0.000000e+00, 5.847461e-01, 5.311193e-01], 11 | [0.000000e+00, 0.000000e+00, 0.000000e+00, -1.737906e+01, 2.713609e+01, 0.000000e+00, 0.000000e+00], 12 | [0.000000e+00, 0.000000e+00, 0.000000e+00, 1.430737e+01, -2.054881e+01, 9.535350e+00, 0.000000e+00], 13 | [0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, -2.898415e+00, 2.570269e+01], 14 | [0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00,1.581468e+00, -1.800432e+01]] 15 | } 16 | -------------------------------------------------------------------------------- /data/PreyPred/data.csv: -------------------------------------------------------------------------------- 1 | "[T]", "|predator()|", "|prey()|" 2 | 0., 520, 580 3 | 1., 530, 601 4 | 2., 551, 613 5 | 3., 598, 609 6 | 4., 653, 578 7 | 5., 689, 544 8 | 6., 728, 516 9 | 7., 723, 480 10 | 8., 714, 447 11 | 9., 678, 447 12 | 10., 669, 428 13 | 11., 635, 429 14 | 12., 616, 416 15 | 13., 596, 428 16 | 14., 562, 448 17 | 15., 556, 443 18 | 16., 547, 436 19 | 17., 537, 456 20 | 18., 523, 472 21 | 19., 531, 475 22 | 20., 520, 484 23 | 21., 504, 511 24 | 22., 524, 514 25 | 23., 525, 546 26 | 24., 537, 572 27 | 25., 532, 575 28 | 26., 548, 605 29 | 27., 573, 623 30 | 28., 619, 622 31 | 29., 675, 596 32 | 30., 663, 571 33 | 31., 668, 533 34 | 32., 694, 463 35 | 33., 697, 437 36 | 34., 668, 409 37 | 35., 653, 387 38 | 36., 607, 371 39 | 37., 577, 381 40 | 38., 504, 387 41 | 39., 486, 414 42 | 40., 468, 445 43 | 41., 461, 482 44 | 42., 468, 527 45 | 43., 478, 590 46 | 44., 526, 624 47 | 45., 581, 636 48 | 46., 623, 659 49 | 47., 632, 691 50 | 48., 700, 670 51 | 49., 785, 592 52 | 50., 761, 563 53 | 51., 771, 514 54 | 52., 759, 479 55 | 53., 732, 442 56 | 54., 712, 403 57 | 55., 680, 393 58 | 56., 629, 381 59 | 57., 574, 376 60 | 58., 537, 408 61 | 59., 516, 425 62 | 60., 491, 454 63 | 61., 490, 485 64 | 62., 463, 507 65 | 63., 458, 552 66 | 64., 455, 621 67 | 65., 489, 683 68 | 66., 541, 695 69 | 67., 603, 685 70 | 68., 669, 672 71 | 69., 760, 653 72 | 70., 808, 622 73 | 71., 840, 569 74 | 72., 871, 498 75 | 73., 837, 461 76 | 74., 814, 408 77 | 75., 779, 357 78 | 76., 731, 324 79 | 77., 671, 302 80 | 78., 603, 296 81 | 79., 528, 302 82 | 80., 474, 321 83 | 81., 449, 331 84 | 82., 400, 369 85 | 83., 379, 372 86 | 84., 359, 428 87 | 85., 366, 454 88 | 86., 372, 524 89 | 87., 375, 594 90 | 88., 415, 669 91 | 89., 445, 730 92 | 90., 515, 759 93 | 91., 574, 787 94 | 92., 691, 736 95 | 93., 789, 671 96 | 94., 840, 575 97 | 95., 875, 460 98 | 96., 867, 407 99 | 97., 822, 359 100 | 98., 757, 325 101 | 99., 695, 308 102 | 100., 646, 296 103 | 101., 574, 309 104 | 102., 519, 329 105 | 103., 460, 350 106 | 104., 436, 367 107 | 105., 408, 387 108 | 106., 373, 430 109 | 107., 356, 521 110 | 108., 386, 575 111 | 109., 416, 624 112 | 110., 451, 692 113 | 111., 501, 715 114 | 112., 573, 727 115 | 113., 638, 732 116 | 114., 691, 697 117 | 115., 769, 651 118 | 116., 837, 594 119 | 117., 839, 526 120 | 118., 803, 466 121 | 119., 768, 432 122 | 120., 732, 400 123 | 121., 695, 396 124 | 122., 659, 358 125 | 123., 620, 328 126 | 124., 566, 333 127 | 125., 518, 354 128 | 126., 460, 361 129 | 127., 445, 394 130 | 128., 423, 427 131 | 129., 390, 482 132 | 130., 409, 510 133 | 131., 436, 524 134 | 132., 450, 560 135 | 133., 488, 608 136 | 134., 493, 694 137 | 135., 530, 737 138 | 136., 608, 736 139 | 137., 670, 753 140 | 138., 717, 736 141 | 139., 779, 709 142 | 140., 892, 620 143 | 141., 927, 518 144 | 142., 903, 463 145 | 143., 892, 369 146 | 144., 841, 342 147 | 145., 785, 276 148 | 146., 713, 263 149 | 147., 661, 240 150 | 148., 587, 238 151 | 149., 508, 254 152 | 150., 458, 302 153 | 151., 392, 343 154 | 152., 390, 376 155 | 153., 352, 419 156 | 154., 351, 485 157 | 155., 357, 551 158 | 156., 372, 597 159 | 157., 421, 652 160 | 158., 461, 687 161 | 159., 512, 722 162 | 160., 583, 730 163 | 161., 682, 704 164 | 162., 788, 676 165 | 163., 873, 621 166 | 164., 930, 550 167 | 165., 913, 472 168 | 166., 922, 374 169 | 167., 841, 325 170 | 168., 791, 290 171 | 169., 715, 248 172 | 170., 621, 244 173 | 171., 555, 225 174 | 172., 480, 225 175 | 173., 420, 249 176 | 174., 381, 281 177 | 175., 343, 322 178 | 176., 325, 365 179 | 177., 308, 433 180 | 178., 294, 545 181 | 179., 334, 620 182 | 180., 365, 709 183 | 181., 391, 767 184 | 182., 465, 842 185 | 183., 569, 840 186 | 184., 663, 815 187 | 185., 757, 782 188 | 186., 828, 715 189 | 187., 903, 635 190 | 188., 923, 573 191 | 189., 904, 494 192 | 190., 856, 431 193 | 191., 825, 390 194 | 192., 783, 338 195 | 193., 722, 326 196 | 194., 659, 322 197 | 195., 617, 338 198 | 196., 585, 341 199 | 197., 533, 359 200 | 198., 497, 389 201 | 199., 462, 422 202 | 200., 472, 451 203 | -------------------------------------------------------------------------------- /data/PreyPred/flux_0.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 2.343651e-03, 3 | "bioEndTime" : 1.000042e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1598, 1603, 1751], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.880085e-03, 0.000000e+00, 1.880085e-03], 11 | [0.000000e+00, 0.000000e+00, -1.549244e-03, -1.549244e-03], 12 | [0.000000e+00, -1.886901e-03, 1.563688e-03, -3.261353e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_1.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 2.003678e+00, 3 | "bioEndTime" : 1.200038e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1502, 1634, 1699], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.002958e-03, 0.000000e+00, 2.002958e-03], 11 | [0.000000e+00, 0.000000e+00, -1.494781e-03, -1.494781e-03], 12 | [0.000000e+00, -1.995062e-03, 1.505560e-03, -4.924937e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_10.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 2.000066e+01, 3 | "bioEndTime" : 3.000457e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1660, 1430, 1573], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.749333e-03, 0.000000e+00, 1.749333e-03], 11 | [0.000000e+00, 0.000000e+00, -1.760644e-03, -1.760644e-03], 12 | [0.000000e+00, -1.738054e-03, 1.758015e-03, 1.689099e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_11.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 2.200538e+01, 3 | "bioEndTime" : 3.200062e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1650, 1533, 1702], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.735263e-03, 0.000000e+00, 1.735263e-03], 11 | [0.000000e+00, 0.000000e+00, -1.670534e-03, -1.670534e-03], 12 | [0.000000e+00, -1.741793e-03, 1.671582e-03, -7.311815e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_12.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 2.400294e+01, 3 | "bioEndTime" : 3.400183e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1626, 1660, 1790], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.813916e-03, 0.000000e+00, 1.813916e-03], 11 | [0.000000e+00, 0.000000e+00, -1.587671e-03, -1.587671e-03], 12 | [0.000000e+00, -1.832854e-03, 1.595944e-03, -2.398126e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_13.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 2.600365e+01, 3 | "bioEndTime" : 3.601607e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1524, 1698, 1756], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.951804e-03, 0.000000e+00, 1.951804e-03], 11 | [0.000000e+00, 0.000000e+00, -1.532850e-03, -1.532850e-03], 12 | [0.000000e+00, -1.966238e-03, 1.541748e-03, -4.275046e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_14.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 2.800402e+01, 3 | "bioEndTime" : 3.800753e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1350, 1700, 1585], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.156140e-03, 0.000000e+00, 2.156140e-03], 11 | [0.000000e+00, 0.000000e+00, -1.543950e-03, -1.543950e-03], 12 | [0.000000e+00, -2.132066e-03, 1.528995e-03, -6.063474e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_15.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 3.000457e+01, 3 | "bioEndTime" : 4.000015e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1242, 1563, 1368], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.344822e-03, 0.000000e+00, 2.344822e-03], 11 | [0.000000e+00, 0.000000e+00, -1.626647e-03, -1.626647e-03], 12 | [0.000000e+00, -2.305507e-03, 1.606760e-03, -7.024741e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_16.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 3.200062e+01, 3 | "bioEndTime" : 4.200380e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1286, 1447, 1223], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.368660e-03, 0.000000e+00, 2.368660e-03], 11 | [0.000000e+00, 0.000000e+00, -1.739217e-03, -1.739217e-03], 12 | [0.000000e+00, -2.380528e-03, 1.741919e-03, -6.427326e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_17.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 3.400183e+01, 3 | "bioEndTime" : 4.400231e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1384, 1311, 1169], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.201707e-03, 0.000000e+00, 2.201707e-03], 11 | [0.000000e+00, 0.000000e+00, -1.875737e-03, -1.875737e-03], 12 | [0.000000e+00, -2.239743e-03, 1.902647e-03, -3.412958e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_18.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 3.601607e+01, 3 | "bioEndTime" : 4.600244e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1547, 1243, 1259], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.982035e-03, 0.000000e+00, 1.982035e-03], 11 | [0.000000e+00, 0.000000e+00, -1.934123e-03, -1.934123e-03], 12 | [0.000000e+00, -1.975487e-03, 1.933959e-03, -4.535767e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_19.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 3.800753e+01, 3 | "bioEndTime" : 4.800135e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1756, 1277, 1473], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.784389e-03, 0.000000e+00, 1.784389e-03], 11 | [0.000000e+00, 0.000000e+00, -1.873213e-03, -1.873213e-03], 12 | [0.000000e+00, -1.750318e-03, 1.849886e-03, 9.627372e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_2.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 4.000134e+00, 3 | "bioEndTime" : 1.400261e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1419, 1640, 1549], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.152168e-03, 0.000000e+00, 2.152168e-03], 11 | [0.000000e+00, 0.000000e+00, -1.501318e-03, -1.501318e-03], 12 | [0.000000e+00, -2.131916e-03, 1.495114e-03, -6.399999e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_20.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 4.000015e+01, 3 | "bioEndTime" : 5.000054e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1855, 1446, 1738], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.677507e-03, 0.000000e+00, 1.677507e-03], 11 | [0.000000e+00, 0.000000e+00, -1.690511e-03, -1.690511e-03], 12 | [0.000000e+00, -1.653486e-03, 1.688160e-03, 3.185106e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_21.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 4.200380e+01, 3 | "bioEndTime" : 5.200159e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1852, 1608, 1898], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.657892e-03, 0.000000e+00, 1.657892e-03], 11 | [0.000000e+00, 0.000000e+00, -1.533079e-03, -1.533079e-03], 12 | [0.000000e+00, -1.663174e-03, 1.554744e-03, -1.110018e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_22.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 4.400231e+01, 3 | "bioEndTime" : 5.400149e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1716, 1751, 1937], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.733826e-03, 0.000000e+00, 1.733826e-03], 11 | [0.000000e+00, 0.000000e+00, -1.427730e-03, -1.427730e-03], 12 | [0.000000e+00, -1.758771e-03, 1.449201e-03, -3.120938e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_23.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 4.600244e+01, 3 | "bioEndTime" : 5.600769e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1569, 1843, 1848], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.904484e-03, 0.000000e+00, 1.904484e-03], 11 | [0.000000e+00, 0.000000e+00, -1.392139e-03, -1.392139e-03], 12 | [0.000000e+00, -1.910771e-03, 1.394649e-03, -5.187806e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_24.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 4.800135e+01, 3 | "bioEndTime" : 5.800046e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1387, 1811, 1647], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.153909e-03, 0.000000e+00, 2.153909e-03], 11 | [0.000000e+00, 0.000000e+00, -1.416522e-03, -1.416522e-03], 12 | [0.000000e+00, -2.108344e-03, 1.397862e-03, -7.134686e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_25.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 5.000054e+01, 3 | "bioEndTime" : 6.000336e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1300, 1677, 1408], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.324884e-03, 0.000000e+00, 2.324884e-03], 11 | [0.000000e+00, 0.000000e+00, -1.523096e-03, -1.523096e-03], 12 | [0.000000e+00, -2.292632e-03, 1.506383e-03, -7.897368e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_26.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 5.200159e+01, 3 | "bioEndTime" : 6.200196e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1258, 1528, 1231], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.363114e-03, 0.000000e+00, 2.363114e-03], 11 | [0.000000e+00, 0.000000e+00, -1.670510e-03, -1.670510e-03], 12 | [0.000000e+00, -2.364797e-03, 1.673492e-03, -6.952437e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_27.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 5.400149e+01, 3 | "bioEndTime" : 6.401032e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1352, 1390, 1135], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.235977e-03, 0.000000e+00, 2.235977e-03], 11 | [0.000000e+00, 0.000000e+00, -1.842331e-03, -1.842331e-03], 12 | [0.000000e+00, -2.278238e-03, 1.868810e-03, -4.136104e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_28.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 5.600769e+01, 3 | "bioEndTime" : 6.600021e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1511, 1284, 1198], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.986212e-03, 0.000000e+00, 1.986212e-03], 11 | [0.000000e+00, 0.000000e+00, -1.976854e-03, -1.976854e-03], 12 | [0.000000e+00, -1.999906e-03, 1.999957e-03, -3.907863e-06]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_29.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 5.800046e+01, 3 | "bioEndTime" : 6.800013e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1666, 1271, 1404], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.771231e-03, 0.000000e+00, 1.771231e-03], 11 | [0.000000e+00, 0.000000e+00, -1.970664e-03, -1.970664e-03], 12 | [0.000000e+00, -1.745649e-03, 1.945277e-03, 1.962039e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_3.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 6.000890e+00, 3 | "bioEndTime" : 1.600054e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1330, 1590, 1411], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.252815e-03, 0.000000e+00, 2.252815e-03], 11 | [0.000000e+00, 0.000000e+00, -1.563701e-03, -1.563701e-03], 12 | [0.000000e+00, -2.239598e-03, 1.564378e-03, -6.787316e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_30.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 6.000336e+01, 3 | "bioEndTime" : 7.000199e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1849, 1364, 1681], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.635766e-03, 0.000000e+00, 1.635766e-03], 11 | [0.000000e+00, 0.000000e+00, -1.808055e-03, -1.808055e-03], 12 | [0.000000e+00, -1.609488e-03, 1.766407e-03, 1.540396e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_31.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 6.200196e+01, 3 | "bioEndTime" : 7.200320e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1940, 1541, 1949], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.603103e-03, 0.000000e+00, 1.603103e-03], 11 | [0.000000e+00, 0.000000e+00, -1.597700e-03, -1.597700e-03], 12 | [0.000000e+00, -1.602302e-03, 1.590386e-03, -1.445345e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_32.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 6.401032e+01, 3 | "bioEndTime" : 7.400042e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1882, 1736, 2095], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.661853e-03, 0.000000e+00, 1.661853e-03], 11 | [0.000000e+00, 0.000000e+00, -1.411996e-03, -1.411996e-03], 12 | [0.000000e+00, -1.691059e-03, 1.449180e-03, -2.442751e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_33.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 6.600021e+01, 3 | "bioEndTime" : 7.600934e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1694, 1875, 2065], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.847240e-03, 0.000000e+00, 1.847240e-03], 11 | [0.000000e+00, 0.000000e+00, -1.307160e-03, -1.307160e-03], 12 | [0.000000e+00, -1.882373e-03, 1.334115e-03, -5.507279e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_34.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 6.800013e+01, 3 | "bioEndTime" : 7.800384e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1486, 1929, 1861], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.134670e-03, 0.000000e+00, 2.134670e-03], 11 | [0.000000e+00, 0.000000e+00, -1.283748e-03, -1.283748e-03], 12 | [0.000000e+00, -2.139846e-03, 1.274829e-03, -8.677730e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_35.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 7.000199e+01, 3 | "bioEndTime" : 8.000213e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1211, 1848, 1513], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.505807e-03, 0.000000e+00, 2.505807e-03], 11 | [0.000000e+00, 0.000000e+00, -1.365165e-03, -1.365165e-03], 12 | [0.000000e+00, -2.438093e-03, 1.315590e-03, -1.125809e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_36.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 7.200320e+01, 3 | "bioEndTime" : 8.200359e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1057, 1657, 1186], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.835131e-03, 0.000000e+00, 2.835131e-03], 11 | [0.000000e+00, 0.000000e+00, -1.529537e-03, -1.529537e-03], 12 | [0.000000e+00, -2.771926e-03, 1.482594e-03, -1.293544e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_37.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 7.400042e+01, 3 | "bioEndTime" : 8.400012e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 989, 1424, 969], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.969236e-03, 0.000000e+00, 2.969236e-03], 11 | [0.000000e+00, 0.000000e+00, -1.785985e-03, -1.785985e-03], 12 | [0.000000e+00, -2.972011e-03, 1.785612e-03, -1.191679e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_38.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 7.600934e+01, 3 | "bioEndTime" : 8.600139e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1049, 1207, 847], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.791146e-03, 0.000000e+00, 2.791146e-03], 11 | [0.000000e+00, 0.000000e+00, -2.081006e-03, -2.081006e-03], 12 | [0.000000e+00, -2.874120e-03, 2.172060e-03, -7.081072e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_39.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 7.800384e+01, 3 | "bioEndTime" : 8.800564e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1253, 1066, 879], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.364896e-03, 0.000000e+00, 2.364896e-03], 11 | [0.000000e+00, 0.000000e+00, -2.369906e-03, -2.369906e-03], 12 | [0.000000e+00, -2.434375e-03, 2.457440e-03, 1.721825e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_4.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 8.001158e+00, 3 | "bioEndTime" : 1.800241e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1327, 1493, 1302], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.278364e-03, 0.000000e+00, 2.278364e-03], 11 | [0.000000e+00, 0.000000e+00, -1.658002e-03, -1.658002e-03], 12 | [0.000000e+00, -2.275167e-03, 1.665118e-03, -6.138333e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_40.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 8.000213e+01, 3 | "bioEndTime" : 9.000465e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1517, 1037, 1080], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.991946e-03, 0.000000e+00, 1.991946e-03], 11 | [0.000000e+00, 0.000000e+00, -2.455684e-03, -2.455684e-03], 12 | [0.000000e+00, -1.997164e-03, 2.444416e-03, 4.423360e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_41.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 8.200359e+01, 3 | "bioEndTime" : 9.200065e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1758, 1100, 1391], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.707374e-03, 0.000000e+00, 1.707374e-03], 11 | [0.000000e+00, 0.000000e+00, -2.298449e-03, -2.298449e-03], 12 | [0.000000e+00, -1.658030e-03, 2.216081e-03, 5.542297e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_42.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 8.400012e+01, 3 | "bioEndTime" : 9.400033e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1912, 1284, 1765], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.568910e-03, 0.000000e+00, 1.568910e-03], 11 | [0.000000e+00, 0.000000e+00, -1.940337e-03, -1.940337e-03], 12 | [0.000000e+00, -1.529375e-03, 1.895720e-03, 3.633709e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_43.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 8.600139e+01, 3 | "bioEndTime" : 9.600291e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1902, 1526, 2020], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.567840e-03, 0.000000e+00, 1.567840e-03], 11 | [0.000000e+00, 0.000000e+00, -1.636631e-03, -1.636631e-03], 12 | [0.000000e+00, -1.599753e-03, 1.657323e-03, 5.498327e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_44.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 8.800564e+01, 3 | "bioEndTime" : 9.800126e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1709, 1713, 2054], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.680704e-03, 0.000000e+00, 1.680704e-03], 11 | [0.000000e+00, 0.000000e+00, -1.429302e-03, -1.429302e-03], 12 | [0.000000e+00, -1.747682e-03, 1.486097e-03, -2.640684e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_45.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 9.000465e+01, 3 | "bioEndTime" : 1.000002e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1482, 1813, 1943], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.976896e-03, 0.000000e+00, 1.976896e-03], 11 | [0.000000e+00, 0.000000e+00, -1.326795e-03, -1.326795e-03], 12 | [0.000000e+00, -1.986185e-03, 1.355449e-03, -6.333738e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_46.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 9.200065e+01, 3 | "bioEndTime" : 1.020000e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1242, 1821, 1649], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.424665e-03, 0.000000e+00, 2.424665e-03], 11 | [0.000000e+00, 0.000000e+00, -1.329720e-03, -1.329720e-03], 12 | [0.000000e+00, -2.309187e-03, 1.296399e-03, -1.015845e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_47.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 9.400033e+01, 3 | "bioEndTime" : 1.040094e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1065, 1677, 1273], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.817391e-03, 0.000000e+00, 2.817391e-03], 11 | [0.000000e+00, 0.000000e+00, -1.463816e-03, -1.463816e-03], 12 | [0.000000e+00, -2.703364e-03, 1.416665e-03, -1.290616e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_48.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 9.600291e+01, 3 | "bioEndTime" : 1.060006e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1000, 1471, 977], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.938371e-03, 0.000000e+00, 2.938371e-03], 11 | [0.000000e+00, 0.000000e+00, -1.696691e-03, -1.696691e-03], 12 | [0.000000e+00, -2.942442e-03, 1.693568e-03, -1.253811e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_49.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 9.800126e+01, 3 | "bioEndTime" : 1.080068e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1141, 1261, 892], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.681320e-03, 0.000000e+00, 2.681320e-03], 11 | [0.000000e+00, 0.000000e+00, -1.986341e-03, -1.986341e-03], 12 | [0.000000e+00, -2.783341e-03, 2.062569e-03, -7.262669e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_5.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.000042e+01, 3 | "bioEndTime" : 2.000066e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1339, 1430, 1282], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.242048e-03, 0.000000e+00, 2.242048e-03], 11 | [0.000000e+00, 0.000000e+00, -1.749229e-03, -1.749229e-03], 12 | [0.000000e+00, -2.239068e-03, 1.759073e-03, -4.839231e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_50.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.000002e+02, 3 | "bioEndTime" : 1.100038e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1320, 1119, 924], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.279676e-03, 0.000000e+00, 2.279676e-03], 11 | [0.000000e+00, 0.000000e+00, -2.229338e-03, -2.229338e-03], 12 | [0.000000e+00, -2.332773e-03, 2.316769e-03, -2.124255e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_51.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.020000e+02, 3 | "bioEndTime" : 1.120004e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1541, 1088, 1144], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.911495e-03, 0.000000e+00, 1.911495e-03], 11 | [0.000000e+00, 0.000000e+00, -2.310606e-03, -2.310606e-03], 12 | [0.000000e+00, -1.878411e-03, 2.292481e-03, 4.097140e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_52.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.040094e+02, 3 | "bioEndTime" : 1.140004e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1772, 1186, 1440], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.678989e-03, 0.000000e+00, 1.678989e-03], 11 | [0.000000e+00, 0.000000e+00, -2.128096e-03, -2.128096e-03], 12 | [0.000000e+00, -1.614563e-03, 2.075116e-03, 4.570937e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_53.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.060006e+02, 3 | "bioEndTime" : 1.160010e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1980, 1352, 1816], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.555690e-03, 0.000000e+00, 1.555690e-03], 11 | [0.000000e+00, 0.000000e+00, -1.850229e-03, -1.850229e-03], 12 | [0.000000e+00, -1.515755e-03, 1.826531e-03, 3.079581e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_54.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.080068e+02, 3 | "bioEndTime" : 1.180003e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1937, 1630, 2045], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.541834e-03, 0.000000e+00, 1.541834e-03], 11 | [0.000000e+00, 0.000000e+00, -1.572599e-03, -1.572599e-03], 12 | [0.000000e+00, -1.559951e-03, 1.612228e-03, 4.979708e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_55.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.100038e+02, 3 | "bioEndTime" : 1.200009e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1800, 1811, 2092], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.634355e-03, 0.000000e+00, 1.634355e-03], 11 | [0.000000e+00, 0.000000e+00, -1.423886e-03, -1.423886e-03], 12 | [0.000000e+00, -1.665098e-03, 1.466160e-03, -2.013224e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_56.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.120004e+02, 3 | "bioEndTime" : 1.220049e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1610, 1894, 1978], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.825742e-03, 0.000000e+00, 1.825742e-03], 11 | [0.000000e+00, 0.000000e+00, -1.350340e-03, -1.350340e-03], 12 | [0.000000e+00, -1.840288e-03, 1.363865e-03, -4.789152e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_57.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.140004e+02, 3 | "bioEndTime" : 1.240018e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1371, 1862, 1736], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.124297e-03, 0.000000e+00, 2.124297e-03], 11 | [0.000000e+00, 0.000000e+00, -1.358651e-03, -1.358651e-03], 12 | [0.000000e+00, -2.099752e-03, 1.343214e-03, -7.594055e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_58.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.160010e+02, 3 | "bioEndTime" : 1.260007e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1146, 1754, 1378], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.468936e-03, 0.000000e+00, 2.468936e-03], 11 | [0.000000e+00, 0.000000e+00, -1.454533e-03, -1.454533e-03], 12 | [0.000000e+00, -2.407068e-03, 1.420313e-03, -9.902585e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_59.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.180003e+02, 3 | "bioEndTime" : 1.280127e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1116, 1534, 1156], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.626338e-03, 0.000000e+00, 2.626338e-03], 11 | [0.000000e+00, 0.000000e+00, -1.651498e-03, -1.651498e-03], 12 | [0.000000e+00, -2.606299e-03, 1.643454e-03, -9.671633e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_6.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.200038e+01, 3 | "bioEndTime" : 2.200538e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1359, 1351, 1260], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.171173e-03, 0.000000e+00, 2.171173e-03], 11 | [0.000000e+00, 0.000000e+00, -1.826838e-03, -1.826838e-03], 12 | [0.000000e+00, -2.167428e-03, 1.835171e-03, -3.362243e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_60.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.200009e+02, 3 | "bioEndTime" : 1.300027e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1148, 1362, 1040], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.579200e-03, 0.000000e+00, 2.579200e-03], 11 | [0.000000e+00, 0.000000e+00, -1.868999e-03, -1.868999e-03], 12 | [0.000000e+00, -2.610544e-03, 1.894586e-03, -7.208374e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_61.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.220049e+02, 3 | "bioEndTime" : 1.320035e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1232, 1237, 1029], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.413078e-03, 0.000000e+00, 2.413078e-03], 11 | [0.000000e+00, 0.000000e+00, -2.063317e-03, -2.063317e-03], 12 | [0.000000e+00, -2.445917e-03, 2.116044e-03, -3.349371e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_62.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.240018e+02, 3 | "bioEndTime" : 1.340001e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1452, 1163, 1092], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.117593e-03, 0.000000e+00, 2.117593e-03], 11 | [0.000000e+00, 0.000000e+00, -2.180352e-03, -2.180352e-03], 12 | [0.000000e+00, -2.139060e-03, 2.204135e-03, 6.037881e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_63.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.260007e+02, 3 | "bioEndTime" : 1.360023e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1691, 1168, 1316], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.841752e-03, 0.000000e+00, 1.841752e-03], 11 | [0.000000e+00, 0.000000e+00, -2.157597e-03, -2.157597e-03], 12 | [0.000000e+00, -1.822309e-03, 2.131302e-03, 3.050384e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_64.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.280127e+02, 3 | "bioEndTime" : 1.380004e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1888, 1285, 1579], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.622203e-03, 0.000000e+00, 1.622203e-03], 11 | [0.000000e+00, 0.000000e+00, -1.959454e-03, -1.959454e-03], 12 | [0.000000e+00, -1.591294e-03, 1.931743e-03, 3.372823e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_65.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.300027e+02, 3 | "bioEndTime" : 1.400022e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 2065, 1471, 1953], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.509614e-03, 0.000000e+00, 1.509614e-03], 11 | [0.000000e+00, 0.000000e+00, -1.709653e-03, -1.709653e-03], 12 | [0.000000e+00, -1.491994e-03, 1.688371e-03, 1.938051e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_66.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.320035e+02, 3 | "bioEndTime" : 1.420012e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 2064, 1708, 2161], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.507878e-03, 0.000000e+00, 1.507878e-03], 11 | [0.000000e+00, 0.000000e+00, -1.469552e-03, -1.469552e-03], 12 | [0.000000e+00, -1.525744e-03, 1.485855e-03, -4.213104e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_67.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.340001e+02, 3 | "bioEndTime" : 1.440016e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1878, 1881, 2228], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.611280e-03, 0.000000e+00, 1.611280e-03], 11 | [0.000000e+00, 0.000000e+00, -1.321386e-03, -1.321386e-03], 12 | [0.000000e+00, -1.671158e-03, 1.356113e-03, -3.172389e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_68.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.360023e+02, 3 | "bioEndTime" : 1.460049e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1617, 1985, 2090], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.870301e-03, 0.000000e+00, 1.870301e-03], 11 | [0.000000e+00, 0.000000e+00, -1.241622e-03, -1.241622e-03], 12 | [0.000000e+00, -1.934562e-03, 1.257012e-03, -6.799416e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_69.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.380004e+02, 3 | "bioEndTime" : 1.480029e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1309, 1938, 1806], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.306167e-03, 0.000000e+00, 2.306167e-03], 11 | [0.000000e+00, 0.000000e+00, -1.242503e-03, -1.242503e-03], 12 | [0.000000e+00, -2.290616e-03, 1.222429e-03, -1.071046e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_7.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.400261e+01, 3 | "bioEndTime" : 2.400294e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1393, 1293, 1267], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.067906e-03, 0.000000e+00, 2.067906e-03], 11 | [0.000000e+00, 0.000000e+00, -1.874229e-03, -1.874229e-03], 12 | [0.000000e+00, -2.073032e-03, 1.878934e-03, -1.979867e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_70.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.400022e+02, 3 | "bioEndTime" : 1.500011e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1038, 1792, 1357], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.960449e-03, 0.000000e+00, 2.960449e-03], 11 | [0.000000e+00, 0.000000e+00, -1.333659e-03, -1.333659e-03], 12 | [0.000000e+00, -2.787867e-03, 1.270415e-03, -1.521168e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_71.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.420012e+02, 3 | "bioEndTime" : 1.520021e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 947, 1547, 1034], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 3.314125e-03, 0.000000e+00, 3.314125e-03], 11 | [0.000000e+00, 0.000000e+00, -1.553281e-03, -1.553281e-03], 12 | [0.000000e+00, -3.225511e-03, 1.515158e-03, -1.715316e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_72.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.440016e+02, 3 | "bioEndTime" : 1.540032e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 986, 1333, 843], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 3.213246e-03, 0.000000e+00, 3.213246e-03], 11 | [0.000000e+00, 0.000000e+00, -1.855577e-03, -1.855577e-03], 12 | [0.000000e+00, -3.332877e-03, 1.902545e-03, -1.436410e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_73.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.460049e+02, 3 | "bioEndTime" : 1.560039e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1127, 1134, 793], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.796312e-03, 0.000000e+00, 2.796312e-03], 11 | [0.000000e+00, 0.000000e+00, -2.188324e-03, -2.188324e-03], 12 | [0.000000e+00, -2.932250e-03, 2.315334e-03, -6.232863e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_74.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.480029e+02, 3 | "bioEndTime" : 1.580050e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1349, 1024, 899], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.311162e-03, 0.000000e+00, 2.311162e-03], 11 | [0.000000e+00, 0.000000e+00, -2.422653e-03, -2.422653e-03], 12 | [0.000000e+00, -2.279861e-03, 2.499200e-03, 2.137639e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_75.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.500011e+02, 3 | "bioEndTime" : 1.600013e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1582, 1028, 1155], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.895206e-03, 0.000000e+00, 1.895206e-03], 11 | [0.000000e+00, 0.000000e+00, -2.418356e-03, -2.418356e-03], 12 | [0.000000e+00, -1.828393e-03, 2.370275e-03, 5.374484e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_76.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.520021e+02, 3 | "bioEndTime" : 1.620003e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1809, 1111, 1509], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.644784e-03, 0.000000e+00, 1.644784e-03], 11 | [0.000000e+00, 0.000000e+00, -2.162854e-03, -2.162854e-03], 12 | [0.000000e+00, -1.580839e-03, 2.062596e-03, 4.783796e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_77.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.540032e+02, 3 | "bioEndTime" : 1.640006e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1959, 1317, 1895], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.544238e-03, 0.000000e+00, 1.544238e-03], 11 | [0.000000e+00, 0.000000e+00, -1.775771e-03, -1.775771e-03], 12 | [0.000000e+00, -1.528679e-03, 1.750663e-03, 2.192827e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_78.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.560039e+02, 3 | "bioEndTime" : 1.660024e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1906, 1581, 2130], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.569816e-03, 0.000000e+00, 1.569816e-03], 11 | [0.000000e+00, 0.000000e+00, -1.473951e-03, -1.473951e-03], 12 | [0.000000e+00, -1.622579e-03, 1.521815e-03, -1.031654e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_79.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.580050e+02, 3 | "bioEndTime" : 1.680100e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1728, 1797, 2126], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.743381e-03, 0.000000e+00, 1.743381e-03], 11 | [0.000000e+00, 0.000000e+00, -1.304352e-03, -1.304352e-03], 12 | [0.000000e+00, -1.820190e-03, 1.357584e-03, -4.649854e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_8.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.600054e+01, 3 | "bioEndTime" : 2.600365e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1480, 1310, 1311], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.956750e-03, 0.000000e+00, 1.956750e-03], 11 | [0.000000e+00, 0.000000e+00, -1.887915e-03, -1.887915e-03], 12 | [0.000000e+00, -1.954522e-03, 1.891437e-03, -6.678263e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_80.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.600013e+02, 3 | "bioEndTime" : 1.700015e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1464, 1911, 1948], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.066753e-03, 0.000000e+00, 2.066753e-03], 11 | [0.000000e+00, 0.000000e+00, -1.241065e-03, -1.241065e-03], 12 | [0.000000e+00, -2.108587e-03, 1.250593e-03, -8.606210e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_81.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.620003e+02, 3 | "bioEndTime" : 1.720050e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1139, 1900, 1591], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.570140e-03, 0.000000e+00, 2.570140e-03], 11 | [0.000000e+00, 0.000000e+00, -1.293022e-03, -1.293022e-03], 12 | [0.000000e+00, -2.525959e-03, 1.233087e-03, -1.296142e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_82.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.640006e+02, 3 | "bioEndTime" : 1.740223e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 901, 1717, 1169], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 3.276989e-03, 0.000000e+00, 3.276989e-03], 11 | [0.000000e+00, 0.000000e+00, -1.455071e-03, -1.455071e-03], 12 | [0.000000e+00, -3.087589e-03, 1.377447e-03, -1.714657e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_83.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.660024e+02, 3 | "bioEndTime" : 1.760003e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 841, 1447, 850], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 3.604676e-03, 0.000000e+00, 3.604676e-03], 11 | [0.000000e+00, 0.000000e+00, -1.735476e-03, -1.735476e-03], 12 | [0.000000e+00, -3.582032e-03, 1.729861e-03, -1.858425e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_84.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.680100e+02, 3 | "bioEndTime" : 1.780082e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 961, 1202, 707], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 3.273049e-03, 0.000000e+00, 3.273049e-03], 11 | [0.000000e+00, 0.000000e+00, -2.132261e-03, -2.132261e-03], 12 | [0.000000e+00, -3.544859e-03, 2.238867e-03, -1.313512e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_85.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.700015e+02, 3 | "bioEndTime" : 1.800000e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1185, 976, 720], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.663913e-03, 0.000000e+00, 2.663913e-03], 11 | [0.000000e+00, 0.000000e+00, -2.529181e-03, -2.529181e-03], 12 | [0.000000e+00, -2.895118e-03, 2.698677e-03, -2.037725e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_86.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.720050e+02, 3 | "bioEndTime" : 1.820023e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1490, 888, 873], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.134379e-03, 0.000000e+00, 2.134379e-03], 11 | [0.000000e+00, 0.000000e+00, -2.751354e-03, -2.751354e-03], 12 | [0.000000e+00, -2.123910e-03, 2.769998e-03, 6.402173e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_87.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.740223e+02, 3 | "bioEndTime" : 1.840003e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1788, 972, 1254], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.712435e-03, 0.000000e+00, 1.712435e-03], 11 | [0.000000e+00, 0.000000e+00, -2.536796e-03, -2.536796e-03], 12 | [0.000000e+00, -1.590522e-03, 2.413798e-03, 8.192086e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_88.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.760003e+02, 3 | "bioEndTime" : 1.860010e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 2043, 1189, 1694], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.481275e-03, 0.000000e+00, 1.481275e-03], 11 | [0.000000e+00, 0.000000e+00, -2.097051e-03, -2.097051e-03], 12 | [0.000000e+00, -1.387933e-03, 2.030513e-03, 6.396178e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_89.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.780082e+02, 3 | "bioEndTime" : 1.880006e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 2119, 1462, 2091], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.381891e-03, 0.000000e+00, 1.381891e-03], 11 | [0.000000e+00, 0.000000e+00, -1.677289e-03, -1.677289e-03], 12 | [0.000000e+00, -1.374448e-03, 1.721567e-03, 3.447489e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_9.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.800241e+01, 3 | "bioEndTime" : 2.800402e+01, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1590, 1345, 1442], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.830071e-03, 0.000000e+00, 1.830071e-03], 11 | [0.000000e+00, 0.000000e+00, -1.855591e-03, -1.855591e-03], 12 | [0.000000e+00, -1.825563e-03, 1.852086e-03, 2.312925e-05]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_90.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.800000e+02, 3 | "bioEndTime" : 1.900020e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 2041, 1830, 2320], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.436701e-03, 0.000000e+00, 1.436701e-03], 11 | [0.000000e+00, 0.000000e+00, -1.414810e-03, -1.414810e-03], 12 | [0.000000e+00, -1.476993e-03, 1.484974e-03, 5.867519e-06]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_91.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.820023e+02, 3 | "bioEndTime" : 1.920002e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1853, 2038, 2358], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.617372e-03, 0.000000e+00, 1.617372e-03], 11 | [0.000000e+00, 0.000000e+00, -1.268497e-03, -1.268497e-03], 12 | [0.000000e+00, -1.656712e-03, 1.320425e-03, -3.384004e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_92.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.840003e+02, 3 | "bioEndTime" : 1.940045e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1595, 2093, 2090], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 1.932042e-03, 0.000000e+00, 1.932042e-03], 11 | [0.000000e+00, 0.000000e+00, -1.218076e-03, -1.218076e-03], 12 | [0.000000e+00, -1.917255e-03, 1.219157e-03, -7.004416e-04]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_93.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.860010e+02, 3 | "bioEndTime" : 1.960005e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1364, 1981, 1738], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.324351e-03, 0.000000e+00, 2.324351e-03], 11 | [0.000000e+00, 0.000000e+00, -1.249883e-03, -1.249883e-03], 12 | [0.000000e+00, -2.246099e-03, 1.226717e-03, -1.022219e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_94.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.880006e+02, 3 | "bioEndTime" : 1.980034e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1197, 1808, 1380], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.658476e-03, 0.000000e+00, 2.658476e-03], 11 | [0.000000e+00, 0.000000e+00, -1.369402e-03, -1.369402e-03], 12 | [0.000000e+00, -2.578773e-03, 1.345509e-03, -1.236814e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/flux_95.json: -------------------------------------------------------------------------------- 1 | { 2 | "bioBeginTime" : 1.900020e+02, 3 | "bioEndTime" : 2.000026e+02, 4 | "normalized" : true, 5 | "uuid" : "575439247", 6 | "rules" : ["Perturbations", "reproduce", "die", "eat"], 7 | "hits" : [0, 1149, 1511, 1128], 8 | "fluxs" : 9 | [[0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00], 10 | [0.000000e+00, 2.760329e-03, 0.000000e+00, 2.760329e-03], 11 | [0.000000e+00, 0.000000e+00, -1.565880e-03, -1.565880e-03], 12 | [0.000000e+00, -2.761771e-03, 1.573862e-03, -1.192233e-03]] 13 | } -------------------------------------------------------------------------------- /data/PreyPred/inputs.ka: -------------------------------------------------------------------------------- 1 | # "uuid" : "575439247" 2 | %def: "seed" "774677984" 3 | %def: "newSyntax" "true" 4 | %def: "dumpIfDeadlocked" "true" 5 | %def: "maxConsecutiveClash" "2" 6 | %def: "plotPeriod" "1" "t.u." 7 | %def: "outputFileName" "data.csv" 8 | 9 | %agent: prey() 10 | %agent: predator() 11 | 12 | %var:/*0*/ 'DIM_beat' 2 13 | %var:/*1*/ 'DIM_length' 5 14 | %var:/*2*/ 'DIM_tick' 0 15 | %var:/*3*/ 'DIM_clock' 0 16 | %plot: [T] 17 | %plot: |predator()| 18 | %plot: |prey()| 19 | 20 | 'reproduce' prey(), +prey() @ 0.3 21 | 'die' -predator() @ 0.25 22 | 'eat' -prey(), predator(), +predator() @ 0.0005 23 | 24 | /*0*/%mod: repeat (([T] > DIM_clock) && (DIM_tick > (DIM_length - 1))) do $FLUX "flux_".(DIM_tick - DIM_length).".json" [false] until [false] 25 | /*1*/%mod: repeat ([T] > DIM_clock) do $FLUX "flux_".DIM_tick.".json" [true] until ((((DIM_tick + DIM_length) + 1) * DIM_beat) > [Tmax]) 26 | /*2*/%mod: repeat ([T] > DIM_clock) do $UPDATE DIM_clock (DIM_clock + DIM_beat); $UPDATE DIM_tick (DIM_tick + 1) until [false] 27 | 28 | %init: 580 prey() 29 | %init: 520 predator() 30 | 31 | %mod: [E] = 89842 do $STOP 32 | -------------------------------------------------------------------------------- /data/flux_4.json: -------------------------------------------------------------------------------- 1 | {"din_name":"flux_4.json","din_kind":"RELATIVE","din_start":8.000012489949073,"din_end":18.000007641402853,"din_rules":["Interventions","pCa_1","pCa_2","pCa_3","pCa_4","pCa_5","pCa_6","pCa_1_op","pCa_2_op","pCa_3_op","pCa_4_op","pCa_5_op","pCa_6_op","flip__8","flip__7","flip__6","flip__5","flip__4","flip__3","flip__2","flip__1","flip__0","flip_op","A.Ca","A..Ca__8","A..Ca__7","A..Ca__6","A..Ca__5","A..Ca__4","A..Ca__3","A..Ca__2","A..Ca__1","A..Ca__0","A..pC_1","A..pC_2","A..pC_3","A..pC_4","A..pC_5","A..pC_6","B.Ci1_0","B.Ci2_0","B.Ci1_0_op","B.Ci2_0_op","B.Ci1_g0","B.Ci2_g0","B.Ci1_g0_op","B.Ci2_g0_op","A..B","A.B1_1","A.B1_2","A.B1_3","A.B1_4","A.B2_1","A.B2_2","A.B2_3","A.B2_4"],"din_hits":[0,35,38,39,44,32,32,246,243,249,261,240,248,0,0,0,0,0,0,0,0,0,197,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1773,1807,1969,2004,399264,399181,399264,399181,97777,489,30665,17506,144,467,30988,17378,140],"din_fluxs":[[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,-0.0030232178940000133,0.0,0.0,0.0,0.0,0.0,0.0077091518840462885,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007935732187611894,-0.0013781874632977306,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,-0.002991361815511882,0.0,0.0,0.0,0.0,0.0,0.007707535723234733,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.02631578947368421,0.015875217025403707,-0.0026131318580285843,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,-0.003229425349953694,0.0,0.0,0.0,0.0,0.0,0.0069922147986126015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.029234557967589645,-0.003874149584077219,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,-0.003090240351112054,0.0,0.0,0.0,0.0,0.0,0.007517635116674393,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00045454545454545465,2.523234146875356e-18,0.01421487603305785,-0.0028909480658389874,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,-0.0029385451906426352,0.0,0.0,0.0,0.0,0.0,0.007913791622373396,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014922288359788366,-0.00121129040272889,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,-0.002825673406089029,0.0,0.0,0.0,0.0,0.0,0.009117637925396297,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.014255866858237546,-0.0018145730774759693,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.003283291421845058,0.0,0.0,0.0,0.0,0.0,-0.006759164289814115,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.00029184907233687667,5.401339034588837e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1178.861788617886,1097.5691056910568,0.0,0.0,-0.0003269176722029089,-0.00032682142161013876,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.00334701556354609,0.0,0.0,0.0,0.0,0.0,-0.006405002867214482,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0013717421124828533,-6.0875601599864417e-05,0.0001227344659538025,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1316.8765432098764,1358.0246913580247,0.0,0.0,-0.00038954544980481236,-0.0003895112609380811,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.003480698602269264,0.0,0.0,0.0,0.0,0.0,-0.006033865220789619,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.004016064257028112,0.0013386880856760372,-0.0029937933552391387,0.00050949913924189,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1485.9558232931727,1566.2690763052208,0.0,0.0,-0.000424801142821151,-0.0004248249698924163,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0034795098642200996,0.0,0.0,0.0,0.0,0.0,-0.0061302848464757425,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0009578544061302679,0.0010034665207078995,0.00014107582370610598,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1340.9961685823755,1340.9961685823755,0.0,0.0,-0.00035689712402735583,-0.00035678693963547343,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0033269207531376062,0.0,0.0,0.0,0.0,0.0,-0.006518777595266474,0.0,0.0,0.0,0.0,0.0,-0.004166666666666667,8.333333333333334e-05,0.0,-0.00013440860215053796,2.525252525252531e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1125.0083333333334,1208.3333333333333,0.0,0.0,-0.0003104020560322658,-0.00031024857193799534,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0033451797822150716,0.0,0.0,0.0,0.0,0.0,-0.006651879519010065,0.0,0.0,0.0,0.0,0.0,0.0,-0.005376344086021506,0.0011570395677737175,5.417724498304372e-05,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1250.0,1250.0,0.0,0.0,-0.0003288124063556164,-0.0003287616277089388,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.005076142131979695,0.0,0.023023979074506873,-0.8709813874788496,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8519458544839258,-0.8532148900169206,0.0,0.0,-0.0025380710659898475,-0.0025380710659898475,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8097386726828349,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8808581916067659,-0.0004218878954145644,9718.019646550103,0.0,-0.00016975011063870144,-0.00016654171012182425,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.802757793764988,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.000427820777480668,-0.8594066255739007,0.0,9690.124792473713,-0.00017485095610894662,-0.00016693161121704837,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,69.95090570509564,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,598.930084092456,0.00041385233766982844,-0.9855679702048418,0.0,0.00017900997889248857,0.00016840449735933003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,65.71032934131738,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.000409905966844843,573.6654126457009,0.0,-0.9851962741184299,0.00017048668924416057,0.00018001920512084664,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0012439555448692256,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-8.577412407636853e-05,-8.584375564623345e-05,0.0,0.0,-0.7716788698475041,-0.00019773184590356538,0.002511114963198965,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0012296009412605645,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-8.581024406978099e-05,-8.583435989689208e-05,0.0,0.0,-0.0001989706968123779,-0.7713047038233671,0.0,0.0025120617560685263,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10812394806443856,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.576343493874271e-05,8.587735794639079e-05,0.0,0.0,44013.81479090339,0.00019822152500733754,-0.0025046686839952166,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11897777365823191,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.584258047377058e-05,8.578241525272397e-05,0.0,0.0,0.0001986080841416961,43964.266805255895,0.0,-0.00250561089079162,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,17946.269331097003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.001023541453430643,301312062688.9018,23679115618499.375,15180148917173.318,124693623606.89317,300454054663.4543,23625505879180.703,15121754652733.186,124798717430.53232],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934417,-1.0,-1.0,-1.0,-0.9938650306748467,-1.0,-1.0,-1.0,-0.9979550102249489],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639338289,-1.0,-1.0,-1.0,-0.9915538887983043,-1.0,-1.0,-1.0,-0.9989238545573129],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639344742,-1.0,-1.0,-1.0,-0.9968582200388438,-1.0,-1.0,-1.0,-0.9994858905518108],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934425,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934417,-1.0,-1.0,-1.0,-0.9935760171306209,-1.0,-1.0,-1.0,-0.9978586723768736],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639338198,-1.0,-1.0,-1.0,-0.9926745837098232,-1.0,-1.0,-1.0,-0.9988382599716019],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639344853,-1.0,-1.0,-1.0,-0.9970652549200139,-1.0,-1.0,-1.0,-0.999712279894119],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639344254,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0]]} -------------------------------------------------------------------------------- /data/flux_5.json: -------------------------------------------------------------------------------- 1 | {"din_name":"flux_5.json","din_kind":"RELATIVE","din_start":10.00000441109444,"din_end":20.00001798300207,"din_rules":["Interventions","pCa_1","pCa_2","pCa_3","pCa_4","pCa_5","pCa_6","pCa_1_op","pCa_2_op","pCa_3_op","pCa_4_op","pCa_5_op","pCa_6_op","flip__8","flip__7","flip__6","flip__5","flip__4","flip__3","flip__2","flip__1","flip__0","flip_op","A.Ca","A..Ca__8","A..Ca__7","A..Ca__6","A..Ca__5","A..Ca__4","A..Ca__3","A..Ca__2","A..Ca__1","A..Ca__0","A..pC_1","A..pC_2","A..pC_3","A..pC_4","A..pC_5","A..pC_6","B.Ci1_0","B.Ci2_0","B.Ci1_0_op","B.Ci2_0_op","B.Ci1_g0","B.Ci2_g0","B.Ci1_g0_op","B.Ci2_g0_op","A..B","A.B1_1","A.B1_2","A.B1_3","A.B1_4","A.B2_1","A.B2_2","A.B2_3","A.B2_4"],"din_hits":[0,37,41,39,45,38,37,175,184,208,204,175,176,0,0,0,0,0,0,1,0,0,228,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1991,2052,2217,2278,355654,356194,355654,356194,97670,784,34448,13598,68,723,34620,13357,72],"din_fluxs":[[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,-0.002651822838070487,0.0,0.0,0.0,0.0,0.0,0.010448721167947915,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.011689405767354435,-0.002021032808014743,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,-0.0026974250747578395,0.0,0.0,0.0,0.0,0.0,0.009568317712351964,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03252032520325203,0.017056992154582687,-0.002922854190287636,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,-0.002807281727865946,0.0,0.0,0.0,0.0,0.0,0.009066643585651721,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.024013431055286263,-0.002999799325946239,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,-0.002810851517350949,0.0,0.0,0.0,0.0,0.0,0.00920050076412709,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0004444444444444445,0.005555555555555557,0.007076377813219915,-0.0016530444822966729,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,-0.002708570055958971,0.0,0.0,0.0,0.0,0.0,0.009660249157950551,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.039473684210526314,0.013748203022050046,-0.0015532897519110345,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,-0.00261660275393562,0.0,0.0,0.0,0.0,0.0,0.01072856294741872,0.0,0.0,0.0,0.0,0.0,0.0,0.013513513513513516,0.016378631640033184,-0.0023968826634329704,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0027769284980681667,0.0,0.0,0.0,0.0,0.0,-0.009107442033052497,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0007520931449502864,0.00013669719873106535,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1885.7142857142858,1771.44,0.0,0.0,-0.0005677970983892138,-0.000567363223179315,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0028548786251321183,0.0,0.0,0.0,0.0,0.0,-0.008346595742638093,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.001811594202898551,-0.0002557110636135661,0.00019296898591626197,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2010.875,2065.217391304348,0.0,0.0,-0.000629513763230656,-0.0006298587930169216,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.002999038408318261,0.0,0.0,0.0,0.0,0.0,-0.007710980000944247,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.002649087024087025,0.0003384414265443366,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2067.3221153846152,2163.466346153846,0.0,0.0,-0.0006342380042348172,-0.000634300850460257,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0029503094783865065,0.0,0.0,0.0,0.0,0.0,-0.007943202575194373,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.004901960784313725,0.0016339869281045748,-0.0014603758169934639,0.00023293495338591263,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2058.828431372549,2058.828431372549,0.0,0.0,-0.0006378530384805928,-0.0006375824437054234,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.002855729249823376,0.0,0.0,0.0,0.0,0.0,-0.008298258971384677,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0007210626185958271,0.0001241249290784897,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1542.8685714285714,1657.142857142857,0.0,0.0,-0.0004735749203205366,-0.00047331624190284876,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0028184540893137285,0.0,0.0,0.0,0.0,0.0,-0.008698429569158259,0.0,0.0,0.0,0.0,0.0,0.0,-0.007575757575757577,0.0002038099090379408,0.00010826099024934514,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2102.2727272727275,2102.2727272727275,0.0,0.0,-0.0006361885325427979,-0.0006363941388035826,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.24999999999999994,0.0,0.0,100.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0043859649122807015,0.0,0.012209122916644253,-0.8753654970760233,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8567251461988303,-0.8592836257309943,0.0,0.0,-0.0021929824561403508,-0.0021929824561403508,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.81299179641721,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8826904293721287,-0.00041222277325319245,9758.938640549137,0.0,-0.0001545107284277238,-0.0001499477206154728,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8080328135152692,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.00041684103692933247,-0.8666121542022888,0.0,9678.394493177388,-0.00015636455687614953,-0.00015047410493323327,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,70.17380844985716,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,617.8012458479595,0.0004034935163654316,-0.9874079085851752,0.0,0.0001581772399967982,0.0001518017042424255,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,66.81628621597895,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00039961842319997167,599.9248757235279,0.0,-0.9845624817091017,0.00015301703129750558,0.00016431191114671794,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0012179440317462101,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-9.613031572897744e-05,-9.616085775028917e-05,0.0,0.0,-0.7959421804573263,-0.00017274969017730936,0.002815223979644852,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0011781969001910943,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-9.611531021062575e-05,-9.61243402524235e-05,0.0,0.0,-0.00017398579590282299,-0.7948702325948899,0.0,0.002816900653492567,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10341652280024968,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.61605983963075e-05,9.622704450016904e-05,0.0,0.0,48855.329918968084,0.00017338483474534002,-0.0028069840246356943,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.11199702035033343,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.616930577549288e-05,9.60552561697541e-05,0.0,0.0,0.00017365250307925802,48726.380380641844,0.0,-0.002808651479721478,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,26759.714972543403,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0010235414534306383,352393991886.1282,21808211706888.066,10367532961073.006,63611311684.82513,351056572166.8266,21774207248773.527,10318167346073.236,63296406165.303215],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639344157,-1.0,-1.0,-0.9987244897959183,-0.8839285714285714,-1.0,-1.0,-0.9987244897959183,-0.9030612244897959],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639340661,-1.0,-1.0,-0.9992162099396191,-0.9280945192754296,-1.0,-1.0,-0.9990710636321412,-0.941999535531816],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934643,-1.0,-1.0,-1.0,-0.9614649213119576,-1.0,-1.0,-0.9998529195469922,-0.9702162082659215],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934427,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639344159,-1.0,-1.0,-0.9986168741355463,-0.8796680497925311,-1.0,-1.0,-0.995850622406639,-0.9017980636237898],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639340783,-1.0,-1.0,-0.9989601386481802,-0.9299537839399191,-1.0,-1.0,-0.9992778740612362,-0.9439630271519353],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639346412,-1.0,-1.0,-0.9996256644456091,-0.9603204312345587,-1.0,-1.0,-1.0,-0.9692296174290634],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934427,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0]]} -------------------------------------------------------------------------------- /data/flux_6.json: -------------------------------------------------------------------------------- 1 | {"din_name":"flux_6.json","din_kind":"RELATIVE","din_start":12.000004299618178,"din_end":22.00000619323459,"din_rules":["Interventions","pCa_1","pCa_2","pCa_3","pCa_4","pCa_5","pCa_6","pCa_1_op","pCa_2_op","pCa_3_op","pCa_4_op","pCa_5_op","pCa_6_op","flip__8","flip__7","flip__6","flip__5","flip__4","flip__3","flip__2","flip__1","flip__0","flip_op","A.Ca","A..Ca__8","A..Ca__7","A..Ca__6","A..Ca__5","A..Ca__4","A..Ca__3","A..Ca__2","A..Ca__1","A..Ca__0","A..pC_1","A..pC_2","A..pC_3","A..pC_4","A..pC_5","A..pC_6","B.Ci1_0","B.Ci2_0","B.Ci1_0_op","B.Ci2_0_op","B.Ci1_g0","B.Ci2_g0","B.Ci1_g0_op","B.Ci2_g0_op","A..B","A.B1_1","A.B1_2","A.B1_3","A.B1_4","A.B2_1","A.B2_2","A.B2_3","A.B2_4"],"din_hits":[0,41,48,44,46,39,44,139,155,153,158,136,148,0,0,0,0,0,0,1,0,0,237,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2189,2230,2424,2465,308198,309167,308198,309166,97773,1702,36692,10464,40,1688,36684,10465,38],"din_fluxs":[[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,-0.0025292783550807563,0.0,0.0,0.0,0.0,0.0,0.012657476072532644,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0004878048780487806,0.0005807200929152149,0.01046222202007338,-0.001931780308722133,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,-0.002584174414731406,0.0,0.0,0.0,0.0,0.0,0.011462435953366575,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.03194444444444445,0.016233734060498,-0.002960319583092541,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,-0.00259463539216653,0.0,0.0,0.0,0.0,0.0,0.011409640052271585,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.003787878787878787,0.02310895118378597,-0.0031628679079006516,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,-0.002581984547918868,0.0,0.0,0.0,0.0,0.0,0.011293145516329806,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00043478260869565224,-0.005434782608695654,0.014068666268396922,-0.0022062388254298275,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,-0.0025456487304654435,0.0,0.0,0.0,0.0,0.0,0.011565625102255835,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.04487179487179487,0.015663594131884635,-0.0020945951854350778,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,-0.002515061815893653,0.0,0.0,0.0,0.0,0.0,0.012649558863931532,0.0,0.0,0.0,0.0,0.0,0.0,0.015909090909090914,0.014767350862834249,-0.002322841921436909,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0025771898540827925,0.0,0.0,0.0,0.0,0.0,-0.011348141169243544,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0012610091912596741,0.00023738189821590307,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2517.9856115107914,2374.115107913669,0.0,0.0,-0.0008515768875221857,-0.0008510961589545958,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0026458853256475963,0.0,0.0,0.0,0.0,0.0,-0.010286190921575797,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.003225806451612904,-0.00039029263517254535,0.0002854456993314981,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2838.716129032258,2838.716129032258,0.0,0.0,-0.00099941029351161,-0.0009998677177894552,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.002666646516265115,0.0,0.0,0.0,0.0,0.0,-0.010043537843789483,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0020862216940648326,0.00035869360558142104,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2679.7450980392155,2679.7450980392155,0.0,0.0,-0.0009133889490759969,-0.000913429469166718,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0026711936122769354,0.0,0.0,0.0,0.0,0.0,-0.009947999310213172,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.006329113924050633,0.0021097046413502104,-0.0018855485232067506,0.0003007514588020644,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2721.525316455696,2721.525316455696,0.0,0.0,-0.0009819805785120396,-0.0009810172842982597,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.00259922840457943,0.0,0.0,0.0,0.0,0.0,-0.0107081390852652,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.002521008403361344,-0.0010306576363389548,0.00025937763484394475,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2132.3529411764707,2132.3529411764707,0.0,0.0,-0.0006923193344245083,-0.0006922142786181535,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.002588458168890261,0.0,0.0,0.0,0.0,0.0,-0.011175553886805958,0.0,0.0,0.0,0.0,0.0,0.0,-0.009009009009009011,-4.990047272169525e-05,0.0001899099571567891,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2702.7027027027025,2702.7027027027025,0.0,0.0,-0.0009259705311385529,-0.0009261332723626582,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.24999999999999994,0.0,0.0,100.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.004219409282700422,0.0,0.007958122002618591,-0.8786919831223629,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8565400843881855,-0.8639240506329112,0.0,0.0,-0.002109704641350211,-0.002109704641350211,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8178011268463533,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8895712501451248,-0.00039867181535965644,9748.768311253238,0.0,-0.00012974518167622776,-0.0001302329915073325,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.8148355754858003,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.00040292800544455034,-0.8762122366992909,0.0,9708.549103139014,-0.00013376704079371625,-0.00013010178278139974,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,70.70743949394939,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,649.0846498435305,0.0003896133177524162,-0.987864411441144,0.0,0.00013354962867851328,0.00013282605579386817,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,68.68559837728195,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00038777669011198497,634.0634817915287,0.0,-0.9857336037863422,0.00013096794553893053,0.00014340602441960032,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0011496938115540443,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.00010276120135227365,-0.00010268456473459123,0.0,0.0,-0.8234163001675835,-0.00014618145283118268,0.0032478365498413535,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0010431255599724421,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.00010288173349234631,-0.00010287496976707954,0.0,0.0,-0.00014675218308923753,-0.8219025260809024,0.0,0.0032469793146155668,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.09077281487874678,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00010280972102318533,0.00010276341516933784,0.0,0.0,54633.29340366211,0.00014644904009800577,-0.0032367044137971593,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.10090102620167375,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.00010291555721341301,0.00010279197477817315,0.0,0.0,0.00014679855538825444,54430.37739518124,0.0,-0.003235848328597924,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,36401.09498854684,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.0010235414534306428,372469441842.7176,16833826158324.713,6055057045079.581,24819586527.33546,371025954970.57855,16738553286521.139,6056635138255.689,24556282761.820957],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639344618,-1.0,-0.9917743830787309,-0.7943595769682726,-0.5370152761457109,-1.0,-0.9806110458284372,-0.7990599294947121,-0.5070505287896592],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639342164,-1.0,-1.0,-0.942194483811185,-0.8008285184781424,-1.0,-0.9986100512373269,-0.9464460917911262,-0.8024637523165813],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934612,-1.0,-0.9997133027522935,-1.0,-0.8817851681957186,-1.0,-0.9987576452599388,-0.9719992354740061,-0.8879969418960245],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934427,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639344612,-1.0,-0.9922985781990521,-0.7808056872037915,-0.5260663507109005,-1.0,-0.9840047393364929,-0.7879146919431279,-0.4958530805687204],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639342157,-1.0,-0.999591102387962,-0.943599389379566,-0.8023934140224621,-1.0,-1.0,-0.9437629484243812,-0.8045469414458619],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.001024590163934612,-1.0,-0.9997133301481128,-0.9713330148112757,-0.8796942188246536,-1.0,-0.9993311036789297,-1.0,-0.8850453893932155],[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0010245901639344267,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0]]} -------------------------------------------------------------------------------- /data/miniKaiProb3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/data/miniKaiProb3.zip -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Dynamic Influence Networks 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 |
39 |
40 |
41 |
42 | 43 |

Dataset

44 |
45 |
46 | 47 |
48 |
49 | 50 |
51 | Examples:
52 | EGFR Simulation
53 | Predator Prey (Simple)
54 | Kai C (Complex) 55 |
56 |
57 | 58 |

Clustering

59 |
60 |
Threshold
61 | 62 |
Mode
63 |
64 |
65 | 66 | 67 |
68 |
69 | 70 | 71 |
72 |
73 | 74 | 75 |
76 |
77 | Time +/- 78 | 79 |
80 |
81 |
82 |
83 | 84 |

Appearance

85 |
86 |
Labels
87 | 88 | 89 | 90 |
91 |
92 |
Numbers
93 | 94 | 97 |
98 |
99 | 100 |

Layout

101 |
102 | 103 | 104 |
105 |
106 |
107 | Mark 108 |
109 | 110 | 112 | 113 |
114 |
115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 |
124 |
125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 |
134 |
135 |
136 |
137 | 138 |

Legend

139 |
140 | Num. hits 141 |
142 |
143 |
144 |
145 |
146 |
147 | Amt. influence 148 |
149 |
150 |
151 |
152 |
153 |
154 |
Links
155 | 156 | 158 | Positive 159 |
160 |
161 | 162 | 164 | Negative 165 |
166 |
167 | 168 | 171 |
172 |
173 |
174 |
175 |
176 |

1x

177 |
178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 |
187 |
188 |
189 |
190 |

191 |
192 |

193 | DYNAMIC INFLUENCE NETWORKS, a visual analytics tool for representing protein interaction networks, based on KaSim, an open source stochastic simulator of rule-based models. 194 |

195 |

196 | LEFT: A network layout of KaSim data. Rules are represented as circles; influences on other rules are represented with lines. 197 |

198 |

199 | If the magnitude of influence of one rule on another is higher than a user-given threshold (defined by the influence slider), they are clustered together (represented by colored circles). 200 |

201 |

202 | Click and drag a rule or cluster to pin it in place; click again to unpin it. Use the LAYOUT tab to pin nodes in place or to manually mark nodes into different clusters. 203 |

204 |

205 | RIGHT, TOP: A phenotype graph representing the overall activity of the network over the entire time window. 206 |

207 |

208 | RIGHT, MIDDLE AND BOTTOM: Right-click any rule in the network layout to display its fluxes over time as a line graph. 209 |

210 |

211 | DATASET: Drag and drop a zipped folder of json files generated by KaSim onto the page. They must be named in consecutive order: e.g., flux_0.json, flux_1.json, flux_2.json. 212 |

213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 | Tip: select a rule with right-click to bring up more in-depth information over time 225 |
226 |
227 | 228 | 229 | -------------------------------------------------------------------------------- /lib/README: -------------------------------------------------------------------------------- 1 | zip.js is an open-source library (BSD license) for zipping and unzipping files. 2 | 3 | See here for more info: 4 | http://gildas-lormeau.github.com/zip.js/ 5 | -------------------------------------------------------------------------------- /lib/WebContent/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "browser": true, 3 | "laxbreak": true, 4 | "undef": true, 5 | "globals": { 6 | "console": false, 7 | "escape": false, 8 | "unescape": false, 9 | "zip": false 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /lib/WebContent/pako/codecs.js: -------------------------------------------------------------------------------- 1 | /// wrapper for pako (https://github.com/nodeca/pako) 2 | 3 | /* globals pako */ 4 | (function(global) { 5 | "use strict"; 6 | 7 | function Codec(isDeflater, options) { 8 | var newOptions = { raw: true, chunkSize: 1024 * 1024 }; 9 | if (options && typeof options.level === 'number') 10 | newOptions.level = options.level; 11 | this._backEnd = isDeflater? 12 | new pako.Deflate(newOptions) : 13 | new pako.Inflate(newOptions); 14 | this._chunks = []; 15 | this._dataLength = 0; 16 | this._backEnd.onData = this._onData.bind(this); 17 | } 18 | Codec.prototype._onData = function _onData(chunk) { 19 | this._chunks.push(chunk); 20 | this._dataLength += chunk.length; 21 | }; 22 | Codec.prototype._fetchData = function _fetchData() { 23 | var be = this._backEnd; 24 | if (be.err !== 0) 25 | throw new Error(be.msg); 26 | var chunks = this._chunks; 27 | var data; 28 | if (chunks.length === 1) 29 | data = chunks[0]; 30 | else if (chunks.length > 1) { 31 | data = new Uint8Array(this._dataLength); 32 | for (var i = 0, n = chunks.length, off = 0; i < n; i++) { 33 | var chunk = chunks[i]; 34 | data.set(chunk, off); 35 | off += chunk.length; 36 | } 37 | } 38 | chunks.length = 0; 39 | this._dataLength = 0; 40 | return data; 41 | }; 42 | Codec.prototype.append = function append(bytes, onprogress) { 43 | this._backEnd.push(bytes, false); 44 | return this._fetchData(); 45 | }; 46 | Codec.prototype.flush = function flush() { 47 | this._backEnd.push(new Uint8Array(0), true); 48 | return this._fetchData(); 49 | }; 50 | 51 | function Deflater(options) { 52 | Codec.call(this, true, options); 53 | } 54 | Deflater.prototype = Object.create(Codec.prototype); 55 | function Inflater() { 56 | Codec.call(this, false); 57 | } 58 | Inflater.prototype = Object.create(Codec.prototype); 59 | 60 | // 'zip' may not be defined in z-worker and some tests 61 | var env = global.zip || global; 62 | env.Deflater = env._pako_Deflater = Deflater; 63 | env.Inflater = env._pako_Inflater = Inflater; 64 | })(this); -------------------------------------------------------------------------------- /lib/WebContent/z-worker.js: -------------------------------------------------------------------------------- 1 | /* jshint worker:true */ 2 | (function main(global) { 3 | "use strict"; 4 | 5 | if (global.zWorkerInitialized) 6 | throw new Error('z-worker.js should be run only once'); 7 | global.zWorkerInitialized = true; 8 | 9 | addEventListener("message", function(event) { 10 | var message = event.data, type = message.type, sn = message.sn; 11 | var handler = handlers[type]; 12 | if (handler) { 13 | try { 14 | handler(message); 15 | } catch (e) { 16 | onError(type, sn, e); 17 | } 18 | } 19 | //for debug 20 | //postMessage({type: 'echo', originalType: type, sn: sn}); 21 | }); 22 | 23 | var handlers = { 24 | importScripts: doImportScripts, 25 | newTask: newTask, 26 | append: processData, 27 | flush: processData, 28 | }; 29 | 30 | // deflater/inflater tasks indexed by serial numbers 31 | var tasks = {}; 32 | 33 | function doImportScripts(msg) { 34 | if (msg.scripts && msg.scripts.length > 0) 35 | importScripts.apply(undefined, msg.scripts); 36 | postMessage({type: 'importScripts'}); 37 | } 38 | 39 | function newTask(msg) { 40 | var CodecClass = global[msg.codecClass]; 41 | var sn = msg.sn; 42 | if (tasks[sn]) 43 | throw Error('duplicated sn'); 44 | tasks[sn] = { 45 | codec: new CodecClass(msg.options), 46 | crcInput: msg.crcType === 'input', 47 | crcOutput: msg.crcType === 'output', 48 | crc: new Crc32(), 49 | }; 50 | postMessage({type: 'newTask', sn: sn}); 51 | } 52 | 53 | // performance may not be supported 54 | var now = global.performance ? global.performance.now.bind(global.performance) : Date.now; 55 | 56 | function processData(msg) { 57 | var sn = msg.sn, type = msg.type, input = msg.data; 58 | var task = tasks[sn]; 59 | // allow creating codec on first append 60 | if (!task && msg.codecClass) { 61 | newTask(msg); 62 | task = tasks[sn]; 63 | } 64 | var isAppend = type === 'append'; 65 | var start = now(); 66 | var output; 67 | if (isAppend) { 68 | try { 69 | output = task.codec.append(input, function onprogress(loaded) { 70 | postMessage({type: 'progress', sn: sn, loaded: loaded}); 71 | }); 72 | } catch (e) { 73 | delete tasks[sn]; 74 | throw e; 75 | } 76 | } else { 77 | delete tasks[sn]; 78 | output = task.codec.flush(); 79 | } 80 | var codecTime = now() - start; 81 | 82 | start = now(); 83 | if (input && task.crcInput) 84 | task.crc.append(input); 85 | if (output && task.crcOutput) 86 | task.crc.append(output); 87 | var crcTime = now() - start; 88 | 89 | var rmsg = {type: type, sn: sn, codecTime: codecTime, crcTime: crcTime}; 90 | var transferables = []; 91 | if (output) { 92 | rmsg.data = output; 93 | transferables.push(output.buffer); 94 | } 95 | if (!isAppend && (task.crcInput || task.crcOutput)) 96 | rmsg.crc = task.crc.get(); 97 | 98 | // posting a message with transferables will fail on IE10 99 | try { 100 | postMessage(rmsg, transferables); 101 | } catch(ex) { 102 | postMessage(rmsg); // retry without transferables 103 | } 104 | } 105 | 106 | function onError(type, sn, e) { 107 | var msg = { 108 | type: type, 109 | sn: sn, 110 | error: formatError(e) 111 | }; 112 | postMessage(msg); 113 | } 114 | 115 | function formatError(e) { 116 | return { message: e.message, stack: e.stack }; 117 | } 118 | 119 | // Crc32 code copied from file zip.js 120 | function Crc32() { 121 | this.crc = -1; 122 | } 123 | Crc32.prototype.append = function append(data) { 124 | var crc = this.crc | 0, table = this.table; 125 | for (var offset = 0, len = data.length | 0; offset < len; offset++) 126 | crc = (crc >>> 8) ^ table[(crc ^ data[offset]) & 0xFF]; 127 | this.crc = crc; 128 | }; 129 | Crc32.prototype.get = function get() { 130 | return ~this.crc; 131 | }; 132 | Crc32.prototype.table = (function() { 133 | var i, j, t, table = []; // Uint32Array is actually slower than [] 134 | for (i = 0; i < 256; i++) { 135 | t = i; 136 | for (j = 0; j < 8; j++) 137 | if (t & 1) 138 | t = (t >>> 1) ^ 0xEDB88320; 139 | else 140 | t = t >>> 1; 141 | table[i] = t; 142 | } 143 | return table; 144 | })(); 145 | 146 | // "no-op" codec 147 | function NOOP() {} 148 | global.NOOP = NOOP; 149 | NOOP.prototype.append = function append(bytes, onprogress) { 150 | return bytes; 151 | }; 152 | NOOP.prototype.flush = function flush() {}; 153 | })(this); 154 | -------------------------------------------------------------------------------- /lib/WebContent/zip-ext.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2013 Gildas Lormeau. All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the distribution. 13 | 14 | 3. The names of the authors may not be used to endorse or promote products 15 | derived from this software without specific prior written permission. 16 | 17 | THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, 18 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 19 | FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, 20 | INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, 21 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 23 | OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | (function() { 30 | "use strict"; 31 | 32 | var ERR_HTTP_RANGE = "HTTP Range not supported."; 33 | 34 | var Reader = zip.Reader; 35 | var Writer = zip.Writer; 36 | 37 | var ZipDirectoryEntry; 38 | 39 | var appendABViewSupported; 40 | try { 41 | appendABViewSupported = new Blob([ new DataView(new ArrayBuffer(0)) ]).size === 0; 42 | } catch (e) { 43 | } 44 | 45 | function HttpReader(url) { 46 | var that = this; 47 | 48 | function getData(callback, onerror) { 49 | var request; 50 | if (!that.data) { 51 | request = new XMLHttpRequest(); 52 | request.addEventListener("load", function() { 53 | if (!that.size) 54 | that.size = Number(request.getResponseHeader("Content-Length")); 55 | that.data = new Uint8Array(request.response); 56 | callback(); 57 | }, false); 58 | request.addEventListener("error", onerror, false); 59 | request.open("GET", url); 60 | request.responseType = "arraybuffer"; 61 | request.send(); 62 | } else 63 | callback(); 64 | } 65 | 66 | function init(callback, onerror) { 67 | var request = new XMLHttpRequest(); 68 | request.addEventListener("load", function() { 69 | that.size = Number(request.getResponseHeader("Content-Length")); 70 | callback(); 71 | }, false); 72 | request.addEventListener("error", onerror, false); 73 | request.open("HEAD", url); 74 | request.send(); 75 | } 76 | 77 | function readUint8Array(index, length, callback, onerror) { 78 | getData(function() { 79 | callback(new Uint8Array(that.data.subarray(index, index + length))); 80 | }, onerror); 81 | } 82 | 83 | that.size = 0; 84 | that.init = init; 85 | that.readUint8Array = readUint8Array; 86 | } 87 | HttpReader.prototype = new Reader(); 88 | HttpReader.prototype.constructor = HttpReader; 89 | 90 | function HttpRangeReader(url) { 91 | var that = this; 92 | 93 | function init(callback, onerror) { 94 | var request = new XMLHttpRequest(); 95 | request.addEventListener("load", function() { 96 | that.size = Number(request.getResponseHeader("Content-Length")); 97 | if (request.getResponseHeader("Accept-Ranges") == "bytes") 98 | callback(); 99 | else 100 | onerror(ERR_HTTP_RANGE); 101 | }, false); 102 | request.addEventListener("error", onerror, false); 103 | request.open("HEAD", url); 104 | request.send(); 105 | } 106 | 107 | function readArrayBuffer(index, length, callback, onerror) { 108 | var request = new XMLHttpRequest(); 109 | request.open("GET", url); 110 | request.responseType = "arraybuffer"; 111 | request.setRequestHeader("Range", "bytes=" + index + "-" + (index + length - 1)); 112 | request.addEventListener("load", function() { 113 | callback(request.response); 114 | }, false); 115 | request.addEventListener("error", onerror, false); 116 | request.send(); 117 | } 118 | 119 | function readUint8Array(index, length, callback, onerror) { 120 | readArrayBuffer(index, length, function(arraybuffer) { 121 | callback(new Uint8Array(arraybuffer)); 122 | }, onerror); 123 | } 124 | 125 | that.size = 0; 126 | that.init = init; 127 | that.readUint8Array = readUint8Array; 128 | } 129 | HttpRangeReader.prototype = new Reader(); 130 | HttpRangeReader.prototype.constructor = HttpRangeReader; 131 | 132 | function ArrayBufferReader(arrayBuffer) { 133 | var that = this; 134 | 135 | function init(callback, onerror) { 136 | that.size = arrayBuffer.byteLength; 137 | callback(); 138 | } 139 | 140 | function readUint8Array(index, length, callback, onerror) { 141 | callback(new Uint8Array(arrayBuffer.slice(index, index + length))); 142 | } 143 | 144 | that.size = 0; 145 | that.init = init; 146 | that.readUint8Array = readUint8Array; 147 | } 148 | ArrayBufferReader.prototype = new Reader(); 149 | ArrayBufferReader.prototype.constructor = ArrayBufferReader; 150 | 151 | function ArrayBufferWriter() { 152 | var array, that = this; 153 | 154 | function init(callback, onerror) { 155 | array = new Uint8Array(); 156 | callback(); 157 | } 158 | 159 | function writeUint8Array(arr, callback, onerror) { 160 | var tmpArray = new Uint8Array(array.length + arr.length); 161 | tmpArray.set(array); 162 | tmpArray.set(arr, array.length); 163 | array = tmpArray; 164 | callback(); 165 | } 166 | 167 | function getData(callback) { 168 | callback(array.buffer); 169 | } 170 | 171 | that.init = init; 172 | that.writeUint8Array = writeUint8Array; 173 | that.getData = getData; 174 | } 175 | ArrayBufferWriter.prototype = new Writer(); 176 | ArrayBufferWriter.prototype.constructor = ArrayBufferWriter; 177 | 178 | function FileWriter(fileEntry, contentType) { 179 | var writer, that = this; 180 | 181 | function init(callback, onerror) { 182 | fileEntry.createWriter(function(fileWriter) { 183 | writer = fileWriter; 184 | callback(); 185 | }, onerror); 186 | } 187 | 188 | function writeUint8Array(array, callback, onerror) { 189 | var blob = new Blob([ appendABViewSupported ? array : array.buffer ], { 190 | type : contentType 191 | }); 192 | writer.onwrite = function() { 193 | writer.onwrite = null; 194 | callback(); 195 | }; 196 | writer.onerror = onerror; 197 | writer.write(blob); 198 | } 199 | 200 | function getData(callback) { 201 | fileEntry.file(callback); 202 | } 203 | 204 | that.init = init; 205 | that.writeUint8Array = writeUint8Array; 206 | that.getData = getData; 207 | } 208 | FileWriter.prototype = new Writer(); 209 | FileWriter.prototype.constructor = FileWriter; 210 | 211 | zip.FileWriter = FileWriter; 212 | zip.HttpReader = HttpReader; 213 | zip.HttpRangeReader = HttpRangeReader; 214 | zip.ArrayBufferReader = ArrayBufferReader; 215 | zip.ArrayBufferWriter = ArrayBufferWriter; 216 | 217 | if (zip.fs) { 218 | ZipDirectoryEntry = zip.fs.ZipDirectoryEntry; 219 | ZipDirectoryEntry.prototype.addHttpContent = function(name, URL, useRangeHeader) { 220 | function addChild(parent, name, params, directory) { 221 | if (parent.directory) 222 | return directory ? new ZipDirectoryEntry(parent.fs, name, params, parent) : new zip.fs.ZipFileEntry(parent.fs, name, params, parent); 223 | else 224 | throw "Parent entry is not a directory."; 225 | } 226 | 227 | return addChild(this, name, { 228 | data : URL, 229 | Reader : useRangeHeader ? HttpRangeReader : HttpReader 230 | }); 231 | }; 232 | ZipDirectoryEntry.prototype.importHttpContent = function(URL, useRangeHeader, onend, onerror) { 233 | this.importZip(useRangeHeader ? new HttpRangeReader(URL) : new HttpReader(URL), onend, onerror); 234 | }; 235 | zip.fs.FS.prototype.importHttpContent = function(URL, useRangeHeader, onend, onerror) { 236 | this.entries = []; 237 | this.root = new ZipDirectoryEntry(this); 238 | this.root.importHttpContent(URL, useRangeHeader, onend, onerror); 239 | }; 240 | } 241 | 242 | })(); 243 | -------------------------------------------------------------------------------- /lib/WebContent/zlib-asm/codecs.js: -------------------------------------------------------------------------------- 1 | /// wrapper for zlib-asm (https://github.com/ukyo/zlib-asm) 2 | 3 | /* globals zlib */ 4 | (function(global) { 5 | "use strict"; 6 | 7 | function Codec(isDeflater, options) { 8 | this._isDeflater = isDeflater; 9 | if (options && typeof options.level === 'number') 10 | this.level = options.level; 11 | this._inputLength = 0; 12 | this._input = []; 13 | } 14 | Codec.prototype.append = function append(bytes, onprogress) { 15 | this._inputLength += bytes.length; 16 | this._input.push(bytes); 17 | }; 18 | Codec.prototype.flush = function flush() { 19 | var bytes; 20 | var input = this._input; 21 | if (input.length === 1) 22 | bytes = input[0]; 23 | else { 24 | bytes = new Uint8Array(this._inputLength); 25 | for (var i = 0, n = input.length, off = 0; i < n; i++) { 26 | var slice = input[i]; 27 | bytes.set(slice, off); 28 | off += slice.length; 29 | } 30 | } 31 | return this._isDeflater ? 32 | zlib.rawDeflate(bytes, this.level) : 33 | zlib.rawInflate(bytes); 34 | }; 35 | 36 | function Deflater(options) { 37 | Codec.call(this, true, options); 38 | } 39 | Deflater.prototype = Object.create(Codec.prototype); 40 | function Inflater() { 41 | Codec.call(this, false); 42 | } 43 | Inflater.prototype = Object.create(Codec.prototype); 44 | 45 | // 'zip' may not be defined in z-worker and some tests 46 | var env = global.zip || global; 47 | env.Deflater = env._zlib_asm_Deflater = Deflater; 48 | env.Inflater = env._zlib_asm_Inflater = Inflater; 49 | })(this); -------------------------------------------------------------------------------- /screencaps/Buttons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/Buttons.png -------------------------------------------------------------------------------- /screencaps/Cluster1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/Cluster1.png -------------------------------------------------------------------------------- /screencaps/Cluster2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/Cluster2.png -------------------------------------------------------------------------------- /screencaps/ClusteringThreshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/ClusteringThreshold.png -------------------------------------------------------------------------------- /screencaps/Hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/Hover.png -------------------------------------------------------------------------------- /screencaps/OverTime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/OverTime.png -------------------------------------------------------------------------------- /screencaps/PinAndMark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/PinAndMark.png -------------------------------------------------------------------------------- /screencaps/Supplement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/Supplement.png -------------------------------------------------------------------------------- /screencaps/VisibilityThreshold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/VisibilityThreshold.png -------------------------------------------------------------------------------- /screencaps/teaser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CreativeCodingLab/DynamicInfluenceNetworks/6a05862e365780ee19bc62bb7c9f894c26c3b1dc/screencaps/teaser.png -------------------------------------------------------------------------------- /src/css/main.css: -------------------------------------------------------------------------------- 1 | @import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css); 2 | 3 | html, body, .fluidContainer, .mainCol { 4 | overflow: hidden; 5 | 6 | height:100%; 7 | 8 | font-size:2.5vmin; 9 | line-height:2.75vmin; 10 | 11 | -webkit-font-smoothing:antialiased; 12 | -moz-osx-font-smoothing:grayscale; 13 | } 14 | body { 15 | margin: 0; 16 | 17 | font-family: 'istok web','source sans', 'helvetica neue', helvetica, arial, sans-serif; 18 | } 19 | 20 | #help { 21 | position:absolute; 22 | z-index:1000; 23 | top:0; 24 | right:0; 25 | padding:1vmin 2.1vmin; 26 | font-size:1.8vmin; 27 | font-weight:400; 28 | pointer-events:none; 29 | } 30 | #help.active { 31 | pointer-events:auto; 32 | } 33 | 34 | #help h4 { 35 | margin:0; 36 | text-align: right; 37 | cursor:pointer; 38 | letter-spacing:0.05em; 39 | text-transform: uppercase; 40 | pointer-events:auto; 41 | } 42 | #help h4:after { 43 | font-family:FontAwesome; 44 | font-size:1.3em; 45 | content:'\f059'; 46 | } 47 | #help.active h4:after { 48 | content:'\f00d'; 49 | } 50 | 51 | #help > div { 52 | background-color: #fdfdf9; 53 | padding:2vmin; 54 | border-radius:0.8vmin; 55 | border:0.2vmin solid #dcb; 56 | transform:scaleY(0); 57 | transform-origin:top; 58 | transition:transform 200ms ease; 59 | max-width:25vw; 60 | } 61 | 62 | #help.active > div { 63 | display:block; 64 | transform:scaleY(1); 65 | } 66 | 67 | #help blockquote { 68 | margin: 1.2em 0; 69 | border-left: 0.2vmin dashed #aaa; 70 | padding-left: 1.5vw; 71 | } 72 | 73 | #help+* { 74 | margin-top: 5vh; 75 | } 76 | 77 | #linegraph-help { 78 | color:#888; 79 | padding:0 2vw; 80 | text-align: center; 81 | position:absolute; 82 | top:30vh; 83 | } 84 | 85 | .row { 86 | margin-bottom:2vh; 87 | position:relative; 88 | } 89 | 90 | .row .datalog { 91 | position:absolute; 92 | right:4vmin; 93 | top:0.5vmin; 94 | } 95 | .row .datalog:after { 96 | cursor:pointer; 97 | font-family:FontAwesome; 98 | content:'\f15c'; 99 | position:absolute; 100 | } 101 | 102 | .phenograph { 103 | height:20vh; 104 | } 105 | 106 | .linegraph { 107 | height: 30vh; 108 | } 109 | 110 | .focusslider { 111 | height: 5vh; 112 | } 113 | 114 | .mainCol { 115 | position:relative; 116 | 117 | width:70%; 118 | height:100%; 119 | } 120 | .sideCol { 121 | position:absolute; 122 | top:0; 123 | left:70%; 124 | 125 | overflow:auto; 126 | 127 | width:30%; 128 | height:100%; 129 | margin:0; 130 | 131 | border-left:1px solid #eee; 132 | } 133 | 134 | .rule,.link,.text { 135 | cursor:pointer; 136 | } 137 | 138 | .painting .rule-node { 139 | /* 140 | Icon made by Freepik (freepik.com) from Flaticon (www.flaticon.com) is licensed by Creative Commons 3.0 BY 141 | */ 142 | cursor: url("data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTguMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDMyNSAzMjUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDMyNSAzMjU7IiB4bWw6c3BhY2U9InByZXNlcnZlIiB3aWR0aD0iMTZweCIgaGVpZ2h0PSIxNnB4Ij4KPHBhdGggZD0iTTI5OC41MzYsNDNIMjgxLjVWMTcuMTYyQzI4MS41LDcuMzc4LDI3My44ODIsMCwyNjMuNzc4LDBIMjYuNDY0QzE2LjM5MSwwLDguNSw3LjUzOCw4LjUsMTcuMTYyVjc5LjkxICBDOC41LDg5Ljg4NSwxNi41NTksOTgsMjYuNDY0LDk4aDIzNy4zMTRjOS43NzIsMCwxNy43MjItOC4xMTUsMTcuNzIyLTE4LjA5VjU5aDE3LjAzNmMwLjkzLDAsMS41MzYsMC4wNzksMS45MDEsMC4xNTMgIGMwLjAzMywwLjIzOSwwLjA2MywwLjU4LDAuMDYzLDEuMDQ0djY2LjM4OGMwLDIuOTg5LTEuMTg5LDUuNDE1LTEuOTY0LDUuNDE1SDE2MC40MzFjLTEyLjUwMywwLTIxLjkzMSw3LjY5OC0yMS45MzEsMTcuOTA3VjE2MCAgaC00Ljg5OGMtMi41NTcsMC00LjgzMywxLjYyLTUuNjcsNC4wMzZsLTE1LjEwMyw0My42MDFjLTAuMjE5LDAuNjMyLTAuMzMsMS4yOTYtMC4zMywxLjk2NFYzMTljMCwzLjMxNCwyLjY4Nyw2LDYsNmg1OSAgYzMuMzE0LDAsNi0yLjY4Niw2LTZWMjA5LjYwMWMwLTAuNjQ2LTAuMTA1LTEuMjg3LTAuMzA5LTEuODk5bC0xNC41NDgtNDMuNjAxYy0wLjgxNy0yLjQ0OS0zLjEwOS00LjEwMS01LjY5MS00LjEwMWgtOC40NiAgbC0wLjAxMy0xMC4wNTdjMC4yODItMC41MzUsMi41NDEtMS45NDMsNS45NTEtMS45NDNoMTM4LjEwNWMxMC40MDksMCwxNy45NjQtOS4wMDYsMTcuOTY0LTIxLjQxNVY2MC4xOTcgIEMzMTYuNSw0OS40MjksMzA5Ljc4NCw0MywyOTguNTM2LDQzeiIgZmlsbD0iIzAwMDAwMCIvPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K"), crosshair; 143 | } 144 | .rule-node { 145 | stroke:white; 146 | stroke-opacity:0.5; 147 | stroke-width:1.5; 148 | } 149 | 150 | .rule-text { 151 | letter-spacing: 0.1px; 152 | 153 | text-shadow:0 0 1px #333; 154 | 155 | font-size:14px; 156 | 157 | fill:white; 158 | } 159 | .node-to-graph { 160 | opacity:1 !important; 161 | 162 | stroke-opacity:1 !important; 163 | stroke-width:2.5; 164 | } 165 | 166 | #tip, #legendContainer { 167 | position:absolute; 168 | top:0; 169 | left:0; 170 | } 171 | #tip { 172 | padding:1vmin 1.5vmin; 173 | 174 | letter-spacing: 0.1vmin; 175 | pointer-events:none; 176 | 177 | opacity:0; 178 | color:white; 179 | border-radius: 0 0 8px 0; 180 | background: rgba(30,30,30,0.8); 181 | 182 | font-size: 0.85em; 183 | } 184 | 185 | #legendContainer { 186 | overflow: hidden; 187 | 188 | width: 100%; 189 | height: 100%; 190 | margin-right: 15px; 191 | 192 | pointer-events: none; 193 | } 194 | 195 | #legendContainer > div { 196 | position:absolute; 197 | } 198 | 199 | rect.slider { 200 | cursor:pointer; 201 | } 202 | 203 | .columns { 204 | max-width:50vw; 205 | margin-left:2vw; 206 | 207 | column-count:2; 208 | -webkit-column-count:2; 209 | -moz-column-count:2; 210 | column-gap:3vw; 211 | -webkit-column-gap:3vw; 212 | -moz-column-gap:3vw; 213 | } 214 | .columns span { 215 | display:block; 216 | 217 | font-size: 2vmin; 218 | line-height:3vmin; 219 | } 220 | 221 | #filename { 222 | font-size:1.8vmin; 223 | line-height:2.5vmin; 224 | } 225 | 226 | button,input { 227 | outline:none; 228 | } 229 | 230 | button { 231 | cursor:pointer; 232 | 233 | color:inherit; 234 | background-color:transparent; 235 | 236 | font-family: inherit; 237 | font-size: inherit; 238 | } 239 | 240 | .slider-tab { 241 | fill:#ccc; 242 | } 243 | .slider-tab.active { 244 | fill:#5bf; 245 | } 246 | 247 | .toggle-axis-scale { 248 | color:#999; 249 | 250 | fill:#999; 251 | } 252 | .toggle-axis-scale .active { 253 | color:#2c7fb8; 254 | 255 | fill:#2c7fb8; 256 | } 257 | .toggle-axis-scale { 258 | cursor:default; 259 | } 260 | .toggle-axis-scale .log, .toggle-axis-scale .linear { 261 | cursor:pointer; 262 | } 263 | 264 | /*Animation controls*/ 265 | .animationControls { 266 | position:absolute; 267 | 268 | padding:0.5vmin; 269 | 270 | -webkit-user-select: none; /* Chrome/Safari/Opera */ 271 | -moz-user-select: none; /* Firefox */ 272 | -ms-user-select: none; /* Internet Explorer/Edge */ 273 | user-select: none; /* Non-prefixed version, currently 274 | not supported by any browser */ 275 | white-space: nowrap; 276 | pointer-events:none; 277 | 278 | color:white; 279 | 280 | font-size:0.7em; 281 | line-height:0.7em; 282 | 283 | -webkit-touch-callout: none; /* iOS Safari */ 284 | -khtml-user-select: none; /* Konqueror */ 285 | 286 | } 287 | .animationSpeedDiv { 288 | display:inline-block; 289 | 290 | width:3em; 291 | 292 | text-align:center; 293 | } 294 | .animationSpeed { 295 | margin:0; 296 | 297 | font-weight:bold; 298 | } 299 | i.animationIcon { 300 | display:inline-block; 301 | 302 | width:0.9em; 303 | margin:0 0.75vmin; 304 | 305 | cursor:pointer; 306 | text-align: center; 307 | pointer-events:auto; 308 | 309 | font-family: FontAwesome; 310 | font-style:normal; 311 | } 312 | .frIcon:before { 313 | content:"\f049"; 314 | } 315 | .sbIcon:before { 316 | content:"\f048"; 317 | } 318 | .ppIcon:before { 319 | content:"\f04b"; 320 | } 321 | .ppIcon.paused:before { 322 | content:"\f04c"; 323 | } 324 | .sfIcon:before { 325 | content:"\f051"; 326 | } 327 | .ffIcon:before { 328 | content:"\f050"; 329 | } 330 | -------------------------------------------------------------------------------- /src/css/toolbar.css: -------------------------------------------------------------------------------- 1 | /* position overrides if toolbar is showing */ 2 | #toolbar ~ #tip, #toolbar ~ #legendContainer { 3 | transform: translateY(5.5vmin); 4 | } 5 | #toolbar { 6 | position:absolute; 7 | z-index:1000; 8 | top:0; 9 | left:0; 10 | 11 | width:100%; 12 | padding:0; 13 | 14 | -webkit-user-select: none; /* Chrome/Safari/Opera */ 15 | -moz-user-select: none; /* Firefox */ 16 | -ms-user-select: none; /* Internet Explorer/Edge */ 17 | user-select: none; /* Non-prefixed version, currently 18 | not supported by any browser */ 19 | transition:transform 200ms ease, background-color 100ms ease; 20 | white-space: nowrap; 21 | pointer-events:none; 22 | 23 | color:#555; 24 | 25 | font-size: 2vmin; 26 | 27 | -webkit-touch-callout: none; /* iOS Safari */ 28 | -khtml-user-select: none; /* Konqueror */ 29 | } 30 | 31 | #toolbar > * { 32 | pointer-events:auto; 33 | } 34 | 35 | #toolbar-nav-left, #toolbar-nav-right { 36 | position:absolute; 37 | z-index:100; 38 | 39 | width:4vmin; 40 | height:4.5vmin; 41 | 42 | transition:opacity 100ms ease; 43 | 44 | opacity:0.4; 45 | } 46 | #toolbar-nav-left { 47 | left:0; 48 | } 49 | #toolbar-nav-right { 50 | right:0; 51 | } 52 | #toolbar-nav-left:hover, #toolbar-nav-right:hover { 53 | opacity:0.6; 54 | } 55 | #toolbar-nav-left:before, #toolbar-nav-right:before { 56 | position:absolute; 57 | z-index:10; 58 | top:0; 59 | 60 | width:100%; 61 | height:100%; 62 | 63 | cursor:pointer; 64 | 65 | background:rgba(220,220,220,0.5); 66 | 67 | font-family:FontAwesome; 68 | } 69 | #toolbar-nav-left:before { 70 | left:0; 71 | 72 | content:'\f104'; 73 | 74 | font-size:3vmin; 75 | line-height:4.5vmin; 76 | } 77 | #toolbar-nav-right:before { 78 | left:0; 79 | 80 | content:'\f105'; 81 | 82 | font-size:3vmin; 83 | line-height:4.5vmin; 84 | } 85 | 86 | #toolbar > * { 87 | text-align: center; 88 | } 89 | #toolbar > span:first-of-type { 90 | padding-left:5vmin; 91 | } 92 | #toolbar > span:last-of-type { 93 | padding-right:5vmin; 94 | } 95 | 96 | #toolbar > span { 97 | display:inline-block; 98 | 99 | min-height:2.5vmin; 100 | padding:1vmin 2vw; 101 | 102 | transition:transform 200ms ease; 103 | vertical-align: top; 104 | 105 | background-color:white; 106 | } 107 | 108 | #toolbar > span + span { 109 | border-left:0.2vmin solid #ddd; 110 | } 111 | 112 | #toolbar h4 { 113 | margin:0 0 0.5vmin 0; 114 | 115 | cursor:pointer; 116 | letter-spacing:0.05em; 117 | text-transform: uppercase; 118 | 119 | color:crimson; 120 | 121 | font-size:0.9em; 122 | font-weight:400; 123 | } 124 | 125 | #toolbar h4 ~ div { 126 | overflow:hidden; 127 | 128 | margin-top:-100vh; 129 | 130 | transition: margin-top 200ms ease, opacity 200ms ease; 131 | pointer-events:none; 132 | 133 | opacity:0; 134 | } 135 | 136 | #toolbar span.active > div { 137 | margin-top:0; 138 | padding:1vmin 0; 139 | 140 | pointer-events:auto; 141 | 142 | opacity:1; 143 | } 144 | 145 | /* dataset change button */ 146 | #toolbar .ui-data h4:after { 147 | margin-left:1vmin; 148 | 149 | content: ''; 150 | 151 | font-family: FontAwesome; 152 | } 153 | #toolbar .ui-data.done h4:after { 154 | content: '\f00c'; 155 | } 156 | #toolbar .ui-data.error h4:after { 157 | content: '\f071'; 158 | } 159 | @keyframes spin { 160 | from {transform:rotate(0deg);} 161 | to {transform:rotate(360deg);} 162 | } 163 | #toolbar .ui-data.loading h4:after { 164 | display:inline-block; 165 | 166 | content: '\f110'; 167 | animation: spin 3s infinite linear; 168 | } 169 | 170 | #toolbar #changeFile { 171 | margin-top:-0.5vmin; 172 | 173 | text-decoration: underline; 174 | 175 | border:none; 176 | border-radius:none; 177 | } 178 | 179 | input[type="checkbox"] + label[for="show-labels"]:before { 180 | content: "\f070"; 181 | } 182 | input[type="checkbox"]:checked + label[for="show-labels"]:before { 183 | content: "\f06e"; 184 | } 185 | 186 | /*Clustering controls*/ 187 | .ui-clusters > div { 188 | margin-top:0.5vmin; 189 | margin-left:0.8vw; 190 | } 191 | 192 | #set-threshold { 193 | width: 4vw; 194 | } 195 | 196 | #set-timewindow { 197 | width: 2vw; 198 | } 199 | 200 | /* range slider */ 201 | .ui-labels > div { 202 | margin-top:0.5vmin; 203 | margin-left:0.8vw; 204 | } 205 | .ui-labels input[type="range"] { 206 | width: 7vw; 207 | margin: 0.2vw; 208 | 209 | -webkit-appearance: none; 210 | } 211 | .ui-labels input[type="range"]:focus { 212 | outline: none; 213 | } 214 | .ui-labels input[type="range"]::-webkit-slider-runnable-track { 215 | width: 7vw; 216 | height:0.375vw; 217 | 218 | cursor: pointer; 219 | 220 | border: 0 solid #010101; 221 | border-radius:2vw; 222 | background: #9e9e9e; 223 | } 224 | .ui-labels input[type="range"]::-webkit-slider-thumb { 225 | width: 1.5vw; 226 | height: 1.5vw; 227 | margin-top: -0.5vw; 228 | 229 | cursor: pointer; 230 | 231 | border: 0.1vmin solid rgba(100, 100, 100, 0.45); 232 | border-radius:50%; 233 | background: #e6e6e6; 234 | 235 | -webkit-appearance: none; 236 | } 237 | .ui-labels input[type="range"]:focus::-webkit-slider-runnable-track { 238 | background: #999999; 239 | } 240 | .ui-labels input[type="range"]::-moz-range-track { 241 | width: 7vw; 242 | height:0.5vmin; 243 | 244 | cursor: pointer; 245 | 246 | border: 0 solid #010101; 247 | border-radius:2vw; 248 | background: #9e9e9e; 249 | } 250 | .ui-labels input[type="range"]::-moz-range-thumb { 251 | width: 1.5vw; 252 | height: 1.5vw; 253 | 254 | cursor: pointer; 255 | 256 | border: 0.1vmin solid rgba(100, 100, 100, 0.45); 257 | border-radius:50%; 258 | background: #e6e6e6; 259 | } 260 | .ui-labels input[type="range"]::-ms-track { 261 | width: 7vw; 262 | height:0.5vmin; 263 | 264 | cursor: pointer; 265 | 266 | color: transparent; 267 | border-color: transparent; 268 | background: transparent; 269 | } 270 | .ui-labels input[type="range"]::-ms-fill-lower { 271 | border: 0 solid #010101; 272 | border-radius: 50%; 273 | background: #b1b1b1; 274 | } 275 | .ui-labels input[type="range"]::-ms-fill-upper { 276 | border: 0 solid #010101; 277 | border-radius: 50%; 278 | background: #9e9e9e; 279 | } 280 | .ui-labels input[type="range"]::-ms-thumb { 281 | width: 1.5vw; 282 | height: 1.5vw; 283 | height:0.5vmin; 284 | 285 | cursor: pointer; 286 | 287 | border: 0.1vmin solid rgba(100, 100, 100, 0.45); 288 | border-radius:50%; 289 | background: #e6e6e6; 290 | } 291 | .ui-labels input[type="range"]:focus::-ms-fill-lower { 292 | background: #9e9e9e; 293 | } 294 | .ui-labels input[type="range"]:focus::-ms-fill-upper { 295 | background: #999999; 296 | } 297 | 298 | /* influences */ 299 | input[type="checkbox"] + label[for="hide-positive"]:before { 300 | content: "\f070"; 301 | } 302 | input[type="checkbox"]:checked + label[for="hide-positive"]:before { 303 | content: "\f06e"; 304 | } 305 | input[type="checkbox"] + label[for="hide-negative"]:before { 306 | content: "\f070"; 307 | } 308 | input[type="checkbox"]:checked + label[for="hide-negative"]:before { 309 | content: "\f06e"; 310 | } 311 | 312 | /* pinning and marking nodes */ 313 | .ui-mark h4 span { 314 | display:none; 315 | 316 | width:1.5vmin; 317 | height:1.5vmin; 318 | 319 | vertical-align: middle; 320 | } 321 | .painting .ui-mark h4 span { 322 | display:inline-block; 323 | 324 | margin-left:1vmin; 325 | } 326 | .ui-mark button { 327 | display:block; 328 | 329 | width:100%; 330 | } 331 | 332 | #toolbar button.cs { 333 | display:inline-block; 334 | 335 | width: 2.3vmin; 336 | height: 2.3vmin; 337 | padding:0; 338 | 339 | opacity:0.7; 340 | border:0.4vmin solid transparent; 341 | } 342 | #toolbar button.cs:hover { 343 | opacity:1; 344 | } 345 | #toolbar button.cs.active { 346 | opacity:1; 347 | border-color:#444; 348 | } 349 | 350 | input[type="checkbox"] + label[for="paint-start"]:before { 351 | margin-left:-1.3vmin; 352 | 353 | content: '\f044'; 354 | 355 | font-family:FontAwesome; 356 | font-size:2.2vmin; 357 | } 358 | input[type="checkbox"]:checked + label[for="paint-start"]:before { 359 | content: '\f046'; 360 | 361 | font-family: FontAwesome; 362 | font-size:2.2vmin; 363 | } 364 | #toolbar button#paint-reset { 365 | display:inline; 366 | 367 | width:initial; 368 | margin-left:2.8vmin; 369 | padding:0; 370 | 371 | border:none; 372 | } 373 | #paint-reset:before { 374 | content: '\f0e2'; 375 | 376 | font-family: FontAwesome; 377 | } 378 | 379 | #palette { 380 | overflow:hidden; 381 | 382 | width:16vmin; 383 | height:0; 384 | 385 | text-align: left; 386 | white-space: initial; 387 | } 388 | 389 | #palette.active { 390 | height:100%; 391 | } 392 | 393 | #palette > div + div { 394 | margin-top:1vmin; 395 | } 396 | #palette > div:before { 397 | display:block; 398 | float:left; 399 | 400 | width:2vmin; 401 | margin-right:1vmin; 402 | 403 | vertical-align: top; 404 | 405 | font-family: FontAwesome; 406 | line-height: 5vmin; 407 | } 408 | 409 | #palette-1:before { 410 | content: '\f069'; 411 | } 412 | 413 | #palette-2:before { 414 | content: '\f02b'; 415 | } 416 | 417 | /* color theme */ 418 | .ui-legend .theme-color { 419 | position:relative; 420 | 421 | display:inline-block; 422 | 423 | width:9vmin; 424 | height:0.6vmin; 425 | margin:0.3vmin 0 0.5vmin 0.5vmin; 426 | 427 | vertical-align: middle; 428 | } 429 | .ui-legend .pos { 430 | background-image: linear-gradient(to right, #fee08b, #fdae61, #f46d43, #d73027); 431 | } 432 | .ui-legend .neg { 433 | background-image: linear-gradient(to right, #d9ef8b, #a6d96a, #66bd63, #1a9850); 434 | } 435 | 436 | /* legend */ 437 | #toolbar div.center { 438 | display:block; 439 | 440 | margin: 0.5vmin 0; 441 | 442 | text-align: center; 443 | text-transform: uppercase; 444 | 445 | font-size:0.9em; 446 | } 447 | #toolbar div.left-align { 448 | text-align:left; 449 | } 450 | .ui-legend .legend-type { 451 | text-align: right; 452 | } 453 | .ui-legend .legend-type div { 454 | display:inline-block; 455 | } 456 | .legend-type.hits div { 457 | width:2vmin; 458 | height:2vmin; 459 | 460 | border-radius:50%; 461 | background:#1f77b4; 462 | } 463 | .legend-type.hits div:first-of-type { 464 | width:0.5vmin; 465 | height:0.5vmin; 466 | margin:0 0.75vmin; 467 | } 468 | .legend-type.hits div:nth-of-type(2) { 469 | width:1vmin; 470 | height:1vmin; 471 | margin:0 0.5vmin; 472 | } 473 | .legend-type.hits div:nth-of-type(3) { 474 | width:1.5vmin; 475 | height:1.5vmin; 476 | margin:0 0.25vmin; 477 | } 478 | 479 | .legend-type.inf div { 480 | width:2vmin; 481 | height:0.8vmin; 482 | 483 | background:#66bd63; 484 | } 485 | .legend-type.inf div:first-of-type { 486 | height:0.2vmin; 487 | } 488 | .legend-type.inf div:nth-of-type(2) { 489 | height:0.4vmin; 490 | } 491 | .legend-type.inf div:nth-of-type(3) { 492 | height:0.6vmin; 493 | } 494 | 495 | /* buttons */ 496 | #toolbar button { 497 | margin-bottom: 0.5vmin; 498 | padding:0 1vmin; 499 | 500 | border:0.2vmin solid #ddd; 501 | } 502 | 503 | /* text input */ 504 | input[type="text"] { 505 | margin-bottom:1vmin; 506 | 507 | font-size:inherit; 508 | } 509 | 510 | /* checkbox labels */ 511 | input[type="checkbox"] { 512 | display: none; 513 | 514 | width: 2vmin; 515 | height: 2vmin; 516 | 517 | cursor:pointer; 518 | } 519 | 520 | input[type="checkbox"] + label { 521 | margin-left:1vmin; 522 | } 523 | input[type="checkbox"] + label:before { 524 | position:absolute; 525 | 526 | margin-left:-3vmin; 527 | 528 | content: "\f10c"; 529 | cursor:pointer; 530 | 531 | font-family: FontAwesome; 532 | font-size: 2vmin; 533 | } 534 | 535 | input[type="checkbox"]:checked + label:before { 536 | content: "\f058"; 537 | } 538 | 539 | input[type="checkbox"]:checked + label, input[type="checkbox"]:checked + label:before { 540 | color:#2c7fb8; 541 | } 542 | 543 | .cs0 { background-color: #1f77b4; } 544 | .cs1 { background-color: #aec7e8; } 545 | .cs2 { background-color: #ff7f0e; } 546 | .cs3 { background-color: #ffbb78; } 547 | .cs4 { background-color: #2ca02c; } 548 | .cs5 { background-color: #98df8a; } 549 | .cs6 { background-color: #d62728; } 550 | .cs7 { background-color: #ff9896; } 551 | .cs8 { background-color: #9467bd; } 552 | .cs9 { background-color: #c5b0d5; } 553 | .cs10 { background-color: #8c564b; } 554 | .cs11 { background-color: #c49c94; } 555 | .cs12 { background-color: #e377c2; } 556 | .cs13 { background-color: #f7b6d2; } 557 | .cs14 { background-color: #7f7f7f; } 558 | .cs15 { background-color: #c7c7c7; } 559 | .cs16 { background-color: #bcbd22; } 560 | .cs17 { background-color: #dbdb8d; } 561 | .cs18 { background-color: #17becf; } 562 | .cs19 { background-color: #9edae5; } 563 | .cs20 { position:relative; } 564 | 565 | .cs20:after, 566 | .cs20.active:after { 567 | border-color: transparent; 568 | } 569 | .cs20:after { 570 | position:absolute; 571 | top:0; 572 | left:0; 573 | 574 | display:block; 575 | 576 | width:1.95vmin; 577 | height:1.95vmin; 578 | margin-top:-0.3vmin; 579 | margin-left:-0.3vmin; 580 | 581 | content: ''; 582 | 583 | border: 0.2vmin solid #f55; 584 | } 585 | .cs20:before { 586 | display:block; 587 | 588 | height:3vmin; 589 | margin-top:-0.3vmin; 590 | margin-left:0.5vmin; 591 | padding:0; 592 | 593 | content: ''; 594 | transform: rotate(45deg); 595 | 596 | border-left: 0.2vmin solid #f55; 597 | } 598 | -------------------------------------------------------------------------------- /src/js/animation.js: -------------------------------------------------------------------------------- 1 | var App = App || {}; 2 | 3 | // handles the animation of the DIM simulation 4 | function AnimationManager() { 5 | this.isActive = true; 6 | 7 | this.currentTime = 0; // in terms of timestep 8 | this.totalTime = 1; 9 | this.isPlaying = false; 10 | 11 | this.speed = 1; // plays at real speed to begin with 12 | 13 | this.updateTimestep = 50; // 50ms between updates of animation 14 | 15 | var that = this; 16 | 17 | // set up event handlers for buttons 18 | d3.select(".frIcon") 19 | .on("click", function(d) { 20 | that.decreaseSpeed(); 21 | }); 22 | 23 | d3.select(".sbIcon") 24 | .on("click", function(d) { 25 | that.stepBackward(); 26 | }); 27 | 28 | d3.select(".ppIcon") 29 | .on("click", function(d) { 30 | that.togglePlay(); // change icon 31 | }); 32 | 33 | d3.select(".sfIcon") 34 | .on("click", function(d) { 35 | that.stepForward(); 36 | }); 37 | 38 | d3.select(".ffIcon") 39 | .on("click", function(d) { 40 | that.increaseSpeed(); 41 | }); 42 | } 43 | 44 | AnimationManager.prototype.setActive = function(active) { 45 | // set active to false 46 | this.isActive = active; 47 | 48 | d3.select(".animationControls") 49 | .style("display", active ? "initial" : "none"); 50 | } 51 | 52 | AnimationManager.prototype.setTotalTimesteps = function(t) { 53 | this.totalTime = t - 1; 54 | 55 | if (this.totalTime <= 1) { 56 | this.setActive(false); 57 | } else { 58 | this.setActive(true); 59 | } 60 | } 61 | 62 | AnimationManager.prototype.togglePlay = function() { 63 | // toggle between playing and paused 64 | this.isPlaying = !this.isPlaying; 65 | d3.select(".ppIcon").classed('paused', this.isPlaying); 66 | 67 | var that = this; 68 | 69 | function playFunc() { 70 | var startData = App.dataset[Math.floor(that.currentTime)]; 71 | var endData = App.dataset[Math.floor(that.currentTime) + 1]; 72 | 73 | // console.log(this); 74 | 75 | var timeRange = [ 76 | startData.timeWindow[1], 77 | endData.timeWindow[1] 78 | ]; 79 | 80 | var ms_delt = that.updateTimestep * that.speed; // time elapsed this update 81 | var t_delt = (timeRange[1] - timeRange[0]) * 1000; // total ms between timesteps 82 | var t_pc = ms_delt / t_delt; 83 | 84 | that.currentTime = (that.currentTime + t_pc) % that.totalTime; 85 | // console.log(that.currentTime); 86 | if (isNaN(that.currentTime)) { 87 | that.currentTime = 0; 88 | } 89 | 90 | that.updateData(); 91 | 92 | if (that.isPlaying) { 93 | setTimeout( playFunc, that.updateTimestep ); 94 | } 95 | else { 96 | // restart simulation on pause 97 | App.panels.forceDirected.simulation 98 | .alpha(0.3) 99 | .restart(); 100 | } 101 | } 102 | 103 | setTimeout( playFunc, this.updateTimestep ); 104 | } 105 | 106 | AnimationManager.prototype.stepForward = function() { 107 | this.currentTime = Math.floor(this.currentTime + 1) % this.totalTime; 108 | 109 | if (this.isPlaying) { 110 | this.togglePlay(); 111 | } 112 | 113 | this.updateData(); 114 | 115 | App.panels.forceDirected.simulation 116 | .alpha(0.3) 117 | .restart(); 118 | } 119 | 120 | AnimationManager.prototype.stepBackward = function() { 121 | this.currentTime = (Math.ceil(this.currentTime - 1) + this.totalTime) % this.totalTime; 122 | 123 | if (this.isPlaying) { 124 | this.togglePlay(); 125 | } 126 | 127 | this.updateData(); 128 | 129 | App.panels.forceDirected.simulation 130 | .alpha(0.3) 131 | .restart(); 132 | } 133 | 134 | AnimationManager.prototype.increaseSpeed = function() { 135 | // increase speed of play 136 | if (this.speed < 32) { 137 | this.speed *= 2; 138 | } 139 | 140 | var speed = this.speed < 1 ? "1/" + (1/this.speed).toFixed(0) : "" + this.speed; 141 | 142 | d3.select(".animationSpeed") 143 | .text(speed + "x"); 144 | } 145 | 146 | AnimationManager.prototype.decreaseSpeed = function() { 147 | // decrease speed of play 148 | if (this.speed > 1/32) { 149 | this.speed /= 2; 150 | } 151 | 152 | var speed = this.speed < 1 ? "1/" + (1/this.speed).toFixed(0) : "" + this.speed; 153 | 154 | d3.select(".animationSpeed") 155 | .text(speed + "x"); 156 | } 157 | 158 | AnimationManager.prototype.updateData = function() { 159 | // interpolate values between timesteps 160 | var startData = App.dataset[Math.floor(this.currentTime)]; 161 | var endData = App.dataset[Math.floor(this.currentTime) + 1]; 162 | 163 | if (startData.timeWindow) { 164 | var timeRange = startData.timeWindow.map(n => +(n.toFixed(2)) ); 165 | App.timeSlider.setTitle('Time: ' + timeRange[0] + '-' + timeRange[1]); 166 | } 167 | 168 | var keys = Object.keys(startData.data); 169 | 170 | var t_pcElap = this.currentTime - Math.floor(this.currentTime); // % elapsed between timesteps 171 | 172 | var interpolatedData = {}; 173 | 174 | for (var key of keys) { 175 | interpolatedData[key] = { 176 | name: key, 177 | hits: interpolateHits(t_pcElap, startData.data[key].hits, endData.data[key].hits), 178 | inf: interpolateFlux(t_pcElap, startData.data[key].inf, endData.data[key].inf), 179 | outf: interpolateFlux(t_pcElap, startData.data[key].outf, endData.data[key].outf) 180 | } 181 | } 182 | 183 | App.data = interpolatedData; 184 | 185 | // update other components in UI 186 | App.item = Math.round(this.currentTime); 187 | App.timeSlider.setPosition(this.currentTime); 188 | App.updateTimestep(); 189 | 190 | // h1: start hits, h2: end hits 191 | function interpolateHits(pcElap, h1, h2) { 192 | return h1 + (h2 - h1) * pcElap; 193 | } 194 | 195 | // f1: start fluxi, f2: end fluxi 196 | function interpolateFlux(pcElap, f1, f2) { 197 | var intFlux = new Array(f1.length); 198 | 199 | for (var ind in f1) { 200 | intFlux[ind] = { 201 | name: f1[ind].name, 202 | flux: f1[ind].flux + (f2[ind].flux - f1[ind].flux) * pcElap 203 | }; 204 | } 205 | 206 | return intFlux; 207 | } 208 | } 209 | 210 | AnimationManager.prototype.attachToSlider = function(slider) { 211 | // let bbox = slider.svg.node().getBBox(); 212 | function getPosition() { 213 | let rect = slider.svg.node().getBoundingClientRect(); 214 | let selfRect = d3.select('.animationControls').node().getBoundingClientRect(); 215 | d3.select('.animationControls') 216 | .style('left', rect.right - selfRect.width + 'px') 217 | .style('top', rect.top + 'px'); 218 | } 219 | var oldSliderResize = slider.resize.bind(slider); 220 | 221 | slider.resize = function() { 222 | oldSliderResize(); 223 | getPosition(); 224 | } 225 | getPosition(); 226 | } 227 | -------------------------------------------------------------------------------- /src/js/focusSlider.js: -------------------------------------------------------------------------------- 1 | function FocusSlider(selector) { 2 | this.container = document.querySelector(selector) || document.body; 3 | this.svg = d3.select( this.container ).append('svg'); 4 | 5 | this.margin = {top: 5, left: 50, bottom: 20, right: 20}; 6 | this.axis = this.svg.append('g'); 7 | 8 | this.bgraph = this.svg.append("g") 9 | .attr("class", "brush"); 10 | 11 | this.resize(); 12 | this.update(); 13 | } 14 | 15 | FocusSlider.prototype = { 16 | constructor: FocusSlider, 17 | resize: function() { 18 | var w = this.container.getBoundingClientRect().width - this.margin.right; 19 | var h = this.container.getBoundingClientRect().height; 20 | var aspect = w / h; 21 | var vw = 280; 22 | var vh = vw / aspect; 23 | 24 | this.width = vw; 25 | this.height = vh - this.margin.bottom; 26 | 27 | this.svg 28 | .style("font-size", "12px") 29 | .attr('width', w) 30 | .attr('height', h) 31 | .attr("viewBox", "0 0 " + vw + " " + vh) 32 | 33 | if(this.x) 34 | this.x.range([this.margin.left, this.width - 1]); 35 | 36 | this.drawAxes(); 37 | if (!this.brush) { 38 | this.drawBrush(); 39 | } 40 | }, 41 | drawAxes: function() { 42 | if (!this.x) { return; } 43 | this.axis 44 | .attr('transform', 'translate(0,' + this.height + ')') 45 | .call(d3.axisBottom(this.x) 46 | .tickFormat(d => { 47 | d = Math.floor(d); 48 | var data = App.dataset[d]; 49 | if (data && data.timeWindow && data.timeWindow[0]) { 50 | return Number(data.timeWindow[0].toFixed(1)); 51 | } 52 | return d; 53 | }) 54 | ); 55 | }, 56 | drawBrush: function() { 57 | if (!this.x) { return; } 58 | this.brush = d3.brushX() 59 | .extent([[this.margin.left, 0], [this.width, this.height]]) 60 | .on("brush end", this.brushed.bind(this)); 61 | this.bgraph 62 | .call(this.brush) 63 | .call(this.brush.move, this.x.range()); 64 | }, 65 | brushed: function() { 66 | var topVis = App.panels.topVis; 67 | var botVis = App.panels.bottomVis; 68 | 69 | var s = d3.event.selection || this.x.range(); 70 | var domain = s.map(this.x.invert, this.x); 71 | domain[0] = Math.round(domain[0]); 72 | domain[1] = Math.round(domain[1]); 73 | if (domain[0] !== domain[1]) { 74 | if (topVis && topVis.x) { 75 | topVis.x.domain(domain); 76 | topVis.updateFluxs(); 77 | topVis.updateGraph(); 78 | } 79 | if (botVis && botVis.x) { 80 | botVis.x.domain(domain); 81 | botVis.updateFluxs(); 82 | botVis.updateGraph(); 83 | } 84 | if (App.phenotype) { 85 | App.phenotype.updateDomain(domain); 86 | App.phenotype.drawMarkers(); 87 | } 88 | } 89 | }, 90 | update: function() { 91 | this.x = d3.scaleLinear() 92 | .domain([0, App.dataset.length - 1]) 93 | .range([this.margin.left, this.width - 1]); 94 | this.drawAxes(); 95 | this.drawBrush(); 96 | } 97 | } -------------------------------------------------------------------------------- /src/js/main.js: -------------------------------------------------------------------------------- 1 | 2 | var App = App || {}; 3 | 4 | // iife executed on script load 5 | (function() { 6 | App.timeWindow = [0, 0]; 7 | App.data = {}; 8 | App.item = 0; // starting with the first item 9 | 10 | App.panels = { 11 | forceDirected: {} 12 | }; 13 | 14 | App.init = function() { 15 | var url = document.URL.split('?')[1] || "flux_0.json"; 16 | App.loadData(url, true); 17 | new Toolbar(App); 18 | App.animation = new AnimationManager(); 19 | } 20 | 21 | App.resize = function() { 22 | // get new sizes of SVGs (using viewBox with SVG gives us resize for free..) 23 | getDimSVGs(); 24 | 25 | // call any necessary resize methods for visualization 26 | for(key in App.panels) { 27 | if (App.panels[key].resize) { 28 | App.panels[key].resize(); 29 | } 30 | } 31 | 32 | ['timeSlider', 'infSlider'].forEach(function(slider) { 33 | if (App[slider]) { 34 | App[slider].resize(); 35 | } 36 | }); 37 | 38 | App.phenotype.resize(); 39 | } 40 | 41 | App.draw = function() { 42 | createSVGs(); 43 | 44 | // put function calls here to draw 45 | var fd = App.panels.forceDirected; 46 | App.panels.forceDirected = new ForceDirectedGraph( { 47 | svg: fd.svg, 48 | width: fd.width, 49 | height: fd.height 50 | }) 51 | 52 | // instantiate sliders 53 | initSliders(); 54 | 55 | // line graphs 56 | App.panels.topVis = new LineGraph('#topVis', {out: false}); 57 | App.panels.bottomVis = new LineGraph('#bottomVis', {out: true}); 58 | App.panels.focusSlider = new FocusSlider('#focusSlider'); 59 | if (!App.phenotype) { 60 | App.phenotype = new Phenotype({path: 'data/PreyPred/data.csv'}); 61 | } 62 | } 63 | 64 | App.loadData = function(file, isSeries) { 65 | var dir = './data/'; 66 | 67 | var isFormattedSeries = isSeries; 68 | if (isSeries) { 69 | // attempt to load a series of files 70 | var fformat = file.match(/^(.*)(\d+)(.*)$/); 71 | if (fformat && fformat.length > 3) { 72 | var prefix = fformat[1], 73 | num = +fformat[2], 74 | suffix = fformat[3]; 75 | 76 | App.format = {prefix: prefix, start:num, suffix:suffix} 77 | 78 | var datasets = []; 79 | 80 | // recursively load next file 81 | function loadNext(err, json) { 82 | if (!err) { 83 | ++num; 84 | datasets.push(json); 85 | d3.json ( dir + prefix + num + suffix, loadNext ); 86 | } 87 | else if (datasets.length > 0) { 88 | // success!! 89 | App.handleData(datasets); 90 | } 91 | else { 92 | console.log('Error', err); 93 | } 94 | } 95 | 96 | d3.json(dir + file, loadNext); 97 | } 98 | else { 99 | isFormattedSeries = false; 100 | } 101 | } 102 | if (!isFormattedSeries) { 103 | // attempt to load a single file 104 | d3.json(dir + file, (err, json) => { 105 | if (err) { 106 | console.log('Error',err); 107 | return; 108 | } 109 | // success!! 110 | App.handleData([json]) 111 | }) 112 | } 113 | }; 114 | 115 | App.handleData = function(dataset) { 116 | d3.select('.ui-data') 117 | .classed('error', false) 118 | .classed('loading', false) 119 | .classed('done', true); 120 | App.dataset = dataset.map((json) => { 121 | 122 | var obj = {}; 123 | 124 | /* support old format */ 125 | if (json.din_rules === undefined) { 126 | json.din_start = json.bioBeginTime; 127 | json.din_end = json.bioEndTime; 128 | json.din_rules = json.rules; 129 | json.din_fluxs = json.fluxs; 130 | json.din_hits = json.hits; 131 | } 132 | 133 | obj.timeWindow = [+json.din_start, +json.din_end]; 134 | // console.log(obj.timeWindow); 135 | var data = {}; 136 | for (var n in json.din_rules) { 137 | data[json.din_rules[n]] = { 138 | name: json.din_rules[n], 139 | hits: json.din_hits[n], 140 | inf: json.din_rules.map((el, i) => { 141 | return { 142 | name: el, 143 | flux: json.din_fluxs[n][i] 144 | }; 145 | }), 146 | outf: json.din_rules.map((el, i) => { 147 | return { 148 | name: el, 149 | flux: json.din_fluxs[i][n] 150 | } 151 | }) 152 | }; 153 | } 154 | obj.data = data; 155 | 156 | return obj; 157 | }) 158 | 159 | // init data to first dataset in series 160 | App.data = App.dataset[0].data; 161 | App.animation.setTotalTimesteps(App.dataset.length); 162 | App.draw(); 163 | }; 164 | 165 | App.resetData = function(dataset, csv) { 166 | // remove all children of svg 167 | App.panels.forceDirected.simulation.stop(); 168 | App.panels.forceDirected.svg.selectAll('*').remove(); 169 | App.panels.forceDirected.tip.remove(); 170 | 171 | // remove line graphs 172 | d3.selectAll('.row').selectAll('*').remove(); 173 | 174 | if (csv) { 175 | App.phenotype = new Phenotype({data: csv}); 176 | // App.phenotype.resetCSV(csv); 177 | } 178 | App.handleData(dataset); 179 | }; 180 | 181 | function initSliders() { 182 | // set up a time slider 183 | if (App.dataset.length > 1) { 184 | App.timeSlider = new Slider( { 185 | title: 'Time', 186 | domain: [ 0, App.dataset.length-1 ], 187 | left: -300 188 | } ); 189 | 190 | App.timeSlider.onDrag = function(x) { 191 | var t = Math.round(this.value); 192 | if (t != App.item) { 193 | if (App.animation) { 194 | App.animation.isPlaying = false; 195 | d3.select('.ppIcon').classed('paused', false); 196 | } 197 | App.item = t; 198 | var tw = App.dataset[t].timeWindow.map(n => Number(n.toFixed(2))); 199 | this.setTitle( 'Time: ' + tw[0] + '-' + tw[1]); 200 | App.data = App.dataset[t].data; 201 | App.updateTimestep(); 202 | } 203 | } 204 | App.timeSlider.onDragEnd = function() { 205 | App.animation.currentTime = Math.round(this.value); 206 | 207 | App.panels.forceDirected.simulation 208 | .alpha(0.3) 209 | .restart(); 210 | } 211 | 212 | App.animation.attachToSlider(App.timeSlider); 213 | // append slider to force directed 214 | } 215 | 216 | App.updateTimestep = function() { 217 | App.panels.forceDirected.updateData(App.data); 218 | App.panels.topVis.drawMarkers(); 219 | App.phenotype.drawMarkers(); 220 | App.panels.bottomVis.drawMarkers(); 221 | App.infSlider.setDomain(infDomain()); 222 | } 223 | 224 | // set up an influence slider 225 | // get min of max inf 226 | function infDomain() { 227 | var data = App.panels.forceDirected.filteredData; 228 | var maxs = Object.keys(data).map(k => { 229 | var infMax = d3.max(data[k].inf, d => Math.abs(d.flux)) || 0; 230 | var outfMax = d3.max(data[k].outf, d => Math.abs(d.flux)) || 0; 231 | return Math.max(infMax, outfMax); 232 | }); 233 | return [d3.min(maxs), App.panels.forceDirected.maxInfl]; 234 | } 235 | App.infSlider = new Slider( { 236 | title: 'Influence > ' + App.panels.forceDirected.threshold.toPrecision(3), 237 | domain: infDomain(), 238 | log: true, 239 | tabs: ['Clustering', 'Visibility'] 240 | }); 241 | 242 | // insert value into input thing 243 | document.getElementById('set-threshold').value = App.panels.forceDirected.threshold; 244 | 245 | App.infSlider.setPosition( App.panels.forceDirected.threshold ); 246 | App.infSlider.onDrag = function(x, evt) { 247 | var inf = this.value; 248 | this.setTitle('Influence > ' + inf.toPrecision(3)); 249 | 250 | if (this.activeTab == 1) { 251 | inf === this.domain[0] ? App.panels.forceDirected.visThreshold = 0 : App.panels.forceDirected.visThreshold = inf; 252 | App.panels.forceDirected.updateEdgeVisibility(); 253 | } 254 | else { 255 | App.panels.forceDirected.threshold = inf; 256 | App.panels.forceDirected.defineClusters(inf); 257 | App.panels.forceDirected.drawGraph(); 258 | App.panels.topVis.drawMarkers(); 259 | App.panels.bottomVis.drawMarkers(); 260 | 261 | // insert value into input thing 262 | document.getElementById('set-threshold').value = inf; 263 | } 264 | } 265 | App.infSlider.onTabClick = function(x) { 266 | var inf = this.value; 267 | this.setTitle('Influence > ' + inf.toPrecision(3)); 268 | } 269 | } 270 | 271 | // creating SVGs in layout 272 | function createSVGs() { 273 | for(key in App.panels) { 274 | if (!App.panels[key].svg) { 275 | // create svg 276 | App.panels[key].svg = d3.select("#" + key + "Div") 277 | .append("svg") 278 | .attr("class", key + "SVG") 279 | .attr("width", "100%") 280 | .attr("height", "100%"); 281 | } 282 | } 283 | 284 | getDimSVGs(); 285 | } 286 | 287 | // getting the size of the elements in the client window size 288 | function getDimSVGs() { 289 | for(key in App.panels) { 290 | if (App.panels[key].svg) { 291 | // create svg 292 | var rect = App.panels[key].svg.node().getBoundingClientRect(); 293 | App.panels[key].width = rect.width; 294 | App.panels[key].height = rect.height; 295 | } 296 | } 297 | } 298 | 299 | })(); 300 | -------------------------------------------------------------------------------- /src/js/paintingManager.js: -------------------------------------------------------------------------------- 1 | const PaintingManager = function(graph) { 2 | let self = { 3 | inPaintingMode: true, 4 | overrideExistingClusters: true, 5 | 6 | isPaintingCluster: false, 7 | currentPaintingCluster: -1, 8 | paintedClusters: {}, 9 | 10 | paintingColors: d3.schemeCategory20 11 | }; 12 | 13 | function startPaintingNewCluster(clusterNumber) { 14 | self.isPaintingCluster = true; 15 | 16 | // get rid of any empty clusters 17 | self.paintedClusters = _.pickBy(self.paintedClusters, function(l) { 18 | return l.length > 0; 19 | }); 20 | 21 | if (isNaN(clusterNumber)) { 22 | self.currentPaintingCluster = getColor(Object.keys(self.paintedClusters).length); 23 | 24 | } 25 | else { 26 | self.currentPaintingCluster = getColor(clusterNumber); 27 | } 28 | 29 | if (!self.paintedClusters[self.currentPaintingCluster]) { 30 | self.paintedClusters[self.currentPaintingCluster] = []; 31 | } 32 | } 33 | 34 | function addNodeToPaintingCluster(node) { 35 | if (self.isPaintingCluster) { 36 | if (node.isPainted && node.paintedCluster === self.currentPaintingCluster) { 37 | // if it is being painted again with the same color, remove it from this clusterNumber 38 | _.remove(self.paintedClusters[node.paintedCluster], function(n) { 39 | return n.name === node.name; 40 | }); 41 | 42 | node.isPainted = false; 43 | node.paintedCluster = undefined; 44 | } else { 45 | if (node.paintedCluster !== undefined) { 46 | _.remove(self.paintedClusters[node.paintedCluster], function(n) { 47 | return n.name === node.name; 48 | }); 49 | } 50 | node.paintedCluster = self.currentPaintingCluster; 51 | node.isPainted = true; 52 | 53 | self.paintedClusters[self.currentPaintingCluster].push(node); 54 | } 55 | 56 | graph.defineClusters(); 57 | graph.drawGraph(); 58 | } 59 | } 60 | 61 | function stopPaintingCluster() { 62 | self.isPaintingCluster = false; 63 | } 64 | 65 | function unPaintAllNodes() { 66 | _.forEach(self.paintedClusters, function (cluster, i) { 67 | _.forEach(cluster, function(node) { 68 | delete node.paintedCluster; 69 | delete node.isPainted; 70 | }); 71 | }); 72 | 73 | self.currentPaintingCluster = -1; 74 | 75 | self.paintedClusters = []; 76 | graph.defineClusters(); 77 | graph.drawGraph(); 78 | 79 | if (self.isPaintingCluster) { 80 | startPaintingNewCluster(); 81 | } 82 | } 83 | 84 | function getColor(index) { 85 | return self.paintingColors[index]; 86 | } 87 | 88 | /* ========================= GETTERS && SETTERS =========================== */ 89 | function setPaintingMode(isPainting) { 90 | self.inPaintingMode = isPainting; 91 | } 92 | 93 | function isInPaintingMode() { 94 | return self.inPaintingMode; 95 | } 96 | 97 | function isPaintingCluster() { 98 | return self.isPaintingCluster; 99 | } 100 | 101 | function setOverrideExistingClusters(override) { 102 | self.overrideExistingClusters = override; 103 | } 104 | 105 | function isOverridingExistingClusters() { 106 | return self.overrideExistingClusters; 107 | } 108 | 109 | function getCurrentPaintingCluster() { 110 | return self.currentPaintingCluster; 111 | } 112 | 113 | function getPaintedClusters() { 114 | return _.map(Object.keys(self.paintedClusters), function(color) { 115 | return self.paintedClusters[color]; 116 | }); 117 | } 118 | 119 | function setPaintedClusters(clusters) { 120 | self.paintedClusters = {}; 121 | 122 | clusters.forEach(node => { 123 | self.paintedClusters[node.paintedCluster] = self.paintedClusters[node.paintedCluster] || []; 124 | self.paintedClusters[node.paintedCluster].push(node); 125 | }); 126 | } 127 | 128 | return { 129 | startPaintingNewCluster: startPaintingNewCluster, 130 | addNodeToPaintingCluster: addNodeToPaintingCluster, 131 | stopPaintingCluster: stopPaintingCluster, 132 | unPaintAllNodes: unPaintAllNodes, 133 | // setters/getters 134 | setPaintingMode: setPaintingMode, 135 | isInPaintingMode: isInPaintingMode, 136 | 137 | isPaintingCluster: isPaintingCluster, 138 | 139 | isOverridingExistingClusters: isOverridingExistingClusters, 140 | setOverrideExistingClusters: setOverrideExistingClusters, 141 | 142 | getCurrentPaintingCluster: getCurrentPaintingCluster, 143 | 144 | getPaintedClusters: getPaintedClusters, 145 | setPaintedClusters: setPaintedClusters 146 | }; 147 | }; 148 | -------------------------------------------------------------------------------- /src/js/phenotype.js: -------------------------------------------------------------------------------- 1 | function Phenotype(arg) { 2 | 3 | this.container = d3.select('#phenoVis'); 4 | var svg = this.container.append('svg'); 5 | 6 | var margin = {top: 5, left: 50, bottom: 20, right: 20}; 7 | var width = 280; 8 | var height = 200; 9 | 10 | var domain = {}; 11 | var xAxis = svg.append('g'); 12 | var yAxis = svg.append('g'); 13 | var fx = d3.scaleLinear() 14 | .domain([0, 1]) 15 | .range([height - margin.bottom, margin.top]); 16 | 17 | var axisHelper = svg.append('g'); 18 | axisHelper.append('line') 19 | .attr('x1', margin.left) 20 | .attr('x2', margin.left) 21 | .attr('y1', margin.top) 22 | .attr('stroke','black') 23 | .style("stroke-dasharray", "2, 2") 24 | .style('display','none'); 25 | 26 | axisHelper.append('text') 27 | .attr('fill','black'); 28 | 29 | svg 30 | .on('mouseover', () => { axisHelper.raise() 31 | .style('display','block'); }) 32 | .on('mousemove', mousemove) 33 | .on('mouseout', mouseout); 34 | 35 | this.resize = function() { 36 | var w = this.container.node().getBoundingClientRect().width - margin.right; 37 | var h = this.container.node().getBoundingClientRect().height; 38 | 39 | var aspect = w / h; 40 | var vw = 280; 41 | var vh = vw / aspect; 42 | 43 | width = vw; 44 | height = vh; 45 | 46 | svg 47 | .style("font-size", "12px") 48 | .attr('width', w) 49 | .attr('height', h) 50 | .attr("viewBox", "0 0 " + vw + " " + vh) 51 | 52 | axisHelper 53 | .select('line') 54 | .attr('y2', vh - margin.bottom); 55 | 56 | if (csv) { 57 | drawAxes(); 58 | this.updateDomain(); 59 | } 60 | } 61 | this.resize(); 62 | 63 | var csv = null; 64 | var categories = null; 65 | var data = null; 66 | 67 | function drawAxes() { 68 | categories = csv.columns.filter(d => d !== '[T]'); 69 | var values = [].concat.apply([], categories.map(d => data[d])); 70 | domain = [0, App.dataset.length - 1]; 71 | var range = d3.extent(values, d => +d); 72 | 73 | fx 74 | .domain(range) 75 | .range([height - margin.bottom, margin.top]); 76 | 77 | xAxis.attr('transform', 'translate(0,' + (height - margin.bottom) + ')') 78 | .call(d3.axisBottom( 79 | d3.scaleLinear() 80 | .domain(domain) 81 | .range([margin.left, width - 1]) 82 | ) 83 | .tickFormat(d => { 84 | d = Math.floor(d); 85 | var data = App.dataset[d]; 86 | if (data && data.timeWindow && data.timeWindow[0]) { 87 | return Number(data.timeWindow[0].toFixed(1)); 88 | } 89 | return d; 90 | }) 91 | ) 92 | .select('path') 93 | .attr('stroke', 'none'); 94 | 95 | yAxis.attr('transform', 'translate('+ margin.left + ',0)') 96 | .call(d3.axisLeft(fx).ticks(2)) 97 | .select('path') 98 | .attr('stroke', 'none'); 99 | } 100 | 101 | this.drawMarkers = function() { 102 | if (csv) { 103 | var item = App.item || 0; 104 | domain = this.x ? this.x.domain() : [0, csv.length - 1]; 105 | 106 | svg.select('.axis-current').remove(); 107 | if (item >= domain[0] && item <= domain[1]) { 108 | 109 | var scale = d3.scaleLinear() 110 | .domain(domain) 111 | .range([margin.left, width - 1]) 112 | .clamp(true); 113 | 114 | svg.append('line') 115 | .attr('class', 'axis-current') 116 | .attr('stroke','grey') 117 | .attr('pointer-events','none') 118 | .style("stroke-dasharray", "2, 2") 119 | .attr('y1', margin.top) 120 | .attr('y2', height - margin.bottom) 121 | .attr('transform', 'translate(' + scale(item) + ',0)'); 122 | } 123 | } 124 | } 125 | 126 | this.updateDomain = function(brush) { 127 | var domain = brush || [0, App.dataset.length - 1]; 128 | 129 | this.x = d3.scaleLinear() 130 | .domain(domain) 131 | .range([margin.left, width - 1]); 132 | xAxis.call( 133 | d3.axisBottom(this.x) 134 | .tickFormat(d => { 135 | d = Math.floor(d); 136 | var data = App.dataset[d]; 137 | if (data && data.timeWindow && data.timeWindow[0]) { 138 | return Number(data.timeWindow[0].toFixed(1)); 139 | } 140 | return d; 141 | }) 142 | ) 143 | 144 | if (!brush) { 145 | var line = d3.line() 146 | .curve(d3.curveCatmullRom) 147 | .x((d, i) => i * (width - margin.left - 1) / (domain[1] - domain[0]) + margin.left) 148 | .y(d => fx(d)); 149 | 150 | svg.selectAll('.category') 151 | .attr('d', (d, i) => { 152 | var column = categories[i]; 153 | return line(data[column].slice(domain[0], domain[1]+1)); 154 | }); 155 | } 156 | else { 157 | var scaledDomain = [ 158 | App.dataset[domain[0]].timeWindow[0], 159 | App.dataset[domain[1]].timeWindow[1] 160 | ]; 161 | 162 | var startIndex = data['[T]'].findIndex(data => scaledDomain[0] <= data); 163 | var endIndex = data['[T]'].findIndex(data => scaledDomain[1] <= data); 164 | 165 | if (startIndex < 0) { startIndex = 0; } 166 | if (endIndex < 0) { endIndex = csv.length - 1; } 167 | 168 | var scale = d3.scaleLinear() 169 | .domain([0, endIndex - startIndex]) 170 | .range([margin.left, width - 1]); 171 | 172 | var line = d3.line() 173 | .curve(d3.curveCatmullRom) 174 | .x((d, i) => scale(i)) 175 | .y(d => fx(d)); 176 | 177 | svg.selectAll('.category') 178 | .attr('d', (d, i) => { 179 | var column = categories[i]; 180 | return line(data[column].slice(startIndex, endIndex + 1)); 181 | }); 182 | } 183 | } 184 | 185 | this.init = function() { 186 | data = {}; 187 | 188 | csv.columns.forEach(column => data[column] = []); 189 | 190 | csv.forEach(row => { 191 | for (var entry in row) { 192 | data[entry].push(row[entry]); 193 | } 194 | }) 195 | 196 | // calculate axes 197 | drawAxes(); 198 | 199 | // draw paths 200 | var line = d3.line() 201 | .curve(d3.curveCatmullRom) 202 | .x((d, i) => i * (width - margin.left - 1) / (csv.length - 1) + margin.left) 203 | .y(d => fx(d)); 204 | 205 | categories.forEach((column, i) => { 206 | svg.append('path') 207 | .attr('class', 'category') 208 | .attr('fill', 'none') 209 | .style('stroke', d3.schemeCategory10[i]) 210 | .style('stroke-width', 0.5) 211 | .attr('d', line(data[column])); 212 | }); 213 | 214 | this.updateDomain(); 215 | } 216 | 217 | if (arg.path) { 218 | d3.csv(arg.path, (callback) => { 219 | csv = callback; 220 | if (!csv) { 221 | console.log('FILE ERROR: could not find ' + path); 222 | return; 223 | } 224 | 225 | this.init(); 226 | }); 227 | } 228 | else if (arg.data) { 229 | csv = arg.data; 230 | this.init(); 231 | } 232 | 233 | function mousemove() { 234 | if (!csv) { return; } 235 | var rect = svg.node().getBoundingClientRect(); 236 | var svgWidth = rect.width; 237 | var svgX = d3.event.x - rect.left; 238 | var graphOffset = margin.left * svgWidth/280; 239 | var diff = Math.min(this.width + margin.right - graphOffset -this.width/4 - 7, 0); 240 | 241 | var convertX = d3.scaleLinear() 242 | .domain([graphOffset, svgWidth]) 243 | .range(domain); 244 | 245 | var scale = d3.scaleLinear() 246 | .domain([graphOffset, svgWidth]) 247 | .range([0, 280 - margin.left]) 248 | .clamp(true); 249 | 250 | var i = Math.floor(convertX(svgX)); 251 | if (App.dataset[i]) { 252 | var t = App.dataset[i].timeWindow[0]; 253 | axisHelper 254 | .select('text') 255 | .text('t=' + t.toFixed(2)) 256 | .attr('transform',() => { 257 | var y = margin.top + 10; 258 | var x = scale(svgX) + 2; 259 | return 'translate(' + x + ',' + y + ')'; 260 | }); 261 | } 262 | 263 | axisHelper 264 | .select('line') 265 | .attr('transform','translate('+ scale(svgX) +',0)') 266 | .style('display','block'); 267 | 268 | } 269 | 270 | function mouseout() { 271 | axisHelper.style('display','none'); 272 | } 273 | } -------------------------------------------------------------------------------- /src/js/sliderUI.js: -------------------------------------------------------------------------------- 1 | function Slider(options) { 2 | 3 | this.svg = App.panels.forceDirected.svg.append('g'); 4 | var title = (options && options.title) ? options.title : '', 5 | tabs = options && options.tabs; 6 | 7 | this.color = (options && options.color) ? options.color : '#eee'; 8 | this.domain = (options && options.domain) ? options.domain : [0,1]; 9 | this.top = (options && options.top) ? options.top : -70, 10 | this.left = (options && options.left) ? options.left : 0; 11 | 12 | var log = this.log = (options && options.log === true); 13 | var width = this.width = 300; 14 | var height = this.height = 80; 15 | 16 | this.resize(); 17 | 18 | var self = this; 19 | var drag = d3.drag() 20 | .on('drag', function() { 21 | if (d3.event.dx === 0) { return; } 22 | 23 | var x = d3.event.x - 5; 24 | if (x < 0) { 25 | x = 0; 26 | } 27 | else if (x > width - 20) { 28 | x = width - 20; 29 | } 30 | d3.select(this).attr('x', x); 31 | 32 | // get/set value 33 | self.value = self.scale.copy().invert(x + 10); 34 | 35 | self.onDrag(x, d3.event); 36 | 37 | }) 38 | .on('end', function() { 39 | self.onDragEnd(self.value, d3.event); 40 | }); 41 | 42 | this.scale = (log ? d3.scaleLog() : d3.scaleLinear()) 43 | .range([10, width-10]) 44 | .domain(this.domain) 45 | .clamp(true); 46 | 47 | this.axis = d3.axisBottom() 48 | .scale(this.scale) 49 | .ticks(4) 50 | .tickSize(8); 51 | 52 | if (!log) { 53 | this.axis.tickFormat(d => { 54 | d = Math.floor(d); 55 | var data = App.dataset[d]; 56 | if (data && data.timeWindow && data.timeWindow[0]) { 57 | return Number(data.timeWindow[0].toFixed(1)); 58 | } 59 | return d; 60 | }); 61 | } 62 | 63 | this.svg.style("font-size", '13px'); 64 | 65 | this.svg.append('g') 66 | .attr('class','axis') 67 | .attr('transform','translate(0,35)') 68 | .call(this.axis); 69 | 70 | this.svg.select('.axis path') 71 | .attr('stroke-width',2) 72 | .attr('stroke',this.color); 73 | this.svg.selectAll('.axis line') 74 | .attr('stroke-width',2) 75 | .attr('stroke',this.color); 76 | this.svg.selectAll('.axis text') 77 | .attr('fill',this.color); 78 | 79 | this.svg.append('g') 80 | .attr('transform','translate(5,25)') 81 | .append('rect') 82 | .attr('class','slider') 83 | .attr('stroke','#444') 84 | .style('pointer-events','all') 85 | .attr('rx',2) 86 | .attr('ry',2) 87 | .attr('fill','#bbb') 88 | .attr('width',10) 89 | .attr('height',16) 90 | .call(drag); 91 | 92 | this.svg.append('text') 93 | .attr('class','title') 94 | .attr('pointer-events','none') 95 | .attr('text-anchor','middle') 96 | .attr('fill',this.color) 97 | .attr('text-anchor','start') 98 | .style('font-weight','bold') 99 | .attr('x',8) 100 | .attr('y',tabs ? 0 : 15) 101 | .text(title); 102 | 103 | if (tabs) { 104 | this.tabs = tabs.map((label, i) => { 105 | let tab = this.svg.append('text') 106 | .attr('text-anchor','start') 107 | .attr('x',8) 108 | .attr('y', 17) 109 | .attr('class','slider-tab') 110 | .style('cursor','pointer') 111 | .attr('fill',this.color) 112 | .text(label); 113 | 114 | tab.on('click', () => { 115 | this.activeTab = this.activeTab || 0; 116 | // store previous tab's position 117 | this.tabs[this.activeTab] 118 | .attr('position', this.svg.select('.slider').attr('x')); 119 | 120 | this.tabs.forEach((t, j) => { 121 | t.classed('active', i == j); 122 | }); 123 | this.activeTab = i; 124 | 125 | // retrieve new tab's position 126 | var x = tab.attr('position') || 0; 127 | this.setPosition( x , true); 128 | 129 | // perform click event 130 | this.value = this.scale.copy().invert(x + 10); 131 | this.onTabClick(this.value); 132 | }) 133 | 134 | return tab; 135 | }); 136 | this.activeTab = 0; 137 | this.tabs[0] 138 | .classed('active',true); 139 | this.resizeTabs(); 140 | } 141 | 142 | }; 143 | 144 | Slider.prototype.setPosition = function(x, absolute) { 145 | x = absolute ? x : this.scale(x) - 10; 146 | this.svg.select('.slider') 147 | .attr('x', x); 148 | } 149 | 150 | Slider.prototype.setTitle = function(title) { 151 | this.svg.select('.title') 152 | .text(title); 153 | } 154 | 155 | Slider.prototype.setDomain = function(arr) { 156 | this.domain = arr; 157 | this.scale.domain(this.domain); 158 | this.axis.scale = this.scale; 159 | this.svg.select('.axis') 160 | .call(this.axis); 161 | 162 | this.svg.selectAll('.axis line') 163 | .attr('stroke-width',2) 164 | .attr('stroke',this.color); 165 | this.svg.selectAll('.axis text') 166 | .attr('fill',this.color); 167 | } 168 | 169 | Slider.prototype.resize = function() { 170 | var dx = this.left < 0 ? App.panels.forceDirected.width + this.left-5 : this.left+5, 171 | dy = this.top < 0 ? App.panels.forceDirected.height + this.top: this.top; 172 | this.svg.attr('transform','translate('+dx+','+dy+')'); 173 | this.resizeTabs(); 174 | } 175 | 176 | Slider.prototype.resizeTabs = function() { 177 | if (this.tabs) { 178 | this.tabs.forEach((tab, i) => { 179 | if (i > 0) { 180 | let prevTab = this.tabs[i-1].node().getBBox(); 181 | tab.attr('x', prevTab.x + prevTab.width + 10); 182 | } 183 | }) 184 | } 185 | } 186 | 187 | /* event handling */ 188 | Slider.prototype.onTabClick = function(x) { 189 | // console.log('tab', x) 190 | } 191 | 192 | Slider.prototype.onDrag = function(x, evt) { 193 | // console.log('dragging',x, evt); 194 | } 195 | 196 | Slider.prototype.onDragEnd = function(x, evt) { 197 | // console.log('drag end', x, evt); 198 | } 199 | 200 | --------------------------------------------------------------------------------