语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)
学习者:骆栢维
题目来源:生信基石之R语言
中级10 个题目:http://www.bio-info-trainee.com/3750.html
备注:本文为笔者学习健明老师GitHub答案代码的学习收获!
作业1:根据R包org.Hs.eg.db找到下面ensembl 基因ID 对应的基因名(symbol)
library(org.Hs.eg.db)symbol1=toTable(org.Hs.egSYMBOL)ensembl1=toTable(org.Hs.egENSEMBL)head(ensembl1)#查看前6行head(symbol1)#查看前6行exprset1 'gene_id')#orexprset2 'gene_id')c 'ENSG00000000003.13', 'ENSG00000000005.5', 'ENSG00000000419.11', 'ENSG00000000460.15', 'ENSG00000000938.11')c substr(c,c#看一下吧answer #这里按照逻辑值提取元素##来探讨一下吧exprset1$ensembl_id %in%c#%in%表示前者是否在后者里面,返回逻辑值table(exprset1$ensembl_id %in%c)#ORc answer1 "ensembl_id",by.y=View(answer)
学习心得:数据的提取
在上一篇分享文章的Q6,笔者提及过:提取数据的方法可以根据“名称”、“逻辑值” 和 “位置”。在上面的题目中,笔者是通过逻辑值提取数据,在下面的“读入数据” 中笔者也是采用逻辑值的方式提取数据。
作业2:根据R包hgu133a.db找到下面探针对应的基因名(symbol)
install.packages("BiocManager")BiocManager::install('hgu133a.db')library(hgu133a.db)symbol2=toTable(hgu133aSYMBOL)#获取探针表格symbol2[1:4,]#看一下前4行c '1053_at', '1320_at', '1405_i_at', '1431_at', '1438_at' ,'1487_at' ,'1494_f_at', '1598_g_at', '160020_at', '1729_at','177_at' )answer2 in% c,]table(symbol2$probe_id %in% c)#看一下结果#另一种方法同Q1
作业3:找到R包CLL内置的数据集的表达矩阵里面的TP53基因的表达量,并且绘制在 progres.-stable分组的boxplot图
BiocManager::install('CLL')BiocManager::install('hgu95av2.db')library(CLL)data(package="CLL")#查看R包里面具体数据集data("sCLLex")#加载R包内置数据,是列表biaoxing #提取表型数据exprSet #提取表达矩阵 library(hgu95av2.db)symbol3=toTable(hgu95av2SYMBOL)# 在symbol3中搜索TP53得到三个探针"1939_at";'31618_at';1974_s_at'probe in%probeexprSet boxplot(exprSet["1939_at",] ~ biaoxing$Disease,data = exprSet,col="red") #其他的同上,换基因名就可以了
作业3(补充):ggpubr
#ggpubr(以"1939_at"为例)library(ggpubr)#首先在绘图之前,我们要处理数据,把分组信息和表达信息合并起来#都是笔者发现他们的sampleID和表达数据的行名并不一致,怎么办呢?visual1 as.data.frame(exprSet)[biaoxing$SampleID2 function(x){ x paste(c(x,"CEL"),collapse = ".")#paste函数主要是为了将两个字符串合并起来}))##或者#############################################biaoxing$SampleID1 function(x){ x paste(c(x,"CEL"),collapse = ".")})##或者#######################################################上面是改分组信息名,也可以改表达数据的列名exprSet as.data.frame(exprSet)colnames(exprSet) ".CEL",colnames(exprSet)############################################################identical(colnames(exprSet),biaoxing$SampleID)#判断表达数据列名和分组信息是否对应,结果为Truebiaoxing$Disease as.character(biaoxing$Disease)b as.data.frame(t(biaoxing$Disease as.character(biaoxing$Disease)visual1 #按行合并visual1 % as.matrix()%>% t()%>% as.data.frame()visual1$`1939_at` as.numeric(ggboxplot(visual1, "Disease", "`1939_at`", color = "Disease", palette =c("#00AFBB", "#E7B800"), add = "jitter", shape = "Disease")
实战一下吧——lncRNA数据处理(模拟)
##########################实战一下吧############################a 1:b 'tumor', c "male",e ":")d "_")shizhan #创造一个数据框#1 191:normal_female#2 131:tumor_male#3 13:normal_male#4 266:normal_female#5 257:normal_female#6 246:normal_female###如果要把他们分三列怎么做呢library(tidyr)shizhan$d ":",shizhan "a",#完美############################################另一种方法shizhan1 "a",###发现宝藏!!!!!# a status gender#1 191 normal female#2 131 tumor male#3 13 normal male#4 266 normal female#5 257 normal female#6 246 normal female
学习心得
1.字符串的处理
*截取:在上一篇分享文章中,笔者介绍了unlist与strsplist截取字符串,还有笔者也拓展了substr和substring的用法
*合并:使用paste函数,在这里要注意有时候collapse参数得不到理想的结果,可以把参数变为sep,二者都可以作为连接参数(具体为什么collapse有时候得不到理想的结果,笔者也不确定)
*替换:使用gsub函数,可以做批量处理。
*拆分:使用separate函数,这里要注意的是,它第一个参数为数据框,第二个参数为列名,不要觉得“数据框$列名” 就可以了。笔者就犯了这么愚蠢的错误。
2.apply ; lapply 和sapply的区别
*输入的数据:apply为数据框和矩阵;lapply为列表,向量和数据框;sapply同lapply。
*输出结果:apply为向量,列表和数组;lapply为列表;sapply为向量和矩阵。
*回到上面的合并字符串的前两种方法,笔者在lapply前面加了unlist,而sapply却没有。可以理解吗?
温馨提示:由于笔者的的网络不好,没有办法下载所有数据(郁闷!!!),所以笔者按照作业相应的考点进行操作。接下来的内容可能与原作业存在差异,还请大家海涵。
读入数据(对应作业8)
exprSet "GSE24673_series_matrix.txt",comment.char = library(tibble)rownames(exprSet) 1]exprSet -1]platformMap "platformMap.txt")platformMap[platformMap$gpl=="GPL6244",3]#找到对应的注释包"hugene10sttranscriptcluster"if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")BiocManager::install("hugene10sttranscriptcluster.db")library(hugene10sttranscriptcluster.db)prode head(prode)
基因注释(对应作业4和9)
exprSet$probe_id #将行名转变为第一列,笔者真是手残fexprset "probe_id")fexprset "probe_id",fexprset -1]fexprset 2:head(fexprset)#发现在第一列的是"RN7SK"基因maxgene "RN7SK",maxgenefexprset #去重rownames(fexprset) 1]final -1]save(final,file = "final_exprset.Rdata")#保存数据
备注:很感激果子老师为我们这些生信小白这里的平台文件的注释R包!详情请看:https://mp.weixin.qq.com/s/nWbMO4mULgN__nPjooRDlg
差异分析(对应作业5、7和10一部分)
library(limma)group "tumor",group group,levels = c(design group)colnames(design) group)design# tumor normal#1 1 0#2 1 0#3 1 0#4 1 0#5 1 0#6 1 0#7 1 0#8 1 0#9 1 0#10 1 1#11 1 1fit #线性模型拟合fit2 #贝叶斯检验allDiff=topTable(fit2,adjust='fdr',coef=2,number=Inf) #输出结果save(allDiff,file = "allDiff.Rda")#保存dif_subset 1 & adj.P.Val < 0.05)#找出差异两倍以上,pvalue小于0.05#其他方法##################################################3library(tibble)dif_filter % rownames_to_column() %>% filter(adj.P.Val < 0.05 & abs(logFC) >1) %>% column_to_rownames()save(diffLab,group,file = "diffLab.Rda")##########################################################
热图绘制(对应作业6、7和10)
library(pheatmap)heatdata #筛选出差异表达明显的基因表达谱pheatmap(heatdata)#可以简单画一下,都是没有分组信息group "tumor",annotation_col group)rownames(annotation_col) #设置分组信息pheatmap(heatdata, #热图的数据 annotation_col =annotation_col, #标注样本分类 annotation_legend=TRUE, # 显示注释 show_rownames = F,# 显示行名 scale = "row", #以行来标准化,使结果更加明显 color = colorRampPalette(c("green", "white", "red"))(100), cellwidth = 20, cellheight = 0.2,# 设置单元格大小 fontsize = 10)
学习思考
——在实战中的问题中(不同分割符号的分割问题)
这是笔者的师兄在做lncRNA数据分析时分享的一个问题,当时师兄向我分享了先把分割符变成相同的分割符,然后直接切割这个方法。由于笔者对于separate函数的用法产生兴趣,help()了一下,发现原来不同的分割符也可以"一步到位",只需要设置sep的参数即可。
所以学习R语言是一个循序渐进的过程,不可能一蹴而就,不断学习,不断提升(共勉!!!)
请多多指教!!!
编辑:骆栢维
校审:梁晓杰
相关阅读:
学习健明老师发布的R语言练习题的学习笔记(一)
利用ROC曲线寻找最佳cutoff值(连续型变量组成的riskscore)
如何使用X-tile软件寻找最佳cutoff值
m6A评分可作为胃癌的预后标志物并预测免疫治疗的效果,IF=10.679,实时IF=15.83
为何predict()函数计算的Riskscore不等于基因的表达量与其系数的乘积的加权呢?
语言 提取列名_学习健明老师发布的R语言练习题的学习笔记(二)相关推荐
- R plot图片背景设置为透明_学习健明老师发布的R语言练习题的学习笔记(一)...
学习者:骆栢维 题目来源:生信基石之R语言 初级10 个题目:http://www.bio-info-trainee.com/3793.html 备注:本文为笔者学习健明老师GitHub答案代码的学习 ...
- R语言 深圳 面授_「深圳侦探电话」用R语言实现深度学习情感分析
04-16阅读数466 作者:黄天元,复旦大学博士在读,目前研究涵盖文本挖掘.社交网络预测和机器学习等.希望与你们分享学习心得,推广并加深R语言在业界的应用.邮箱:huang.tian-yuan... ...
- r语言 siar 代码_平滑转换自回归(STAR)模型的R语言编程实现详解
总体讲,ST(Smooth transition)模型,这块的code混乱的比较狗血,文献中的做法也是千奇百怪, 单变量的有 :STAR, LSTAR, ESTAR, 多变量的有:STVAR, LST ...
- r语言提取列名_玩转数据处理120题之P1-P20(R语言tidyverse版本)
前言 今天在微信公众号[早起Python],看到有篇文章叫做[玩转数据处理120题],最初来自[Pandas进阶修炼120题],作者刘早起开始是用pandas实现的,后来又加入了中山大学博士陈熹的R语 ...
- python r语言 结合 部署_(转)python中调用R语言通过rpy2 进行交互安装配置详解...
python中调用R语言通过rpy2 进行详解 1.R语言的安装: 大家进行R语言的安装,在安装好R后,需要配置环境变量R才能进行使用. 对此电脑右键->选择高级设置->环境变量-> ...
- 【组队学习】【28期】R语言数据科学
R语言数据科学 论坛版块: http://datawhale.club/c/team-learning/36-category/36 开源内容: https://github.com/datawhal ...
- r语言提取列名_R语言基础(2)向量|矩阵|数组|数据框|数据IO|实用函数
"pythonic生物人"的第85篇分享. 本文梳理R语言数据结构:向量.矩阵.数据框: 数据IO及实用函数. 本文速览
- 语言 重量计算_大师之光:有种跨越国界的语言叫C++
语言太重要了,因为他的重要性,每个人都花很多时间来学习语言,幼儿时先学习母语,略长大了开始学习外语,成年了可能再进一步巩固母语,或者学习更多的外语. 对于越来越多的现代人来说,除了学习人类的语言外,还 ...
- python医学应用_数据分析工具鄙视链:Python、R语言是老大,Excel只能称小弟?
最新行业报告 2020数据分析.商业分析行业报告工作岗位与职能.薪资对比.热招公司等多方面详细解读帮助你一网打尽,斩获心仪Offer! 扫码回复[数据分析 0]立即领取 History语言发展史ABC ...
最新文章
- Docker网络配置进阶
- [JAVA] String常用方法
- Python爬虫入门教程 1-100 CentOS环境安装
- Amazon Aurora Serverless MySQL已正式可用
- HDU4577(2013年ACM杭州赛区邀请赛B题)
- 乐视云计算基于OpenStack的IaaS实践
- jsonobject修改key的值_JSON字符串操作移除空串更改key/value的介绍
- 【WebGoat习题解析】AJAX Security-Insecure Client Storage
- matlab keras,基于预训练的 Keras 层组合网络
- 气温常年在25度的地方_25度是什么气候
- oracle 导入文件 年月日,oracle导入文件时,日期格式问题
- w ndows 10关机快捷键,win10关机有什么快捷键 win10关机快捷键及使用小技巧【图文】...
- android通知详解
- echarts折线图 - 区域图 -如何设置填充色
- CCF201509-1数列分段(C语言)
- 微信小程序——video视频全屏展示
- MySQL之主键约束、非空约束、唯一约束
- Flink系列文档-(YY05)-Flink编程API-多流算子
- 《C语言进阶》小乐乐与字符串问题求解
- 通信领域相关的英语缩略语