scRNA-seq | 吐血整理的单细胞入门教程(ID转换)(六)

1写在前面

当我们拿到表达矩阵后,需要对ID进行一个转换,转换为大家可以看懂的gene symbol
本期我们介绍一下如何转换,以及其中的一个大坑线粒体基因!!!😤

2用到的包

rm(list = ls())
library(tidyverse)
library(scater)
library(SingleCellExperiment)
library(AnnotationDbi)
library(org.Hs.eg.db)
library(EnsDb.Hsapiens.v86)

3示例数据

这里我们用一下之前介绍的counts文件和annotation文件,然后通过SingleCellExperiment创建SingleCellExperiment格式的文件。

3.1 读入数据

counts <- read.delim("./molecules.txt", row.names = 1)
annotation <- read.delim("./annotation.txt", stringsAsFactors = T)
counts
counts
annotation
annotation

3.2 创建SingleCellExperiment对象

这个dataset不仅使用了unique molecular identifiers(UMIs),还使用了ERCC spike-ins但是!现在大部分droplet为基础的protocol已经不使用ERCC了,只在一些低通量的方法中作为control使用。

# 注意assays必须是matrix
umi <- SingleCellExperiment(
assays = list(counts = as.matrix(counts)),
colData = annotation)
alt

我们把ERCC特征提取出来存到另一个地方,其实也用不到。

altExp(umi,"ERCC") <- umi[grep("^ERCC-",rownames(umi)), ]
umi <- umi[grep("^ERCC-",rownames(umi),invert = T), ]

4ID转Symbol

4.1 ID2SYMBOL

我们现在把scRNA-seq后注释的ENSEMBL转为SYMBOL

gene_names <- mapIds(org.Hs.eg.db, 
keys = rownames(umi), # the keys to select records for from the database.
keytype="ENSEMBL",
columns="SYMBOL", # the columns or kinds of things that can be retrieved from the database.
column="SYMBOL" # the column to search on (for mapIds).
)

4.2 看看多少转换成功了吧

rowData(umi)$SYMBOL <- gene_names
table(is.na(gene_names))
alt

4.3 去除转换失败的基因

umi <- umi[! is.na(rowData(umi)$SYMBOL),]

4.4 看一下有没有线粒体基因

很遗憾我们的data里并没有线粒体基因,但这显然是不正确的。🤒

grep("^MT-",rowData(umi)$SYMBOL,value = T)
alt

4.5 看一下别的线粒体基因

这里我们看下不含MT-的线粒基因有没有,如ATP8,又叫MT-ATP8

grep("ATP8",rowData(umi)$SYMBOL,value = T)
alt

hhhhhhhh,神奇了,居然是有的!!!!!解决方案往下看吧~


4.6 解决方案

问题就出在org.Hs.eg.db身上了。😂
这里推荐小伙伴们选择EnsDb.Hsapiens.v86进行转换。🫠
这里我们可以发现有13线粒体上的编码基因。

ensdb_genes <- genes(EnsDb.Hsapiens.v86)
MT_names <- ensdb_genes[seqnames(ensdb_genes) == "MT"]$gene_id
is_mito <- rownames(umi) %in% MT_names
table(is_mito)
alt

EnsDb.Hsapiens.v86进行ID转换 !~

gene_names <- mapIds(EnsDb.Hsapiens.v86, 
keys = rownames(umi), # the keys to select records for from the database.
keytype="GENEID",
column="SYMBOL" # the column to search on (for mapIds).
)

rowData(umi)$SYMBOL <- gene_names

table(is.na(gene_names))

umi <- umi[! is.na(rowData(umi)$SYMBOL),]

我们再看一下是否有线粒体基因吧~

grep("^MT-",rowData(umi)$SYMBOL,value = T)
alt

Perfect! 13线粒体基因。🥰🥳

5线粒体基因很重要吗?

是的,非常重要,在scRNA-seq中,线粒体基因高表达往往达标细胞状态不佳,在数据分析中应该剔除这类细胞,具体的操作我们在后面的教程中继续分享吧。🫵


最后祝大家早日不卷!~

需要示例数据的小伙伴,回复scRNAseq获取吧!

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

本文由 mdnice 多平台发布

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
dnbelab_c_series_scrna-analysis-software是一款开源且灵活的渠道来分析dnbela(即单细胞RNA测序数据)。这个软件具有以下特点和优势。 首先,这是一个开源软件,意味着用户可以免费获取源代码并进行修改和定制。开源的特性使得该软件的功能可以被扩展和改进,更好地满足用户的需求。同时,开源软件也便于用户之间的分享和协作,在分析dnbela的过程中,可以更好地利用集体智慧,共同提高分析的效率和准确性。 其次,这个软件具有灵活性。灵活性体现在对不同种类的dnbela数据的适应能力,以及对不同分析方法和流程的支持。由于单细胞RNA测序数据的特殊性,不同实验室或研究者可能会有不同的分析需求和偏好。dnbelab_c_series_scrna-analysis-software允许用户根据实际情况,选择适合自己的分析方法和流程,从而更好地满足个性化的需求。 此外,这个软件还具有友好的用户界面和易于使用的功能。用户可以通过简单的操作,完成从数据导入到结果呈现的整个过程。同时,软件提供了丰富的可视化功能,方便用户对分析结果进行直观的理解和展示。这些特性使得分析dnbela的过程变得更加高效和便捷。 总之,dnbelab_c_series_scrna-analysis-software是一款开源、灵活的渠道来分析dnbela。它的特点和优势包括开源的特性、灵活适应不同数据和分析方法的能力,以及友好的用户界面和易于使用的功能。这款软件为研究者在单细胞RNA测序数据分析方面提供了一个强大和便捷的工具。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值