scirpy.io.AirrCell#
- class scirpy.io.AirrCell(cell_id, cell_attribute_fields=(), *, logger=<module 'scanpy.logging' from '/home/docs/checkouts/readthedocs.org/user_builds/scirpy/envs/v0.17.0/lib/python3.10/site-packages/scanpy/logging.py'>)#
Data structure for a Cell with immune receptors. Represents one row of
adata.obsm["airr"]
.This data structure is compliant with the AIRR rearrangement schema v1.0. An AirrCell can hold multiple chains (i.e. rows from the rearrangement TSV) which belong to the same cell. A chain is represented as a dictionary, where the keys are AIRR-rearrangement fields.
The AirrCell can, additionally, hold cell-level attributes which can be set in a dict-like fashion. Keys marked as “cell-level” via
cell_attribute_fields
will be automatically transferred to the cell-level when added through a chain. They are required to have the same value for all chains.- Parameters:
cell_id (
str
) – cell id or barcode. Needs to match the cell id used for transcriptomics data, if any.cell_attribute_fields (
Collection
[str
] (default:()
)) – List of field-names which are supposed to be stored at the cell-level rather than the chain level. If a chain with these fields is added to the cell, they are set on the cell-level instead. If the values already exist on the cell-level, aValueError
is raised, if they differ from the values that are already present.logger (
Any
(default:<module 'scanpy.logging' from '/home/docs/checkouts/readthedocs.org/user_builds/scirpy/envs/v0.17.0/lib/python3.10/site-packages/scanpy/logging.py'>
)) – A logger to write messages to. If not specified, use scanpy’s default logger.
Attributes table#
Valid chains are IMGT locus names see https://docs.airr-community.org/en/latest/datarep/rearrangements.html#locus-names |
|
Identifiers of loci with a V-D-J junction |
|
Identifiers of loci with a V-J junction |
|
Unique identifier (barcode) of the cell. |
|
List of chain-dictionaries added to the cell. |
|
Return a list of all fields (chain-level and cell-level) |
Methods table#
|
Add a chain to the cell. |
|
Add chains serialized as JSON. |
|
|
Generate an empty chain dictionary, containing all required AIRR columns, but set to |
|
|
|
|
|
|
|
|
If key is not found, d is returned if given, otherwise KeyError is raised. |
|
as a 2-tuple; but raise KeyError if D is empty. |
|
|
Iterate over chains as AIRR-Rearrangent compliant dictonaries. |
|
|
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v |
|
Attributes#
- AirrCell.VALID_LOCI = ('TRA', 'TRG', 'IGK', 'IGL', 'TRB', 'TRD', 'IGH')#
Valid chains are IMGT locus names see https://docs.airr-community.org/en/latest/datarep/rearrangements.html#locus-names
- AirrCell.cell_id#
Unique identifier (barcode) of the cell.
- AirrCell.chains#
List of chain-dictionaries added to the cell.
- AirrCell.fields#
Return a list of all fields (chain-level and cell-level)
Methods#
- AirrCell.add_chain(chain)#
Add a chain to the cell.
A chain is a dictionary following the AIRR Rearrangement Schema.
- Return type:
- AirrCell.add_serialized_chains(serialized_chains)#
Add chains serialized as JSON.
The JSON object needs to be a list of dicts. If
serialized_chains
is a value interpreted as NA, the function passes silently and does nothing.- Return type:
- AirrCell.clear() None. Remove all items from D. #
- static AirrCell.empty_chain_dict()#
Generate an empty chain dictionary, containing all required AIRR columns, but set to
None
- Return type:
- AirrCell.get(k[, d]) D[k] if k in D, else d. d defaults to None. #
- AirrCell.items() a set-like object providing a view on D's items #
- AirrCell.keys() a set-like object providing a view on D's keys #
- AirrCell.pop(k[, d]) v, remove specified key and return the corresponding value. #
If key is not found, d is returned if given, otherwise KeyError is raised.
- AirrCell.popitem() (k, v), remove and return some (key, value) pair #
as a 2-tuple; but raise KeyError if D is empty.
- AirrCell.setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D #
- AirrCell.to_airr_records()#
Iterate over chains as AIRR-Rearrangent compliant dictonaries. Each dictionary will also include the cell-level information.
- AirrCell.update([E, ]**F) None. Update D from mapping/iterable E and F. #
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
- AirrCell.values() an object providing a view on D's values #