Repository navigation
Remove sc.external #2717
Copy link
Copy link
Open
5 / 55 of 5 issues completedLabels
Area – APIAPI designAPI designArea – ExternalDealing with external toolsDealing with external toolsMetaA meta-request to be implemented in multiple stepsA meta-request to be implemented in multiple stepsbreaking change ‼️
Milestone
Description
External has outlived its usefulness with the emergence of the scverse ecosystem, and should be removed.
Plan:
- Decide on which ones to move into our code: https://scverse.zulipchat.com/#narrow/channel/328272-scanpy/topic/Removing.20.60sc.2Eexternal.60/near/616514023
- Deal with
exporting.{spring_project,cell_browser}: Reorg io functions #4296 - Adopt bbknn: Adopt
scanpy.pp.bbknn#4302 - Move hashsolo: move
sc.external.pp.hashsolointosc.pp#4304 - Deprecate
sc.external: deprecatesc.external#4295 - remove it
Adopt code
projects without upstream activity
-
pp.scrublet -
pp.harmony_integrate(harmonypyhas 2.0 depending on Torch so we adopted v1) -
pp.bbknn(implemented in RSC): Adoptscanpy.pp.bbknn#4302
already in-tree: move into main namespace
-
hashsolo(upstream has been moved intoscvi-tools): movesc.external.pp.hashsolointosc.pp#4304other than scrublet, this operates on hashtags, so both are useful
Maintained: deprecate wrappers and tell the authors
-
tl.phate: We’re removingscanpy.externalKrishnaswamyLab/PHATE#182 -
tl.palantir{,_results}: We’re removing sc.external dpeerlab/Palantir#182 -
tl.trimap(has a JAX implementation by Google): We’re removingscanpy.externaleamid/trimap#31 -
tl.sam(sc-sam): scanpy is getting rid of .external and also has harmony now atarashansky/self-assembling-manifold#51 -
exporting.cellbrowser: Reorg io functions #4296
maintained-ish, don’t necessarily wait for reply
-
tl.harmony_timeseries(harmonyTS): We’re deprecatingscanpy.externaldpeerlab/Harmony#27 -
pp.magic(magic-impute): see Palantir (the MAGIC algorithm is included in there)
Dead: just deprecate
-
pp.dca: chore: remove some long-deprecated functions #4010 -
exporting.spring_project: Reorg io functions #4296 tl.phenograph(PhenoGraph. With feat: addjaccardas an additional method insc.pp.neighbors#3831 –jaccardconnectivities – only label transfer is missing, which exists in https://github.com/quadbio/cellmapper)pp.scanorama_integrate(scanorama, but is implemented inSnapATAC2)pp.mnn_correct(mnnpy)tl.wishbone(wishbone-dev)tl.sandbag/tl.cyclone(pypairs)
theislab votes to keep:
- phate: 3 (won’t keep as it’s maintained well)
- phenograph: 2 (because of its performance on cancer data)
- magic, palantir, cyclone, cellbrowser: 1 each
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Area – APIAPI designAPI designArea – ExternalDealing with external toolsDealing with external toolsMetaA meta-request to be implemented in multiple stepsA meta-request to be implemented in multiple stepsbreaking change ‼️
Type
Projects
- StatusShow more project fieldsmeta/ backlog
Activity
[-]remove external[/-][+]Remove `sc.external`[/+]flying-sheep commentedon Oct 30, 2025
@Intron7 you said you have a sense which ones are still used.
Could you please weigh in here?
flying-sheep commentedon Oct 30, 2025
TODO: create sub-issues for all tools and invite feedback by maintainers and users
sc.external#4295scanpy.pp.bbknn#4302sc.external.pp.hashsolointosc.pp#4304