dance icon indicating copy to clipboard operation
dance copied to clipboard

Unifying base data object

Open RemyLau opened this issue 2 years ago • 0 comments

Currently, there are several different dataset objects specialized for each task and model (e.g., CellTypeDataset, ClusteringDataset), each of them takes a variety of specialized arguments that are not directly related to the underlying data, e.g., save path, processing scheme, choice of tissue. This complexity makes it quite hard to maintain the code base and implement new methods/datasets.

To improve this situation, we need to isolate raw dataset objects from transformation/processing methods.

  • Base data object
    • Take AnnData as an input and save it as a private attribute (read-only?).
    • Construct data loaders that load g, x, y, etc., to be passed to the model for training/evaluation.
  • Dataset object
    • Download option
    • Transformation option
    • Dataset from paper (preprocessed) -> used to benchmark the reproducibility of the reimplemented model
  • Transformation
    • Leverage functionalities from scanpy (recall that now the base data object store an AnnData object as a (private) attribute

To fix

Single modality

  • [x] examples/single_modality/clustering/scdsc.py (#95)
  • [x] examples/single_modality/clustering/graphsc.py (#95)
  • [x] examples/single_modality/clustering/scdcc.py (#95)
  • [x] examples/single_modality/clustering/sctag.py (#95)
  • [x] examples/single_modality/clustering/scdeepcluster.py (#95)
  • [x] examples/single_modality/imputation/graphsci.py
  • [x] examples/single_modality/imputation/deepimpute.py
  • [ ] examples/single_modality/imputation/scgnn.py
  • [x] examples/single_modality/cell_type_annotation/singlecellnet.py (#77)
  • [x] examples/single_modality/cell_type_annotation/celltypist.py (#72)
  • [x] examples/single_modality/cell_type_annotation/scdeepsort.py (#75)
  • [x] examples/single_modality/cell_type_annotation/actinn.py (#63)
  • [x] examples/single_modality/cell_type_annotation/svm.py (#56, #57)

Spatial

  • [x] examples/spatial/spatial_domain/stagate.py (#127)
  • [x] examples/spatial/spatial_domain/louvain.py (#124)
  • [x] examples/spatial/spatial_domain/stlearn.py (#126)
  • [x] examples/spatial/spatial_domain/spagcn.py (#83)
  • [x] examples/spatial/cell_type_deconvo/spotlight.py (#107)
  • [x] examples/spatial/cell_type_deconvo/dstg.py (#103)
  • [x] examples/spatial/cell_type_deconvo/card.py (#93)
  • [x] examples/spatial/cell_type_deconvo/spatialdecon.py (#94)

Multi modality

  • [x] examples/multi_modality/joint_embedding/scmvae.py
  • [x] examples/multi_modality/joint_embedding/dcca.py
  • [ ] examples/multi_modality/joint_embedding/jae.py
  • [ ] examples/multi_modality/joint_embedding/scmogcnv2.py
  • [ ] examples/multi_modality/joint_embedding/scmogcn.py
  • [x] examples/multi_modality/match_modality/cmae.py
  • [x] examples/multi_modality/match_modality/scmm.py
  • [ ] examples/multi_modality/match_modality/scmogcn.py
  • [x] examples/multi_modality/predict_modality/babel.py (#89)
  • [x] examples/multi_modality/predict_modality/cmae.py
  • [x] examples/multi_modality/predict_modality/scmm.py
  • [ ] examples/multi_modality/predict_modality/scmogcn.py

RemyLau avatar Nov 08 '22 16:11 RemyLau