《Modern Statistics for Modern Biology》Chapter 一: 離散數(shù)據(jù)模型的預(yù)測(cè)(1.1 - 1.3)
《Modern Statistics for Modern Biology》Chapter 一: 離散數(shù)據(jù)模型的預(yù)測(cè)(1.4 - 1.5)
《Modern Statistics for Modern Biology》Chapter 二: 統(tǒng)計(jì)建模(2.1-2.3)
《Modern Statistics for Modern Biology》Chapter 二: 統(tǒng)計(jì)建模(2.4-2.5)
《Modern Statistics for Modern Biology》Chapter 二 統(tǒng)計(jì)建模(2.6 - 2.7)
《Modern Statistics for Modern Biology》Chapter 二 統(tǒng)計(jì)建模(2.8 - 2.9)
《Modern Statistics for Modern Biology》Chapter 二 統(tǒng)計(jì)建模(2.10 完結(jié))
從這章開始最開始記錄一些markdown等小知識(shí)
$\hat{p}=\frac{1}{12}$
:
掌握R語言中的apply函數(shù)族
卡方檢驗(yàn)
Hardy-Weinberg equilibrium( 哈迪-溫伯格平衡 )
帶你理解beta分布
簡(jiǎn)單介紹一下R中的幾種統(tǒng)計(jì)分布及常用模型
- 統(tǒng)計(jì)分布每一種分布有四個(gè)函數(shù):
d――density(密度函數(shù)),p――分布函數(shù),q――分位數(shù)函數(shù)桥温,r――隨機(jī)數(shù)函數(shù)
。比如,正態(tài)分布的這四個(gè)函數(shù)為dnorm,pnorm拉宗,qnorm车荔,rnorm
渡冻。下面我們列出各分布后綴,前面加前綴d忧便、p族吻、q或r就構(gòu)成函數(shù)名:norm:正態(tài)
,t:t分布
珠增,f:F分布
超歌,chisq:卡方
(包括非中心)unif:均勻
,exp:指數(shù)
蒂教,weibull:威布爾巍举,gamma:伽瑪
,beta:貝塔
lnorm:對(duì)數(shù)正態(tài)凝垛,logis:邏輯分布懊悯,cauchy:柯西
,binom:二項(xiàng)分布
苔严,geom:幾何分布
定枷,hyper:超幾何
,nbinom:負(fù)二項(xiàng)
届氢,pois:泊松
signrank:符號(hào)秩欠窒,wilcox:秩和
,tukey:學(xué)生化極差
如何預(yù)測(cè)一條序列是否含有CpG島
圖片輸出盡量保存為矢量圖
3退子、R語言中的高質(zhì)量圖形
哈哈岖妄,終于來到最喜歡的環(huán)節(jié)了。
數(shù)據(jù)可視化分為兩類(至少)寂祥。第一類能讓科學(xué)家探索數(shù)據(jù)并發(fā)現(xiàn)工作中的復(fù)雜過程荐虐;另一類的可視化類型提供了關(guān)于他的結(jié)果的信息豐富、清晰和具有視覺吸引力的插圖丸凭,他可以將其展示給他人福扬,并且最終包含在出版物中。
.....此處省略
3.1 這一章的目標(biāo)
- 學(xué)習(xí)怎么通過可視化快速而又靈活的解釋數(shù)據(jù)集
- 畫出可發(fā)表的高質(zhì)量圖片
- 綜述R語言的基礎(chǔ)繪圖
- ** 理解圖形概念語法背后的邏輯**
- 介紹
ggplot2
繪圖功能 - 了解如何在一維惜犀,兩維甚至三維維度中繪制數(shù)據(jù)铛碑,并探索分面
facet
- 為分子生物學(xué)數(shù)據(jù)(或沿著其他序列,例如肽)創(chuàng)建
“along-genome”
圖虽界。 - 討論我們的一些交互式圖形選項(xiàng)
3.2 基礎(chǔ)R繪圖
- 最基礎(chǔ)的繪圖是
plot
函數(shù)汽烦。在下面的代碼中,繪圖結(jié)果見圖 3.2
莉御。它用于繪制來自酶聯(lián)免疫吸附測(cè)定(ELISA)測(cè)定的數(shù)據(jù)撇吞。該方法用于定量測(cè)定脫氧核糖核酸酶(DNase)降解DNA的活性俗冻。這些數(shù)據(jù)被組裝在R對(duì)象DNase
中,該對(duì)象DNase
是一個(gè)數(shù)據(jù)文件牍颈,檢測(cè)運(yùn)行迄薄;conc
: 蛋白質(zhì)濃度;density
: 被測(cè)量的光密度煮岁。
> head(DNase)
Run conc density
1 1 0.04882812 0.017
2 1 0.04882812 0.018
3 1 0.19531250 0.121
4 1 0.19531250 0.124
5 1 0.39062500 0.206
6 1 0.39062500 0.215
> plot(DNase$conc, DNase$density)
- 進(jìn)一步美化噪奄,通過
xlab
、ylab
來改變xy軸的坐標(biāo)名人乓,pch
改變繪制圖形的形狀(比如:正方形、圓形)都毒。有關(guān)變量的信息存儲(chǔ)在DNase
中色罚,我們可以使用attr
函數(shù)訪問它。圖 3.3
pch參數(shù)對(duì)應(yīng)的圖形形狀
> plot( DNase$conc, DNase$density,
+ ylab = attr(DNase, "labels")$y,
+ xlab = paste(attr(DNase, "labels")$x, attr(DNase, "units")$x),
+ pch = 3,
+ col = "blue")
> attr(DNase, "labels")
$`x`
[1] "DNase concentration"
$y
[1] "Optical density"
> attr(DNase, "units")
$`x`
[1] "(ng/ml)"
? 問題
- 用
“metadata”
(如較長(zhǎng)的描述、物理單元瀑焦、來源信息等)對(duì)數(shù)據(jù)文件列進(jìn)行注釋似乎是一個(gè)有用的特性腌且。這種存儲(chǔ)此類信息的方式(如DNase
對(duì)象)在R生態(tài)系統(tǒng)中是標(biāo)準(zhǔn)化的還是通用的?有沒有其他標(biāo)準(zhǔn)化或通用的方法來實(shí)現(xiàn)這一點(diǎn)榛瓮?
? 解 - 在常規(guī)的R
data.frame
中沒有好的或廣泛使用的基礎(chǔ)結(jié)構(gòu)铺董,在tidyverse
(data_frame
,tibble
)中也沒有禀晓。但是看看Bioconductor
包S4Vectors
中的DataFrame
類精续。除其他外,它用于注釋SummarizedExperiment
的行和列粹懒。 - 除了散點(diǎn)圖重付,我們也可以使用柱形圖和箱式圖來表示 (圖 3.4)
> hist(DNase$density, breaks=25, main = "")
> boxplot(density~Run, data = DNase)
-
Boxplots
便于在緊致空間中顯示彼此相鄰的多個(gè)分布。我們將在第3.6節(jié)中看到更多關(guān)于繪制多個(gè)單變量分布的內(nèi)容凫乖。 - 基本的R繪圖功能對(duì)于快速交互式地探索數(shù)據(jù)非常有用确垫;但是,如果我們想要?jiǎng)?chuàng)建更復(fù)雜的顯示帽芽,我們很快就會(huì)遇到它們的局限性删掀。我們將使用一個(gè)稱為圖形語法的可視化框架,該框架在
ggplot2
包中實(shí)現(xiàn)嚣镜,能夠以邏輯和優(yōu)雅的方式逐步構(gòu)建高質(zhì)量的圖形爬迟。首先,讓我們介紹并加載一個(gè)示例數(shù)據(jù)集菊匿。
3.3 示例數(shù)據(jù)集
- 為了正確地測(cè)試ggplot2的功能付呕,我們需要一個(gè)足夠大且具有一定復(fù)雜性的數(shù)據(jù)集计福,以便可以從許多不同的角度對(duì)其進(jìn)行切片和查看。我們將使用一個(gè)
基因表達(dá)微陣列數(shù)據(jù)集
徽职,報(bào)告大約100個(gè)小鼠胚胎細(xì)胞
在早期發(fā)育的不同時(shí)間點(diǎn)的轉(zhuǎn)錄情況象颖。哺乳動(dòng)物的胚胎最初是單個(gè)細(xì)胞
,即受精卵
姆钉。通過同步的細(xì)胞分裂波说订,卵細(xì)胞增殖成一團(tuán)細(xì)胞
,一開始它們之間沒有明顯的區(qū)別潮瓶。不過陶冷,在某些時(shí)候,細(xì)胞會(huì)選擇不同的血統(tǒng)毯辅。通過進(jìn)一步的規(guī)范埂伦,不同的細(xì)胞類型和組織出現(xiàn)
,這是一個(gè)完整的有機(jī)體所需要的思恐。實(shí)驗(yàn)的目的沾谜,由Ohnishi
等人解釋(2014),旨在研究胚胎中與第一次symmetry breaking event
相關(guān)的基因表達(dá)變化胀莹。我們將進(jìn)一步解釋這些數(shù)據(jù)基跑。更多細(xì)節(jié)可以在論文和生物導(dǎo)體數(shù)據(jù)包 Hiiragi2013的文檔中找到。我們首先加載數(shù)據(jù):
> BiocManager::install("Hiiragi2013", version = "3.8")
> library("Hiiragi2013") ## 數(shù)據(jù)比較大描焰,如果安裝失敗媳否,重復(fù)運(yùn)行上面代碼幾次就好
> data("x")
> dim(Biobase::exprs(x))
[1] 45101 101
- 只需在R提示符下鍵入
x
,就可以打印出ExpressionSet
對(duì)象x
的更詳細(xì)摘要栈顷。數(shù)據(jù)矩陣的101列
(上面通過Biobase包中的exprs
函數(shù)訪問)對(duì)應(yīng)于樣本(每一列都是一個(gè)單細(xì)胞)逆日,45101行對(duì)應(yīng)于陣列(Affymetrix mouse4302陣列)探測(cè)到的基因。使用RMA
方法(Irizarry等人)對(duì)數(shù)據(jù)進(jìn)行歸一化處理萄凤。(2003年)室抽。原始數(shù)據(jù)也可在軟件包(數(shù)據(jù)對(duì)象a)和EMBL-EBI的ArrayExpress
數(shù)據(jù)庫中查閱,登錄號(hào)為E-MTAB-1681
靡努。 - 我們可以看下這個(gè)樣品中包含什么信息坪圾。
> head(pData(x), n = 2)
File.name Embryonic.day Total.number.of.cells lineage genotype ScanDate sampleGroup sampleColour
1 E3.25 1_C32_IN E3.25 32 WT 2011-03-16 E3.25 #CAB2D6
2 E3.25 2_C32_IN E3.25 32 WT 2011-03-16 E3.25 #CAB2D6
- 所提供的信息包括有關(guān)細(xì)胞的信息(即獲得這些細(xì)胞的
胚胎的年齡
、大小
和基因型
)和技術(shù)信息(掃描日期惑朦、原始數(shù)據(jù)文件名)兽泄。按照慣例,小鼠胚胎發(fā)育的時(shí)間以天為單位計(jì)算漾月,并報(bào)告為病梢,例如,E3.5。此外蜓陌,在這篇論文中觅彰,作者根據(jù)年齡、基因型和血統(tǒng)將細(xì)胞劃分為8個(gè)生物組(Samplegroup)钮热,并定義了一個(gè)顏色方案來表示這些組(SampleColour)填抬。使用下面的代碼(請(qǐng)參閱下面的解釋),我們定義了一個(gè)小的數(shù)據(jù)文件組隧期,其中包含每個(gè)組的摘要信息:?jiǎn)卧竦臄?shù)量和首選顏色飒责。
> library("dplyr")
> groups = group_by(pData(x), sampleGroup) %>%
+ summarise(n = n(), color = unique(sampleColour))
> groups
# A tibble: 8 x 3
sampleGroup n color
<chr> <int> <chr>
1 E3.25 36 #CAB2D6
2 E3.25 (FGF4-KO) 17 #FDBF6F
3 E3.5 (EPI) 11 #A6CEE3
4 E3.5 (FGF4-KO) 8 #FF7F00
5 E3.5 (PE) 11 #B2DF8A
6 E4.5 (EPI) 4 #1F78B4
7 E4.5 (FGF4-KO) 10 #E31A1C
8 E4.5 (PE) 4 #33A02C
在FGF4-KO基因缺失的胚胎中,FGF4基因是一種重要的細(xì)胞分化調(diào)節(jié)基因仆潮。從E3.5開始宏蛉,野生型細(xì)胞(沒有FGF4基因敲除)經(jīng)歷第一次對(duì)稱破缺事件,并分化為不同的細(xì)胞系性置,稱為多能上胚層(EPI)和原始內(nèi)胚層(PE)檐晕。
由于上面的代碼塊是我們遇到管道操作符
%>%
和函數(shù)group_by
以及包dplyr中的summarise
函數(shù)的第一個(gè)實(shí)例,所以讓我們分布解析代碼蚌讼。首先,管道%>%
个榕。通常篡石,管道對(duì)于使嵌套函數(shù)調(diào)用更易于讀取非常有用。在R中下面的兩行代碼行駛的功能是一樣的.
f(x) %>% g(y) %>% h
h(g(f(x), y))
也就是說:“求值
f(x)
西采,然后將結(jié)果作為第一個(gè)參數(shù)傳遞給函數(shù)g
凰萨,而將y
作為第二個(gè)參數(shù)傳遞給g
。然后將g的輸出
傳遞給函數(shù)h
械馆。你可以無限地重復(fù)這個(gè)胖眷。特別是如果參數(shù)x和y本身是復(fù)雜的表達(dá)式,或者有相當(dāng)多的函數(shù)鏈霹崎,第一個(gè)版本往往更容易閱讀
珊搀。group_by
函數(shù)簡(jiǎn)單地“標(biāo)記”數(shù)據(jù)文件,并指出所有后續(xù)操作不應(yīng)同時(shí)應(yīng)用于整個(gè)數(shù)據(jù)文件尾菇,而應(yīng)用于由sampleGroup
因子定義的塊境析。最后,summarise
計(jì)算匯總統(tǒng)計(jì)信息派诬;這可以是求平均值劳淆、和;在本例中默赂,我們只計(jì)算每個(gè)塊中的行數(shù)n()和流行的顏色沛鸵。
3.4 ggplot2
- ggplot2是** Hadley Wickham (Wickham 2016)** 創(chuàng)作的。
balabala......
- 現(xiàn)在我們使用
ggplot2
重新繪制圖 3.2缆八。
> library(ggplot2)
> ggplot(DNase, aes(x = conc, y = density)) + geom_point()
-
balabal.....
現(xiàn)在曲掰,讓我們轉(zhuǎn)到小鼠單細(xì)胞數(shù)據(jù)疾捍,并使用ggplot
函數(shù)為8
個(gè)組中的每個(gè)組繪制樣本數(shù)。結(jié)果如圖3.7所示蜈缤。
> ggplot(groups, aes(sampleGroup, n)) + geom_bar(stat = "identity")
圖 3.7
接下來省略中間話語拾氓,主要注重于代碼的學(xué)習(xí)
> groupColor = setNames(groups$color, groups$sampleGroup)
> groupColor
E3.25 E3.25 (FGF4-KO) E3.5 (EPI) E3.5 (FGF4-KO) E3.5 (PE) E4.5 (EPI) E4.5 (FGF4-KO)
"#CAB2D6" "#FDBF6F" "#A6CEE3" "#FF7F00" "#B2DF8A" "#1F78B4" "#E31A1C"
E4.5 (PE)
"#33A02C"
> ggplot(groups, aes(x = sampleGroup, y = n, fill = sampleGroup)) +
+ geom_bar(stat = "identity") +
+ scale_fill_manual(values = groupColor, name = "Groups") +
+ theme(axis.text.x = element_text(angle = 90, hjust = 1))
3.4.1 Data flow
> gg = ggplot(DNase, aes(x = conc, y = density)) + geom_point()
> gg
> print(gg)
3.4.2 保存圖片
> ggsave("DNAse-histogram-demo.pdf", plot = gg)
- 存儲(chǔ)圖形的主要方法有兩種:
矢量圖形
和光柵(像素)圖形
。在矢量圖形
中底哥,打印存儲(chǔ)為一系列幾何圖元
咙鞍,如點(diǎn)、直線趾徽、曲線续滋、形狀和印刷字符。R中用于將打印保存為矢量圖形格式的首選格式是PDF孵奶。在光柵圖形中疲酌,打印存儲(chǔ)在點(diǎn)陣數(shù)據(jù)結(jié)構(gòu)中。光柵格式的主要限制是分辨率有限了袁,這取決于可用的像素?cái)?shù)朗恳。在R中,最常用的光柵圖形輸出設(shè)備是PNG载绿。**通常粥诫,最好將打印保存為矢量圖形格式**
,因?yàn)橐院罂偸强梢詫⑹噶繄D形文件轉(zhuǎn)換為任何所需分辨率的光柵格式崭庸,而反向轉(zhuǎn)換則相當(dāng)困難怀浆。你不希望你的演講或論文中的數(shù)字看起來很糟糕,因?yàn)橄袼鼗娜斯ぶ破罚?/li>