PMBio / mudatasets

Multimodal datasets, in MuData format
https://gtca.github.io/muon
BSD 3-Clause "New" or "Revised" License
2 stars 1 forks source link

mds.load("pbmc10k_multiome") does not add files to uns #4

Closed Zethson closed 2 years ago

Zethson commented 2 years ago

Hey,

attempting to follow the https://muon-tutorials.readthedocs.io/en/latest/single-cell-rna-atac/pbmc10k/2-Chromatin-Accessibility-Processing.html tutorial. Instead of downloading the data manually & preprocessing it like in the tutorial chapter before, I am getting the data with mudatasets like:

mdata = mds.load("pbmc10k_multiome")

The MuData object then looks like (might already be some scanpy filtering here, but not important):

MuData object with n_obs × n_vars = 11909 × 144978
  var:  'feature_types', 'gene_ids', 'genome', 'interval'
  2 modalities
    rna:    11909 x 36601
      var:  'gene_ids', 'feature_types', 'genome', 'interval'
    atac:   10069 x 106086
      obs:  'n_genes_by_counts', 'total_counts', 'NS'
      var:  'gene_ids', 'feature_types', 'genome', 'interval', 'n_cells_by_counts', 'mean_counts', 'pct_dropout_by_counts', 'total_counts'

However, with ac.pl.fragment_histogram(atac, region='chr1:1-2000000') I then run into:

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
/tmp/ipykernel_404935/4071406051.py in <module>
----> 1 ac.pl.fragment_histogram(atac, region='chr1:1-2000000')

~/miniconda3/envs/bp2/lib/python3.9/site-packages/muon/_atac/plot.py in fragment_histogram(data, region, groupby, barcodes)
    339         raise TypeError("Expected AnnData or MuData object with 'atac' modality")
    340 
--> 341     fragment_path = adata.uns["files"]["fragments"]
    342     fragments = tools.fetch_regions_to_df(fragment_path=fragment_path, features=region)
    343 

~/miniconda3/envs/bp2/lib/python3.9/site-packages/anndata/compat/_overloaded_dict.py in __getitem__(self, key)
     98             return self.overloaded[key].get()
     99         else:
--> 100             return self.data[key]
    101 
    102     def __setitem__(self, key, value):

KeyError: 'files'

IMO this is either an issues with the served MuData object here or an unflexible implementation of fragment_histogram

What is the best solution here, @gtca ?

Thank you!

Zethson commented 2 years ago

Oh wait, maybe I need one of with_info=True, full=True...

Zethson commented 2 years ago

Yeah, that was indeed the issue. Sorry, me being naive :)