TCGABiolinks下载TCGA数据做生存分析

以前的工作是全基因组或全外分析,不涉及癌症和生存分析,但现在的工作主要围绕癌症方面,生存分析一定少不了。实验室小伙伴推荐用TCGAbiolinks下载TCGA的数据,于是研究了如何用TCGABiolinks下载TCGA的数据,以下载RNA的count数据为例,并做生存分析。

# 安装相关的包
if (!requireNamespace("BiocManager", quietly=TRUE))   
  install.packages("BiocManager")
BiocManager::install("TCGAbiolinks")
BiocManager::install("SummarizedExperiment")
install.packages('survival')
install.packages('survminer')
library(SummarizedExperiment)
library(TCGAbiolinks)
library(survival)
library(survminer)

# 项目的概括信息,project的名称可以从 https://portal.gdc.cancer.gov/ 上面选择对应的器官,进入之后左侧列表中就会显示。我们以下载TCGA-LIHC项目的数据为例。
TCGAbiolinks:::getProjectSummary("TCGA-LIHC") 
# 获取该项目样本的临床信息
clinical < - GDCquery_clinic(project = "TCGA-LIHC", type = "clinical")

# 下载TCGA-LIHC项目的rna-seq的counts数据,构建GDCquery,具体的数据类型的写法可以参考 https://portal.gdc.cancer.gov/repository 左侧列表
# 比如data type有Raw Simple Somatic Mutation, Annotated Somatic Mutation, Aligned Reads, Gene Expression Quantification, Slide Image这几种,不过不同的项目,有可能有不同的数据类型。
query <- GDCquery(project = "TCGA-LIHC", 
		    experimental.strategy = "RNA-Seq",
                    data.category = "Transcriptome Profiling", 
                    data.type = "Gene Expression Quantification",
		    workflow.type = "HTSeq - Counts")
# 下载数据
GDCdownload(query)
# 导入数据
LIHCRnaseq <- GDCprepare(query)
# 得到样本的基因counts矩阵,每行为一个基因,每列为一个样本
count_matrix <- assay(LIHCRnaseq)

# TCGA样本的编号以'-'分割,前三列是患者编号,第四列是类型,一般11表示正常样本,01表示肿瘤样本,见https://gdc.cancer.gov/resources-tcga-users/tcga-code-tables/sample-type-codes
samplesNT <- TCGAquery_SampleTypes(barcode = colnames(count_matrix),typesample = c("NT"))
# selection of tumor samples "TP"
samplesTP <- TCGAquery_SampleTypes(barcode = colnames(count_matrix),typesample = c("TP"))

# 根据ensembl id选择特定基因在癌症样本中的表达
gexp <- count_matrix[c("ENSG00000198431"),samplesTP]

# 这样选出的样本都是肿瘤样本,但样本名称是TCGA-CC-A7IL-01A-11R-A33R-07,与clinical信息不对应,需要将名字简化成TCGA-CC-A7IL
names(gexp) <-  sapply(strsplit(names(gexp),'-'),function(x) paste0(x[1:3],collapse="-"))

# 将表达数据和clinical数据合并,并且挑出来用于做生存分析的数据
clinical$"ENSG00000198431" <- gexp[clinical$submitter_id]
df<-subset(clinical,select =c(submitter_id,vital_status,days_to_death,ENSG00000198431))

#去掉NA
df <- df[!is.na(df$ENSG00000198431),]

#取基因的平均值,大于平均值的为H,小于为L
df$exp <- ''
df[df$ENSG00000198431 >= mean(df$ENSG00000198431),]$exp < - "H"
df[df$ENSG00000198431 <  mean(df$ENSG00000198431),]$exp <- "L"

# 将status表示患者结局,1表示删失,2表示死亡
df[df$vital_status=='Dead',]$vital_status <- 2
df[df$vital_status=='Alive',]$vital_status <- 1
df$vital_status <- as.numeric(df$vital_status)

# 建模
fit <- survfit(Surv(days_to_death, vital_status)~exp, data=df) # 根据表达建模
# 显示P value
surv_pvalue(fit)$pval.txt 
# 画图
ggsurvplot(fit,pval=TRUE)

继续阅读

误删hyper-v的avhdx文件

因为对hyper-v不是很熟悉,点了一下检查点,生成了一个avhdx文件,这个文件其实后续hyper-v会将其合并到vhdx的虚拟磁盘中。而我当时手贱手工的删除了avhdx文件,导致hyper-v找不到这个文件,vhdx也挂起等待合并,虚拟机迟迟不能启动。

有一种解决办法是文件恢复,但我用了几个文件都没有恢复成。实验室师兄(超级牛)新建了一个虚拟机挂载已有的vhdx文件,尝试用vhdx文件启动,显示不能启动,但在新的虚拟机下没有提示要合并,提示老系统的vhdx还有戏。

于是又新建了一个虚拟机实例,创建虚拟机实例之后,尝试将以前的vhdx文件挂载到新的虚拟机上,重启发现竟然以老的系统启动了。感谢能够启动,避免实验室的数据丢失。

根据结果反推,第一个shimx64.efi和Ubuntu.vhdx都是以前的系统,第二个shimx64.efi新的虚拟机的,硬盘驱动器已经换成了老系统的。

#####################################################################
#版权所有 转载请告知 版权归作者所有 如有侵权 一经发现 必将追究其法律责任
#Author: Jason
#####################################################################

Fusion Gene Annotation

STAR-FUSION和FusonAnnotator都属于Trinity Trinity Cancer Transcriptome Analysis Toolkit Fusion-finding modules。
CTAT_HumanFusionLib现阶段整合了各种资源帮助分析癌症生物学相关的fusion,同样也鉴别可能在正常样本只能出现的fusion。下载地址:https://data.broadinstitute.org/Trinity/CTAT_RESOURCE_LIB/

FusionAnnotator –genome_lib_dir GRCh37_gencode_v19_CTAT_lib_July192017/ctat_genome_lib_build_dir/ \
–annotate fusions.list.txt
fusions.list.txt为star-fusion的结果中的第一列,两个参与融合的基因中间用–连在一起,就可以用FusionAnnotator进行注释,相关的标签会注释到融合基因上。

会有三类标签,每类下面又有很多具体的来源标签:
Fusions relevant to cancer biology
Individual genes of cancer relevance, which may show up in fusions
Red Herrings: Fusion pairs that may not be relevant to cancer, and potential false positives.

通过注释,就可以了解到分析结果中的融合基因是否在其他数据库中出现过,或者可能是和癌症无关的突变。

参考:https://github.com/FusionAnnotator/CTAT_HumanFusionLib/wiki

NIS+NFS+SGE

需求,把多台服务器组成一个cluster(SGE),把一台电脑(比如存储)的home文件件共享给其他服务器(NFS),共用一个home文件夹,并进行用户的统一管理(NIS)。

操作系统为操作系统:CentOS,用virtual box虚拟出来的系统做测试。
server端:10.0.2.5
client或compute端:在同样网段

1,NFS共享存储

通过nfs,实现每台服务器都有同样的路径和文件,便于后续集群管理。这里共享两个路径,一个是server端的/home路径,实现每个服务器都有同样的家目录,一个是/opt/gridengine用于安装SGE。

1.1 Server端:

安装相关软件,NFS的端口是不固定的(因此如果客户端连不上的时候,往往需要iptables -F清理一下),客户端要准确的获得NFS服务器所使用的端口,就需要RPC服务。RPC最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,让客户端可以链接到正确的端口上去,从而实现数据传输。

yum install nfs-utils rpcbind

开机启动rpcbind

systemctl enable rpcbind.service

开启rpcbind

systemctl start rpcbind.service

设置要共享的目录

mkdir /opt/gridengine
vi /etc/exports
/home 10.0.2.0/255.255.255.0(rw,sync)
/opt/gridengine 10.0.2.0/255.255.255.0(rw,sync)

nfs开机启动和开启服务

systemctl enable nfs
systemctl start nfs

生效export

exportfs -r -v

1.2 客户端:

yum install nfs-utils rpcbind
systemctl enable  rpcbind.service
systemctl restart rpcbind.service
systemctl enable nfs
systemctl start  nfs

设置自动挂载,用tab分割,不是空格

mkdir /opt/gridengine
vi /etc/fstab
10.0.2.5:/home	/home	nfs	defaults	0	0
10.0.2.5:/opt/gridengine	/opt/gridengine	nfs	defaults	0	0

挂载

mount -a

这样的话,客户端服务器的home目录都是server端的home家目录。

2,NIS(Network Information Service)

通过NIS实现帐号的统一权限管理和认证,避免在多台服务器上重复开设帐号

2.1 Server端:

继续阅读

T细胞,B细胞,抗原,CD4和CD8

T细胞工作原理

T细胞在胸腺中发育后,它们可以在血液或淋巴系统中游走或迁移到体内的不同器官。只要特定的入侵者刺激它们,辅助性T细胞就会产生化学物质。有些化学物质触发B细胞发育成浆细胞,而另一些化学物质则刺激杀伤性T细胞靶向并杀死可能被侵入者感染或癌变的细胞。 调节性T细胞有助于控制免疫反应,防止其失控。自然杀伤T细胞也产生化学物质,以帮助调节免疫反应,防止入侵者和肿瘤。在免疫反应结束后,记忆T细胞在体内停留很长一段时间。这样,如果同样的入侵者再次出现,它们就能迅速做出反应,并繁殖产生大量的T细胞来消灭它。

B细胞工作原理

与T细胞不同,B细胞不能直接攻击受感染的细胞。相反,B细胞主要产生一种叫做抗体的蛋白质,当入侵者在血液中移动时,抗体就可以劫持入侵者。当它们遇到入侵者时,B细胞受到刺激而产生浆细胞和记忆B细胞。 每个浆细胞被专门用来制造一种特殊的抗体——专门用来攻击特定入侵者的蛋白质。抗体的作用是在受感染的细胞上作为标志,这样T细胞就能识别要破坏的细胞。 当入侵者被抗体包裹时,它们更容易成为免疫系统中其他蛋白质的靶标,也更容易成为吞噬细胞这一专门细胞的攻击目标,吞噬细胞负责吞噬外来物质和受感染的细胞。当浆细胞在免疫反应结束后消失时,记忆B细胞就会长期存在。如果同样的入侵者再次出现,抗体已经可以帮助抵抗它。

1、参与方式不同 T细胞参与细胞免疫,B细胞参与体液免疫;
2、形成的位置不同 T细胞形成于胸腺,B细胞形成于骨髓;
3、功能不同 T细胞主要功能是吞噬外来侵袭物,B细胞主要功能是产生各类抗体;
4、数量、形态不同 T细胞数量比B细胞少;B细胞形态比T细胞形态大。

浆细胞又叫做效应B细胞。效应B细胞的产生:当B淋巴细胞受到抗原刺激或受淋巴因子刺激而活化后,将大量增殖并分化为效应B细胞和记忆B细胞.记忆B细胞受刺激后,可直接大量增殖、分化出效应B细胞
效应B细胞的作用:效应B细胞(浆细胞)由B淋巴细胞或记忆B细胞产生,其能分泌抗体执行免疫供能
自然杀伤细胞NK细胞:非特异性攻击

MHC1和MHC2

MHC1类:将抗原肽递呈给细胞毒性T细胞
MHC2类:专职性抗原递呈给辅助性T细胞(Th)
MHC1在机体大多数细胞中都有表达,主要是自身受病毒或胞内寄生菌感染以后将病原肽递呈出来让CTL细胞(细胞毒性T细胞,cytotoxic T cell,TC或CTL,也称杀手细胞)识别然后破坏受感染细胞。而表达MHCII的主要是专职的抗原递呈细胞,包括DC,巨噬和B细胞,将病原主动摄取后递呈给Th细胞,从而辅助后期B细胞或者巨噬细胞

抗原

外源性抗原—>MHC II—>CD4+
外源性抗原经吞噬或吞饮作用,被APC摄入胞内形成吞噬体,后者与溶酶体融合形成吞噬溶酶体。抗原在吞噬溶酶体内酸性环境中被蛋白水解酶降解为小分子多肽,其中具有免疫原性的称为抗原肽。内质网中合成的MHC-Ⅱ类分子进入高尔基体后,由分泌小泡携带,通过与吞噬溶酶体融合,使抗原肽与小泡内MHC-Ⅱ类分子结合形成抗原肽-MHCⅡ类分子复合物。该复合物表达于APC表面,可被相应CD4+T细胞识别结合。

内源性抗原–>MHC I–>CD8+
内源性抗原是指细胞自身合成的抗原,如肿瘤抗原和病毒蛋白抗原等。内源性抗原在细胞内生成后,可被存在于胞质中的蛋白酶体,即小分子聚合多肽体(LMP)降解成小分子多肽;小分子多肽与热休克蛋白70/90在胞质内结合后,经抗原肽转运体(TAP)转运到内质网中,通过加工修饰成为具有免疫原性的抗原肽;抗原肽与内质网中合成的MHCⅠ类分子结合,形成抗原肽-MHCⅠ类分子结合形成抗原肽-MHCⅠ类分子复合物;后者转入高尔基体再通过分泌小泡将其运送到APC表面,供相应CD8+T细胞识别结合。

CD4和CD8

CD4+细胞,有称辅助性T细胞,在细胞包面表达CD4+分子,在免疫过程中协助白细胞,包括B细胞成熟和记忆b细胞,活化细胞毒性T细胞和巨噬细胞,辅助性T细胞被MHC II上的抗原激活,迅速分化和分泌调节免疫活性的细胞因子小蛋白。活化的细胞可分为 TH1, TH2, TH3, TH17, TH9, or TFH,亚型,取决于抗原呈递细胞APC的信号。

CD8+细胞,细胞毒性T细胞(TC cells, CTLs, T-killer cells, killer T cells),细胞表面表达CD8糖蛋白,摧毁病毒感染细胞和肿瘤细胞,这些细胞通过与MHC I分子(所有细胞都表达)上的抗原结合识别攻击对象。 通过IL-10,腺苷和其他调节T细胞分泌的分子调节,CD8+细胞可以进入无活性状态,以免发生自身免疫病。