2020.07.01-07.15学习小结
一、TCGA数据下载
1、TCGAbiolinks包
- 介绍:可用于检索,下载,并准备TCGA数据用于下游分析的R包
- 优点:具备一体化的下载整合,无需再使用复杂的方法对下载的单个数据重新进行整合。
- 使用
GDCquery_clinic(project , type = "clinical") //临床数据下载 qurey <- GDCquery(project, data.category, data.type, workflow.type,legacy = FALSE, access, platform, file.type, barcode,experimental.strategy, sample.type) GDCdownload(query, method = "api", files.per.chunk = 100) data <- GDCprepare(query) 1. projectTCGAbiolinks:::getGDCprojects()$project_id //查看有哪些癌症类型2. data.categoryTCGAbiolinks:::getProjectSummary(project) //查看某癌症有哪些数据类型3. data.typedata.type = "Gene Expression Quantification"//下载rna-seq的counts数据data.type = "miRNA Expression Quantification"//下载miRNA数据data.type = "Copy Number Segment" //下载Copy Number Variation数据......4. workflow.typeworkflow.type="HTSeq - Counts" //原始count数workflow.type="HTSeq - FPKM-UQ" //FPKM上四分位数标准化值workflow.type="HTSeq - FPKM" //FPKM值/表达量值......5. legacy:不同的数据来源 Legacy 与 harmonizedGDC Legacy Archive:以前在CGHUB和TCGA数据门户中存储的数据的原始数据,由TCGA数据协调中心(DCC)托管,在该门户中用GRCH37(HG19)和GRCH36(HG18)作为参考基因组 GDC harmonized database:可用数据与grch38(hg38)使用gdc生物信息学流程进行协调,该流程提供了生物标本和临床数据标准化的方法,简单讲就是对数据进行了一定标准化处理。harmonized数据库包括转录谱数据,甲基化数据,miRNA数据,但缺少芯片数据6. 其他参数根据需求选择,可通过TCGA官网查看详细内容
二、免疫浸润
1、immunedeconv包
输入要求:行名为基因名(HGNC symbols ),列名为样本名的矩阵
使用:
res = deconvolute(gene_expression_matrix, method)
特殊情况
- CIBERSORT:
//需要注明CIBERSORT.R与LM22.txt文件路径set_cibersort_binary("/path/to/CIBERSORT.R")set_cibersort_mat("/path/to/LM22.txt")
- TIMER:
deconvolute(your_mixture_matrix, "timer",indications=c("SKCM", "SKCM", "BLCA")) //indications是一个表示每个样本癌症类型的向量,TIMER支持的癌症类型查看可 immunedeconv::timer_available_cancers
- xCell
在cell_type_map中xCell 仅有39种细胞类型,故使用xCell网站运行:https://xcell.ucsf.edu/
三、生存分析
区别
统计描述
估计生存率(生存函数):Kaplan-Meier法统计推断
比较各组的生存率(生存曲线):log-rank检验——单因素/分层分析
生存期长短的影响因素分析: COX回归——单因素/多因素分析
K-M曲线可以很直观地表现出两组或多组的生存率或死亡率,因为生存数据往往都是非正态分布,因此常使用非参数的检验方法log-rank检验。在实际写作中,K-M曲线都会搭配log-rank检验的P值。
Cox回归本质上是一种回归模型,它没有直接使用生存时间,而是使用了危险度(hazard)作为因变量,该模型不用于估计生存率,而是用于因素分析,也就是找到某一个危险因素对结局事件发生的贡献度。
因此可使用K-M方法绘制生存曲线,使用log-rank检验评估生存差异。使用Cox比例风险模型进行多因素分析,评估预后因素作用。
创建生存对象:Surv()
详见 https://www.rdocumentation.org/packages/survival/versions/3.2-3/topics/Surv//useage Surv(time, time2, event,type=c('right', 'left', 'interval', 'counting', 'interval2', 'mstate'),origin=0) //example Surv(OSTime,OS)
拟合生存曲线:survfit()
详见https://www.rdocumentation.org/packages/survival/versions/3.2-3/topics/survfit//usegae survfit(formula, ...) //example survfit(Surv(OSTime, OS) ~ variable, data = data)
绘制生存曲线:ggsurvplot()
详见https://www.rdocumentation.org/packages/survminer/versions/0.4.7/topics/ggsurvplot//useage ggsurvplot(fit, //survfit()对象/对象列表/包含生存曲线摘要的数据框data = NULL, //用于拟合生存曲线的数据集,如未提供则从fit中提取fun = NULL,color = NULL, //默认情况下,使用参数color =“ strata”按层为生存曲线着色,也可以使用参数调色板指定自定义调色板palette = NULL, //调色板linetype = 1, //线型conf.int = FALSE, //绘制置信区间pval = FALSE, //绘制P值pval.method = FALSE, //Pval为T时,显示P值检验方法test.for.trend = FALSE,surv.median.line = "none",risk.table = FALSE,cumevents = FALSE,cumcensor = FALSE,tables.height = 0.25,group.by = NULL,facet.by = NULL,add.all = FALSE,combine = FALSE,ggtheme = theme_survminer(),tables.theme = ggtheme,... )
多因素分析:coxph()
详见:https://www.rdocumentation.org/packages/survival/versions/3.2-3/topics/coxphcoxph(formula, //~左侧surv函数返回的生存对象,右侧为待分析因素data=, //用于解释formula/weights/subset中命名变量的数据框weights, subset, na.action, init, control, ties=c("efron","breslow","exact"), //默认为efronsingular.ok=TRUE, robust, model=FALSE, x=FALSE, y=TRUE, tt, method=ties,id, cluster, istate, statedata, ...)
四、 差异分析
1、使用FPKM数据进行差异基因分析
//将FPKM数据转换为TPM数据
expMatrix <- FPKM_matrix
fpkmToTpm <- function(fpkm)
{exp(log(fpkm) - log(sum(fpkm)) + log(1e6))
}apply(expMatrix,2,fpkmToTpm)//限定分类顺序
Group <- factor(group,levels = ,ordered = F)
design2 <- model.matrix(~factor( Group ))//表达矩阵数据校正
exprSet <-data
boxplot(exprSet,outline=FALSE, notch=T,col=Group, las=2)//查看数据是否需要标准化
library(limma)
exprSet=normalizeBetweenArrays(exprSet)//数据标准化
boxplot(exprSet,outline=FALSE, notch=T,col=Group, las=2)
exprSet <- log2(exprSet+1)//需判断数据是否要log化//差异分析:
dat <- exprSet
fit=lmFit(dat,design2)
fit=eBayes(fit)
options(digits = 4)
deg=topTable(fit,coef=2,adjust='BH',number = Inf)
difflimma <- subset(deg,abs(deg$logFC)>1°$P.Value<0.05) //筛选条件为|logFC|>1,Pvalue<0.05
五、富集分析
library(clusterProfiler)
library(org.Hs.eg.db)
//id转换
gene_id =bitr(gene_id,fromType = "SYMBOL",toType = "ENTREZID", OrgDb="org.Hs.eg.db")
1、GO分析
详见https://www.rdocumentation.org/packages/clusterProfiler/versions/3.0.4/topics/enrichGO
enrichGO(gene, //entrez idOrgDb, //组织数据库keytype = "ENTREZID", ont = "MF", //MF", "BP", "CC","ALL"pvalueCutoff = 0.05, pAdjustMethod = "BH", universe, qvalueCutoff = 0.2, minGSSize = 10, maxGSSize = 500, readable = FALSE)
2、KEGG分析
详见https://www.rdocumentation.org/packages/clusterProfiler/versions/3.0.4/topics/enrichKEGG
enrichKEGG(gene, organism = "hsa", keyType = "kegg", //"kegg", 'ncbi-geneid', 'ncib-proteinid','uniprot'pvalueCutoff = 0.05, pAdjustMethod = "BH", universe, minGSSize = 10, maxGSSize = 500, qvalueCutoff = 0.2, use_internal_data = FALSE)
六、ggplot
元素
- plot:整张图,包括background和title
- axis:包括stick,text,title
- legend:包括background,text,title
- facet:可分为外部stript(包括backgroud和text)和内部panel部分(包括backgroud、boder和网格线grid,其中粗的叫grid.major,细的叫grid.minor)。
函数类型
- 用于运算(如fortify_,mean_等)
- 初始化、展示(ggplot,plot,print等)
- 按变量组图(facet_等)
- 绘图(stat_,geom_,annotate),核心函数。
- 微调图型:
- scale_:与aes内的各种美学(shape、color、fill、alpha)调整有关的函数。
- guides:调整所有的text。
- coord_:调整坐标。
- theme:调整不与数据有关的图的元素的函数。
1、ggpubr
介绍:基于ggplot2的用于绘制符合出版物要求的图形的可视化包
链接:https://www.jianshu.com/p/678213d605a5
分布图(Distribution)
#构建数据集
set.seed(1234)
df <- data.frame( sex=factor(rep(c("f", "M"), each=200)),
weight=c(rnorm(200, 55), rnorm(200, 58)))
head(df)
## sex weight
## 1 f 53.79293
## 2 f 55.27743
## 3 f 56.08444
## 4 f 52.65430
## 5 f 55.42912
## 6 f 55.50606
密度分布图以及边际地毯线并添加平均值线
ggdensity(df, x="weight", add = "mean", rug = TRUE, color = "sex", fill = "sex",
palette = c("#00AFBB", "#E7B800"))
带有均值线和边际地毯线的直方图
gghistogram(df, x="weight", add = "mean", rug = TRUE, color = "sex", fill = "sex",
palette = c("#00AFBB", "#E7B800"))
箱线图与小提琴图
#加载数据集ToothGrowth
data("ToothGrowth")
df1 <- ToothGrowth
head(df1)
## len supp dose
## 1 4.2 VC 0.5
## 2 11.5 VC 0.5
## 3 7.3 VC 0.5
## 4 5.8 VC 0.5
## 5 6.4 VC 0.5
## 6 10.0 VC 0.5
p <- ggboxplot(df1, x="dose", y="len", color = "dose",
palette = c("#00AFBB", "#E7B800", "#FC4E07"),
add = "jitter", shape="dose")#增加了jitter点,点shape由dose映射p
增加不同组间的p-value值,可以自定义需要标注的组间比较
my_comparisons <- list(c("0.5", "1"), c("1", "2"), c("0.5", "2"))
p+stat_compare_means(comparisons = my_comparisons)+#不同组间的比较
stat_compare_means(label.y = 50)
内有箱线图的小提琴图
ggviolin(df1, x="dose", y="len", fill = "dose",
palette = c("#00AFBB", "#E7B800", "#FC4E07"),
add = "boxplot", add.params = list(fill="white"))+
stat_compare_means(comparisons = my_comparisons, label = "p.signif")+#label这里表示选择显著性标记(星号)
stat_compare_means(label.y = 50)
条形图
data("mtcars")
df2 <- mtcars
df2$cyl <- factor(df2$cyl)
df2$name <- rownames(df2)#添加一行name
head(df2[, c("name", "wt", "mpg", "cyl")])
按从小到大顺序绘制条形图
不分组排序
ggbarplot(df2, x="name", y="mpg", fill = "cyl", color = "white",
palette = "jco",#杂志jco的配色
sort.val = "desc",#下降排序
sort.by.groups=FALSE,#不按组排序
x.text.angle=60)
按组进行排序
ggbarplot(df2, x="name", y="mpg", fill = "cyl", color = "white",
palette = "jco",#杂志jco的配色
sort.val = "asc",#上升排序,区别于desc,具体看图演示
sort.by.groups=TRUE,#按组排序
x.text.angle=90)
偏差图
偏差图展示了与参考值之间的偏差
df2$mpg_z <- (df2$mpg-mean(df2$mpg))/sd(df2$mpg)
df2$mpg_grp <- factor(ifelse(df2$mpg_z<0, "low", "high"), levels = c("low", "high"))
head(df2[, c("name", "wt", "mpg", "mpg_grp", "cyl")])
绘制排序过的条形图
ggbarplot(df2, x="name", y="mpg_z", fill = "mpg_grp", color = "white",
palette = "jco", sort.val = "asc", sort.by.groups = FALSE, x.text.angle=60,
ylab = "MPG z-score", xlab = FALSE, legend.title="MPG Group")
坐标轴变换
ggbarplot(df2, x="name", y="mpg_z", fill = "mpg_grp", color = "white",
palette = "jco", sort.val = "desc", sort.by.groups = FALSE,
x.text.angle=90, ylab = "MPG z-score", xlab = FALSE,
legend.title="MPG Group", rotate=TRUE, ggtheme = theme_minimal())
点图(Dot charts)
棒棒糖图(Lollipop chart)
棒棒图可以代替条形图展示数据
ggdotchart(df2, x="name", y="mpg", color = "cyl",
palette = c("#00AFBB", "#E7B800", "#FC4E07"), sorting = "ascending",
add = "segments", ggtheme = theme_pubr())
可以自设置各种参数
ggdotchart(df2, x="name", y="mpg", color = "cyl",
palette = c("#00AFBB", "#E7B800", "#FC4E07"), sorting = "descending",
add = "segments", rotate = TRUE, group = "cyl", dot.size = 6,
label = round(df2$mpg), font.label = list(color="white", size=9, vjust=0.5),
ggtheme = theme_pubr())
偏差图
ggdotchart(df2, x="name", y="mpg_z", color = "cyl",
palette = c("#00AFBB", "#E7B800", "#FC4E07"), sorting = "descending",
add = "segment", add.params = list(color="lightgray", size=2),
group = "cyl", dot.size = 6, label = round(df2$mpg_z, 1),
font.label = list(color="white", size=9, vjust=0.5), ggtheme = theme_pubr())+
geom_line(yintercept=0, linetype=2, color="lightgray")
Cleveland点图
ggdotchart(df2, x="name", y="mpg", color = "cyl",
palette = c("#00AFBB", "#E7B800", "#FC4E07"), sorting = "descending",
rotate = TRUE, dot.size = 2, y.text.col=TRUE, ggtheme = theme_pubr())+
theme_cleveland()
2、色板扩充
- 默认颜色
brewer.pal.info #查询默认颜色
- seq类型:单渐变色,一种主色由浅到深
- qual类型:区分色,几种区分度很高的颜色组合
- div类型:双渐变色,一种颜色到另外一种颜色的渐变,有两种主色
- 色板扩充
//直接使用默认色板 ggplot(...)+scale_fill_brewer(palette="Set1")+...//colorRamPalette使用默认色板 library(RColorBrewer) colors <-colorRampPalette(brewer.pal(9,"Set1")) //colorRamPalette使用自定义色板 colors <-colorRampPalette(c("BlueViolet","MediumOrchid","Orchid","MediumSlateBlue","CornflowerBlue","LightSteelBlue","LightSkyBlue","SkyBlue","PowDerBlue","PaleTurquoise","LightSeaGreen","Turquoise","LightGreen","DarkSeaGreen","Khaki","NavajoWhite","Gold","Orange")) ggplot(...+...+ scale_fill_manual(values = colors(22))+...)//22表示渐变梯度
2020.07.01-07.15学习小结相关推荐
- 2020.04.16今日份学习小结
自我总结第二天start. 主要学习了分支结构中的 if 语句. //在代码运行中常见的结构有:1.顺序结构 2.分支结构 3.循环结构. 一. if 分支结构 格式为: if (/* 条件判断 */ ...
- 2019.01.07|区块链技术头条
2019.01.07|区块链技术头条 1.科普 | 深处的蚁穴:与 Gas 相关的三种安全问题 2.科普 | OmiseGo 将如何把 Plasma 带入寻常百姓家 3.干货 | 详解 MimbleW ...
- 现代汉语词典 v2007 build 07.01 官网
Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...
- Neovim开发环境搭建(2021.07.01)
Neovim开发环境搭建(2021.07.01) 一.搭建环境 Ubuntu 21.04 Neovim 0.4.4 二.Neovim安装 # 下载 neovim,如遇网络问题可以采用 https:// ...
- javaScript ie8 不支持 new Date(2017-07);只支持new Date(2017/07/01)
今天看以前代码的时候看到的JS的注释,记得当时调了老半天,ie8以上 以及谷歌,火狐没有这个问题. //ie8 不支持 new Date("2017-07");只支持new Dat ...
- [Leedcode][JAVA][面试题 01.07][找规律][旋转数组]
[问题描述] [面试题 01.07. 旋转矩阵] 示例 1:给定 matrix = [[1,2,3],[4,5,6],[7,8,9] ],原地旋转输入矩阵,使其变为: [[7,4,1],[8,5,2] ...
- 面试题 01.07. 旋转矩阵
面试题 01.07. 旋转矩阵 给定一幅由N × N矩阵表示的图像,其中每个像素的大小为4字节,编写一种方法,将图像旋转90度. 不占用额外内存空间能否做到? 示例 1: 给定 matrix = [ ...
- 01.07第64期短中线黑马推荐!
我花金币弄出来的,分享给大家!个人力量有限,也希望朋友们能够,轮流将买来消息,分享出来.可以贴在评论栏里.或者加QQ群:5608766 ========= 01.07第64期短中线黑马推荐! 今年是2 ...
- insert语句插数据入表的时候,Date带毫秒,并且会进1. 2022-06-18 01:07:18.523 入表时间为2022-06-18 01:07:19
insert语句插数据入表的时候,Date带毫秒,并且会进1 先来看一下SQL,如下: insert into mcc_advice_his (ADVICE_ID, ADVICE_TYPE, SUBS ...
- 杏子语录(2020年01月)
杏子语录(2020年01月) 以爱之名 2019已经过去了,在过去的一年里,或者往昔的那么多年里.开心的,烦恼的,愉快的,痛苦的,都已经划上了句号. 在 2020来临之际,真心地祝愿每个人都能够开开心 ...
最新文章
- 【从零学习OpenCV 4】opencv_contrib扩展模块的安装
- dataTables-使用详细说明整理
- 手把手教你代码重构,是时候告别屎一样的代码了!
- asp 取数据 计算_ASP.NET Core 简介
- 汇编语言---输出“welcome to you!”
- Pentium 4处理器架构/微架构/流水线 (4) - NetBurst框图
- linux 套接口文件_继上一篇,继续介绍linux 套接口
- CSS background 属性
- 深入浅出JavaScript (五) 详解Document.write()方法
- oracle 新手注意事项
- 【PAT乙】1080 MOOC期终成绩 (25分)
- ug安装教程详细步骤ug怎么免费安装教程ug软件怎样安装步骤
- 计算机常用1700英语单词
- BMFont字体编辑器的使用
- Microsoft Excel 教程:如何在 Excel 中创建图表?
- linux vi指令选则从某行到某行注释,详解linux vi命令用法
- 华为OD机试 - 预订酒店(Java JS Python)
- 如何检测新移动硬盘--HD Tune Pro硬盘工具
- 金融断直连,正式开始落地!
- cadence SPB17.4 - 用autoCAD2022画一个PCB板框