Potsdam Institute for Climate Impact Research (PIK)
Interdisciplinary Center for Dynamics of Complex Systems (University of Potsdam)
Cardiovascular Physics Group (Humboldt-Universität zu Berlin)
PIK Logo
TOCSY - Toolboxes for Complex Systems
PIK/ Antique/ Blue
Home Home
ACE - Nonlinear Regression Analysis ACE
Adaptive Filtering Procedure Adaptive Filtering
CoinCalc - Event Coincidence Analysis CoinCalc
COPRA - Constructing Proxy Records From Age Models COPRA
Cross Recurrence Plot Toolbox CRP Toolbox
Commandline Recurrence Plots Commandline RPs
Analyse Coupling of Transient Dynamics Coupling Analysis
Identification of Coupling Direction Coupling Direction
Inner Composition Alignment IOTA
Dynamical Invariants by Recurrence Plots K2
Toolbox for the analysis of non-equidistantly sampled time series NEST
DSProlog DSProlog
PECUZAL PECUZAL
Permutation Entropy PETROPY
pyunicorn ‐ UNIfied COmplex Network and Recurrence aNalysis toolbox pyunicorn
Recurrence flow RECFLOW
Symbolic Dynamics from Recurrence Plots RECGRAM
Recurrence lacunarity RECLAC
Recurrence Plots for MATLAB RP
Recurrence Structure Analysis RSA
Wavelet and Coherence Analysis SOWAS
System Identification Tool System Identification
Time Series Graph and Momentary Information Transfer Estimation TiGraMITe

IOTA – Inner Composition Alignment

R

General Notes

Inner composition alignment (IOTA) is a permutation-based association measure to detect regulatory links from very short time series. One time series is reodered with regards to the rank order of a second one and it monotonicity is evaluated.


Installation and Usage

To install, copy the zip-file into your path and extract all *.R and *.c files.

IOTA.R can be used without any further compilation. It allows to calculate pairwise IOTA with different weighting functions, time reversal or as a signed version (cf. example below).

To have a significance test and the estimation of partial IOTA being included, compile the *.c files calling R CMD SHLIB *.c instead of the standard C compiler. The dynamic libraries called by iota_subroutines.R will be generated in that way.

Note: (1) This has been tested only on a Linux machine. (2) The program iota_subroutines.R is not running stable for large input at the moment.


Example

# load or simulate time series as an array of size m*n, with m number of variables 
# and n number of time points
TS0 <- matrix(runif(70,0,1),7,10)

# normalize time series
# to estimate the weighted IOTA the time series must have values between zero and one
# depending on the time series different normalization must be used
TimeSeries <- (TS0-apply(TS0,1,min,na.rm=TRUE))/apply((TS0-apply(TS0,1,min,na.rm=TRUE)),1,max,na.rm=TRUE)

###################################################################
###################################################################

# load subroutines 
source('IOTA.R')

# calculates pairwise IOTA as described in Hempel et al., PRL (2011) [1]
# possible options for method (weighting functions) 
# 'both' (default): uniform and squared sloped 
# 'slope': slope 
# 'sqrt': squared slope 
# 'am': arithmetric mean
# 'gm': geometric mean
# 'hm': harmonic mean 
I <- IOTA(TimeSeries,method='sqrt')

# calculates pairwise IOTA based on reversed ordering as described in 
# Hempel et al., EPJB (2013) [2]
# options are the same as for IOTA
Ir <- IOTA_reverse(TimeSeries,method='sqrt')

# calculates signed version of pairwise IOTA to indicate up-/downregulation as described 
# in Hempel et al., EPJB (2013) [2]
# option 'both' does not work in this case
Is <- IOTAsigned(TimeSeries,method='sqrt')

###################################################################
###################################################################

# to run C subroutines files must be compiled to get a dynamic library using  "R CMD SHLIB *.c"

source('iota_subroutines.R')

# number of realizations for significance test
rmax <- 1000
# significance level
alpha <- 0.99
# weighting: uniform (1) or squared slope (2)
w <- 2

# calculated pairwise and partial IOTA and performs a simple permutation-based significance 
# test, only most likely connections are selected while the remaining matix entries are set 
# to zero
I <- IOTA(TimeSeries,rmax,alpha,w)

References

  1. Hempel, S., Koseska, A., Kurths, J., Nikoloski, Z.: Inner Composition Alignment for Inferring Directed Networks from Short Time Series, Phys. Rev. Lett., 107(5), 054101, 2011, doi:10.1103/PhysRevLett.107.054101

  2. Hempel, S., Koseska, A., Nikoloski, Z.: Data-driven reconstruction of directed networks, Europ. Phys. J. B, 86, 250, 2013, doi:10.1140/epjb/e2013-31111-8


Download

IOTA.zip


Author

Sabrina Hempel


© 2004-2023 SOME RIGHTS RESERVED
University of Potsdam, Interdisciplinary Center for Dynamics of Complex Systems, Germany
Potsdam Institute for Climate Impact Research, Complexity Science, Germany

This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Germany License.
Imprint, Data policy, Disclaimer, Accessibility statement

Please respect the copyrights! The content is protected by the Creative Commons License. If you use the provided programmes, text or figures, you have to refer to the given publications and this web site (tocsy.pik-potsdam.de) as well.

@MEMBER OF PROJECT HONEY POT
Spam Harvester Protection Network
provided by Unspam