You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have converted my scATAC-seq SeuratObject to a mudata object but the information on the fragments files does not seem to be transferred. mdata.uns is empty.
My object is a merged object of multiple samples that each have a separate fragment file. I tried to run muon.atac.tl.locate_fragments by doing this for each subset in the object:
""""
samples = ['sample1', 'sample2', 'sample3']
fragment_dict = {
'sample1': os.path.join(work_dir, 'data/sample1_atac_fragments.tsv.gz),
sample2': os.path.join(work_dir, 'data/sample2_atac_fragments.tsv.gz),
sample3': os.path.join(work_dir, 'data/sample3_atac_fragments.tsv.gz)}
for x in samples:
muon.atac.tl.locate_fragments(mdata[mdata.obs.sample == x], fragments_dict[x])
""""
However, when I then try to continue with my QC, I still get the error "There is no fragments file located yet. Run muon.atac.tl.locate_fragments first."
When I subset my data, run muon.atac.tl.locate_fragments(sample1, fragments_dict['sample1'])
I am able to continue with QC (nucleosome signal)
How can I add the fragment file location for my complete dataset, where each subset, based on the value in an obs column, has its own fragment file?
Thank you!
The text was updated successfully, but these errors were encountered:
If I understand the context correctly, the line mdata[mdata.obs.sample == x] returns a view into the part of the MuData object. You can read more about views vs copies here.
The views are read-only by definition, and the underlying data for the three samples would be the same in this case.
What we can do is to add a warning to the locate_fragments() function when the input is a view.
Dear muon-team,
I have converted my scATAC-seq SeuratObject to a mudata object but the information on the fragments files does not seem to be transferred. mdata.uns is empty.
My object is a merged object of multiple samples that each have a separate fragment file. I tried to run muon.atac.tl.locate_fragments by doing this for each subset in the object:
""""
samples = ['sample1', 'sample2', 'sample3']
fragment_dict = {
'sample1': os.path.join(work_dir, 'data/sample1_atac_fragments.tsv.gz),
sample2': os.path.join(work_dir, 'data/sample2_atac_fragments.tsv.gz),
sample3': os.path.join(work_dir, 'data/sample3_atac_fragments.tsv.gz)}
for x in samples:
muon.atac.tl.locate_fragments(mdata[mdata.obs.sample == x], fragments_dict[x])
""""
However, when I then try to continue with my QC, I still get the error "There is no fragments file located yet. Run muon.atac.tl.locate_fragments first."
When I subset my data, run muon.atac.tl.locate_fragments(sample1, fragments_dict['sample1'])
I am able to continue with QC (nucleosome signal)
How can I add the fragment file location for my complete dataset, where each subset, based on the value in an obs column, has its own fragment file?
Thank you!
The text was updated successfully, but these errors were encountered: