前面我們已經(jīng)給大家介紹了兩款繪制基因棒棒圖的軟件:《maftools(r包)繪制棒棒圖等》,《trackview(r包)包繪制 基因棒棒圖》,,今天來學(xué)習(xí)第三個軟件:GenVisR。該軟件于2016年10月發(fā)表在Bioinformatics雜志上,,文章標(biāo)題:GenVisR: Genomic Visualizations in R,,DOI為10.1093/bioinformatics/btw325。
首先,,還是老習(xí)慣,,推薦大家去學(xué)習(xí)官網(wǎng):https://github.com/griffithlab/GenVisR,。
GenVisR提供了一套快速且易于使用的基因組可視化工具,同時通過利用ggplot2和Bioconductor的功能保持了高度的靈活性,??梢暬纠Y(jié)果如下:
Fig. 1. Selected representation of GenVisR visualizations.安裝一下
## 使用西湖大學(xué)的 Bioconductor鏡像
options(BioC_mirror="https://mirrors./bioconductor")
options("repos"=c(CRAN="https://mirrors./CRAN/"))
library(devtools)
# install GenVisR from github
install_github("griffithlab/GenVisR")
繪圖:小試牛刀
1、瀑布圖(突變概覽圖)
瀑布圖的輸入數(shù)據(jù)是一個數(shù)據(jù)框,,該數(shù)據(jù)框可以來源于 .maf(版本 2.4)文件 或者 MGI 注釋格式 的文件,。瀑布圖在主面板中顯示突變的發(fā)生情況和類型,同時在頂部和側(cè)面的子圖中展示突變負(fù)荷以及攜帶突變的樣本所占的百分比,。
示例數(shù)據(jù)為 GenVisR 中提供的brcaMAF
數(shù)據(jù)結(jié)構(gòu),,包含了部分來自TCGA數(shù)據(jù)庫的50個乳腺浸潤性癌樣本??梢詮倪@里進(jìn)行下載:https://github.com/griffithlab/GenVisR/tree/master/data,。
rm(list=ls())
library(GenVisR)
set.seed(383)
load("GenVisR-master/data/brcaMAF.rda")
head(brcaMAF)
colnames(brcaMAF)
mainRecurCutoff
取值為0-1,控制展示那些突變樣本比例> x 的基因,。例如,,如果希望繪制在 ≥6% 的樣本中存在突變的基因:
# Plot only genes with mutations in 6% or more of samples
waterfall(brcaMAF, mainRecurCutoff = 0.06)
運(yùn)行到這里發(fā)現(xiàn)數(shù)據(jù)報錯雖然解決了,,但是繪圖也報錯,,然后看幫助函數(shù)提示新的教程在這:https://currentprotocols.onlinelibrary./doi/full/10.1002/cpz1.252
重新來一遍:
rm(list=ls())
library(GenVisR)
library(data.table)
set.seed(383)
myVars <- fread("http:///gen-viz-workshop/GenVisR/BKM120_Mutation_Data.tsv")
head(myVars)
colnames(myVars)
Waterfall()
函數(shù)會在數(shù)據(jù)表(data.table
)中查找特定的列名:列名應(yīng)為“sample”、“gene”和“mutation”,。
重命名一下:
myVars <- myVars[,.(`patient`, `gene name`, `trv type`, `amino acid change`)]
setnames(myVars, c("sample", "gene", "mutation", "amino acid change"))
在同一個基因/樣本中存在多個突變的情況下,,我們需要指定在繪圖時哪種突變類型應(yīng)被優(yōu)先考慮。優(yōu)先級如下:
myHierarchy <- data.table("mutation"=c("nonsense", "frame_shift_del", "frame_shift_ins", "in_frame_del", "splice_site_del", "splice_site", "missense","splice_region", "rna"),
color=c("#FF0000", "#00A08A", "#F2AD00", "#F98400", "#5BBCD6", "#046C9A", "#D69C4E", "#000000", "#446455"))
# 繪圖
plotData <- Waterfall(myVars, mutationHierarchy = myHierarchy)
# 保存
pdf(file="Figure_1.pdf", height=8, width=12)
drawPlot(plotData)
dev.off()
2,、TvTi(轉(zhuǎn)換/顛換圖)
TvTi
用于可視化給定隊列中轉(zhuǎn)換(Transition)和顛換(Transversion),,輸入數(shù)據(jù)為 .maf(版本 2.4)文件,其中包含樣本和等位基因信息,。
load("GenVisR-master/data/brcaMAF.rda")
head(brcaMAF)
colnames(brcaMAF)
# Call TvTi
pdf(file = "TvTi_plot.pdf",width = 12,height = 6)
TvTi(brcaMAF, lab_txtAngle=75, fileType="MAF")
dev.off()
如果將 type
參數(shù)設(shè)置為“Frequency”,,TvTi
還會繪制每種轉(zhuǎn)換(Transition)/顛換(Transversion)類型的觀察頻率,而不是比例,。
# Plot the frequency with a different color pallete
TvTi(brcaMAF, type = "Frequency", palette = c("#77C55D", "#A461B4", "#C1524B", "#93B5BB",
"#4F433F", "#BFA753"), lab_txtAngle = 75, fileType = "MAF")
3,、cnSpec(拷貝數(shù)變異隊列圖)
cnSpec
繪制在隊列水平上顯示拷貝數(shù)片段的圖。輸入為數(shù)據(jù)框,,其中列名為“chromosome”,、“start”、“end”,、“segmean”和“sample”,,每一行表示一個具有拷貝數(shù)變異的片段。此外還需要一個 UCSC 基因組(默認(rèn)為“hg19”)以確定染色體邊界,。這里使用附帶的數(shù)據(jù)集 LucCNseg
,,其中包含來自全基因組測序數(shù)據(jù)的4個樣本的拷貝數(shù)片段。
# Call cnSpec with minimum required inputs
cnSpec(LucCNseg, genome = "hg19")
4、cnView(單樣本拷貝數(shù)變異圖)
與 GenVisR 中的大多數(shù)繪圖不同,,cnView
主要用于單個樣本的分析,。輸入數(shù)據(jù)為數(shù)據(jù)框,其中列名為“chromosome”,、“coordinate”,、“cn”以及可選的“p_value”。此外,,還需要通過參數(shù) chr
指定要繪制的染色體,,以及通過參數(shù) genome
指定用于確定染色體邊界的基因組組裝版本。這里通過第14號染色體的示例數(shù)據(jù)來展示 cnView
的功能,。
# Create data
chromosome <- "chr14"
coordinate <- sort(sample(0:106455000, size = 2000, replace = FALSE))
cn <- c(rnorm(300, mean = 3, sd = 0.2), rnorm(700, mean = 2, sd = 0.2), rnorm(1000,
mean = 3, sd = 0.2))
data <- as.data.frame(cbind(chromosome, coordinate, cn))
data
head(data)
# Call cnView with basic input
cnView(data, chr = "chr14", genome = "hg19", ideogram_txtSize = 4)
5,、ideoView(染色體圖)
ideoView
函數(shù)繪制代表給定組裝版本中感興趣染色體的染色體圖(ideogram)?;据斎霝閿?shù)據(jù)框,,其列名為:“chrom”、“chromStart”,、“chromEnd”,、“name”和“gieStain”,這些列名與從 UCSC SQL 數(shù)據(jù)庫中可獲取的格式相匹配,。此外,,還需要指定要顯示的染色體。在這里,,使用附帶的數(shù)據(jù)集 cytoGeno
中預(yù)加載的基因組 hg38
,。
# Obtain cytogenetic information for the genome of interest
data <- cytoGeno[cytoGeno$genome == "hg38", ]
# Call ideoView for chromosome 1
ideoView(data, chromosome = "chr1", txtSize = 4)
6、lohView(雜合性缺失視圖)
lohView
用于可視化單個樣本中單個染色體或所有染色體的雜合性缺失(Loss of Heterozygosity, LOH),。輸入數(shù)據(jù)為數(shù)據(jù)框,,其列名為“chromosome”、“position”,、“n_vaf”(正常組織的變異等位基因頻率),、“t_vaf”(腫瘤組織的變異等位基因頻率)和“sample”,以及通過參數(shù)chr
指定要繪制的染色體,,和通過參數(shù)genome
指定用于確定染色體邊界的基因組組裝版本,。
# Call lohView with basic input, make sure input contains only Germline calls
lohView(HCC1395_Germline, chr = "chr5", genome = "hg19", ideogram_txtSize = 4)
嗯,看完沒發(fā)現(xiàn)這個包有繪制棒棒圖的功能額,,好多地方也不更新了,。但是這個包的繪制染色體圖還不錯。