Time-Aware PC Python Package
Project description
TimeAwarePC: A Python Package for Finding Causal Connectivity from Time Series Data

TimeAwarePC is a Python package that implements the Time-Aware PC Algorithm for finding the Causal Functional Connectivity from time series data, based on recent research in directed probabilistic graphical modeling with time series [1]. The package also includes implementations of Granger Causality and the PC algorithm.
Installation
Recommended: conda environment (handles R + kpcalg automatically)
$ git clone https://github.com/shlizee/TimeAwarePC.git
$ cd TimeAwarePC
$ conda env create -f environment.yml
$ conda activate timeawarepc
$ Rscript install_r_deps.R # installs kpcalg from CRAN archive
This installs Python, R, rpy2, all required R packages (graph, RBGL, pcalg), and TimeAwarePC v2.0.0 in a single isolated environment.
Manual install (alternative)
If you prefer to install without conda:
- Python >=3.9, <3.11
- R >= 4.0
- R package
kpcalgand its dependencies, installed via R or RStudio:
> install.packages("BiocManager")
> BiocManager::install("graph")
> BiocManager::install("RBGL")
> install.packages("pcalg")
> install.packages("https://cran.r-project.org/src/contrib/Archive/kpcalg/kpcalg_1.0.1.tar.gz")
- Then:
$ pip install timeawarepc
To use Granger Causality, also install nitime (pip install nitime).
Documentation
Documentation is available at readthedocs.org
Tutorial
See the Quick Start Guide for a quick tutorial of the main functionalities of this library and check if it is installed properly.
What's new in v2.0.0
cfc_tpcnow defaults to no bootstrap subsampling: a single PC run is performed on the full time-delayed data.- To use bootstrap stability scoring, pass
subsampsizeandnitertogether (e.g.,subsampsize=50, niter=25). - Both arguments must be specified together (or both left as the default
None).
- To use bootstrap stability scoring, pass
partial_corrnow fits an intercept and is shift-invariant. Previously the regression was forced through the origin, biasing residuals when the data was not mean-centered.- See CHANGELOG.md for the full list of changes and migration notes.
Contributing
Your help is absolutely welcome! Please do reach out or create a feature branch!
Citation
Biswas, R., & Shlizerman, E. (2022). Statistical Perspective on Functional and Causal Neural Connectomics: The Time-Aware PC Algorithm. https://doi.org/10.1371/journal.pcbi.1010653
Biswas, R., & Shlizerman, E. (2021). Statistical Perspective on Functional and Causal Neural Connectomics: A Comparative Study. Frontiers in Systems Neuroscience. https://doi.org/10.3389/fnsys.2022.817962
References
R Clay Reid. (2012) From functional architecture to functional connectomics. Neuron, 75(2):209–217.
Smith, S. M., Miller, K. L., Salimi-Khorshidi, G., Webster, M., Beckmann, C. F., Nichols, T. E., ... & Woolrich, M. W. (2011). Network modelling methods for FMRI. Neuroimage, 54(2), 875-891.
Judea Pearl. (2009) Causality. Cambridge University press.
Markus Kalisch and Peter Bhlmann. (2007) Estimating high-dimensional directed acyclic graphs with the pc-algorithm. In The Journal of Machine Learning Research, Vol. 8, pp. 613-636.
Peter Spirtes, Clark N Glymour, Richard Scheines, and David Heckerman. (2000) Causation, prediction, and search. MIT press.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file timeawarepc-2.0.1.tar.gz.
File metadata
- Download URL: timeawarepc-2.0.1.tar.gz
- Upload date:
- Size: 26.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b2e962df9056e605057b724a2f883cf58c4584d0bcf98e36e0e7d5b5224ec6f
|
|
| MD5 |
c1a4f10a65ce1f7e4408f8a95f645d1d
|
|
| BLAKE2b-256 |
08162216d3063593c666b8c41a36032c2573ea1dcb8ff1c9781e48959f3f44e6
|
File details
Details for the file timeawarepc-2.0.1-py2.py3-none-any.whl.
File metadata
- Download URL: timeawarepc-2.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 26.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10c3a6751e1e3de6a1b909cec7a98320f5d0c13cb2f335e102cea7e79e4fed49
|
|
| MD5 |
f0618f1d5c5a4a5ffd78c3c77c164e1e
|
|
| BLAKE2b-256 |
cec03952b3a2c9990f37d18d8bbc5efc10e025be17729eb6740a59385e22c7fb
|