OmicsML / dance

DANCE: a deep learning library and benchmark platform for single-cell analysis
https://pydance.readthedocs.io
BSD 2-Clause "Simplified" License
348 stars 34 forks source link

register existing transforms #393

Closed RemyLau closed 8 months ago

RemyLau commented 8 months ago

Register existing transforms under their corresponding categories.

import dance.transforms

for i in sorted(dance.registry.REGISTRY.children()):
    print(i)

Output:

dataset
function
function.genestats
function.genestats.alpha
function.genestats.cov_all
function.genestats.fano_all
function.genestats.max_all
function.genestats.mean_all
function.genestats.mu
function.genestats.std_all
function.metric
preprocessor
preprocessor.feature
preprocessor.feature.cell
preprocessor.feature.cell.BatchFeature
preprocessor.feature.cell.CellPCA
preprocessor.feature.cell.CellSVD
preprocessor.feature.cell.SCNFeature
preprocessor.feature.cell.WeightedFeaturePCA
preprocessor.feature.gene
preprocessor.feature.gene.GeneStats
preprocessor.feature.spatial
preprocessor.feature.spatial.MorphologyFeatureCNN
preprocessor.feature.spatial.SMEFeature
preprocessor.feature.spatial.SpatialIDEFeature
preprocessor.filter
preprocessor.filter.FilterScanpy
preprocessor.filter.cell
preprocessor.filter.cell.FilterCellsScanpy
preprocessor.filter.gene
preprocessor.filter.gene.FilterGenesCommon
preprocessor.filter.gene.FilterGenesMarker
preprocessor.filter.gene.FilterGenesMarkerGini
preprocessor.filter.gene.FilterGenesMatch
preprocessor.filter.gene.FilterGenesPercentile
preprocessor.filter.gene.FilterGenesRegression
preprocessor.filter.gene.FilterGenesScanpy
preprocessor.filter.gene.FilterGenesTopK
preprocessor.graph
preprocessor.graph.cell
preprocessor.graph.cell.CellFeatureBipartiteGraph
preprocessor.graph.cell.CellFeatureGraph
preprocessor.graph.cell.NeighborGraph
preprocessor.graph.cell.PCACellFeatureGraph
preprocessor.graph.cell.ScMoGNNGraph
preprocessor.graph.feature
preprocessor.graph.feature.FeatureFeatureGraph
preprocessor.graph.reference
preprocessor.graph.reference.DSTGraph
preprocessor.graph.spatial
preprocessor.graph.spatial.SMEGraph
preprocessor.graph.spatial.SpaGCNGraph
preprocessor.graph.spatial.SpaGCNGraph2D
preprocessor.graph.spatial.StagateGraph
preprocessor.interface
preprocessor.interface.AnnDataTransform
preprocessor.misc
preprocessor.misc.Compose
preprocessor.misc.RemoveSplit
preprocessor.misc.SaveRaw
preprocessor.misc.SetConfig
preprocessor.normalize
preprocessor.normalize.ScTransform
preprocessor.normalize.ScaleFeature
preprocessor.pseudobulk
preprocessor.pseudobulk.CellGiottoTopicProfile
preprocessor.pseudobulk.CellTopicProfile
preprocessor.pseudobulk.PseudoMixture
preprocessor.split
preprocessor.split.entry
preprocessor.split.entry.CellwiseMaskData
preprocessor.split.entry.MaskData
preprocessor.split.gene
preprocessor.split.gene.GeneHoldout

TODOs

A few recently implemented transforms have been marked as experimental and need further improvements in a future PR @xingzhongyu :

Things to improve:

  1. Use obs or obsm for cell level features, and var or varm for gene level features. Prevent usage of wildcard uns if possible.
  2. Triple nested for-loops need to be rewritten to improve computational efficiency if possible.
  3. Need proper tests since they are not used within example scripts.