Skip to main content

S-BSS-vecDC: Sparse Source Separation and Deconvolution Tool

The S-BSS-vecDC algorithm can be downloaded from here.

About the S-BSS-vecDC Algorithm

The algorithm solves blind source separation (BSS) problem
(1) D = AXT + E, 
where D = [d1, …,  dn] is the data matrix with observed images stored in columns, A = [a1, …,  ar] is the matrix with source images stored in columns, X = [x1, …,  xr] is the matrix composed of time-activity curves (TACs) stored in columns, and E is the noise matrix of the same size as the matrix D. The n is the lenght of an observed sequence and r is expected or number of sources. Each TAC is expected to be a result of convolution between common input function, vector b, and tissue-specific convolution kernel uk; hence, matrix U = [u1, …,  ur] arrise. The detail describtion is given in our paper.


The S-BSS-vecDC algorithm is provided by function SBSSvecDC_alg.m:
function[A, X, info] = SBSSvecDC_alg(scD, r_fix, iterations)
where inputs are:
scD data matrix D,
r_fix positive integer for fixed number of sources of 0 for automatic selection of the number of sources within the algorithm,
interations fixed number of iterations for given non-zeros r_fix, unnecessary for r_fix = 0.
and outputs are:
A the matrix with source-images in columns,
X the matrix with time-activity curves in columns,
info structure with additional information: info.Xi is matrix of the same size as A with variances of each pixel, info.U is the matrix with convolution kernels in columns, and info.b is the vector with input function.

Example Run

The example run of the algorithm is shown in MATLAB script example_run.m. Here:
  1. The phantom data D is loaded from prearranged file.
  2. The data is preprocessed. The zero-activity pixels and images are croped and data can be scaled (scaling = 1) using correspondence analysis (appropriate for dynamic scintigraphy), scaling = 0 otherwise.
  3. The fixed number of sources and iterations is chosen or automated selection of number of sources is selected (r = 0).
  4. Run function SBSSvecDC_alg.m.
  5. The results of the algorithm is postprocessed. The zero-activity pixels and images are returned and the results are rescaled (if scaling = 1);
  6. The results are printed in 2-column (print_type = 1) or 4-column (print_type = 2) format.
Submitted by otichy on