|
|
Line 1: |
Line 1: |
| '''Contact''': Hiroshi (hashika1@jhmi.edu)<br> | | '''Contact''': Hiroshi (hashika1@jhmi.edu)<br> |
| Thank you for your interest in the project. Feel free to join us any time and share your thoughts!<br> | | Thank you for your interest in the project. Feel free to join us any time and share your thoughts!<br> |
| <br>
| |
| '''06/12/2014(Thu) Brainstorming Session'''<br>
| |
| ''Why'': To identify adaptive mechanisms leading to cardiac arrhythmia in diseased hearts. Then localize the origin of arrhythmia (= wavebreak) and treat it before it happens.<br>
| |
| ''Hypothesis'': Arrhythmias result from an adaptive mechanism to optimize information transmission in abnormal hearts.<br>
| |
| ''Challenge'': Wavebreaks can also occur in normal heart tissue. Would information theory metrics be sensitive enough?<br>
| |
| ''How'': Time series from a cellular automata model of the 2-D heart tissue. ?Time series of invasive electrogram from animal or human<br>
| |
| ''What'': To quantify information transmission within the heart<br>
| |
| Potential Metrics<br>
| |
| Mutual information of binary time series (0–resting, 1–excited) in two locations. A high mutual information suggests electrical coupling.<br>
| |
| Permutation Entropy - Temporal uncertainty in one location. Time series in rational numbers.<br>
| |
| Transfer Entropy - Spatial uncertainty between two locations. Time series in binary numbers.<br>
| |
| <br>
| |
| '''06/13/2014(Fri) Unofficial Brainstorming Session'''<br>
| |
| Thank you all for suggesting excellent reference articles.
| |
|
| |
| 1. Cao ''et al''., Detecting Dynamical Changes in Time Series Using the Permutation Entropy. [[File: 2004_CaoY_PRE.pdf]] - Application of Permutation Entropy to EEG data<br>
| |
| 2. Rosso ''et al''., Distinguishing Noise from Chaos. [[File: 2007_RossoOA_PRL.pdf]] - Complexity–Entropy Causality plane<br>
| |
| 3. Lacasa ''et al''., From Time Series to Complex Networks: The Visibility Graph. [[File: 2008_LacasaL_PNAS.pdf]]<br>
| |
| 4. Lizier ''et al''., Local Information Transfer as a Spatiotemporal Filter for Complex Systems. [[File: 2008_LizierJT_PRL.pdf]] - Local Transfer Entropy<br>
| |
| 5. Cheong ''et al''., Information Transduction Capacity of Noisy Biochemical Signaling Networks. [[File:2011_Cheong_Science.pdf]] - Not quite relevance but important for future applications.<br>
| |
|
| |
| Let's read the reference papers above this weekend and discuss what exactly we should measure at the next meeting. The next meeting will be at 02:30pm on Monday 06/16/2014 (after my tutorial[http://tuvalu.santafe.edu/events/workshops/index.php/Complex_Systems_Summer_School_2014-Tutorials#Tutorial:_Rotors.2C_Spirals_and_Scroll_Waves]) in the lecture hall. If you have any questions I will be around this weekend. You will most certainly find me in the common room (or wherever TV is available) at 7pm on Saturday 06/14/2014 for FIFA World Cup Japan vs. Côte d'Ivoire!<br>
| |
| <br>
| |
| '''06/15/2014(Sun) Group Meeting'''<br>
| |
| Meeting with Josh @11:00am to discuss the project. Location: ARIEL<br> [[File: Ariel.jpg]].<br>
| |
| Thank you everyone for great discussions!<br>
| |
|
| |
| ''Summary of Information Theory Indices to Quantify Information Transfer within the Heart''<br>
| |
| ''Question:'' So which one would help identify the location of wavebreaks (= intersection between wavefront and wavetail)?<br>
| |
| 1. Mutual Information [[File:MI3.png]]; [[File:MI4.png]]<br>
| |
| 2. Conditional Mutual Information [[File:CMI2.png]]<br>
| |
| 3. Transfer Entropy (from state Y to X) [[File:TE.png]]; [[File:Un.png]]<br>
| |
| = Conditional Mutual Information regarding the next state X' [[File:TE2.png]]<br>
| |
| = Global average of a Local Transfer Entropy at each observation [[File:TE3.png]]<br>
| |
| 4. Local Transfer Entropy [[File:LTE.png]]; Binary time series.<br>
| |
| See Lizier [[File: 2008_LizierJT_PRL.pdf]] and his recent book chapter (in dropbox)[http://link.springer.com/chapter/10.1007%2F978-3-642-53734-9_5]<br>
| |
| 5. Permutation Entropy [[File:PE.png]] where the sum runs over all n! permutations pi of order n. Real-value time series.<br>
| |
| See Bandt and Pompe [[File: 2002_Bandt_PRE.pdf]] and Cao [[File: 2004_CaoY_PRE.pdf]]<br>
| |
| 6. Complexity-Entropy Causality Plane. See Rosso [[File: 2007_RossoOA_PRL.pdf]]<br>
| |
| 7. Visibility Graph: A simple rule to map real-valued time series into a network. See Lacasa [[File: 2008_LacasaL_PNAS.pdf]]<br>
| |
| 8. Graph Entropy: Quantifies structural information of a graph based on a derived probability distribution. See Dehmer [[File:2008_Dehmer_AMC.pdf]]<br>
| |
| 9. Brian's time series analysis method: ref?<br>
| |
|
| |
| '''''Project Milestones'''''<br>
| |
| I arbitrarily created 3 milestones to split the group into 3 subgroups so everyone can contribute to one aspect of the project. However, at this stage you could consider these milestones a rough idea; I am sure there will be more to do!<br>
| |
|
| |
| ''1. Build a 2-D cellular automata (CA) model of realistic heart tissue<br>''
| |
| ''Available Resources:''<br>
| |
| - Published model [[File:2005_Atizenza.pdf]]<br>
| |
| - Netlogo CA code (in dropbox); Original code is here[http://ccl.northwestern.edu/netlogo/models/community/SimHeart]<br>
| |
| - Matlab Central: Spiral waves (non-CA)[http://www.mathworks.com/matlabcentral/fileexchange/22492-spiral-waves-in-monodomain-reaction-diffusion-model]<br>
| |
|
| |
| ''2. Extract time series from the CA model, modify the existing codes to calculate information theory indices specific to the CA model.<br>''
| |
| ''Available Resources:''<br>
| |
| - Netlogo CA code (in dropbox); Original code is here[http://ccl.northwestern.edu/netlogo/models/community/SimHeart]<br>
| |
| - Transfer Entropy Toolbox: Matlab code [https://code.google.com/p/transfer-entropy-toolbox/]; ref [[File:2011_ItoS_PLOS.pdf]]<br>
| |
| - Information Dynamics Toolkit: Java code (usable in Matlab) for local transfer entropy, etc. [https://code.google.com/p/information-dynamics-toolkit/]<br>
| |
| - Permutation Entropy: Matlab code [http://tocsy.pik-potsdam.de/petropy.php]; ref [[File:2013_RiedlM_EPJST.pdf]]<br>
| |
| - Visibility Graph: Matlab code [http://www.comp-engine.org/timeseries/operation_code/nw_visibilitygraph]<br>
| |
|
| |
| ''3. Statistical analysis, data visualization and communication<br>''
| |
| ''Available Resources:''<br>
| |
| - Lizier's book chapter (in dropbox)[http://link.springer.com/chapter/10.1007%2F978-3-642-53734-9_5]<br>
| |
| - To identify the locations of wavebreaks, what's the length of the time series data we need to obtain per observation? How can we justify it?<br>
| |
| - How many times do we need to repeat observations (the model is not entirely deterministic) to make the data statistically robust?<br>
| |
| - What kind of statistical metrics do we use for the final data analysis?<br>
| |
| - What kind of results are anticipated?<br>
| |
| - How can we visualize the data to effectively communicate the results to the non-expert audience?<br>
| |
|
| |
| The next meeting will be at 02:30pm on Monday 06/16/2014 (after my tutorial[http://tuvalu.santafe.edu/events/workshops/index.php/Complex_Systems_Summer_School_2014-Tutorials#Tutorial:_Rotors.2C_Spirals_and_Scroll_Waves]) in the lecture hall. Let's think about which milestone you want to contribute to and discuss it.<br>
| |
| <br>
| |
| '''06/16/2014(Mon) Group Meeting @02:30pm in the Lecture Hall'''<br>
| |
| ''1. Model Coding'' - Degang, José, Shai, Hiroshi<br>
| |
| ''Progress:''<br>
| |
| - Went over the algorithm of Atienza CA model [[File:2005_Atizenza.pdf]]<br>
| |
| - Emailed the corresponding author to request the source code (Matlab)<br>
| |
| - Will start coding the model in Python tomorrow<br>
| |
| - Or if we get lucky, we may receive the source code for the model!<br>
| |
|
| |
| ''2. Data Analysis'' - Brian, Beth, Shai, Flavia<br>
| |
| ''Progress:''<br>
| |
| - Extracted cell-by-cell binary time series from the simple Netlogo model<br>
| |
| - Discussed the workflow of the data analysis<br>
| |
| ''Unanswered Questions:''<br>
| |
| - Binary time series data - Should it represent ONLY depolarization (beginning of excitation = 1, otherwise zero), or the entire action potential duration (APD) (from the beginning of excitation to the end of recovery = 1, otherwise zero)? To identify wavebreaks it may be necessary to incorporate the entire APD?<br>
| |
|
| |
| ''3. Statistical Analysis and Data Visualization'' - Bernardo, Degang, José, Shai, Brian, Beth, Flavia, Hiroshi<br>
| |
| ''Progress:''<br>
| |
| - Pending data analysis<br>
| |
| - Data Visualization : Local information dynamics indices at each time step at each spatial location -> Aggregate indices at each spatial location?<br>
| |
| - Build a directed, weighted network structure based on pairwise local information dynamics indices.<br>
| |
|
| |
| [[File:Heart_20140616.jpg|1000px]]
| |
|
| |
| The next meeting will be at 03:00pm on Tuesday 06/17/2014 in the lecture hall. See you then!<br>
| |
| <br>
| |
| '''06/17/2014(Tue) AM Group Meeting 10:30am-12:00pm in Ariel'''<br>
| |
| ''1. Model Coding'' - Degang, José, Shai, Hiroshi<br>
| |
| - Went over the math behind a reaction-diffusion model of the 2-D cardiac tissue (Dr. Peter Hammer, Havard Biorobotics Lab) [http://www.mathworks.com/matlabcentral/fileexchange/22492-spiral-waves-in-monodomain-reaction-diffusion-model] <br>
| |
| - Obtained permission from Dr. Hammer to use his model (Thanks, Dr. Hammer!)<br>
| |
| - References: <br>
| |
| 1. [[File:1993_RogersJM_IEEE.pdf]]<br>
| |
| 2. [[File:1993_Pertsov_CircRes.pdf]]<br>
| |
| 3. FitzHugh-Nagumo model [http://www.scholarpedia.org/article/FitzHugh-Nagumo_model]<br>
| |
| <br>
| |
| '''06/17/2014(Tue) PM Group Meeting 03:00pm-04:30pm in the Lecture Hall'''<br>
| |
| ''1. Model Coding'' - Degang, José, Beth, Flavia, Hiroshi<br>
| |
| - Continued to go over the math behind Dr. Hammer's model<br>
| |
| - Neumann boundary conditions<br>
| |
| - Worked on coding to get the time series data from the model<br>
| |
| ''Unanswered Questions:''<br>
| |
| - The model utilizes the finite difference method to solve PDE - How to optimize it? Time steps? Parameters? Any other tools we should look into? (Matlab PDE toolbox, finite element method, etc.)<br>
| |
| - The model outputs real-valued data - what would be an appropriate threshold to binarize real-valued data?<br>
| |
| - <span style="color:#FF0000">Hammer's program has been modified and now it (SpiralWaves20140617.m on Dropbox) is able to output binary time series in Brian's sparse format. Modify variable 'threshold' to change the binarization threshold. Modify variable 'dur' to change the length of the time series. Modify variable 'plot_flag' to indicate whether you want the results plotted while running. If you only need the time series, set it to 'false'.</span><br>
| |
|
| |
| We will have two meetings (again) tomorrow (Wednesday 06/18/2014):<br>
| |
| 09:00am - 10:30am in the lecture hall <br>
| |
| 02:00pm - 05:00pm in the lecture hall <br>
| |
| See you then!<br>
| |
| <br>
| |
| '''06/18/2014(Wed) Group Meetings 09:00am-10:30am and 02:00pm-05:00pm in the Lecture Hall'''<br>
| |
| ''Cellular Automata Model and Data'' - Brian<br>
| |
| - The CA NetLogo model has been greatly improved: removing unnecessary variables and code, simplifying the model, and adding a user interface for simulating different stimulation patterns and printing data to a file. <span style="color:#FF0000">It is on Dropbox as "code/SimHeartCA.nlogo".</span> Feel free to play around with it.<br>
| |
| - Data has been extracted from the model under various parameter settings, corresponding to (a) a diagonal wave, (b) a radial wave, (c) stable cross-field stimulation, (d) cross-field stimulation with some deviations eventually degenerating into chaotic behavior, and (e) cross-field stimulation immediately degenerating into chaotic behavior. For each dataset, we have extracted the time series for each cell, computed a directed measure of "flow" from node u to v by looking at the average lag time between times when u is excited and times when v is excited, and created a visualization in GraphML format as well as matrices of x- and y-components of the flow vectors for input to a vector field visualizer. <span style="color:#FF0000">All of this is on Dropbox in the "data" folder.</span><br>
| |
| <br>
| |
| '''06/19/2014(Thu) Update'''<br>
| |
| The Java code used to create all the files listed above from the Netlogo output is now <span style="color:#FF0000">on Dropbox as "code/HeartProcessor.java".</span> It does not include all the necessary libraries and other packages, so you can't run it yourself, but I tried to comment it well so that it's readable. It includes two metrics now: the one mentioned above using the lag times, and another one based on simple order/precedence of excitement times. I have ideas of how to use the precedence measure to detect arrhythmias in real time, even when we only have a sparse sample of cells (e.g. from using a 64-catheter basket). I will hopefully be developing that over the next few days. Shoot me an email at bthompso8784@gmail.com or give me a call at 732-841-5280 if you want to discuss.<br>
| |
| <br>
| |
| '''06/20/2014(Fri) Progress'''<br>
| |
| - Done - Code (Matlab) to extract time series data from the PDE model (Matlab) in the sparse representation format<br>
| |
| - Done - Code (Python) to compute entropy, joint entropy and mutual information (only with neighboring cells) from the sparse representation format<br>
| |
| - Done - Code (Matlab) to visualize entropy and mutual information in 3-D<br>
| |
| - Permission obtained to use CA model (2005 Atienza, Matlab). Thank you!<br>
| |
| - Meeting with Ryan to review the preliminary data: <br>
| |
| 1) Action potential duration (APD) likely overestimated with threshold at 0.01 -> change to 0.1 with reasonable estimate<br>
| |
| 2) Time series likely too short - Should compute entropy, mutual information using a longer time series (>10 heart beats) to dilute aperiodic effects<br>
| |
| 3) Transfer entropy - neutral. Need to see the data to get a better feel.<br>
| |
| 4) Multivariate mutual information among neighboring cells - Get other data first<br>
| |
| 5) Local Information Dynamics (Dr. Lizier) - Very promising<br>
| |
| 6) Local causal structure using cellular automata - Ryan will send us refs<br>
| |
| 7) Licor reconstruction - Ryan will send us refs<br>
| |
| [[File:photo1.JPG]]<br>
| |
| ''To-Do List:''<br>
| |
| - Code to extract time series data from the CA model in the sparse representation format<br>
| |
| - Code to compute transfer entropy and local information dynamics (minor modifications of existing codes)<br>
| |
| - Will follow up with Ryan as to refs<br>
| |
| - Will contact Dr. Lizier to get his insight as to the local information dynamics indices in 2-D CA model<br>
| |
| <br>
| |
| '''06/21/2014(Sat) Unofficial Trip to Bandelier National Monument'''<br>
| |
| <br>
| |
| '''06/22/2014(Sun) Progress'''<br>
| |
| - Done - Code (Matlab) to extract time series data from the CA model in the sparse representation format<br>
| |
| - Done - Code (Matlab/Java) to compute transfer entropy<br>
| |
| <br>
| |
| '''06/23/2014(Mon) Progress'''<br>
| |
| - Communicated with Dr. Joe Lizier regarding local information dynamics<br>
| |
| - Done - Code (Matlab/Java) to compute transfer entropy<br>
| |
| - However, it turns out that local transfer entropy calculation of our model is computationally expensive...<br>
| |
| <br>
| |
| '''06/24/2014(Tue) Progress'''<br>
| |
| - Meeting with Simon to discuss the project - should focus on information transmission <br>
| |
| - Done - Code (Matlab) to convert a dense matrix into a sparse matrix<br>
| |
| - Done - Code (Python) to compute mutual information for paired cells<br>
| |
| - Done - Reproduce point stimulation in the CA model<br>
| |
| [[File:photo01.jpg]]<br>
| |
| ''To-Do List:''<br>
| |
| - Reproduce spiral waves, multiple wavelets and anatomical reentry in the CA model<br>
| |
| - Extract time series data above from the CA model and convert them into sparse matrices<br>
| |
| - Visualization of the final data<br>
| |
|
| |
| ''Unanswered Questions:''<br>
| |
| - Mutual information in the diagnonal directions<br>
| |
| - Adding noise (stochastic response) to the CA model to represent heterogeneous tissue<br>
| |
| - Kullback–Leibler divergence computation - should be considered<br>
| |
| - Measure of segmented regions vs. each cell<br>
| |
|
| |
| [[File:photo02.jpg]]<br>
| |