01.infercnv-区分肿瘤样本中的正常上皮细胞-infercnv运行


参考文献Therapy-Induced Evolution of Human Lung Cancer Revealed by Single-Cell RNA Sequencing

Therapy-Induced Evolution of Human Lung Cancer Revealed by Single-Cell RNA Sequencing

改进:根据infercnv官方解释文档,建议以同种类型细胞进行推断。因此改为以正常样本来源ep插入以进行分析。

分析流程

  1. 提取seurat对象中的表达矩阵(infercnv已支持稀松矩阵导入)
  2. 构建基因组参考文件
  3. 提取分组信息文件
  • 拟采用将对照组2/3细胞作为infercnv ref组
  • 余下1/3对照组细胞掺入实验组以供后续聚类判断肿瘤样本中的正常上皮细胞

4.将上述构建的3个文件作为infercnv输入文件构建infercnv对象并进行infercnv分析

library(devtools)
library(phylogram)
library(gridExtra)
library(grid)
require(dendextend)
require(ggthemes)
library(tidyverse)
library(Seurat)
library(miscTools)
library(dendextend)
library(ggthemes)
load(file = "data/4.ep-noann.Rdata") #加载上皮细胞seurat文件,已提前聚类分群
table(sce$orig.ident)
dat=GetAssayData(sce,
                 slot='counts',assay='RNA')   #提取表达矩阵
dat[1:4,1:4]
groupinfo=data.frame(v1=colnames(dat),
                     v2=sce$orig.ident )  #这里以样品编号作为分组信息
head(groupinfo)
groupinfo$v2=as.character(groupinfo$v2)  #将样品编号factor转为字符串以供下游处理
#从所有正常组织来源上皮细胞进行抽样
kp=sample(which(groupinfo$v2%in%c("LUNG_N01",   "LUNG_N06", "LUNG_N08",
                               "LUNG_N09",  "LUNG_N18", "LUNG_N19",
                               "LUNG_N20",  "LUNG_N28", "LUNG_N30",
                               "LUNG_N31"   ,"LUNG_N34")),1000)  #修改为正常样本编号,此处抽样1000个细胞
###修改抽样的上皮
groupinfo$v2[kp]<-"spike_normal_sample_ep"  #将抽样的细胞定义为插入的上皮组"spike_normal_sample_ep" 
###修改对照组
groupinfo$v2[groupinfo$v2%in%c("LUNG_N01",  "LUNG_N06", "LUNG_N08",
                  "LUNG_N09",   "LUNG_N18", "LUNG_N19",
                  "LUNG_N20",   "LUNG_N28", "LUNG_N30",
                  "LUNG_N31"    ,"LUNG_N34")]<-"normal_sample_ep"    ###将正常样品来源细胞改为"normal_sample_ep"后续作为inifercnv参考组
#修改癌症来源ep
groupinfo$v2[!groupinfo$v2%in%c("spike_normal_sample_ep","normal_sample_ep")]<-"tumor_sample_ep" #剩余细胞修改为肿瘤样本上皮细胞组"tumor_sample_ep" 
groupFiles='data/ep-infercnv.groupFiles.txt'
write.table(groupinfo,file = groupFiles,sep = '\t',
            quote = F,col.names = F,row.names = F)  ####输出最终的分组信息文件
# 构建基因组注释文件 
# library(devtools)
# install_github("jmzeng1314/AnnoProbe")
library(AnnoProbe)
geneInfor=annoGene(rownames(dat),
                   "SYMBOL",'human')
colnames(geneInfor)
head(geneInfor)
geneInfor=geneInfor[with(geneInfor,
                         order(chr, start)),c(1,4:6)]
geneInfor=geneInfor[!duplicated(geneInfor[,1]),]
length(unique(geneInfor[,1]))
head(geneInfor)
## 这里可以去除性染色体
# 也可以把染色体排序方式改变
dat=dat[rownames(dat) %in% geneInfor[,1],]
dat=dat[match( geneInfor[,1], rownames(dat) ),] 
dim(dat)
head(groupinfo)
dat[1:4,1:4]
table(groupinfo$v2)
head(groupinfo)

expFile='data/ep-infercnv.expFile.txt'
write.table(dat,file = expFile,sep = '\t',quote = F) #输出表达矩阵

geneFile='data/ep-infercnv.geneFile.txt'
write.table(geneInfor,file = geneFile,sep = '\t',
            quote = F,col.names = F,row.names = F)#输出基因组注释文件

infercnv对象构建

rm(list = ls())
gc()
options(stringsAsFactors = F)
library(Seurat)
library(gplots)
library(ggplot2)

expFile='data/ep-infercnv.expFile.txt' 
groupFiles='data/ep-infercnv.groupFiles.txt'  
geneFile='data/ep-infercnv.geneFile.txt'
library(infercnv)
infercnv_obj = CreateInfercnvObject(raw_counts_matrix=expFile,
                                    annotations_file=groupFiles,
                                    delim="\t",
                                    gene_order_file= geneFile,
                                    ref_group_names=c("normal_sample_ep"))  #构建infercnv对象

##保存infercnv输入对象###由于后续infercnv运行中可能会出现各种错误,为避免每次都需要重新构建,建议将infercnv对象保存下来后续可读取后直接用
save(infercnv_obj,file="data/5.infercnv_input.Rdata")

infercnv运行

建议使用github上最新版本的infercnv,改进了画图过程中的多线程运算。速度会快很多

library(infercnv)
#加载infercnv输入对象
load(file="data/5.infercnv_input.Rdata")
infercnv_obj3 = infercnv::run(infercnv_obj,
                              cutoff=0.1, #  Smart-seq2设置为1, 10X转录组设置为0.1
                              out_dir= "result/ep_infercnv_output",  # 结果输出目录
                              cluster_by_groups=F,   # cluster
                              hclust_method="ward.D2",
                              analysis_mode="subclusters",
                              denoise=TRUE,
                              HMM=TRUE,
                              plot_steps = F, #关闭过程中的画图过程速度会增快
                              output_format = "pdf",
                              num_threads=25 #线程数,多线程运算建议结合内存大小合理选择,线程数过多内存不够会报错)

结果

本文参考:
https://blog.csdn.net/qq_38774801/article/details/115435091
https://cloud.tencent.com/developer/inventory/7049/article/1737138
问题交流:
Email:xuran@hrbmu.edu.cn

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269