图像处理包magick - R版的PS - 学习笔记
生物信息學習的正確姿勢
NGS系列文章包括NGS基礎(chǔ)、在線繪圖、轉(zhuǎn)錄組分析?(Nature重磅綜述|關(guān)于RNA-seq你想知道的全在這)、ChIP-seq分析?(ChIP-seq基本分析流程)、單細胞測序分析?(重磅綜述:三萬字長文讀懂單細胞RNA測序分析的最佳實踐教程)、DNA甲基化分析、重測序分析、GEO數(shù)據(jù)挖掘(典型醫(yī)學設(shè)計實驗GEO數(shù)據(jù)分析 (step-by-step))、批次效應處理等內(nèi)容。
作者:嚴濤?浙江大學作物遺傳育種在讀研究生(生物信息學方向)偽碼農(nóng),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()則可以顯示圖像的一些屬性數(shù)據(jù)。
#讀取網(wǎng)上隨便選的圖片 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")轉(zhuǎn)換格式
通過image_convert()可以將圖片轉(zhuǎn)換為我們需要的格式,比如這里我們可以將night_king的格式轉(zhuǎn)換為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中可以查看我們讀取的圖片
轉(zhuǎn)換(transformations)
magick提供一系列函數(shù)對圖片進行裁剪以及編輯,主要有以下函數(shù):
image_crop(image, “100x150+50”):裁剪
image_scale(image, “200”):按寬比例進行放大縮小
image_scale(image, “x200”):按高比例進行放大縮小
image_fill(image, “blue”, “+100+200”):對特定部位著色
image_border(image, “red”, “20x10”):添加邊框
下面我們來試試這些函數(shù)
#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)
這個函數(shù)最難掌握,我本來是想將wolf的眼睛渲染成紅色,但是不斷調(diào)整point以及fuzz都沒弄成,感興趣的可以自己搗鼓搗鼓。
可以通過調(diào)整參數(shù)來設(shè)置模糊度
文字注釋
#Add some text on the image image_annotate(wolf, "I am the King of wolf", size=25, gravity = "southeast", color="gold")
自定義text
#customize the text image_annotate(wolf, "I am the King", size=30, color="red", boxcolor = "pink", degrees = 45, location = "+30+30")設(shè)置字體
#Set the font times-new-roman image_annotate(wolf, "I am the King", size=30, color="red", boxcolor = "pink", degrees = 45, location = "+30+30", font = 'times-new-roman')管道操作
你沒看錯,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除了支持管道操作外,還支持圖層疊加、拼圖以及動圖處理,來個經(jīng)典的動態(tài)地球
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")不知什么鬼,圖片竟然顯示出來亂的,電腦渣的話還是別搞動畫
圖層
bigdata <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/JclK3efbB3.jpg?imageslim") logo <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/JdjdB88CLm.png?imageslim") frink <- image_read("http://ov520p4qw.bkt.clouddn.com/ytlogos/170903/E5fbmb1FIb.png?imageslim") img <- c(bigdata, logo, frink) img <- image_scale(img, "300x300") image_mosaic(img)
動畫
image_animate(image_scale(img, "200x200"), fps = 1, dispose = "previous")#fps控制放映速度
靜圖+動圖
靜圖就用我以前繪制過的,具體可看博客
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)
還有一些有趣的功能這里我就不講了,有興趣的可以試試,還是很好玩的。
點擊閱讀原文,跳轉(zhuǎn)作者博客。
可視化套路、配色和編輯
學術(shù)圖表的基本配色方法
數(shù)據(jù)可視化基本套路總結(jié)
史上最全的圖表色彩運用原理
論文圖表基本規(guī)范
文章用圖的修改和排版 (1)
文章用圖的修改和排版 (2)
在線繪圖和插件
簡單強大的在線繪圖
簡單強大的在線繪圖-升級版
你和PPT高手之間,就只差一個iSlide
推薦 3 個超贊的 EXCEL 插件,讓你 5 分鐘從小白變大神
CIRCOS系列
CIRCOS圈圖繪制 - circos安裝
CIRCOS圈圖繪制 - 最簡單繪圖和解釋
CIRCOS圈圖繪制 - 染色體信息展示和調(diào)整
CIRCOS增加熱圖、點圖、線圖和區(qū)塊屬性
R統(tǒng)計和作圖
在R中贊揚下努力工作的你,獎勵一份CheatShet
別人的電子書,你的電子書,都在bookdown
R語言 - 入門環(huán)境Rstudio
R語言 - 熱圖繪制 (heatmap)
R語言 - 基礎(chǔ)概念和矩陣操作
R語言 - 熱圖簡化
R語言 - 熱圖美化
R語言 - 線圖繪制
R語言 - 線圖一步法
R語言 - 箱線圖(小提琴圖、抖動圖、區(qū)域散點圖)
R語言 - 箱線圖一步法
R語言 - 火山圖
R語言 - 富集分析泡泡圖
R語言 - 散點圖繪制
R語言 - 韋恩圖
R語言 - 柱狀圖
R語言 - 圖形設(shè)置中英字體
R語言 - 非參數(shù)法生存分析
R語言 - 繪制seq logo圖
WGCNA分析,簡單全面的最新教程
一文看懂PCA主成分分析
富集分析DotPlot,可以服
基因共表達聚類分析和可視化
R中1010個熱圖繪制方法
還在用PCA降維?快學學大牛最愛的t-SNE算法吧, 附Python/R代碼
一個函數(shù)抓取代謝組學權(quán)威數(shù)據(jù)庫HMDB的所有表格數(shù)據(jù)
文章用圖的修改和排版
network3D: 交互式桑基圖
network3D 交互式網(wǎng)絡生成
R包ggseqlogo 繪制seq logo圖
生物AI插圖素材獲取和拼裝指導
Seq logo 在線繪制工具——Weblogo
NGS可視化
測序數(shù)據(jù)可視化 (一)
IGV基因組瀏覽器可視化高通量測序數(shù)據(jù)
高通量數(shù)據(jù)分析必備|基因組瀏覽器使用介紹 - 1
高通量數(shù)據(jù)分析必備|基因組瀏覽器使用介紹 - 2
高通量數(shù)據(jù)分析必備|基因組瀏覽器使用介紹 - 3
輕松繪制各種Venn圖
ETE構(gòu)建、繪制進化樹
Cytoscape網(wǎng)絡圖
Cytoscape教程1
Cytoscape之操作界面介紹
新出爐的Cytoscape視頻教程
R統(tǒng)計繪圖
R語言基礎(chǔ)系列:
你知道R中的賦值符號箭頭<-和等號=的區(qū)別嗎?
交集intersect、并集union、找不同setdiff
1數(shù)據(jù)類型(向量、數(shù)組、矩陣、 列表和數(shù)據(jù)框)
2讀寫數(shù)據(jù)所需的主要函數(shù)、與外部環(huán)境交互
3數(shù)據(jù)篩選——提取對象的子集
4向量、矩陣的數(shù)學運算
5控制結(jié)構(gòu)
6函數(shù)及作用域
7認識循環(huán)函數(shù)lapply和sapply
8分解數(shù)據(jù)框split和查看對象str
9模擬—隨機數(shù)、抽樣、線性模型
ggplot2繪圖基礎(chǔ)系列:
1初識ggplot2繪制幾何對象
2圖層的使用—基礎(chǔ)、加標簽、注釋
3工具箱—誤差線、加權(quán)數(shù)、展示數(shù)據(jù)分布
4語法基礎(chǔ)
5通過圖層構(gòu)建圖像
6標度、軸和圖例
7定位-分面和坐標系
8主題設(shè)置、存儲導出
9繪圖需要的數(shù)據(jù)整理技術(shù)
高級統(tǒng)計繪圖:
R做線性回歸
繪圖相關(guān)系數(shù)矩陣corrplot
相關(guān)矩陣可視化ggcorrplot
繪制交互式圖形recharts
交互式可視化CanvasXpress
聚類分析factoextra
LDA分析、作圖及添加置信-ggord
解決散點圖樣品標簽重疊ggrepel
添加P值或顯著性標記ggpubr
Alpha多樣性稀釋曲線rarefraction curve
堆疊柱狀圖各成分連線畫法:突出組間變化
沖擊圖展示組間時間序列變化ggalluvial
桑基圖riverplot
微生物環(huán)境因子分析ggvegan
五彩進化樹與熱圖更配ggtree
多元回歸樹分析mvpart
隨機森林randomForest?分類Classification?回歸Regression
鼠標點點繪圖系列
-SCI期刊數(shù)據(jù)可視化—折線圖
往期精品(點擊圖片直達文字對應教程)
后臺回復“生信寶典福利第一波”或點擊閱讀原文獲取教程合集
總結(jié)
以上是生活随笔為你收集整理的图像处理包magick - R版的PS - 学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国际上首次报道的非人灵长类胰岛衰老的单细
- 下一篇: 为什么Alpha多样性的输入数据会是它?