::opts_chunk$set(echo = TRUE,message=F,warning=F) R Markdown head(iris) plot(iris$Sepal.Length) 引用自生信技能树
Sepal.Length)) #从大到小 desc()2. distinct,数据框按照某一列去重复distinct(test,Species,.keep_all = T) #.keep_all 保留全部列3.
---title: "生信技能树学习笔记"引用自生信技能树author: "天空"date: "2023-01-02"output: html_document---一、数据框、矩阵和列表1. gene1 up 5## 2 gene2 up 3## 3 gene3 down -2## 4 gene4 down -42. df1[,3]## [1] 5 3 -2 -4df1[,ncol(df1)]## [1] 5 3 -2 -4#如何取数据框除了最后一列以外的其他列? 2,] 2 5 8## [3,] 3 6 9m[2,]## a b c ## 2 5 8m[,1]## [1] 1 2 3m[2,3]## c ## 8m[2:3,1:2]## a b## [ 1,] 2 5## [2,] 3 6m## a b c## [1,] 1 4 7## [2,] 2 5 8## [3,] 3 6 99.
-2,-4)) df1 ## gene change score ## 1 gene1 up 5 ## 2 gene2 up 3 ## 3 gene3 down 3 nrow(df1) ## [1] 4 ncol(df1) ## [1] 3 #行名 列名 rownames(df1) ## [1] "1" "2" "3" "4" colnames(df1) ## [1] 1 2 3 m[2,3] ## c ## 8 m[2:3,1:2] ## a b ## [1,] 2 5 ## [2,] 3 6 m ## a b c ## [1,] 1 4 7 ## [2,] 2 5 8 ## [3,] 3 6 9 t(m) # 转置 ## [,1] [,2] [,3] ## a 1 2 3 ## b 4 5 6 [1] "jimmy" "Damon" "Sophie" 删除变量 rm(x) rm(df1,df2) rm(list = ls()) # 清空控制台 快捷键ctrl+L 数据结构的总结 引用自生信技能树
# 1:9 是一个向量,把他们排成三行> m [,1] [,2] [,3][1,] 1 4 7[2,] 2 5 8[3,] 3 6 ] 3 6 9 > t(m) # 转置行和列 [,1] [,2] [,3]a 1 2 3b 4 5 6c 7 8 9转换为数据框 m = as.data.frame = 2))> x$m1 [,1] [,2] [,3][1,] 1 4 7[2,] 2 5 8[3,] 3 6 9$m2 = ls())清空控制台:contral+l如何判断是矩阵还是数据框根据生成她的函数用class和is族函数判断pheatmap::pheatmap(m)给元素补充名字names() = c("")生信技能树 day3 上课笔记
#file1重命名为file3 mv file2 file3 #file2重命名为file3 mv file3 myDir1 #file3移动进myDir1 mv myDir1 myDir2 #myDir1 进入行末模式 Esc退出进入命令模式 wq #在行末模式下,输入wq(退出保存) vimtutor zh_CN#查看中文帮助文档 3 生信常见格式 fasta:2行,有id行和序列行 _64.sh #生信技能树安装包软链接地址 cd ~ ln -s /home/t_linux/Miniconda3-latest-Linux-x86_64.sh ./ #安装 输入yes或者enter activate rna # 退出小环境 conda deactivate 在小环境rna中安装生信软件 #软件要安装在小环境中,不要安装在base # 激活环境 conda activate rna bash test3.sh 1>test3.log 2>&1 & $ top $ ps -ef | grep test3 查看任务讯息 ###任务提交 nohup # 不要挂断任务,把任务提交到服务器上运行
转换图片图片图片矩阵画热图图片图片列表的的新建和取子集图片l[[2]]:取第二个子集,再取矩阵的子集列表支持$图片图片数据结构的总结图片函数和R包图片图片图片图片图片图片图片图片图片图片R包图片图片1.CRAN网站图片2.bioconductor图片3. sort(a)tail(a,3)tail(sort(a),10)head(sort(a,decreasing = T),10)load("test2.Rdata")a = apply(test,1,var
)## [1] 2 3 15 5 7c(1:9)## [1] 1 2 3 4 5 6 7 8 9rep("x",times=3)## [1] "x" "x" "x"##有重复的用rep(),有规律的序列用 seq(),随机数用rnorm()seq(from=3,to=21,by=3)## [1] 3 6 9 12 15 18 21paste0(rep("x",times=3),1:3)## [1] "x1" "x2" "x3"###paste0函数是把数据连在一起。 [1] 6 5 3 1##默认从小到大,T会变成从大到小常用函数:x<-c(1,3,5,6)var(x)#方差## [1] 4.916667sd(x)#标准差## [1] 2.217356length 重复值统计## x## 1 3 5 6 ## 1 1 1 1sort(x,decreasing=T)#排序##默认从小到大,T会变成从大到小## [1] 6 5 3 14.3 对两个向量进行操作 在R
#10.把前面读取的样本信息表格的样本名字根据下划线分割看第3列元素的统计情况。第三列代表该样本所在的plate#plate指384孔PCR板,编号分别是48号和49号。 title=sample$Titletitle## [1] "SS2_15_0048_A1" "SS2_15_0048_A2" "SS2_15_0048_A3" "SS2_15_0048_A4 _A22" "SS2_15_0048_A23" "SS2_15_0048_A24"## [25] "SS2_15_0048_B1" "SS2_15_0048_B2" "SS2_15_0048_B3" _B22" "SS2_15_0048_B23" "SS2_15_0048_B24"## [49] "SS2_15_0048_C1" "SS2_15_0048_C2" "SS2_15_0048_C3" _C22" "SS2_15_0048_C23" "SS2_15_0048_C24"## [73] "SS2_15_0048_D1" "SS2_15_0048_D2" "SS2_15_0048_D3"
后起之秀奔涌而至,欢迎大家在《生信技能树》的舞台分享自己的心得体会! 如下图所示3种矩阵分解方式的区别。 ssGSEA GSEA分析,jimmy老师在《生信技能树》公众号多次讲解: GSEA分析一文就够(单机版+R语言版) GSEA的统计学原理试讲 GSVA或者GSEA各种算法都是可以自定义基因集的 但实际上 我们凭直观感受应该觉得答案是H3。 H3以较大间隔将它们分开,这样就能容忍测试数据的一些噪声而正确分类,是一个泛化能力不错的分类器。
#改进版本 human_gene <- c("PTPRC", "EPCAM", "MME", "CD3G", "CD3E", "CD68", "CD79A", "RP11-34P13.8") #若干人类基因 同时已经有可以转换的代码可用 homologene(genes, inTax, outTax) genes:需要查找同源基因的基因列表 inTax:输入基因所属物种 outTax:查找的同源基因属于那个物种 3. NCBI homologene 有四万多对同源基因的对应表;简书链接附上 https://www.jianshu.com/p/877d6f3cc799?
,c=1:10>3)#sep是以 分割 m3 ## a b c ## 1 1 q.1 FALSE ## 2 2 q.2 FALSE ## 3 3 q.3 FALSE ## ## [[3]] ## a b c ## 1 1 q.1 FALSE ## 2 2 q.2 FALSE ## 3 3 q.3 FALSE ## 4 m5=m3[c(1,3),] m5 ## a b c ## 1 1 q.1 FALSE ## 3 3 q.3 FALSE m3$d=c(2:11) m3 ## a b e=c(3:12) m3 ## a b c d e ## 1 1 q.1 FALSE 2 3 ## 2 2 q.2 FALSE 3 4 ## 3 3 (参考B站生信小技巧获取runinfo table) SraRunTable <- read.table("http://www.bio-info-trainee.com/tmp/5years/SraRunTable.txt
---title: "生信技能树学习笔记"引用自生信技能树author: "天空"date: "2023-01-02"output: html_document---一、文件读写1. 表格数据读入R语言图片#1.读取ex1.txtex1 <- read.table("day3/R_02/ex1.txt")ex1[1:3,1:3]## day3/R_02/ex1.txt",header = T)ex1[1:3,1:3]## id## 1 66e33592-2e6e -4e50-8a5b-8a3f902eb2b5## 2 142aea0e-7a7b-4ac4-9dbb-0f62e2379599## 3 9d951ff8-ce21-4c69-86f2-0d1eeb2e40e3 <- read.csv("day3/R_02/ex2.csv")ex2[1:3,1:3]## X TCGA.06.0238.01A TCGA.06.0171.02A## 1 NCKAP1L
如果代码可以运行但是不出图,可能是因为画板被占用,可以多次dev.off()关闭画板
= topTable(fit, coef=2, n=Inf) DEG3 = na.omit(DEG3) k1 = (DEG3$P.Value < pvalue_t)&(DEG3$logFC < -logFC_t );table(k1) k2 = (DEG3$P.Value < pvalue_t)&(DEG3$logFC > logFC_t);table(k2) DEG3$change = ifelse(k1," DOWN",ifelse(k2,"UP","NOT")) table(DEG3$change) head(DEG3) tj = data.frame(deseq2 = as.integer(table ="NOT"] cg3 = rownames(DEG3)[DEG3$change ! v2 = draw_volcano(DEG2,pkg = 2,logFC_cutoff = logFC_t) v3 = draw_volcano(DEG3,pkg = 3,logFC_cutoff =
---title: "生信技能树学习笔记"引用自生信技能树author: "天空"date: "2023-01-02"output: html_document---一、函数和R包1. 函数与参数图片图片jimmy <- function(a,b,m = 2){ (a+b)^m}jimmy(a = 1,b = 2)## [1] 9jimmy(1,2)## [1] 9jimmy(3,6 )## [1] 81jimmy(3,6,-2)## [1] 0.012345682. #当一个代码需要复制粘贴三次,就应该写成函数或使用循环jimmy <- function(i){ plot(iris[,i],col=iris[,5])}jimmy(1)jimmy(2)jimmy(3) R包介绍图片2. xxx包如何安装图片3.
---title: "生信技能树学习笔记"author: "天空"date: "2023-01-04"output: html_document---R语言综合应用1. 6 11## [3,] 0 11## [4,] 3 14(3) 长脚本管理方式之一图片4. colnames(exp) = paste0("test",1:6)exp[,1:3] = exp[,1:3]+1exp## test1 test2 test3 test4 test5 test6 [17] "test2.Rdata" ## [18] "<e7>\u0094\u009f信< e6>\u008a\u0080<e8>\u0083<bd><e6><a0>\u0091<e7><ac>\u0094记day7.html" ## [19] "<e7>\u0094\u009f信<e6>
survival_TP53_in_BRCA_TCGA.png') Task6:GEO下载表达数据并提取特定的基因做热图(要去重复) 下载数据集GSE17215的表达矩阵并且提取下面的基因画热图 ACTR3B ANLN BAG1 BCL2 BIRC5 BLVRA CCNB1 CCNE1 CDC20 CDC6 CDCA1 CDH3 CENPF CEP55 CXXC5 EGFR ERBB2 ESR1 EXO1 dat$probe_id <- rownames(dat) dat_symbol <- merge(dat, ids, by ="probe_id") #载入50个基因名 genes <- 'ACTR3B ANLN BAG1 BCL2 BIRC5 BLVRA CCNB1 CCNE1 CDC20 CDC6 CDCA1 CDH3 CENPF CEP55 CXXC5 EGFR ERBB2 ESR1 EXO1 #用到实验设计矩阵 ##step2 fit2 <- contrasts.fit(fit, contrast) #用到比较矩阵 fit2 <- eBayes(fit2) ##step3
#查看包含的元素 exp <- exprs(sCLLex)#提取表达矩阵 dim(exp)#查看其大小 group <- pData(sCLLex)#提取分组信息 table(group)#设计矩阵 3了解 的探针名称 1 subset函数 a1 <- subset(ids, ids$symbol=='TP53') 2 grep函数 a4 <- ids[grep("^TP53$", ids$symbol),] 3 exp_filter_no_symbol, by ='probe_id' ) rownames(exp_ids) <- exp_ids$symbol exp_sym <- exp_ids[,-c(1:3) <- eBayes(fit2) 3差异表达矩阵获取 mtx <- topTable(fit3, coef = 1, n=Inf) DEG_mtx <- na.omit(mtx) dim(mtx) dim geom_hline(yintercept=-log10(0.05),linetype=4)+ geom_vline(xintercept=c(-1,1),linetype=4)+ xlim(-3,3
unexpected,一般是代码有误some tips1 Tab-打出前几个字母即出现提示,按↑↓翻动,按Tab补全2 光标放在>后面,按↑键,即可修改上一条命令,按回车重新运行图片图片(格式重于内容)引用自生信技能树