Hello!
I am trying to analyze my TCR data by using scirpy but I am running into an error. Quick note, I analyze my sc data using Seurat and then converted Seurat in AnnData. This worked to run scvelo but I think I am doing something wrong in loading the filtered_contig_annotations.
Here is my code:
adata = scv.read("sobjscv.h5ad")
filenames = ['p219_base', 'p229_base', 'p264_base', 'pV03_base', 'pV09_base', 'p219_post', 'p229_post', 'p264_post', 'pV03_post', 'pV09_post']
tcrs = [ir.io.read_10x_vdj(filename) for filename in filenames]
for tcr in range(len(tcrs)):
tcrs[tcr].obs_names = filenames[tcr] + "_" + tcrs[tcr].obs_names
print(tcrs[tcr].obs_names)
tcr = tcrs[0].concatenate(tcrs[1:])
adata.obs_names= [c.split("-")[0] for c in adata.obs_names]
tcr.obs_names = [d.split("-")[0] for d in tcr.obs_names]
ir.pp.merge_with_ir(adata, tcr)
p219_base, p229_base, p264_base, pV03_base, pV09_base, p219_post, p229_post, p264_post, pV03_post, pV09_post are the names of my csv contigs.
I tried to make adata.obs_names and tcr.obs_names the same:
adata.obs_names
Index(['p229_base_AAACCTGAGACGCACA', 'p229_base_AAACCTGCACCGAAAG',
'p229_base_AAACCTGGTCTACCTC', 'p229_base_AAACCTGGTGGTAACG',
'p229_base_AAACCTGTCAGCAACT', 'p229_base_AAACCTGTCCCTAATT',
'p229_base_AAACCTGTCTTGCATT', 'p229_base_AAACGGGAGCAATATG',
'p229_base_AAACGGGGTTATTCTC', 'p229_base_AAACGGGTCTAACCGA',
...
'pV03_post_TTTGGTTTCAAGATCC', 'pV03_post_TTTGGTTTCATCGCTC',
'pV03_post_TTTGTCAAGAAGAAGC', 'pV03_post_TTTGTCAAGCCCTAAT',
'pV03_post_TTTGTCAAGTGTACCT', 'pV03_post_TTTGTCACAAAGAATC',
'pV03_post_TTTGTCACAGTGAGTG', 'pV03_post_TTTGTCACATTTCACT',
'pV03_post_TTTGTCATCCCTCAGT', 'pV03_post_TTTGTCATCGCTGATA'],
dtype='object', length=50808)
tcr.obs_names
Index(['p219_base_AAACCTGAGAGCTGCA', 'p219_base_AAACCTGAGGGATCTG',
'p219_base_AAACCTGAGTGGCACA', 'p219_base_AAACCTGCAAACGCGA',
'p219_base_AAACCTGCAGCCTTTC', 'p219_base_AAACCTGCATTGCGGC',
'p219_base_AAACCTGGTCCAAGTT', 'p219_base_AAACCTGGTGGTCTCG',
'p219_base_AAACCTGTCACCCGAG', 'p219_base_AAACCTGTCACTGGGC',
...
'pV09_post_TTTGTCACAAGAGGCT', 'pV09_post_TTTGTCACAGACAAAT',
'pV09_post_TTTGTCACAGGTCTCG', 'pV09_post_TTTGTCAGTAGGACAC',
'pV09_post_TTTGTCAGTCATATGC', 'pV09_post_TTTGTCAGTCGACTAT',
'pV09_post_TTTGTCAGTCTTCTCG', 'pV09_post_TTTGTCAGTGCCTGTG',
'pV09_post_TTTGTCATCCATTCTA', 'pV09_post_TTTGTCATCGGAATCT'],
dtype='object', length=36086)
Then if I run
ax = ir.pl.group_abundance(adata, groupby="receptor_subtype", target_col="group_id")
Traceback (most recent call last):
File "/home/francesco/Documents/AML_project/scRNA_AMLproj/python_scRNAseq/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 3629, in get_loc
return self._engine.get_loc(casted_key)
File "pandas/_libs/index.pyx", line 136, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 163, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 5198, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 5206, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'receptor_subtype'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3.8/code.py", line 90, in runcode
exec(code, self.locals)
File "<input>", line 1, in <module>
File "/home/francesco/Documents/AML_project/scRNA_AMLproj/python_scRNAseq/lib/python3.8/site-packages/scirpy/io/_util.py", line 71, in check_wrapper
return f(*args, **kwargs)
File "/home/francesco/Documents/AML_project/scRNA_AMLproj/python_scRNAseq/lib/python3.8/site-packages/scirpy/pl/_group_abundance.py", line 62, in group_abundance
abundance = tl.group_abundance(
File "/home/francesco/Documents/AML_project/scRNA_AMLproj/python_scRNAseq/lib/python3.8/site-packages/scirpy/io/_util.py", line 71, in check_wrapper
return f(*args, **kwargs)
File "/home/francesco/Documents/AML_project/scRNA_AMLproj/python_scRNAseq/lib/python3.8/site-packages/scirpy/tl/_group_abundance.py", line 110, in group_abundance
return _group_abundance(
File "/home/francesco/Documents/AML_project/scRNA_AMLproj/python_scRNAseq/lib/python3.8/site-packages/scirpy/tl/_group_abundance.py", line 20, in _group_abundance
na_mask = _is_na(ir_obs[groupby]) | _is_na(ir_obs[target_col])
File "/home/francesco/Documents/AML_project/scRNA_AMLproj/python_scRNAseq/lib/python3.8/site-packages/pandas/core/frame.py", line 3505, in __getitem__
indexer = self.columns.get_loc(key)
File "/home/francesco/Documents/AML_project/scRNA_AMLproj/python_scRNAseq/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 3631, in get_loc
raise KeyError(key) from err
KeyError: 'receptor_subtype'
/snap/pycharm-community/298/plugins/python-ce/helpers/pydev/_pydevd_bundle/pydevd_resolver.py:178: DeprecationWarning: Use is_view instead of isview, isview will be removed in the future.
attr = getattr(var, n)
Could you help me?
Francesco