The S-BSS-vecDC algorithm can be downloaded from here. ### About the S-BSS-vecDC Algorithm

The algorithm solves blind source separation (BSS) problem where *D* = [**d**_{1}, …, ** d**_{n}] is the data matrix with observed images stored in columns, *A* = [**a**_{1}, …, ** a**_{r}] is the matrix with source images stored in columns, *X* = [**x**_{1}, …, ** x**_{r}] 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 **u**_{k}; hence, matrix *U* = [**u**_{1}, …, ** u**_{r}] arrise. The detail describtion is given in our paper. ### Usage

### Example Run

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.

The example run of the algorithm is shown in MATLAB script *example_run.m*. Here:

- The phantom data
*D*is loaded from prearranged file. - 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.
- The fixed number of sources and iterations is chosen or automated selection of number of sources is selected (r = 0).
- Run function
*SBSSvecDC_alg.m.* - The results of the algorithm is postprocessed. The zero-activity pixels and images are returned and the results are rescaled (if scaling = 1);
- The results are printed in 2-column (print_type = 1) or 4-column (print_type = 2) format.