Generate one single snQTL test statistics from a given list of expression data. This function takes a list of expression data, the choice of test statistics, the choice to permute or not, the choice of considering trans-correlation or not, and other computational tuning parameters as inputs. Outputs include the calculated statistics, recall of the choices, and the decomposition components associated with the statistics.
single_exp_to_snQTL_stats(
seed = NULL,
permute = FALSE,
exp_list,
method = c("sum", "sum_square", "max", "tensor"),
rho = 1000,
sumabs = 0.2,
niter = 20,
trace = FALSE,
adj.beta = -1,
tensor_iter = 20,
tensor_tol = 10^(-3),
trans = FALSE,
location = NULL
)a list containing the following:
character, recall of the choice of test statistics
logic variable, recall of the choice of permutation
number, the calculated test statistics with given expression list and choices
list, if method = c("sum", "sum_square", "max"), the matrix decomposition components for all pairwise differential networks are recorded; if method = "tensor", the tensor decomposition components for the differential tensor are recorded
number, the random seed to shuffle the expression data if permute = TRUE and for SSTD() initialization if method = "tensor"
logic variable, whether to shuffle the samples in expression data; see "details"
list, a list of expression data from samples with different genotypes; see "details"
character, the choice of test statistics (see net_to_stats())
number, a large positive constant adding to the diagonal elements to ensure positive definiteness in symmetric matrix spectral decomposition
number, the number specify the sparsity level in the matrix/tensor eigenvector; sumabs takes value between \(1/sqrt(p)\) and 1, where \(p\) is the dimension; sumabs\(*sqrt(p)\) is the upperbound of the L1 norm of the leading matrix/tensor eigenvector (see symmPMD())
integer, the number of iterations to use in the PMD algorithm (see symmPMD())
logic variable, whether to trace the progress of PMD algorithm (see symmPMD())
number, the power transformation to the correlation matrices (see getDiffMatrix()); particularly, when adj.beta=0, the correlation matrix is used, when adj.beta<0, the covariance matrix is used.
integer, the maximal number of iteration in SSTD algorithm (see max_iter in SSTD())
number, a small positive constant for error difference to indicate the SSTD convergence (see tol in SSTD())
logic variable, whether to only consider the trans-correlation (between genes from two different chromosomes or regions); see "details"
vector, the (chromosome) locations for genes if trans = TRUE
In exp_list, the dimensions for data matrices are n1-by-p, n2-by-p, and n3-by-p, respectively.
The expression data is usually normalized. We use expression data to generate the Pearson's correlation co-expression networks.
If permute = TRUE, we shuffle the samples in three expression matrices while keeping the same dimensions.
The test statistics from randomly shuffled data are considered as the statistics from null distribution.
If trans = TRUE, we only consider the trans-correlation between the genes from two different chromosomes or regions in co-expression networks.
The entries in correlation matrices \(N_{ij} = 0\) if gene i and gene j are from the same chromosome or region.
Hu, J., Weber, J. N., Fuess, L. E., Steinel, N. C., Bolnick, D. I., & Wang, M. (2025). A spectral framework to map QTLs affecting joint differential networks of gene co-expression. PLOS Computational Biology, 21(4), e1012953.