当前位置:网站首页>系统学习+主动探索,是最舒适的入门学习方式!
系统学习+主动探索,是最舒适的入门学习方式!
2022-06-27 21:07:00 【生信技能树】
我们的生信入门班和数据挖掘线上直播课程已经有了三年多的历史,培养了一波又一波优秀的生信人才。本期分享的内容不是课堂上讲的,而是给了踮一踮脚能做出来的超纲练习题,启发学员主动学习,而不是一味等待投喂。
系统学习+主动探索,是最舒适的入门学习方式!
下面来看优秀学员佳男同学的分享:
R语言超纲练习题
(生信技能树优秀学员佳男同学)
- 数据挖掘(GEO,TCGA,单细胞)2022年6月场,快速了解一些生物信息学应用图表
- 生信入门课-2022年6月场,你的生物信息学第一课
首先,读取数据使用read.table和read.csv函数,并使用dim看一下大致几行几列,因为肯定有重复的【题目的坑】,所以不设置read.csv里的rownames=1,先都读取进来。
> exp=read.csv("exp.csv")
> dim(exp)
[1] 1000 7
> soft2 <- read.table("soft.txt",header = T,sep = "\t")
> dim(soft2)
[1] 1000 5
exp表达矩阵,读进来是个数据框
soft数据框,其中的genenames和ID对应,且我们需要替换的就是需要这两列数据
我先使用%in%判断了一下exp和soft2里面的表达矩阵是互相对应的,但是使用identical函数判断一下是否完全一致,返回却是F,说明顺序不一致,需要灵活使用match函数调整顺序一致。其中soft3就是根据exp文件中的ID列顺序调整好的,然后再使用identical函数判断一下是否完全一致,返回T,完成。最后直接将soft3里的genename赋值给exp的x就是行名一列就可以完成替换。
> table(exp$X %in% soft2$ID)
TRUE
1000
> table(soft2$ID %in% exp$X)
TRUE
1000
> identical(soft2$ID,exp$X)
[1] FALSE
> soft3=soft2[match(exp$X,soft2$ID),]
> identical(soft3$ID,exp$X)
[1] TRUE
exp$X=soft3$GeneName
接下来,首先要去掉exp表达矩阵里的重复基因,因为重复基因的存在使得我们无法将之作为行名。 直接先使用duplicated函数判断exp的x行名这一列的重复基因,重复的返回T,然后我们直接将之作为索引,反向在exp里进行提取子集的操作就可以将重复的基因去掉并赋值给新的表达矩阵exp1。 然后将exp1的x这行不重复的基因名直接作为行名,函数为rownames。 最后去掉多余的x这一行并赋值给新的表达矩阵exp2.exp2就是我们要的表达矩阵。
> exp1=exp[!duplicated(exp$X),]
> rownames(exp1)=exp1$X
> exp2=exp1[,(-1)]
> View(exp2)
「第二种解法多个探针对应同一个基因时,取平均值」 前面操作都一样,调整顺序将ID换成基因名,重点是如何处理重复的基因名 使用aggregate函数,https://www.jianshu.com/p/7912aac76d5f【这是aggregate函数的说明】 aggregate函数是数据处理中常用到的函数,具有强大的功能。可以按照要求把数据打组聚合,然后对聚合以后的数据进行加和、求平均等各种操作。具体说明可使用命令:help("aggregate")获取官方文档
> ###第二种方法,将重复的基因名按照表达量取平均值
> expr_mean=aggregate(.~X,mean,data=exp)
> rownames(expr_mean)=expr_mean$X
> expr_mean=expr_mean[,(-1)]
> View(expr_mean)
「第三种方法:对于相同的基因,我们挑选行平均值大的那一整行」
> ####第三种方法,取表达值最大的一行
> #计算行平均值,按降序排列
> index=order(rowMeans(exp[,-1]),decreasing = T)
> #调整EXP的基因顺序
> expr_ordered=exp[index,]
> #对于有重复的基因,保留第一次出现的那个,即行平均值大的那个
> keep=!duplicated(expr_ordered$X)
> #得到最后处理之后的表达谱矩阵
> expr_max=expr_ordered[keep,]
> expr_max
> rownames(expr_max)=expr_max$X
> expr_max=expr_max[,(-1)]
> View(expr_max)
*「小洁老师补充」:tibble::column_to_rownames()可以将列直接转为行名,可以优化代码,但是学员做这个题的时候还没讲到,初学者写代码先完成,再完美~ 另外,数据框不允许重复的行名,其实矩阵是允许的,可以试试看把exp转为矩阵会不会让代码更简单~ *
边栏推荐
- Discuz taobaoke website template / Dean taobaoke shopping style commercial version template
- Getting started with pytorch
- ICML 2022: UFRGS |作为最优策略转移基础的乐观线性支持和后继特征
- Technical implementation process of easycvr platform routing log function [code attached]
- 【Try to Hack】veil-evasion免杀
- 沉寂了一段时间 ,我又出来啦~
- const关键字及其作用(用法),C语言const详解
- vivado VIO IP的用法
- vivado 如何添加时序约束
- halcon之区域:多种区域(Region)特征(6)
猜你喜欢
EXCEL 打印设置公共表头
实践torch.fx:基于Pytorch的模型优化量化神器
电子科大(申恒涛团队)&京东AI(梅涛团队)提出用于视频问答的结构化双流注意网络,性能SOTA!优于基于双视频表示的方法!
Discuz taobaoke website template / Dean taobaoke shopping style commercial version template
Working at home is more tiring than going to work at the company?
Stream + Nacos
vmware虚拟机桥接连通
Introduction to quantitative trading
"Top stream Aidou manufacturing machine" cooperates with four industrial capitals to become LP
This kind of people began to be robbed by VC with a monthly salary of 80000 yuan
随机推荐
如何找到外文文献对应的中文文献?
【数字IC/FPGA】检测最后一个匹配序列的位置
云辅助隐私集合求交(Server-Aided PSI)协议介绍:学习
MSP430F5529 单片机 读取 GY-906 红外温度传感器
思源笔记订阅停止直接删云端数据嘛?
[electron] 基础学习
Prediction of benign / malignant breast tumors (logistic regression classifier)
Is the dog virtue training with a monthly salary of 30000 a good business?
[learn FPGA programming from scratch -48]: Vision - development and application of intelligent sensors
用pytorch进行CIFAR-10数据集分类
陈云pytorch学习笔记_用50行代码搭建ResNet
[js]var, let,const 的区别
良/恶性乳腺肿瘤预测(逻辑回归分类器)
Death of 5 yuan youkuang in Yuanqi forest
沉寂了一段时间 ,我又出来啦~
华为伙伴暨开发者大会2022 | 麒麟软件携手华为共建计算产业,共创数智未来
The National University of Singapore 𞓜 uses model free reinforcement learning to evaluate the energy efficiency of the energy efficiency data center
6G显卡显存不足出现CUDA Error:out of memory解决办法
【tinyriscv verilator】分支移植到正点原子达芬奇开发板
Vivado FFT IP的使用说明