Multi-modal#
Warning
This is, for now, just a stub.
Here, weβll showcase how to curate and register ECCITE-seq data from Papalexi21 in the form of MuData objects. ECCITE-seq is designed to enable interrogation of single-cell transcriptomes together with surface protein markers in the context of CRISPR screens.
Setup#
!lamin init --storage ./test-multimodal --schema bionty
Show code cell output
π‘ connected lamindb: testuser1/test-multimodal
import lamindb as ln
import bionty as bt
bt.settings.organism = "human"
π‘ connected lamindb: testuser1/test-multimodal
ln.settings.transform.stem_uid = "yMWSFirS6qv2"
ln.settings.transform.version = "0"
ln.track()
π‘ notebook imports: bionty==0.42.7 lamindb==0.69.9
π‘ saved: Transform(uid='yMWSFirS6qv26K79', name='Multi-modal', key='multimodal', version='0', type='notebook', updated_at=2024-04-10 17:55:35 UTC, created_by_id=1)
π‘ saved: Run(uid='swFI1tAcGRiQmOU9wo4g', transform_id=1, created_by_id=1)
Papalexi21#
Letβs use a MuData object.
MuData objects build on top of AnnData objects to store and serialize multimodal data. More information can be found on the MuData documentation.
Show code cell content
mdata = ln.core.datasets.mudata_papalexi21_subset()
mdata
MuData object with n_obs Γ n_vars = 200 Γ 300 obs: 'perturbation', 'replicate' var: 'name' 4 modalities rna: 200 x 173 obs: 'nCount_RNA', 'nFeature_RNA', 'percent.mito' var: 'name' adt: 200 x 4 obs: 'nCount_ADT', 'nFeature_ADT' var: 'name' hto: 200 x 12 obs: 'nCount_HTO', 'nFeature_HTO', 'technique' var: 'name' gdo: 200 x 111 obs: 'nCount_GDO' var: 'name'
mdata.obs
rna:nCount_RNA | rna:nFeature_RNA | rna:percent.mito | adt:nCount_ADT | adt:nFeature_ADT | hto:nCount_HTO | hto:nFeature_HTO | hto:technique | gdo:nCount_GDO | adt:orig.ident | ... | gdo:guide_ID | gdo:gene_target | gdo:NT | gdo:perturbation | gdo:replicate | gdo:S.Score | gdo:G2M.Score | gdo:Phase | perturbation | replicate | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
index | |||||||||||||||||||||
l7_TCGCGAGAGCGTAATA | 12504 | 3197 | 2.599168 | 105.0 | 4 | 33.0 | 2 | cell hashing | 421.0 | Lane7 | ... | MARCH8g2 | MARCH8 | MARCH8g2 | Perturbed | rep3 | -0.177556 | -0.405842 | G1 | Perturbed | rep3 |
l7_TTAGGACCAGCTCGAC | 20606 | 4490 | 2.955450 | 252.0 | 4 | 136.0 | 2 | cell hashing | 277.0 | Lane7 | ... | IFNGR1g3 | IFNGR1 | IFNGR1g3 | Perturbed | rep3 | -0.235942 | -0.656860 | G1 | Perturbed | rep3 |
l4_GACTGCGGTCATCGGC | 11122 | 3216 | 3.173890 | 696.0 | 4 | 35.0 | 4 | cell hashing | 500.0 | Lane4 | ... | MARCH8g4 | MARCH8 | MARCH8g4 | Perturbed | rep1 | 0.157029 | -0.298696 | S | Perturbed | rep1 |
l2_ACATCAGGTAACGACG | 4383 | 1817 | 4.061145 | 59.0 | 4 | 48.0 | 4 | cell hashing | 272.0 | Lane2 | ... | CAV1g4 | CAV1 | CAV1g4 | Perturbed | rep1 | -0.001038 | -0.167919 | G1 | Perturbed | rep1 |
l5_AGACGTTCACCGAATT | 18345 | 3741 | 2.649223 | 832.0 | 4 | 365.0 | 2 | cell hashing | 201.0 | Lane5 | ... | IRF7g1 | IRF7 | IRF7g1 | Perturbed | rep2 | -0.077955 | -0.717423 | G1 | Perturbed | rep2 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
l7_CATGGCGGTTGTACAC | 15791 | 3760 | 2.381103 | 340.0 | 4 | 77.0 | 3 | cell hashing | 147.0 | Lane7 | ... | STAT5Ag1 | STAT5A | STAT5Ag1 | Perturbed | rep3 | -0.271486 | -0.502034 | G1 | Perturbed | rep3 |
l4_CCATGTCCAATCCAAC | 7147 | 2603 | 5.694697 | 692.0 | 4 | 120.0 | 4 | cell hashing | 221.0 | Lane4 | ... | ATF2g1 | ATF2 | ATF2g1 | Perturbed | rep1 | -0.145687 | -0.320501 | G1 | Perturbed | rep1 |
l6_TTGTAGGAGGGATGGG | 14558 | 3961 | 2.211842 | 449.0 | 4 | 160.0 | 4 | cell hashing | 196.0 | Lane6 | ... | STAT2g4 | STAT2 | STAT2g4 | Perturbed | rep2 | -0.165096 | -0.561920 | G1 | Perturbed | rep2 |
l2_GGCTGGTTCTAACGGT | 12217 | 3178 | 1.874437 | 154.0 | 4 | 112.0 | 4 | cell hashing | 169.0 | Lane2 | ... | CMTM6g1 | CMTM6 | CMTM6g1 | Perturbed | rep1 | -0.135304 | -0.469901 | G1 | Perturbed | rep1 |
l7_GTGTGCGAGTCCTCCT | 4108 | 1742 | 3.797468 | 147.0 | 4 | 42.0 | 3 | cell hashing | 125.0 | Lane7 | ... | POU2F2g1 | POU2F2 | POU2F2g1 | Perturbed | rep3 | -0.058626 | -0.133698 | G1 | Perturbed | rep3 |
200 rows Γ 47 columns
Standardize and validate metadata#
annotate = ln.Annotate.from_mudata(
mdata,
var_index={
"rna": bt.Gene.symbol, # gene expression
"adt": bt.CellMarker.name, # antibody derived tags reflecting surface proteins
"hto": ln.Feature.name, # cell hashing
"gdo": ln.Feature.name, # guide RNAs
},
categoricals={
"perturbation": ln.ULabel.name, "replicate": ln.ULabel.name, # shared categoricals
"hto:technique": bt.ExperimentalFactor.name # note this is a modality specific categorical
}
)
β
added 2 records with Feature.name for columns: ['perturbation', 'replicate']
β 45 non-validated categories are not saved in Feature.name: ['gdo:MULTI_ID', 'adt:replicate', 'adt:guide_ID', 'rna:nFeature_RNA', 'gdo:NT', 'hto:G2M.Score', 'gdo:percent.mito', 'adt:perturbation', 'gdo:nCount_GDO', 'adt:Phase', 'hto:orig.ident', 'hto:nCount_HTO', 'gdo:orig.ident', 'hto:NT', 'hto:perturbation', 'gdo:Phase', 'gdo:S.Score', 'hto:Phase', 'adt:nCount_ADT', 'adt:percent.mito', 'hto:S.Score', 'gdo:gene_target', 'hto:technique', 'gdo:G2M.Score', 'adt:NT', 'adt:S.Score', 'hto:MULTI_ID', 'gdo:HTO_classification', 'hto:nFeature_HTO', 'hto:HTO_classification', 'adt:HTO_classification', 'gdo:perturbation', 'rna:percent.mito', 'gdo:guide_ID', 'adt:MULTI_ID', 'adt:orig.ident', 'rna:nCount_RNA', 'gdo:replicate', 'hto:gene_target', 'adt:nFeature_ADT', 'hto:percent.mito', 'hto:guide_ID', 'adt:G2M.Score', 'adt:gene_target', 'hto:replicate']!
β to lookup categories, use lookup().columns
β to save, run add_new_from_columns
β 1 non-validated categories are not saved in Feature.name: ['nCount_GDO']!
β to lookup categories, use lookup().columns
β to save, run add_new_from_columns
β
added 1 record with Feature.name for columns: ['technique']
β 2 non-validated categories are not saved in Feature.name: ['nFeature_HTO', 'nCount_HTO']!
β to lookup categories, use lookup().columns
β to save, run add_new_from_columns
β 3 non-validated categories are not saved in Feature.name: ['percent.mito', 'nCount_RNA', 'nFeature_RNA']!
β to lookup categories, use lookup().columns
β to save, run add_new_from_columns
β 2 non-validated categories are not saved in Feature.name: ['nCount_ADT', 'nFeature_ADT']!
β to lookup categories, use lookup().columns
β to save, run add_new_from_columns
β
added 100 records from public with Gene.symbol for var_index: ['SH2D6', 'MEF2C-AS2', 'ARHGAP26-AS1', 'GABRA1', 'H4C12', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'SPACA1', 'VNN1', 'CTAGE15', 'CTAGE15', 'PFKFB1', 'TRPC5', 'RBPMS-AS1', 'CA8', 'CSMD3', 'ZNF483', 'AK8', 'TMEM72-AS1', 'ARAP1-AS2', 'CRYAB', 'DNAI7', 'HOXC-AS2', 'LRRIQ1', 'TUBA3C', 'MYO16', 'FSD2', 'CERS3', 'CDH8', 'CLEC18C', 'CTRB2', 'CTRB2', 'LGALS9C', 'LGALS9C', 'CRYBA1', 'RPRML', 'COL5A3', 'HPN', 'NPHS1', 'MIA', 'TULP2', 'NUCB1-AS1', 'LARGE1', 'AP4B1-AS1', 'NBPF15', 'CCDC185', 'IBA57-DT', 'ANKRD53', 'LRP1B', 'ASIC4', 'MST1R', 'THPO', 'NWD2', 'FTMT', 'PCDHB11', 'PCDHB11', 'TIMD4', 'PACSIN1', 'TRDN', 'XG', 'LINC02912', 'DPYSL4', 'RPS6KB2-AS1', 'C11orf87', 'DUOX1', 'AIPL1', 'TBC1D3G', 'TBC1D3G', 'EFCAB3', 'RIPOR3', 'TUBB1', 'ADORA2A', 'PLA2G2A', 'MKNK1-AS1', 'ITLN1', 'RNU6ATAC35P', 'OR1C1', 'PLGLB2', 'LXN', 'UTS2B', 'ADCY2', 'PCDHGA7', 'PXDNL', 'TCF24', 'SLC46A2', 'AMBP', 'TPH2', 'LINC02914', 'TEKT5', 'SMCR5', 'GRAPL', 'MIR451B', 'L3MBTL4', 'MYO18B', 'TMPRSS3']
β 84 non-validated categories are not saved in Gene.symbol: ['RP5-827C21.6', 'XX-CR54.1', 'RP11-379B18.5', 'RP11-778D9.12', 'RP11-703G6.1', 'AC005150.1', 'RP11-717H13.1', 'CTC-498J12.1', 'RP11-524H19.2', 'AC006042.7', 'AC002066.1', 'AC073934.6', 'RP11-268G12.1', 'U52111.14', 'RP11-235C23.5', 'RP11-12J10.3', 'RP11-324E6.9', 'RP11-187A9.3', 'RP11-365N19.2', 'RP11-346D14.1', 'RP11-265N6.2', 'CTD-3065B20.2', 'RP11-304L19.11', 'AC026471.6', 'AC091132.1', 'RP11-138C9.1', 'RP11-75C10.9', 'RP11-835E18.5', 'RP11-760N9.1', 'RP11-17J14.2', 'CTD-3193O13.8', 'AC004019.13', 'RP11-465N4.4', 'RP11-434D9.1', 'RP11-325L7.1', 'RP11-134K13.4', 'RP5-855F16.1', 'RP3-327A19.5', 'RP11-546K22.3', 'RP11-473O4.4', 'RP13-582O9.7', 'RP11-12D24.10', 'RP11-120C12.3', 'RP11-80H5.7', 'RP11-496I9.1', 'AP000442.4', 'RP11-867G23.3', 'RP11-113K21.4', 'RP11-745O10.2', 'RP11-335O4.3', 'RP11-408E5.4', 'AE000662.93', 'AL132989.1', 'RP11-973N13.4', 'RP11-982M15.2', 'RP11-32B5.7', 'RP1-1J6.2', 'RP3-337O18.9', 'AC011558.5', 'CTA-373H7.7', 'RP11-415J8.5', 'AC092687.5', 'RP11-532F6.4', 'RP11-146I2.1', 'RP11-624M8.1', 'RP11-219B4.7', 'RP11-9M16.2', 'RP11-247A12.8', 'RP11-536K7.5', 'RP11-186N15.3', 'RP11-152H18.3', 'CTD-3012A18.1', 'CTD-2562J17.2', 'RP11-136I14.5', 'RP11-110I1.14', 'RP11-2H8.2', 'RP11-307N16.6', 'RP11-3D4.2', 'RP11-231C14.4', 'CTB-134F13.1', 'RP11-403P17.5', 'RP11-214C8.2', 'CTB-31O20.9', 'AC092295.4']!
β to lookup categories, use lookup().var_index
β to save, run add_new_from_var_index
β
added 4 records from public with CellMarker.name for var_index: ['CD86', 'PDL1', 'PDL2', 'CD366']
β 12 non-validated categories are not saved in Feature.name: ['rep1-tx', 'rep1-ctrl', 'rep2-tx', 'rep2-ctrl', 'PDL1g1-tx', 'PDL1g1-ctrl', 'PDL1g2-tx', 'PDL1g2-ctrl', 'rep3-tx', 'rep3-ctrl', 'rep4-tx', 'rep4-ctrl']!
β to lookup categories, use lookup().var_index
β to save, run add_new_from_var_index
β 111 non-validated categories are not saved in Feature.name: ['eGFPg1', 'CUL3g1', 'CUL3g2', 'CUL3g3', 'CMTM6g1', 'CMTM6g2', 'CMTM6g3', 'NTg1', 'NTg2', 'NTg3', 'NTg4', 'NTg5', 'NTg7', 'PDL1g1', 'PDL1g2', 'PDL1g3', 'ATF2g1', 'ATF2g2', 'ATF2g3', 'ATF2g4', 'BRD4g1', 'BRD4g2', 'BRD4g3', 'BRD4g4', 'CAV1g1', 'CAV1g2', 'CAV1g3', 'CAV1g4', 'CD86g1', 'CD86g2', 'CD86g3', 'CD86g4', 'ETV7g1', 'ETV7g2', 'ETV7g3', 'ETV7g4', 'IFNGR1g1', 'IFNGR1g2', 'IFNGR1g3', 'IFNGR1g4', 'IFNGR2g1', 'IFNGR2g2', 'IFNGR2g3', 'IFNGR2g4', 'IRF1g1', 'IRF1g2', 'IRF1g3', 'IRF1g4', 'IRF7g1', 'IRF7g2', 'IRF7g3', 'IRF7g4', 'JAK2g1', 'JAK2g2', 'JAK2g3', 'JAK2g4', 'MARCH8g1', 'MARCH8g2', 'MARCH8g3', 'MARCH8g4', 'MYCg1', 'MYCg2', 'MYCg3', 'MYCg4', 'NFKBIAg1', 'NFKBIAg2', 'NFKBIAg3', 'NFKBIAg4', 'PDCD1LG2g1', 'PDCD1LG2g2', 'PDCD1LG2g3', 'PDCD1LG2g4', 'POU2F2g1', 'POU2F2g2', 'POU2F2g3', 'POU2F2g4', 'SMAD4g1', 'SMAD4g2', 'SMAD4g3', 'SMAD4g4', 'SPI1g1', 'SPI1g2', 'SPI1g3', 'SPI1g4', 'STAT1g1', 'STAT1g2', 'STAT1g3', 'STAT1g4', 'STAT2g1', 'STAT2g2', 'STAT2g3', 'STAT2g4', 'STAT3g1', 'STAT3g2', 'STAT3g3', 'STAT3g4', 'STAT5Ag1', 'STAT5Ag2', 'STAT5Ag3', 'STAT5Ag4', 'TNFRSF14g1', 'TNFRSF14g2', 'TNFRSF14g3', 'TNFRSF14g4', 'UBE2L6g1', 'UBE2L6g2', 'UBE2L6g3', 'UBE2L6g4', 'NTg8', 'NTg9', 'NTg10']!
β to lookup categories, use lookup().var_index
β to save, run add_new_from_var_index
# add new gene symbols from the ['rna'].var.index
annotate.add_new_from_var_index("rna")
# add new categories from the hto and gdo var.index
annotate.add_new_from_var_index("hto")
annotate.add_new_from_var_index("gdo")
β
added 84 records with Gene.symbol for var_index: ['RP5-827C21.6', 'XX-CR54.1', 'RP11-379B18.5', 'RP11-778D9.12', 'RP11-703G6.1', 'AC005150.1', 'RP11-717H13.1', 'CTC-498J12.1', 'RP11-524H19.2', 'AC006042.7', 'AC002066.1', 'AC073934.6', 'RP11-268G12.1', 'U52111.14', 'RP11-235C23.5', 'RP11-12J10.3', 'RP11-324E6.9', 'RP11-187A9.3', 'RP11-365N19.2', 'RP11-346D14.1', 'RP11-265N6.2', 'CTD-3065B20.2', 'RP11-304L19.11', 'AC026471.6', 'AC091132.1', 'RP11-138C9.1', 'RP11-75C10.9', 'RP11-835E18.5', 'RP11-760N9.1', 'RP11-17J14.2', 'CTD-3193O13.8', 'AC004019.13', 'RP11-465N4.4', 'RP11-434D9.1', 'RP11-325L7.1', 'RP11-134K13.4', 'RP5-855F16.1', 'RP3-327A19.5', 'RP11-546K22.3', 'RP11-473O4.4', 'RP13-582O9.7', 'RP11-12D24.10', 'RP11-120C12.3', 'RP11-80H5.7', 'RP11-496I9.1', 'AP000442.4', 'RP11-867G23.3', 'RP11-113K21.4', 'RP11-745O10.2', 'RP11-335O4.3', 'RP11-408E5.4', 'AE000662.93', 'AL132989.1', 'RP11-973N13.4', 'RP11-982M15.2', 'RP11-32B5.7', 'RP1-1J6.2', 'RP3-337O18.9', 'AC011558.5', 'CTA-373H7.7', 'RP11-415J8.5', 'AC092687.5', 'RP11-532F6.4', 'RP11-146I2.1', 'RP11-624M8.1', 'RP11-219B4.7', 'RP11-9M16.2', 'RP11-247A12.8', 'RP11-536K7.5', 'RP11-186N15.3', 'RP11-152H18.3', 'CTD-3012A18.1', 'CTD-2562J17.2', 'RP11-136I14.5', 'RP11-110I1.14', 'RP11-2H8.2', 'RP11-307N16.6', 'RP11-3D4.2', 'RP11-231C14.4', 'CTB-134F13.1', 'RP11-403P17.5', 'RP11-214C8.2', 'CTB-31O20.9', 'AC092295.4']
β
added 12 records with Feature.name for var_index: ['rep1-tx', 'rep1-ctrl', 'rep2-tx', 'rep2-ctrl', 'PDL1g1-tx', 'PDL1g1-ctrl', 'PDL1g2-tx', 'PDL1g2-ctrl', 'rep3-tx', 'rep3-ctrl', 'rep4-tx', 'rep4-ctrl']
β
added 111 records with Feature.name for var_index: ['eGFPg1', 'CUL3g1', 'CUL3g2', 'CUL3g3', 'CMTM6g1', 'CMTM6g2', 'CMTM6g3', 'NTg1', 'NTg2', 'NTg3', 'NTg4', 'NTg5', 'NTg7', 'PDL1g1', 'PDL1g2', 'PDL1g3', 'ATF2g1', 'ATF2g2', 'ATF2g3', 'ATF2g4', 'BRD4g1', 'BRD4g2', 'BRD4g3', 'BRD4g4', 'CAV1g1', 'CAV1g2', 'CAV1g3', 'CAV1g4', 'CD86g1', 'CD86g2', 'CD86g3', 'CD86g4', 'ETV7g1', 'ETV7g2', 'ETV7g3', 'ETV7g4', 'IFNGR1g1', 'IFNGR1g2', 'IFNGR1g3', 'IFNGR1g4', 'IFNGR2g1', 'IFNGR2g2', 'IFNGR2g3', 'IFNGR2g4', 'IRF1g1', 'IRF1g2', 'IRF1g3', 'IRF1g4', 'IRF7g1', 'IRF7g2', 'IRF7g3', 'IRF7g4', 'JAK2g1', 'JAK2g2', 'JAK2g3', 'JAK2g4', 'MARCH8g1', 'MARCH8g2', 'MARCH8g3', 'MARCH8g4', 'MYCg1', 'MYCg2', 'MYCg3', 'MYCg4', 'NFKBIAg1', 'NFKBIAg2', 'NFKBIAg3', 'NFKBIAg4', 'PDCD1LG2g1', 'PDCD1LG2g2', 'PDCD1LG2g3', 'PDCD1LG2g4', 'POU2F2g1', 'POU2F2g2', 'POU2F2g3', 'POU2F2g4', 'SMAD4g1', 'SMAD4g2', 'SMAD4g3', 'SMAD4g4', 'SPI1g1', 'SPI1g2', 'SPI1g3', 'SPI1g4', 'STAT1g1', 'STAT1g2', 'STAT1g3', 'STAT1g4', 'STAT2g1', 'STAT2g2', 'STAT2g3', 'STAT2g4', 'STAT3g1', 'STAT3g2', 'STAT3g3', 'STAT3g4', 'STAT5Ag1', 'STAT5Ag2', 'STAT5Ag3', 'STAT5Ag4', 'TNFRSF14g1', 'TNFRSF14g2', 'TNFRSF14g3', 'TNFRSF14g4', 'UBE2L6g1', 'UBE2L6g2', 'UBE2L6g3', 'UBE2L6g4', 'NTg8', 'NTg9', 'NTg10']
# optional: register additional columns we'd like to annotate
annotate.add_new_from_columns(modality="rna")
annotate.add_new_from_columns(modality="adt")
annotate.add_new_from_columns(modality="hto")
annotate.add_new_from_columns(modality="gdo")
β
added 3 records with Feature.name for rna obs columns: ['nCount_RNA', 'nFeature_RNA', 'percent.mito']
β
added 2 records with Feature.name for adt obs columns: ['nCount_ADT', 'nFeature_ADT']
β
added 2 records with Feature.name for hto obs columns: ['nCount_HTO', 'nFeature_HTO']
β
added 1 record with Feature.name for gdo obs columns: ['nCount_GDO']
annotate.validate()
β
rna_var_index is validated against Gene.symbol
β
adt_var_index is validated against CellMarker.name
β
hto_var_index is validated against Feature.name
β
gdo_var_index is validated against Feature.name
π‘ mapping perturbation on ULabel.name
β 2 terms are not validated: 'Perturbed', 'NT'
β save terms via .add_new_from('perturbation')
π‘ mapping replicate on ULabel.name
β 3 terms are not validated: 'rep3', 'rep1', 'rep2'
β save terms via .add_new_from('replicate')
π‘ mapping technique on ExperimentalFactor.name
β found 1 terms validated terms: ['cell hashing']
β save terms via .add_validated_from('technique')
β
technique is validated against ExperimentalFactor.name
False
# add validated and new categories
annotate.add_new_from("perturbation")
annotate.add_new_from("replicate")
annotate.add_validated_from("technique", modality="hto")
β
added 2 records with ULabel.name for perturbation: ['Perturbed', 'NT']
β
added 3 records with ULabel.name for replicate: ['rep3', 'rep1', 'rep2']
β
added 1 record from public with ExperimentalFactor.name for technique: ['cell hashing']
annotate.validate()
β
rna_var_index is validated against Gene.symbol
β
adt_var_index is validated against CellMarker.name
β
hto_var_index is validated against Feature.name
β
gdo_var_index is validated against Feature.name
β
perturbation is validated against ULabel.name
β
replicate is validated against ULabel.name
β
technique is validated against ExperimentalFactor.name
True
Register and annotate artifact#
artifact = annotate.save_artifact(description="Sub-sampled MuData from Papalexi21")
π‘ path content will be copied to default storage upon `save()` with key `None` ('.lamindb/yaCRqkoL4LsoNUIGajIN.h5mu')
β
storing artifact 'yaCRqkoL4LsoNUIGajIN' at '/home/runner/work/lamin-usecases/lamin-usecases/docs/test-multimodal/.lamindb/yaCRqkoL4LsoNUIGajIN.h5mu'
β
loaded 2 Feature records matching name: 'perturbation', 'replicate'
β did not create Feature records for 45 non-validated names: 'adt:G2M.Score', 'adt:HTO_classification', 'adt:MULTI_ID', 'adt:NT', 'adt:Phase', 'adt:S.Score', 'adt:gene_target', 'adt:guide_ID', 'adt:nCount_ADT', 'adt:nFeature_ADT', 'adt:orig.ident', 'adt:percent.mito', 'adt:perturbation', 'adt:replicate', 'gdo:G2M.Score', 'gdo:HTO_classification', 'gdo:MULTI_ID', 'gdo:NT', 'gdo:Phase', 'gdo:S.Score', ...
π‘ parsing feature names of X stored in slot 'var'
β
161 terms (93.10%) are validated for symbol
β 12 terms (6.90%) are not validated for symbol: CTC-467M3.1, HIST1H4K, CASC1, LARGE, NBPF16, C1orf65, IBA57-AS1, KIAA1239, TMEM75, AP003419.16, FAM65C, C14orf177
β
linked: FeatureSet(uid='SRF8MYIufGUgsj9AB3xK', n=172, type='number', registry='bionty.Gene', hash='y1Qo897t3gp9S3it4dz6', created_by_id=1)
π‘ parsing feature names of slot 'obs'
β
3 terms (100.00%) are validated for name
β
linked: FeatureSet(uid='M0LghFmEP5wBHNvD9sNa', n=3, registry='core.Feature', hash='457_5CReuYVQ2edcpUnN', created_by_id=1)
π‘ parsing feature names of X stored in slot 'var'
β
4 terms (100.00%) are validated for name
β
linked: FeatureSet(uid='rArSW98rnZjZRtQiyiZt', n=4, type='number', registry='bionty.CellMarker', hash='o8EDT805HnP0Fmk4uZ9e', created_by_id=1)
π‘ parsing feature names of slot 'obs'
β
2 terms (100.00%) are validated for name
β
linked: FeatureSet(uid='pgfMWKv6iRUmAgzHSgwl', n=2, registry='core.Feature', hash='hrXuonzbBQFHpbGBHyIT', created_by_id=1)
π‘ parsing feature names of X stored in slot 'var'
β
12 terms (100.00%) are validated for name
β
linked: FeatureSet(uid='jngfHbpT3SVlIxRpCzMe', n=12, type='number', registry='core.Feature', hash='gM2aYFz79jZyFoAMczlw', created_by_id=1)
π‘ parsing feature names of slot 'obs'
β
3 terms (100.00%) are validated for name
β
linked: FeatureSet(uid='4yXtCccFxQ1P5WxGyplD', n=3, registry='core.Feature', hash='qYVwM6D5DLp_EPClH82H', created_by_id=1)
π‘ parsing feature names of X stored in slot 'var'
β
111 terms (100.00%) are validated for name
β
linked: FeatureSet(uid='SJFpRy7mS75gzVnSkHsS', n=111, type='number', registry='core.Feature', hash='x-Nv5rj1zxDcBqxH5byT', created_by_id=1)
π‘ parsing feature names of slot 'obs'
β
1 term (100.00%) is validated for name
β
linked: FeatureSet(uid='vledpLXJlYgu4AodoBLy', n=1, registry='core.Feature', hash='afyby-cpdP9M-2V9kbsa', created_by_id=1)
β
saved 9 feature sets for slots: 'obs','['rna'].var','['rna'].obs','['adt'].var','['adt'].obs','['hto'].var','['hto'].obs','['gdo'].var','['gdo'].obs'
β
linked feature 'perturbation' to registry 'core.ULabel'
β
linked feature 'replicate' to registry 'core.ULabel'
β
linked feature 'technique' to registry 'bionty.ExperimentalFactor'
artifact.describe()
Artifact(uid='yaCRqkoL4LsoNUIGajIN', suffix='.h5mu', accessor='MuData', description='Sub-sampled MuData from Papalexi21', size=545560, hash='252nP4Nu-pLH37ZgQQ_tOw', hash_type='md5', n_observations=200, visibility=1, key_is_virtual=True, updated_at=2024-04-10 17:55:49 UTC)
Provenance:
π storage: Storage(uid='5h5Ek76O', root='/home/runner/work/lamin-usecases/lamin-usecases/docs/test-multimodal', type='local', updated_at=2024-04-10 17:55:31 UTC, created_by_id=1)
π transform: Transform(uid='yMWSFirS6qv26K79', name='Multi-modal', key='multimodal', version='0', type='notebook', updated_at=2024-04-10 17:55:35 UTC, created_by_id=1)
π run: Run(uid='swFI1tAcGRiQmOU9wo4g', started_at=2024-04-10 17:55:35 UTC, is_consecutive=True, transform_id=1, created_by_id=1)
π created_by: User(uid='DzTjkKse', handle='testuser1', name='Test User1', updated_at=2024-04-10 17:55:31 UTC)
Features:
obs: FeatureSet(uid='HCir8DFdI1HkGL95bHId', n=2, registry='core.Feature', hash='sS83bkY5Ps3R3UO9B-y0', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
π perturbation (2, core.ULabel): 'Perturbed', 'NT'
π replicate (3, core.ULabel): 'rep3', 'rep1', 'rep2'
['rna'].var: FeatureSet(uid='SRF8MYIufGUgsj9AB3xK', n=172, type='number', registry='bionty.Gene', hash='y1Qo897t3gp9S3it4dz6', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
'SH2D6', 'ARHGAP26-AS1', 'GABRA1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'HLA-DQB1-AS1', 'SPACA1', 'VNN1', 'CTAGE15', 'CTAGE15', 'PFKFB1', 'TRPC5', 'RBPMS-AS1', 'CA8', 'CSMD3', 'ZNF483', ...
['rna'].obs: FeatureSet(uid='M0LghFmEP5wBHNvD9sNa', n=3, registry='core.Feature', hash='457_5CReuYVQ2edcpUnN', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
nFeature_RNA (number)
percent.mito (number)
nCount_RNA (number)
['adt'].var: FeatureSet(uid='rArSW98rnZjZRtQiyiZt', n=4, type='number', registry='bionty.CellMarker', hash='o8EDT805HnP0Fmk4uZ9e', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
'CD86', 'PDL1', 'PDL2', 'CD366'
['adt'].obs: FeatureSet(uid='pgfMWKv6iRUmAgzHSgwl', n=2, registry='core.Feature', hash='hrXuonzbBQFHpbGBHyIT', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
nCount_ADT (number)
nFeature_ADT (number)
['hto'].var: FeatureSet(uid='jngfHbpT3SVlIxRpCzMe', n=12, type='number', registry='core.Feature', hash='gM2aYFz79jZyFoAMczlw', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
rep1-tx (category)
rep1-ctrl (category)
rep2-tx (category)
rep2-ctrl (category)
PDL1g1-tx (category)
PDL1g1-ctrl (category)
PDL1g2-tx (category)
PDL1g2-ctrl (category)
rep3-tx (category)
rep3-ctrl (category)
rep4-tx (category)
rep4-ctrl (category)
['hto'].obs: FeatureSet(uid='4yXtCccFxQ1P5WxGyplD', n=3, registry='core.Feature', hash='qYVwM6D5DLp_EPClH82H', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
π technique (1, bionty.ExperimentalFactor): 'cell hashing'
nCount_HTO (number)
nFeature_HTO (number)
['gdo'].var: FeatureSet(uid='SJFpRy7mS75gzVnSkHsS', n=111, type='number', registry='core.Feature', hash='x-Nv5rj1zxDcBqxH5byT', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
eGFPg1 (category)
CUL3g1 (category)
CUL3g2 (category)
CUL3g3 (category)
CMTM6g1 (category)
CMTM6g2 (category)
CMTM6g3 (category)
NTg1 (category)
NTg2 (category)
NTg3 (category)
NTg4 (category)
NTg5 (category)
NTg7 (category)
PDL1g1 (category)
PDL1g2 (category)
PDL1g3 (category)
ATF2g1 (category)
ATF2g2 (category)
ATF2g3 (category)
ATF2g4 (category)
BRD4g1 (category)
BRD4g2 (category)
BRD4g3 (category)
BRD4g4 (category)
CAV1g1 (category)
CAV1g2 (category)
CAV1g3 (category)
CAV1g4 (category)
CD86g1 (category)
CD86g2 (category)
CD86g3 (category)
CD86g4 (category)
ETV7g1 (category)
ETV7g2 (category)
ETV7g3 (category)
ETV7g4 (category)
IFNGR1g1 (category)
IFNGR1g2 (category)
IFNGR1g3 (category)
IFNGR1g4 (category)
IFNGR2g1 (category)
IFNGR2g2 (category)
IFNGR2g3 (category)
IFNGR2g4 (category)
IRF1g1 (category)
IRF1g2 (category)
IRF1g3 (category)
IRF1g4 (category)
IRF7g1 (category)
IRF7g2 (category)
IRF7g3 (category)
IRF7g4 (category)
JAK2g1 (category)
JAK2g2 (category)
JAK2g3 (category)
JAK2g4 (category)
MARCH8g1 (category)
MARCH8g2 (category)
MARCH8g3 (category)
MARCH8g4 (category)
MYCg1 (category)
MYCg2 (category)
MYCg3 (category)
MYCg4 (category)
NFKBIAg1 (category)
NFKBIAg2 (category)
NFKBIAg3 (category)
NFKBIAg4 (category)
PDCD1LG2g1 (category)
PDCD1LG2g2 (category)
PDCD1LG2g3 (category)
PDCD1LG2g4 (category)
POU2F2g1 (category)
POU2F2g2 (category)
POU2F2g3 (category)
POU2F2g4 (category)
SMAD4g1 (category)
SMAD4g2 (category)
SMAD4g3 (category)
SMAD4g4 (category)
SPI1g1 (category)
SPI1g2 (category)
SPI1g3 (category)
SPI1g4 (category)
STAT1g1 (category)
STAT1g2 (category)
STAT1g3 (category)
STAT1g4 (category)
STAT2g1 (category)
STAT2g2 (category)
STAT2g3 (category)
STAT2g4 (category)
STAT3g1 (category)
STAT3g2 (category)
STAT3g3 (category)
STAT3g4 (category)
STAT5Ag1 (category)
STAT5Ag2 (category)
STAT5Ag3 (category)
STAT5Ag4 (category)
TNFRSF14g1 (category)
TNFRSF14g2 (category)
TNFRSF14g3 (category)
TNFRSF14g4 (category)
UBE2L6g1 (category)
UBE2L6g2 (category)
UBE2L6g3 (category)
UBE2L6g4 (category)
NTg8 (category)
NTg9 (category)
NTg10 (category)
['gdo'].obs: FeatureSet(uid='vledpLXJlYgu4AodoBLy', n=1, registry='core.Feature', hash='afyby-cpdP9M-2V9kbsa', updated_at=2024-04-10 17:55:49 UTC, created_by_id=1)
nCount_GDO (number)
Labels:
π experimental_factors (1, bionty.ExperimentalFactor): 'cell hashing'
π ulabels (5, core.ULabel): 'Perturbed', 'NT', 'rep3', 'rep1', 'rep2'
artifact.view_lineage()
# clean up test instance
!lamin delete --force test-multimodal
!rm -r test-multimodal
Show code cell output
π‘ deleting instance testuser1/test-multimodal
β manually delete your stored data: /home/runner/work/lamin-usecases/lamin-usecases/docs/test-multimodal