Skip to content

Incompatibility with scvi-tools >= 1.0: AttributeError and Trainer issues #107

@ZXJC-niusile

Description

@ZXJC-niusile

Report

Description Hello, I recently tried running popV (v0.6.0) with a modern environment (scvi-tools v1.3.3, scanpy v1.10+), and encountered multiple critical errors due to API changes in scvi-tools.

Environment

popV version: 0.6.0

scvi-tools version: 1.3.3

Hardware: NVIDIA A100 (High core count causing OpenBLAS issues)

Errors Encountered

AttributeError in SCVI class: The SCVI class in popv.algorithms._scvi is missing methods like compute_integration, predict, and compute_umap.

scVI API Mismatch: The old popV code calls SCVI initialization in a way that is no longer supported by scvi-tools v1.0+ (missing _adata_manager, incorrect train arguments).

Multiprocessing Crash: On high-performance servers (e.g., 128 cores), KNN and RandomForest cause Segmentation Faults due to OpenBLAS thread contention.

Temporary Workaround I managed to fix these issues by monkey-patching the popv.algorithms classes at runtime. Key fixes included:

Rewriting SCVI.train to use scvi.model.SCVI(adata).train().

Manually injecting result_key and seen_result_key attributes after prediction.

Setting os.environ["OPENBLAS_NUM_THREADS"] = "4" to prevent segfaults.

Suggestion It seems popV needs a major update to align with the current scvi-tools API. The internal SCVI wrapper class needs to be refactored to wrap the new scvi.model.SCVI correctly.

Version information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions