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

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:- 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.