前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >🤩 Monocle 3 | 太牛了!单细胞必学R包!~(八)(数据映射比较)

🤩 Monocle 3 | 太牛了!单细胞必学R包!~(八)(数据映射比较)

作者头像
生信漫卷
发布2023-12-26 14:47:15
1551
发布2023-12-26 14:47:15
举报

1写在前面

今天出了半天门诊,什么病都有,还是挺累的。🙃

还有个病人状态不行转去了ICU。🫠

人生无常,大肠包小肠啊。😧


今天我们讲讲如何将查询数据集映射到参考数据集上。🤩

共嵌入Co-embedding)用于比较相似的数据集,以识别相似性和差异性,并在细胞间传输注释。🤓

2用到的包

代码语言:javascript
复制
rm(list = ls())
library(tidyverse)
library(monocle3)
library(Matrix)

3示例数据

加载参考数据集。😘

代码语言:javascript
复制
matrix_ref <- readMM(("./cao.mouse_embryo.sample.mtx.gz"))
cell_ann_ref <- read.csv("./cao.mouse_embryo.sample.coldata.txt.gz", text=T, sep='\t')
gene_ann_ref <- read.csv("./cao.mouse_embryo.sample.rowdata.txt.gz", text=T, sep='\t')

cds_ref <- new_cell_data_set(matrix_ref,
                             cell_metadata = cell_ann_ref,
                             gene_metadata = gene_ann_ref)

加载查询数据集。🙊

代码语言:javascript
复制
matrix_qry <- readMM("./srivatsan.mouse_embryo_scispace.sample.mtx.gz")
cell_ann_qry <- read.csv("./srivatsan.mouse_embryo_scispace.sample.coldata.txt.gz", text=T, sep='\t')
gene_ann_qry <- read.csv("./srivatsan.mouse_embryo_scispace.sample.rowdata.txt.gz", text=T, sep='\t')

cds_qry <- new_cell_data_set(matrix_qry,
                             cell_metadata = cell_ann_qry,
                             gene_metadata = gene_ann_qry)

4删除不在两个数据集中的基因

比对的话必须是具有相同的基因的,所以不是交集基因的部分需要删除掉。😀

参考数据集基因。🧬

代码语言:javascript
复制
genes_ref <- row.names(cds_ref)

查询数据集基因。🧬

代码语言:javascript
复制
genes_qry <- row.names(cds_qry)

交集基因。🧬

代码语言:javascript
复制
genes_shared <- intersect(genes_ref, genes_qry)

删除非交集基因。🧬

代码语言:javascript
复制
cds_ref <- cds_ref[genes_shared,]
cds_qry <- cds_qry[genes_shared,]

5使用共同UMI cutoff过滤

接着我们需要对上面的data用一下共同的UMI cutoff来过滤细胞。🧫

经过下面的计算,我们可以找到cutoff1000。😬

代码语言:javascript
复制
numi_ref <- min(colData(cds_ref)[['Total_mRNAs']])

numi_qry <- min(colData(cds_qry)[['n.umi']])

6估计size factors

代码语言:javascript
复制
cds_ref <- estimate_size_factors(cds_ref)
cds_qry <- estimate_size_factors(cds_qry)

7处理参考数据集

这里我们把build_nn_index设为T,来进行降维建模。😏

代码语言:javascript
复制
cds_ref <- preprocess_cds(cds_ref, num_dim=100)
cds_ref <- reduce_dimension(cds_ref, build_nn_index=T)

保存PCAUMAP transform models,一会会用到。🥳

代码语言:javascript
复制
save_transform_models(cds_ref, 'cds_ref_test_models')

8将查询数据集映射到参考数据集上

把参考transform models加入到查询数据集的cds里。😘

代码语言:javascript
复制
cds_qry <- load_transform_models(cds_qry, 'cds_ref_test_models')

接着我们应用一下。😂

代码语言:javascript
复制
cds_qry <- preprocess_transform(cds_qry)
cds_qry <- reduce_dimension_transform(cds_qry)

9最终可视化

先标记一下不同的cds。😘

代码语言:javascript
复制
colData(cds_ref)[['data_set']] <- 'reference'
colData(cds_qry)[['data_set']] <- 'query'

合并两个cds。🙊

代码语言:javascript
复制
cds_combined <- combine_cds(list(cds_ref, cds_qry),  
                            keep_all_genes=T, 
                            cell_names_unique=T, 
                            keep_reduced_dims=T)


代码语言:javascript
复制
plot_cells(cds_combined, color_cells_by='data_set')

10将参考数据的细胞注释映射到查询数据

代码语言:javascript
复制
cds_qry_lab_xfr <- transfer_cell_labels(cds_qry, 
                                        reduction_method='UMAP', 
                                        ref_coldata=colData(cds_ref), 
                                        ref_column_name='Main_cell_type', 
                                        query_column_name='cell_type_xfr', 
                                        transform_models_dir='cds_ref_test_models')

cds_qry_lab_fix <- fix_missing_cell_labels(cds_qry_lab_xfr, 
                                           reduction_method='UMAP', 
                                           from_column_name='cell_type_xfr', 
                                           to_column_name='cell_type_fix')

最后祝大家早日不卷!~


点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信漫卷 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
  • 2用到的包
  • 3示例数据
  • 4删除不在两个数据集中的基因
  • 5使用共同UMI cutoff过滤
  • 6估计size factors
  • 7处理参考数据集
  • 8将查询数据集映射到参考数据集上
  • 9最终可视化
  • 10将参考数据的细胞注释映射到查询数据
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档