美文网首页
模式物种和非模式物种名称的替换

模式物种和非模式物种名称的替换

作者: 三点水的番薯 | 来源:发表于2022-03-31 14:50 被阅读0次

之前通过Orthofinder进行了直系同源物种的比较生成了一个草鱼和人类的同源性比较高的基因的表。现在需要把草鱼单细胞表达矩阵中草鱼的基因替换成这个表中的人类的基因。

1. 生成单细胞的表达矩阵

读入之前处理好的单细胞rds文件
ls <- GetAssayData(object = scRNA, slot = "counts")
write.csv(ls,file = 'hk_expression.csv')

2. 在linux中操作

#先取出直系同源列表中的草鱼的基因
awk -F ' ' '{print $1}' human_grasscarp_orthofinder.txt > HomologousGene
#单细胞表达矩阵和Orthofinder生成的直系同源文件的比对,需要找到哪些基因存在哪些基因不存在
grep -f HomologousGene hk_expression.csv | tr ',' '\t' >hgrasscarp_conhk
#提取单细胞中同源性高的基因赋予人类基因名
awk -F ',' '{print $1}' hgrasscarp_conhk > gene
#将表达矩阵中的草鱼基因名替换为人类的基因名
awk -F ',' '{print $2}' gene.csv |paste - hgrasscarp_conhk |awk '{$2 = "";print $0}'>hgrass_conhk
vim hgrass_conhk
:%s/\r//g  #(删除行尾的^M)
#加入细胞名称(提取原表达矩阵的第一行粘贴到hgrass_conhk)
cat hk_expression.csv | head -n 1 > name

3.再导入R中

hk <- read.table("~/database/hugrass/hgrass_conhk.csv",sep = " ",fill = T)
# 删除第二列
hk <- hk[,-2]
# 设置行名并且去重
nams <- hk[,1]
rownames(hk) = make.names(nams, unique=TRUE)
hk <- hk[,-1]
#添加列名
names <- read.table("~/database/hugrass/name.csv",sep = ",")
names <- names[,-1]
nams <- names[1,]
colnames(hk)=nams

这样一个和人同源性高基因的草鱼单细胞转录组矩阵就构建好了

4. 通过表达矩阵创建Seruat对象

hk <- CreateSeuratObject(hk, project = "Grasscarp")

相关文章

网友评论

      本文标题:模式物种和非模式物种名称的替换

      本文链接:https://www.haomeiwen.com/subject/wztddrtx.html