This vignette provides solutions to common problems you might encounter when using this package. If you cannot find your problem here, please file an issue on our GitHub repository.
Error in normalize.quantiles(dataset0) : ERROR; return code from pthread_create() is 22
To solve this problem, you need to install preprocessCore without
threading support. Try:
# ! shell
git clone https://github.com/bmbolstad/preprocessCore.git
cd preprocessCore
R CMD INSTALL --configure-args="--disable-threading" .
or
BiocManager::install(
"preprocessCore",
configure.args = "--disable-threading",
force = TRUE
)
See bioconductor_docker/issues/22, Scissor/issues/15 for more details.
Error at alpha=0.05:subscript out of bounds
Error in
Scissor.v5.optimized():! object ‘fit0’ not found
This may be due to two reasons: first, a mismatch in the dimensions of the bulk expression data and the phenotype data; second, incorrect column names in the survival phenotype data leading to a failure to match.
To check dimension mismatch:
ncol(your_bulk_data) == nrow(your_phenotype_data) # should be TRUE
all(unique(colnames(your_bulk_data)) == unique(rownames(your_bulk_data))) # should be TRUE
all(order(colnames(your_bulk_data)) == order(rownames(your_phenotype_data))) # should be TRUE
Survival phenotype column names should be formatted as time and
status, ensuring correct capitalization and spelling:
head(survival_phenotype) # case-sensitive
# time status
# GSM70130 34.80 0
# GSM70131 35.67 0
# GSM70136 43.37 0
# GSM70138 60.77 0
# GSM70140 33.80 1
# GSM70144 58.53 0
Error in
function_name():! lazy-load database ‘/home/user/R/x86_64-pc-linux-gnu-library/4.4/SigBridgeR/R/SigBridgeR. rdb’ is corrupt
An error occurred during installation, causing the package to be corrupted. Try reinstalling the package:
# I reccomend restarting R/RStudio before reinstalling
remove.packages("SigBridgeR")
detach("package:SigBridgeR", unload = TRUE)
if (!requireNamespace("remotes")) {
install.packages("remotes")
}
remotes::install_github("WangLabCSU/SigBridgeR")
Error:
! Invalid syntax: ‘c(scissor_umap, scpas_umap)’
This may be due to the R environment being contaminated, which prevents
the use of %<-%. You can try restarting the R environment or clean up
the environment.
# restart R/RStudio
.rs.api.restartSession()
rm(list = ls(all.names = TRUE))
Error:
! Detected n gene(s) with zero variance:
ℹ “gene name(s)”
This is due to the presence of genes with zero variance in the bulk
expression data when you are using scPP and binary phenotype. This
indicates that the expression levels of one (or several) genes are
nearly identical across different samples. You should check your data.
✖ 2025/09/2308 : 53 : 51 Fewer than 20% of the genes in the gene sets are included in the rankings.Check wether the gene IDs in the ‘rankings’ and ‘geneSets’ match.
ℹ 2025/09/2308 : 53 : 51 scPP screening exit.
This issue arises from the single-cell processing, which filtered out
too many genes and cells. Consider Adjusting min.cells and
min.features to a smaller value.:
Warning in info$envs : partial match of ‘envs’ to ‘envs directories’
Error in
reticulate::use_condaenv():! Unable to locate conda environment ‘r-reticulate-degas’.
reticulate cannot find the relevant environment because a Python
backend has been registered. One solution is to pass in the Python path
of the environment instead of the environment name.
envs <- ListPyEnv()
head(envs) # goes like this
# name python type
# /home/user/miniconda3 base /home/user/miniconda3/bin/python conda
# /home/user/miniconda3/envs/r-reticulate-degas r-reticulate-degas /home/user/miniconda3/envs/r-reticulate-degas/bin/python conda
For example, if wanna use the r-reticulate-degas environment, pass its
Python location to reticulate::use_condaenv().
py_path <- envs[envs$name == "r-reticulate-degas", "python"]
# /home/user/miniconda3/envs/r-reticulate-degas/bin/python
reticulate::use_condaenv(py_path)
Traceback (most recent call last):
File “/home/user/R/Project/R_code/SigBridgeR/Tmp/tmp/BlankClassMTL.py”, line 1, in
import tensorflow as tf #NEED
ModuleNotFoundError: No module named ‘tensorflow’
Warning in file(file, “r”) :
cannot open file ‘tmp//Activations.csv’: No such file or directory
This is due to the issue with the tensorflow package. Use the following method to check if the tensorflow package can be imported.
# make sure you are using the correct python, i.e. r-reticulate-degas
import sys
sys.executable # in an environment, it should be something like /home/user/miniconda3/envs/r-reticulate-degas/bin/python3
import tensorflow as tf
tf.__version__
# make sure you've entered the Conda environment you want to check, i.e. r-reticulate-degas
conda list tensorflow
# packages in environment at /home/user/miniconda3/envs/r-reticulate-degas:
#
# Name Version Build Channel
# tensorflow 2.4.1 mkl_py39h4683426_0
# tensorflow-base 2.4.1 mkl_py39h43e0292_0
# tensorflow-estimator 2.6.0 py39he80948d_0 https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
If the output is ModuleNotFoundError: No module named 'tensorflow',
you need to install the tensorflow package, and strictly control the
version of the package (version 2.4.1 has been tested and is feasible)
Excessive time during running SCTransfomm
Output message is probably like this:
# Running SCTransform on assay: Xenium
# vst.flavor='v2' set. Using model with fixed slope and excluding poisson genes.
# Calculating cell attributes from input UMI matrix: log_umi
# Variance stabilizing transformation of count matrix of size 248 by 36553
# Model formula is y ~ log_umi
# Get Negative Binomial regression parameters per gene
# Using 248 genes, 5000 cells
# Second step: Get residuals using fitted parameters for 248 genes
# Computing corrected count matrix for 248 genes
# Calculating gene attributes
# Wall clock passed: Time difference of 7.166213 secs
# Determine variable features
# ! stuck here.
This is a bug from Seurat, see Seurat #10153
Try update Seurat to latest version
Why does SigBridgeR hardcode reticulate::use_python() internally? This contradicts the recommended practices of the R community
We are indeed aware that this practice deviates from the expectations of
the R community. However, given that multiple algorithms embedded within
the package require distinct Python installations and environments—and
considering that reticulate binds a single Python environment to the
entire R session without allowing runtime switching—each screening
algorithm would otherwise necessitate a separate R session to operate
correctly.
Meanwhile, wrapping functions in subprocesses would increase usability and learning overhead for users, while invoking Python interpreters via system commands would require additional read/write operations to disk for R-side data, which is inefficient for large-scale data processing.
After careful consideration, we encapsulated reticulate::use_python()
within isolated functions to emulate subprocess-like behavior—allowing
localized Python environment specification—while avoiding interference
with the globally registered Python configuration in the R session.