https://blog.naver.com/pokemonms/222606583751
Bradford assay는 단백질의 무게를 확인하기 위해 진행하는 실험이다. Bradford assay용 시약을 섞고 OD595를 재면 되는데, 그러기 위해서 Standard curve가 필요하다. 일정한 무게의 단백질(BSA; Bovine serum albumin)을 용해한 다음 Bradford assay용 시약을 섞고 OD595를 측정하고,
이런 식으로 standard curve를 그린다. 이게 없으면 OD595를 재도 무게가 어느 정도인지 모른다.
실험수업을 듣는 제육쌈밥(대짱이)군, 이번 주 실험 주제는 Bradford assay였다. standard curve를 그리고 미지 시료의 단백질 농도까지 정량하는 게 이번 과제였다. 그런데 양을 측정하려면 먼저 standard curve를 그리고, 선형 회귀분석을 통해(엑셀에서는 추세선) R^2와 일차식을 구해야 하지 않겠는가? 하지만 제육쌈밥군의 컴퓨터는 리눅스였고, 하필 그날따라 리브레오피스가 버벅거리는 것이었다. (이거 생각보다 버벅거림)
그리고 이걸로도 어떻게든 되겠지, 하면서 제육쌈밥군은 R을 켰다. 근데 왜 이름이 제육쌈밥이죠 아니 그냥 그게 생각나서요 이름 진짜 막 지으시네
그래프 그리기 전단계
> library(ggplot2)
> setwd('/home/koreanraichu/')
어디가요 ggplot2 불러야지
setwd는 working directory 설정하는건데, 본인은 저기에 파일이 있어서 저기로 고정해두고 쓴다. 고정 안 해두면 '/home/koreanraichu/파일.csv'로 열어야 하지만, 고정하게 되면 '파일명.csv' 한방이면 끝.
> data=read.csv('bradford.csv')
> data
BSA OD595_1 OD595_2 OD595_3
1 0 0.001 0.000 0.000
2 10 0.005 0.006 0.004
3 50 0.035 0.030 0.027
4 100 0.050 0.051 0.055
5 200 0.089 0.091 0.095
불러서 일단 평균부터 구해야 한다.
> data$AVR=rowMeans(data[,c('OD595_1','OD595_2','OD595_3')])
> data
BSA OD595_1 OD595_2 OD595_3 AVR
1 0 0.001 0.000 0.000 0.0003333333
2 10 0.005 0.006 0.004 0.0050000000
3 50 0.035 0.030 0.027 0.0306666667
4 100 0.050 0.051 0.055 0.0520000000
5 200 0.089 0.091 0.095 0.0916666667
(마른세수)
> data$AVR=round(rowMeans(data[,c('OD595_1','OD595_2','OD595_3')]),3)
> data
BSA OD595_1 OD595_2 OD595_3 AVR
1 0 0.001 0.000 0.000 0.000
2 10 0.005 0.006 0.004 0.005
3 50 0.035 0.030 0.027 0.031
4 100 0.050 0.051 0.055 0.052
5 200 0.089 0.091 0.095 0.092
(대충 개비스콘 아저씨 편안 짤)
꺾은선그래프
> ggplot(data=data,aes(x=BSA,y=AVR,group=1))+geom_line()
씁 근데 색이 좀 그래...
> ggplot(data=data,aes(x=BSA,y=AVR,group=1))+geom_line(colour="#939597")
아 얼티메이트 그레이는 킹정이죠
이모 여기 추세선 1인분!
> ggplot(data=data,aes(x=BSA,y=AVR,group=1))+geom_line(colour="#939597")+geom_smooth(method=lm,se=FALSE)
`geom_smooth()` using formula 'y ~ x'
method=lm으로 하면 직선형이 나온다. 아무튼 그렸으면 봅시다...
> ggplot(data=data,aes(x=BSA,y=AVR,group=1))+geom_line(colour="#939597")+geom_smooth(method=lm,se=FALSE,colour="#000000")
`geom_smooth()` using formula 'y ~ x'
뭐야 이거 왜 돼요
추세선 식과 R^2
> summary(lm(AVR~BSA,data))
Call:
lm(formula = AVR ~ BSA, data = data)
Residuals:
1 2 3 4 5
-0.002969 -0.002556 0.005093 0.003154 -0.002723
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.969e-03 2.776e-03 1.069 0.363366
BSA 4.588e-04 2.707e-05 16.948 0.000447 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.004421 on 3 degrees of freedom
Multiple R-squared: 0.9897, Adjusted R-squared: 0.9862
F-statistic: 287.2 on 1 and 3 DF, p-value: 0.0004474
BSA가 X축, Intercept는 절편(Y절편)이다. R^2는 Multiple R-squared에 있다.
> 4.588e-04
[1] 0.0004588
> 2.969e-03
[1] 0.002969
표시형식 왜저래요... 아무튼 이 추세선의 식은 y=0.0004588x+0.002969 되시겠다.
> ggplot(data=data,aes(x=BSA,y=AVR,group=1))+geom_line(colour="#939597")+geom_smooth(method=lm,se=FALSE,colour="#000000")+geom_text(x=100,y=0.08,label="y=0.0004588x+0.002969")+geom_text(x=100,y=0.077,label="R^2=0.9897")
`geom_smooth()` using formula 'y ~ x'
그래프에 넣을거면 geom_text()를 쓰자. ...아니 자꾸 점으로 읽어...
축 제목과 그래프 제목
여기까지 다 그린 제육쌈밥군. 됐다! 하고 그래프를 저장하고 R을 끄려다가 생각해보니, 축 제목이 좀 그렇다?
> ggplot(data=data,aes(x=BSA,y=AVR,group=1))+geom_line(colour="#939597")+geom_smooth(method=lm,se=FALSE,colour="#000000")+geom_text(x=100,y=0.08,label="y=0.0004588x+0.002969")+geom_text(x=100,y=0.077,label="R^2=0.9897")+xlab("BSA conc. (ug/ul)")+ylab("OD 595")+ggtitle("Standard curve")
`geom_smooth()` using formula 'y ~ x'
축 제목을 바꿔주고 그래프 제목을 추가했다.
'Coding > R' 카테고리의 다른 글
R 배워보기-8.3. Basic graphs with standard graphics (0) | 2022.08.23 |
---|---|
R 배워보기-8.2. Miscellaneous (0) | 2022.08.23 |
R의 내장 데이터 (부제: 공공데이터 어떻게 받아요?) (0) | 2022.08.22 |
R 배워보기-8.1. ggplot2로 그래프 그리기 (하) (0) | 2022.08.22 |
R 배워보기-8.1. ggplot2로 그래프 그리기 (상) (0) | 2022.08.22 |