Implementation of IVA-G and IVA-L-SOS
Project description
Independent Vector Analysis
This package contains the Python versions of Independent Vector Analysis (IVA-G [1] and IVA-L-SOS [2]), converted from the MLSP-Lab MATLAB Codes.
- Website: http://mlsp.umbc.edu/jointBSS_introduction.html
- Source-code: https://github.com/SSTGroup/independent_vector_analysis
Installing independent_vector_analysis
The only pre-requisite is to have Python 3 (>= version 3.6) installed. The iva package can be installed with
pip install independent_vector_analysis
Required third party packages will automatically be installed.
Quickstart
First, the imports:
import numpy as np
from independent_vector_analysis import iva_g, consistent_iva
from independent_vector_analysis.data_generation import MGGD_generation
Create a dataset with N=3 sources, which are correlated across K=4 datasets. Each source consists of T=10000 samples:
N = 3
K = 4
T = 10000
rho = 0.7
S = np.zeros((N, T, K))
for idx in range(N):
S[idx, :, :] = MGGD_generation(T, K, 'ar', rho, 1)[0].T
A = np.random.randn(N,N,K)
X = np.einsum('MNK, NTK -> MTK', A, S)
W, cost, Sigma_n, isi = iva_g(X, A=A, jdiag_initW=False)
Apply IVA-G to reconstruct the sources. If the mixing matrix A is passed, the ISI is calculated. Let the demixing matrix W be initialized by joint diagonalization:
W, cost, Sigma_n, isi = iva_g(X, A=A, jdiag_initW=False)
W is the estimated demixing matrix. cost is the cost for each iteration. Sigma_n[:,:,n] contains the covariance matrix of the nth SCV. isi is the joint ISI for each iteration.
Find the most consistent result of 500 runs in IVA-L-SOS:
iva_results = consistent_iva(X, which_iva='iva_l_sos', n_runs=500)
where iva_results is a dict containing:
- 'W' : estimated demixing matrix of dimensions N x N x K
- 'W_change' : change in W for each iteration
- 'S' : estimated sources of dimensions N x T x K
- 'A' : estimated mixing matrix of dimensions N x N x K
- 'scv_cov' : covariance matrices of the SCVs, of dimensions K x K x N (the same as Sigma_n in iva_g / iva_l_sos)
- 'cross_isi' : cross joint ISI for each run compated with all other runs
Contact
In case of questions, suggestions, problems etc. please send an email to isabell.lehmann@sst.upb.de, or open an issue here on Github.
Citing
If you use this package in an academic paper, please cite [3].
@inproceedings{Lehmann2022,
title = {Multi-task fMRI Data Fusion Using IVA and PARAFAC2},
author = {Lehmann, Isabell and Acar, Evrim and Hasija, Tanuj and Akhonda, M.A.B.S. and Calhoun, Vince D. and Schreier, Peter J. and Adali, T{\"u}lay},
booktitle={ICASSP 2022-2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
pages={1466--1470},
year={2022},
organization={IEEE}
}
[1] M. Anderson, T. Adali, & X.-L. Li, Joint Blind Source Separation with Multivariate Gaussian Model: Algorithms and Performance Analysis, IEEE Transactions on Signal Processing, 2012, 60, 1672-1683
[2] S. Bhinge, R. Mowakeaa, V.D. Calhoun, T. Adalı, Extraction of time-varying spatio-temporal networks using parameter-tuned constrained IVA, IEEE Transactions on Medical Imaging, 2019, vol. 38, no. 7, 1715-1725
[3] I. Lehmann, E. Acar, et al., Multi-task fMRI Data Fusion Using IVA and PARAFAC2, ICASSP 2022 - 2022 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2022, pp. 1466-1470
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
File details
Details for the file independent_vector_analysis-0.3.4.tar.gz
.
File metadata
- Download URL: independent_vector_analysis-0.3.4.tar.gz
- Upload date:
- Size: 25.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01e4d9ea77b9e1653993fd19548f2d8cdc9699ced7e367c1260979029292a275 |
|
MD5 | f9104f94aa2f6903c5626b4572006883 |
|
BLAKE2b-256 | 579a3024e143025ec6edbb02b38bb054e689d87e9ed0bdcd94a4b5992f0367e0 |
File details
Details for the file independent_vector_analysis-0.3.4-py3-none-any.whl
.
File metadata
- Download URL: independent_vector_analysis-0.3.4-py3-none-any.whl
- Upload date:
- Size: 37.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c46fa489149af54cee1c4bf48117093f700654327274f549a078e11ea8bf2248 |
|
MD5 | 9c0e6a5eacd56aee6576468e43007abf |
|
BLAKE2b-256 | 3abc3d92d3fc419521ae2c3218b12b704e8434fcd30cc0787f02a02235f09194 |