R plot图片背景设置为透明_学习健明老师发布的R语言练习题的学习笔记(一)...

学习者:骆栢维

题目来源:生信基石之R语言

初级10 个题目:http://www.bio-info-trainee.com/3793.html

备注:本文为笔者学习健明老师GitHub答案代码的学习收获!

Q1:R包安装

ab045fbff97a223552f6cb272f9736ab.png
#设置镜像 ->安装R包->加载R包options("repos"=c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))install.packages(c("ggplot2",                   "pheatmap",                   "ggpubr",                   "tidyr",                   "dplyr",                   "stringr"))#options(BIOCONDUCTOR_ONLINE_VERSION_DIAGNOSIS=FALSE)#如果无法建立链接,可以运行此代码或者观察IE浏览器的情况options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor")if (!requireNamespace("BiocManager", quietly = TRUE))  install.packages("BiocManager")c        "org.Hs.eg.db","hgu133plus2.db")BiocManager::install(c,ask = F,update = F)##也可以使用循环结构哦library(GSEABase)library(GSVA)library(clusterProfiler)library(ggplot2)library(ggpubr)library(hgu133plus2.db)library(limma)library(org.Hs.eg.db)library(pheatmap)##注意下载好R包并不代表可以直接使用,还需要加载加入当前工作环境中#笔者就不加载所有了

学习心得:R包的安装

1.R包的安装步骤:设置镜像 ->安装R包->加载R包(十分重要!!!)

2.R包的安装方式:通过R-studio安装/本地安装(这些是笔者尝试过的方法,好使!)

3.在做这个联系的时候笔者遇到了一个报错:

URL'https://mirrors.tuna.tsinghua.edu.cn/bioconductor/packages/3.10/workflows/src/contrib/PACKAGES

(怎么解决这个问题呢?首先在杀毒软件,将R加入白名单——(如果解决不了)运行一下

options(BIOCONDUCTOR_ONLINE_VERSION_DIAGNOSIS=FALSE)

——(还是不行呢!很气人)可以进入IE浏览器,观察它是否能够正常运行,如果不能就针对相应问题解决,然后就可以了

为什么要观察IE浏览器呢?根据笔者查阅的资料得知,我们下载R包是默认从IE浏览器下载。

4.也可以运行一下这个代码

options(download.file.method = 'libcurl');options(url.method='libcurl') `

(方法源于公众号:生信技能树)

Q2:打开 Rstudio 查找工作目录

ab045fbff97a223552f6cb272f9736ab.png
#打开 Rstudio 告诉我它的工作目录----getwd()#获取当前工作目录setwd("C://Users//luobo//Documents//生信学习-R语言//R_questions//初级")#设置工作目录,注意//

Q3:新建6个向量,基于不同的类型

ab045fbff97a223552f6cb272f9736ab.png
#方法:c(),rep(),seq()a b c d e e1 f g class(b)#查看数据类型

Q4:新建一些数据结构,比如矩阵,数组,数据框,列表等重点是数据框,矩阵

ab045fbff97a223552f6cb272f9736ab.png
##向量见Q3##函数matrix创建矩阵x y rowname colnnme z             dimnames=list(rowname,colnnme))#设置行列名##函数data.frame新建数据框   L3 #set.seed(6)#如果想要随机数的结果不变,需要设置“种子”,里面的数值是自己定义的fac d                 y = rep(seq(1,5),2),                 fac = fac)##函数array创建数组dim1 dim2 dim3 myarray #1:16表示设置数组的具体内容,c(2,4,2)可以理解为宽,长,高(因为可以想象数组为一个三位结构)##函数list创建列表,列表可以存在多个数据结构a b c mylist 

Q5:在新建的数据框进行切片操作,比如首先取第1,5行,然后取第2,3列

ab045fbff97a223552f6cb272f9736ab.png
myrow mycol 

学习心得:

提取数据的方法可以根据“名称”、“逻辑值” 和 “位置”,笔者上面是按照位置提取数据。

Q6:使用data函数来加载R内置数据集 rivers

ab045fbff97a223552f6cb272f9736ab.png
data("rivers")

Q7:下载 https://www.ncbi.nlm.nih.gov/sra?term=SRP133642 里面的 RunInfo Table 文件读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素。

ab045fbff97a223552f6cb272f9736ab.png
runinfostr(runinfo)#看每一行数据类型,详细内容dim(runinfo)#看维度

Q8:下载 https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE111229 里面的样本信息sample.csv读入到R里面,了解这个数据框,多少列,每一列都是什么属性的元素

ab045fbff97a223552f6cb272f9736ab.png
sample ##其他的同Q7

Q9:把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来把前面两个步骤的两个表(RunInfo Table 文件,样本信息sample.csv)关联起来

ab045fbff97a223552f6cb272f9736ab.png
?merge()final_file                     by.y = "Accession", all = TRUE)##注意当合并的两个项目的列表名不同时的合并方法#ORlibrary(dplyr)final1_file #ORfinal2_file #ORcolnames(sample)colnames(sample)                      "SRA.Accession","Contact","Release.Date")final_file save(final_file,file = "final_file.Rdata")

实战一下吧——基因注释

##########################实战一下################################exprset head(exprset)#看一下前6行platform head(platform)finalfile head(finalfile)library(dplyr)finalfile                     everything())#重新排列,everything()表示除前面两个外其余的head(finalfile)

学习心得:数据框的处理——合(数据框的五大操作:增删改查合)

本习题中,笔者使用了常见的合并数据框的方法:merge,inner_join和cbind。merge和inner_join基本上没有太大差距(但是笔者比较喜欢merge),cbind要注意它是单纯的合并,并没有进行“对应结合”,即内容不一致也可以合并。

Q9:对前面读取的 RunInfo Table 文件在R里面探索其MBases列,包括 箱线图(boxplot)和五分位数(fivenum),还有频数图(hist),以及密度图(density)

ab045fbff97a223552f6cb272f9736ab.png
library(ggplot2)boxplot(runinfo$MBases)plot(fivenum(runinfo$MBases))plot(hist(runinfo$MBases))plot(density(runinfo$MBases))

Q10:把前面读取的样本信息表格的样本名根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate

ab045fbff97a223552f6cb272f9736ab.png
visual=final_file[,c("MBases","Title")]class(visual$Title)##注意此时Title为factorvisual$Title plate=unlist(lapply(visual$Title,function(x){  x  strsplit(x,'_')[[1]][3]}))##其他方法plate1=substr(visual$Title,8,11)##更加简单table(plate)

实战一下吧——TCGA数据处理

load(file = "TCGA_exprSet.Rdata")exprSet exprSet[1:4,1:4]exprSet$type=substr(rownames(exprSet),14,15)#提取样本信息exprSet exprSet[1:4,1:4]exprSet$sample                          "tumor","normal")#注意要把type转变为数值型as.numeric#ifelse表示如果条件成立,执行第一个结果,否则第二个结果#留意TCGA命名规则,01-09表示肿瘤样本,10-19为正常样本exprSet 

学习心得:字符串的数据处理——字符切割

1.本习题中笔者使用了strsplist函数以及unlist函数,这两个函数常常一起用(针对于字符串提取)

为什么呢?因为strsplist切割的结果为“list”数据结构,为了方便提取对应的字符,用unlist函数破坏它,将其转变为“character”。

2.此外,还有更方便的方法:substr和substring(两者有什么区别呢?substr要设置“下限”,而substring不用)

Q11:根据plate把关联到的 RunInfo Table信息的MBases列分组检验是否有统计学显著的差异

ab045fbff97a223552f6cb272f9736ab.png
t.test(visual$MBases~plate)#以plate作为分组变量,对MBases进行t检验#t = 2.3019, df = 728.18, p-value = 0.02162(p值小于0.05,可以认为有差异性)

Q12:分组绘制箱线图(boxplot),频数图(hist),以及密度图(density)

ab045fbff97a223552f6cb272f9736ab.png
#可视化boxplot(runinfo$MBases~plate)#以plate分组,绘制箱线图plate install.packages("sm")library(sm)sm.density.compare(visual$MBases,plate)##分组绘制密度图,前面变量代表待画数据,后面代表分组

Q13:使用ggplot2把上面的图进行重新绘制

ab045fbff97a223552f6cb272f9736ab.png
visual$plate=platelibrary(ggplot2)ggplot(visual,aes(x=plate,y=MBases))+geom_boxplot()#ggplot前面变量为数据,aes表示映射,后面geom_boxplot()代表画什么图ggplot(visual,aes(x=MBases,fill=plate))+geom_histogram()ggplot(visual,aes(x=MBases))+geom_density(aes(color=plate))

Q14:使用ggpubr把上面的图进行重新绘制

ab045fbff97a223552f6cb272f9736ab.png
library(ggpubr)p                color = "plate", palette = "jco",               add = "jitter")#x,y表示xy轴数据,color= "plate"表示按plate描绘颜色,palette表示颜色设置p                  palette = c("#00AFBB", "#E7B800"),                 bins =100)#color和fill都是按plate设置颜色,不同的是color表示绘制边框颜色,fill填充图形颜色
ceea91f6b3bbe234bd66b4cd1055a07d.png

几点思考:

1.如果遇到报错不要慌,学着解读报错内容;

2.其次,多用几个help()和?(一个不行就两个??),笔者在合并数据框的时候,由于对于函数的不足够了解,没有相同的列名怎么合并呢?重改列名太麻烦了,于是笔者去?了一下,发现不同列名也是可以合并的!!!

                                                                                              编辑:骆栢维

                                                                                             校审:梁晓杰

相关阅读:

利用ROC曲线寻找最佳cutoff值(连续型变量组成的riskscore)

如何使用X-tile软件寻找最佳cutoff值

m6A评分可作为胃癌的预后标志物并预测免疫治疗的效果,IF=10.679,实时IF=15.83

为何predict()函数计算的Riskscore不等于基因的表达量与其系数的乘积的加权呢?

2c9cfc326f1d407c04a7c4018eb9b914.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值