生物信息学习的正确姿势
NGS系列文章包括NGS基础、在线绘图、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。
作者:严涛 浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源
本文主要简单介绍一下magick包,主要用于图像处理
#安装的话就直接从CRAN安装进行 install.packages("magick") #Load the package library(magick) #查看支持哪些格式 str(magick_config()) ## List of 21 ## $ version :Class 'numeric_version' hidden list of 1 ## ..$ : int [1:4] 6 9 9 9 ## $ modules : logi FALSE ## $ cairo : logi TRUE ## $ fontconfig : logi FALSE ## $ freetype : logi TRUE ## $ fftw : logi TRUE ## $ ghostscript : logi TRUE ## $ jpeg : logi TRUE ## $ lcms : logi TRUE ## $ libopenjp2 : logi FALSE ## $ lzma : logi TRUE ## $ pangocairo : logi TRUE ## $ pango : logi TRUE ## $ png : logi TRUE ## $ rsvg : logi TRUE ## $ tiff : logi TRUE ## $ webp : logi TRUE ## $ wmf : logi FALSE ## $ x11 : logi FALSE ## $ xml : logi TRUE ## $ zero-configuration: logi FALSE可以看出大部分格式都是支持的
读取的话可以直接从本地读取,也可以读取URL格式的图片,主要通过image_read()来读取,image_info()则可以显示图像的一些属性数据。
#读取网上随便选的图片 night_king <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/ha6Cchfk38.jpg?imageslim") image_info(night_king) ## format width height colorspace filesize ## 1 JPEG 189 267 sRGB 6449 #通过image_write()可以讲图片以任何格式输出,比如将刚读取的图片以png格式输出。 image_write(night_king, path = "night_king.png", format = "png")通过image_convert()可以将图片转换为我们需要的格式,比如这里我们可以将night_king的格式转换为png格式
night_king.png <- image_convert(night_king, "png") image_info(night_king.png) ## format width height colorspace filesize ## 1 PNG 189 267 sRGB 0可以看到这里的filesize为0,直到被渲染(这里涉及到ImageMagick方面,我不是很懂)。
在RStudio中可以查看我们读取的图片
magick提供一系列函数对图片进行裁剪以及编辑,主要有以下函数:
image_crop(image, “100x150+50”):裁剪
image_scale(image, “200”):按宽比例进行放大缩小
image_scale(image, “x200”):按高比例进行放大缩小
image_fill(image, “blue”, “+100+200”):对特定部位着色
image_border(image, “red”, “20x10”):添加边框
下面我们来试试这些函数
#Example image wolf <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/4h96Df21AI.png?imageslim") print(wolf) #Add 20px left/right and 10px top/bottom image_border(image_background(wolf, "hotpink"), "#000080", "20x10") #trim margins image_trim(wolf) #裁剪 image_crop(wolf, "500x300+50") #Resize image_scale(wolf, "300")#width:300px #Resize image_scale(wolf, "x300")#heigth:300px #Rotate or mirror image_rotate(wolf, 45) #Flip image_flip(wolf) #Flop image_flop(wolf) #Paint image_fill(wolf, "red", point = "+190+100", fuzz = 4000)这个函数最难掌握,我本来是想将wolf的眼睛渲染成红色,但是不断调整point以及fuzz都没弄成,感兴趣的可以自己捣鼓捣鼓。
#Add randomness image_blur(wolf, 10, 5)可以通过调整参数来设置模糊度
image_noise(wolf) #Silly filters image_charcoal(wolf) image_oilpaint(wolf) image_negate(wolf)你没看错,magick支持管道操作,下面试试
library(magrittr) wolf%>% image_rotate(270)%>% image_background("white", flatten = TRUE)%>% image_border("red", "10x10")%>% image_annotate("I am the King", color='red', size = 25, location = "+100+300")magick除了支持管道操作外,还支持图层叠加、拼图以及动图处理,来个经典的动态地球
earth <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/a9CjAEGiC5.gif") length(earth) print(earth) rev(earth) %>% image_flip() %>% image_annotate("This is the Earth", size = 20, color = "white")不知什么鬼,图片竟然显示出来乱的,电脑渣的话还是别搞动画
静图就用我以前绘制过的,具体可看博客
image1 <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/kLeL888DbI.png?imageslim") dance_man <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/86iEDe36lf.gif") dance_man <- image_scale(dance_man, "200") #Background image background <- image_background(image_scale(image1, "800"), "white", flatten = TRUE) #Combine and flatten frames frames <- image_apply(dance_man, function(frame){ image_composite(background, frame, offset = "+500+270") }) #Turn frames into animation animation <- image_animate(frames, fps = 10) print(animation)还有一些有趣的功能这里我就不讲了,有兴趣的可以试试,还是很好玩的。
点击阅读原文,跳转作者博客。
学术图表的基本配色方法
数据可视化基本套路总结
史上最全的图表色彩运用原理
论文图表基本规范
文章用图的修改和排版 (1)
文章用图的修改和排版 (2)
简单强大的在线绘图
简单强大的在线绘图-升级版
你和PPT高手之间,就只差一个iSlide
推荐 3 个超赞的 EXCEL 插件,让你 5 分钟从小白变大神
CIRCOS圈图绘制 - circos安装
CIRCOS圈图绘制 - 最简单绘图和解释
CIRCOS圈图绘制 - 染色体信息展示和调整
CIRCOS增加热图、点图、线图和区块属性
在R中赞扬下努力工作的你,奖励一份CheatShet
别人的电子书,你的电子书,都在bookdown
R语言 - 入门环境Rstudio
R语言 - 热图绘制 (heatmap)
R语言 - 基础概念和矩阵操作
R语言 - 热图简化
R语言 - 热图美化
R语言 - 线图绘制
R语言 - 线图一步法
R语言 - 箱线图(小提琴图、抖动图、区域散点图)
R语言 - 箱线图一步法
R语言 - 火山图
R语言 - 富集分析泡泡图
R语言 - 散点图绘制
R语言 - 韦恩图
R语言 - 柱状图
R语言 - 图形设置中英字体
R语言 - 非参数法生存分析
R语言 - 绘制seq logo图
WGCNA分析,简单全面的最新教程
一文看懂PCA主成分分析
富集分析DotPlot,可以服
基因共表达聚类分析和可视化
R中1010个热图绘制方法
还在用PCA降维?快学学大牛最爱的t-SNE算法吧, 附Python/R代码
一个函数抓取代谢组学权威数据库HMDB的所有表格数据
文章用图的修改和排版
network3D: 交互式桑基图
network3D 交互式网络生成
R包ggseqlogo 绘制seq logo图
生物AI插图素材获取和拼装指导
Seq logo 在线绘制工具——Weblogo
测序数据可视化 (一)
IGV基因组浏览器可视化高通量测序数据
高通量数据分析必备|基因组浏览器使用介绍 - 1
高通量数据分析必备|基因组浏览器使用介绍 - 2
高通量数据分析必备|基因组浏览器使用介绍 - 3
轻松绘制各种Venn图
ETE构建、绘制进化树
Cytoscape教程1
Cytoscape之操作界面介绍
新出炉的Cytoscape视频教程
R语言基础系列:
你知道R中的赋值符号箭头<-和等号=的区别吗?
交集intersect、并集union、找不同setdiff
1数据类型(向量、数组、矩阵、 列表和数据框)
2读写数据所需的主要函数、与外部环境交互
3数据筛选——提取对象的子集
4向量、矩阵的数学运算
5控制结构
6函数及作用域
7认识循环函数lapply和sapply
8分解数据框split和查看对象str
9模拟—随机数、抽样、线性模型
ggplot2绘图基础系列:
1初识ggplot2绘制几何对象
2图层的使用—基础、加标签、注释
3工具箱—误差线、加权数、展示数据分布
4语法基础
5通过图层构建图像
6标度、轴和图例
7定位-分面和坐标系
8主题设置、存储导出
9绘图需要的数据整理技术
高级统计绘图:
R做线性回归
绘图相关系数矩阵corrplot
相关矩阵可视化ggcorrplot
绘制交互式图形recharts
交互式可视化CanvasXpress
聚类分析factoextra
LDA分析、作图及添加置信-ggord
解决散点图样品标签重叠ggrepel
添加P值或显著性标记ggpubr
Alpha多样性稀释曲线rarefraction curve
堆叠柱状图各成分连线画法:突出组间变化
冲击图展示组间时间序列变化ggalluvial
桑基图riverplot
微生物环境因子分析ggvegan
五彩进化树与热图更配ggtree
多元回归树分析mvpart
随机森林randomForest 分类Classification 回归Regression
鼠标点点绘图系列
-SCI期刊数据可视化—折线图
后台回复“生信宝典福利第一波”或点击阅读原文获取教程合集