Li's Bioinfo-Blog
  • |
  • 主页
  • 分类
  • 标签
  • 归档
  • 关于
  • 搜索
Home » 分类

📖 R&Python&Shell --- 编程基础、可视化等

050快捷键

shell Ctrl + a : 将光标移到本行的开始处 Ctrl + e : 将光标移到本行的末尾处 Backsapce : 删除前一个字符 Ctrl + d : 删除后一个字符 Ctrl + k : 从光标开始剪切至行的末尾 Ctrl + y : 从行的开头剪切光标处 ...

Create:&nbsp;<span title='2022-04-26 00:00:00 +0000 UTC'>2022-04-26</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-26&nbsp;|&nbsp;Words:&nbsp;170&nbsp;|&nbsp;1 min&nbsp;|&nbsp;Lishensuo

正则表达式基础

在R、shell,Python等进行字符串处理时,常常使用正则表达式进行高效的文本编辑。下面小结一下关于正则表达式的基础用法 1、匹配字符(集) . : 可以匹配除换行符外的任意字符 ...

Create:&nbsp;<span title='2022-04-16 00:00:00 +0000 UTC'>2022-04-16</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-16&nbsp;|&nbsp;Words:&nbsp;551&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

hugo+github搭建我的个人博客

博客网页:https://lishensuo.github.io/ github:https://github.com/lishensuo/lishensuo.github.io 1、安装hugo (1)首先下载安装包https://github.com/gohugoio/hugo/releases ...

Create:&nbsp;<span title='2023-01-29 00:00:00 +0000 UTC'>2023-01-29</span>&nbsp;|&nbsp;Update:&nbsp;2023-01-29&nbsp;|&nbsp;Words:&nbsp;2509&nbsp;|&nbsp;6 min&nbsp;|&nbsp;Lishensuo

R基础配置

1、R镜像设置 (1)临时设置,重启R之后会重置 1 2 3 4 options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor/") options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")) options()$repos options()$BioC_mirror (2)通过设置.Rprofile文件永久设置 linux 1 2 3 4 5 6 7 #进入家目录 cd ~ vi ~/.Rprofile #输入下面两行代码 options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))) options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor") #保存退出 window 第①步:打开记事本或者其他文本编辑软件; 第②步:输入默认设置(内容同上述linux案例); 第③步:保存文件到 “此电脑>文档” /.Rprofile; 第④步:重新进入R/RStudio即可。 ...

Create:&nbsp;<span title='2022-04-16 00:00:00 +0000 UTC'>2022-04-16</span>&nbsp;|&nbsp;Update:&nbsp;2022-04-16&nbsp;|&nbsp;Words:&nbsp;244&nbsp;|&nbsp;1 min&nbsp;|&nbsp;Lishensuo

R语言的多线程循环语句

在遇到R里的大量循环操作时,可以考虑多线程处理方式,提高分析速度。具体使用方法针对window与linux/mac平台有所区别。相关笔记如下 1 2 #查看系统平台 Windows/Linux Sys.info()['sysname'] 一、Linux/Mac平台 1 2 3 library(parallel) # 检测系统的CPU数 detectCores() 1、lapply 多线程 mclapply()函数,关键是mc.cores参数设置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 library(parallel) ##并行4个线程 res = mclapply(1:10, function(x){ <code> <code> }, mc.cores = 4) ##并行处理不影响顺序 res = mclapply(1:1000, function(x){ print(x) x2 = x*x Sys.sleep(0.1) return(c(x, x2)) }, mc.cores = 10) res_df = do.call(rbind, res) head(res_df,3) # [,1] [,2] # [1,] 1 1 # [2,] 2 4 # [3,] 3 9 tail(res_df,3) # [,1] [,2] # [998,] 998 996004 # [999,] 999 998001 # [1000,] 1000 1000000 2、for循环 多线程 配合foreach包。可通过调整参数,设置结果返回的形式,详见相关笔记,或者该包的帮助文档。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 library(foreach) library(doParallel) cl=makeCluster(4) registerDoParallel(cl) #专门加载所需要的分析包 clusterEvalQ(cl, library(package1)) clusterEvalQ(cl, library(package1)) res = foreach(i = 1:10) %dopar% { <code> <code> } stopCluster(cl) 二、window平台 个人觉得window平台的笔记本电脑可能还是不太适合多线程的使用 1 2 3 library(parallel) # 检测系统的CPU数 detectCores() 1、lapply 多线程 parLapply()函数 1 2 3 4 5 6 7 8 cl <- makeCluster(4) #专门加载所需要的分析包 clusterExport(cl, library(packages)) res=parLapply(cl, 1:10, function(x){ <code> <code> }) stopCluster(cl) #需要显式的释放已加载的线程,比较麻烦 2、for循环的多线程调用同上 参考教程 https://www.biostars.org/p/273107/

Create:&nbsp;<span title='2022-05-17 00:00:00 +0000 UTC'>2022-05-17</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-17&nbsp;|&nbsp;Words:&nbsp;508&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

R-数据分析-dplyr表格操作

1 2 3 4 5 6 7 8 9 library(tidyverse) # -- Attaching packages ----------------------------------------------------- tidyverse 1.3.1 -- # √ ggplot2 3.3.5 √ purrr 0.3.4 # √ tibble 3.1.2 √ dplyr 1.0.7 # √ tidyr 1.1.3 √ stringr 1.4.0 # √ readr 2.0.0 √ forcats 0.5.1 # -- Conflicts -------------------------------------------------------- tidyverse_conflicts() -- # x dplyr::filter() masks stats::filter() # x dplyr::lag() masks stats::lag() 1、表格筛选 1.1 select 筛选列 col1:col3 选取起止范围的列; ...

Create:&nbsp;<span title='2022-05-08 00:00:00 +0000 UTC'>2022-05-08</span>&nbsp;|&nbsp;Update:&nbsp;2022-05-08&nbsp;|&nbsp;Words:&nbsp;2320&nbsp;|&nbsp;5 min&nbsp;|&nbsp;Lishensuo

R-数据分析-reshape2表格长短转换

1 2 library(tidyverse) library(reshape2) 1、matrix 1 2 3 4 5 6 7 8 9 10 11 12 set.seed(123) scores_mt = matrix(round(rnorm(40, mean = 80, sd=10)), nrow = 10, ncol = 4, dimnames = list(paste0("Stu",1:10), paste0("Subject-",LETTERS[1:4]))) class(scores_mt) # [1] "matrix" "array" head(scores_mt) # Subject-A Subject-B Subject-C Subject-D # Stu1 74 92 69 84 # Stu2 78 84 78 77 # Stu3 96 84 70 89 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ##(1) 宽变长 reshaped = melt(scores, value.name = "Score") head(reshaped) # Var1 Var2 Score # 1 Stu1 Subject-A 74 # 2 Stu2 Subject-A 78 # 3 Stu3 Subject-A 96 ## Var1 --- rownames ## Var2 --- colnames ##(2) 长变宽(还原) reshaped %>% dcast(Var1 ~ Var2) %>% head() # Var1 Subject-A Subject-B Subject-C Subject-D # 1 Stu1 74 92 69 84 # 2 Stu2 78 84 78 77 # 3 Stu3 96 84 70 89 2、data.frame 2.1 简单 1 2 3 4 5 6 7 8 9 10 scores_df = scores_mt %>% as.data.frame() %>% tibble::rownames_to_column("Name") class(scores_df) # [1] "data.frame" head(scores_df) # Name Subject-A Subject-B Subject-C Subject-D # 1 Stu1 74 92 69 84 # 2 Stu2 78 84 78 77 # 3 Stu3 96 84 70 89 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ##(1) 宽变长 reshaped = scores_df %>% melt(id="Name", variable.name="Subject", value.name = "Score") head(reshaped) # Name Subject Score # 1 Stu1 Subject-A 74 # 2 Stu2 Subject-A 78 # 3 Stu3 Subject-A 96 ##(2) 长变宽(还原) reshaped %>% dcast(Name ~ Subject, value.var = "Score") %>% head() # Name Subject-A Subject-B Subject-C Subject-D # 1 Stu1 74 92 69 84 # 2 Stu10 76 75 93 76 # 3 Stu2 78 84 78 77 2.2 复杂 1 2 3 4 5 6 7 8 scores_df_Anno = scores_df %>% dplyr::mutate(Class=paste0("Class",rep(c("01","02"), 5)), Age=round(rnorm(10, 20, 1)), .before=2) head(scores_df_Anno) # Name Class Age Subject-A Subject-B Subject-C Subject-D # 1 Stu1 Class01 20 74 92 69 84 # 2 Stu2 Class02 20 78 84 78 77 # 3 Stu3 Class01 20 96 84 70 89 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ##(1) 宽变长 reshaped = scores_df_Anno %>% melt(id=c("Name","Class","Age"), variable.name="Subject", value.name = "Score") head(reshaped) # Name Class Age Subject Score # 1 Stu1 Class01 20 Subject-A 74 # 2 Stu2 Class02 20 Subject-A 78 # 3 Stu3 Class01 20 Subject-A 96 ##(2) 长变宽(还原) reshaped %>% dcast(Name + Class + Age ~ Subject, value.var = "Score") %>% head() # Name Class Age Subject-A Subject-B Subject-C Subject-D # 1 Stu1 Class01 20 74 92 69 84 # 2 Stu10 Class02 21 76 75 93 76 # 3 Stu2 Class02 20 78 84 78 77 3、list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 scores_list = list(Stu1=c(1,2), Stu2=c(3,4), Stu3=c(5,6)) # $Stu1 # [1] 1 2 # # $Stu2 # [1] 3 4 # # $Stu3 # [1] 5 6 melt(scores_list) # value L1 # 1 1 Stu1 # 2 2 Stu1 # 3 3 Stu2 # 4 4 Stu2 # 5 5 Stu3 # 6 6 Stu3

Create:&nbsp;<span title='2022-06-25 00:00:00 +0000 UTC'>2022-06-25</span>&nbsp;|&nbsp;Update:&nbsp;2022-06-25&nbsp;|&nbsp;Words:&nbsp;580&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

R-可视化-ggplot2绘图基础

ggplot2包一方面可以实现多种形式的数据可视化、比如箱图、柱状图等;另一方面也可以从多个角度进行美化、修饰。对于前者,之前对ggplot2的柱状图、箱图用法进行了详细的学习。关于其它类型的图,例如密度图、折线图、直方图等,可参考他人的总结,例如下面的sthda网站。 ...

Create:&nbsp;<span title='2022-07-03 00:00:00 +0000 UTC'>2022-07-03</span>&nbsp;|&nbsp;Update:&nbsp;2022-07-03&nbsp;|&nbsp;Words:&nbsp;1267&nbsp;|&nbsp;3 min&nbsp;|&nbsp;Lishensuo

R-可视化-ggpubr包快速绘制点图、线图与柱状图

参考教程:http://www.sthda.com/english/articles/24-ggpubr-publication-ready-plots/。 ...

Create:&nbsp;<span title='2022-07-23 00:00:00 +0000 UTC'>2022-07-23</span>&nbsp;|&nbsp;Update:&nbsp;2022-07-23&nbsp;|&nbsp;Words:&nbsp;964&nbsp;|&nbsp;2 min&nbsp;|&nbsp;Lishensuo

R-可视化-拼图patchwork

一、ggplot2组图 0、安装包及示例图 1 2 3 4 5 6 7 8 9 10 # #install.packages("devtools") # devtools::install_github("thomasp85/patchwork") library(ggplot2) library(patchwork) p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp)) p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear)) p3 <- ggplot(mtcars) + geom_bar(aes(gear)) + facet_wrap(~cyl) p4 <- ggplot(mtcars) + geom_bar(aes(carb)) p5 <- ggplot(mtcars) + geom_violin(aes(cyl, mpg, group = cyl)) 1、简单使用 (1)符号连接:+或者| 均表示左右拼接,/表示上下拼接,()可以用于调整优先级 (2)函数调用:wrap_plots(),可通过具体参数设置排列方式 ...

Create:&nbsp;<span title='2022-09-04 00:00:00 +0000 UTC'>2022-09-04</span>&nbsp;|&nbsp;Update:&nbsp;2022-09-04&nbsp;|&nbsp;Words:&nbsp;1139&nbsp;|&nbsp;3 min&nbsp;|&nbsp;Lishensuo
« Prev Page Next Page »
© 2025 Li's Bioinfo-Blog Powered by Hugo & PaperMod
您是本站第 位访问者,总浏览量为 次