[NGS] Targeted gene panel Start.

BioinformaticsAndMe




1. Targeted gene panel (Targeted sequencing)

- Genome 중에서 타겟 영역만을 Capture할 수 있도록 Customized kit을 제작을 통해 원하는 영역만을 선택적으로 시퀀싱하는 방법.




2. Targeted sequencing flow

- Targeted sequencing이 특정 영역을 집어내 증폭하는 것이 목적이기에 Amplicon(엠플리콘) sequencing으로 진행된다.

- 타겟 시퀀싱에서 ROI(Region of Interest)를 정확하게 집어내는 primer(프라이머)를 잘 제작하는게 실험의 관건이다. 


#엠플리콘 enrichment 참조

http://bioinformaticsandme.tistory.com/66?category=808295







3. Targeted  vs  WES  vs  WGS 비교

- Targeted panel

40~400 genes, High coverage, 매우 좋은 정확도.

특정한 질병 관련 variant나 gene 동정에 특화.

평균 2,000~10,000x

높은 depths에 근거한 rare variant 동정.

관심 있는 유전체 부위 Customized design 가능.


- Whole exome(1%)

22,000 genes, Intermediate coverage, 좋은 정확도.

모든 exon을 타겟 – 원하는 유전자만 타겟 할 수 없음.

평균 100~150x

Customized design 불가


- Whole genome

All genes, lower coverage, 낮은 정확도.


#패널 디자인 자체가 어떤 새로운 변이를 발견하려는 목적보다는, 이미 알려진 유전자 변이를 확실하고 정확하게 동정하기 위함이다.





[NGS] Targeted gene panel End.

BioinformaticsAndMe

'Technology' 카테고리의 다른 글

[Genotyping] SNP Array  (0) 2019.09.25
[NGS] Epigenetic sequencing  (0) 2019.05.26
[NGS] Target Enrichment(Capture) assay  (0) 2018.08.14
[NGS] RNA sequencing  (0) 2018.08.12
[NGS] Resequencing  (0) 2018.08.12

R 회귀분석 (R regression test) Start.

BioinformaticsAndMe




# R을 이용한 단순 선형 회귀분석(simple linear regression test)을 시작해보자.


(회귀분석에 대한 개념정리는 아래의 'Statistic' 카테고리에 있으니, 먼저 선행하고 오면 좋을 듯하다..!)

http://bioinformaticsandme.tistory.com/70?category=808983





# 선형회귀모델 (Linear regression model) 제작

> age=18:29

> age

 [1] 18 19 20 21 22 23 24 25 26 27 28 29

> height= 70:81

 [1] 70 71 72 73 74 75 76 77 78 79 80 81


# 나이에 따른 키를 plot() 함수를 이용하여, 나이에 따른 키의 scatterplot

> plot(x=age, y=height)


# 선형회귀모델의 최적선 구하기
# 좋은 선형회귀 모델이란것은 예측값과 실제 값의 차이를 뜻하는 잔차(Residual error)가 작은 모델
# R에서 회귀분석은 선형모형(linear model)을 쓴다.
# lm(종속변수(결과) ~ 독립변수(원인),데이터)
> res=lm(height~age)
> abline(res)

> res

Call:

lm(formula = height ~ age)


Coefficients:

(Intercept)          age  

     64.928        0.635  


#lm() 함수로 나온 결과는 다음과 같이 해석

intercept (y 절편) : 64.928

age (독립변수의 기울기): 0.635

키 = 0.635 * 나이 + 64.928 

height = 0.635*age + 64.928





# Galton 데이터를 예제로 회귀분석을 해보자.
> install.packages("UsingR")
> library(UsingR)
> data(galton) ; str(galton)

# galton 데이터는 928개의 부모의 키와 아이의 키에 대한 자료이다.
# 이 자료에 포함되어 있는 부모의 키는 아빠의 키와 1.08*엄마의 키의 평균이다.
# 이 자료들의 분포를 살펴보기 위해 화면을 둘로 나누고 히스토그램을 그려본다.

> par(mfrow=c(1,2))
> hist(galton$child, col="blue")
> hist(galton$parent, col="blue")
> par(mfrow=c(1,1))

# 부모의 키와 자녀의 키 사이의 수학적 관계를 나타내는 공식은 회귀분석을 통하여 구할 수 있다.

> out=lm(child~parent, data=galton)
> summary(out)

Call:
lm(formula = child ~ parent, data = galton)

Residuals:
    Min      1Q  Median      3Q     Max 
-7.8050 -1.3661  0.0487  1.6339  5.9264 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 23.94153    2.81088   8.517   <2e-16 ***
parent       0.64629    0.04114  15.711   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.239 on 926 degrees of freedom
Multiple R-squared:  0.2105, Adjusted R-squared:  0.2096 
F-statistic: 246.8 on 1 and 926 DF,  p-value: < 2.2e-16

결과의 마지막 세 줄을 살펴보자. Residual standard error(2.239인치) 라는 것은 이 모형을 사용하여, 부모키로부터 자녀키를 예측했을 때 평균 2.239인치의 오차가 생긴다는 뜻이다. Multiple R-squared가 0.210이라는 것은 이 모형은 자녀키 분산의 21.0%를 설명해준다는 뜻이다. 

# 결과를 보면 y절편(Intercept)이 23.94이고, parent의 기울기는 0.65인 것으로 나타난다.
# 즉 y=0.65x+23.94이다.
# 이를 그래프로 그려보면 다음과 같다.
> plot(child~parent,data=galton)
> abline(out,col="red")


# 위 그림을 ggplot2를 사용해 다시 그려보자.

> library(ggplot2)
> ggplot(data=galton, aes(x=parent,y=child)) +
geom_count() +
geom_smooth(method="lm")






R 회귀분석 (R regression test) End.

BioinformaticsAndMe

'R' 카테고리의 다른 글

R, T-test (R, T검정)  (0) 2018.08.29
R plot (그래픽스)  (0) 2018.08.27
R apply 함수  (0) 2018.08.15
R 상관분석 (R correlation test)  (0) 2018.08.10
막대그래프 (Barplot)  (0) 2018.08.06

회귀 분석 (Regression analysis) Start.

BioinformaticsAndMe





1. 회귀분석 (Regression test) 이란?

회귀분석은 독립변인이 종속변인에 영향을 미치는지 알아보고자 할 때 실시하는 분석방법.

단순 선형 회귀분석은 독립변수 X(설명변수)에 대하여 종속변수 Y(반응변수)들 사이의 관계를 수학적 모형을 이용하여 규명하는 것.
규명된 함수식을 이용하여 설명변수들의 변화로부터 종속변수의 변화를 예측하는 분석이다.

#간단하게 '키(Height)에 따른 몸무게(Weight)' 를 예로 들면,
Weight = a + b*Height 가 되며,
결국 Height에 따라 Weight가 결정되므로, 
Height는 독립변수, Weight는 종속변수.





2. 회귀분석 배경
회귀(regression)의 사전적 의미는 'go back to an earlier and worse condition(옛날의 대표적인 상태로 돌아감)'을 의미한다.
예를 들어, 남자의 평균 Height는 175cm 라 하자. 세대를 거듭할때마다, 높은 Height + 낮은 Height 사람들 혹은 보통 Height + 보통 Height 사람들이 다양하게 결혼하여 자녀를 낳을 것이다. 결국에는 남자들의 평균 Height는 175cm으로 회귀하려는 경향을 보일 것이다. 

회귀의 기본 원리는 다음과 같이 선형 회귀모델의 직선과 실제 값 사이의 차를 뜻하는 residual error를 최소화 시키는 것이다.
위 예와 같이 적용한다면, X값에 따라 여러 Y값들이 나오겠지만, 결국에는 추론된 직선으로 회귀할 것이다.





3. 회귀분석 통계 검정

- 회귀분석에서의 통계검정은 1)만들어진 회귀모형이 유의한지 2)회귀계수들이 유의한지를 본다.

A)유의한 예측모형인가?

주어진 모든 변수들이 함께 어느 정도 예측변수의 변량을 설명(예측)하는가?

결정계수 R2 의 크기에 대해 F분포로 결정

B)어떤 예측변수가 유의한가?

각 독립변수(X)의 회귀계수 (b)가 유의한가?

t-검정을 사용


#아래는 회귀분석에서 통계검정에 사용되는 최소제곱법(최소자승법, method of least squares estimation) 소개이다.




#위 내용은 'KOCW 자료' 에서 발췌했으며, 상세한 내용은 아래를 참고





4. 회귀의 다양성

일반적으로 회귀라고 할 때 보통의 최소제곱(Ordinary Least Square, OLS)에 의한 회귀를 말하지만 그 외에도 수 많은 회귀 방법이 있다.

2005년에 Vito Ricci가 만든 목록을 보면 R에서 사용하는 회귀와 관련된 함수는 모두 205개이다.


A) 단순선형 회귀분석(단변량회귀, Simple linear regression)

단순선형 회귀는 종속변수와 독립변수 사이의 관계를 선형으로 설명한 것이다. 이 때 표준오차는 추정 값이며 신뢰구간은 정해지는 값이다.


B) 다중선형 회귀분석(다변량 회귀 분석, Multi linear regression)

종속적 결과변수가 2개 이상의 독립 변수에 의해 예측되는 회귀분석을 '다중선형회귀분석'이라고 부른다. 독립변수는 연속성이거나 범주형 모두 가능하다. 


C) 로지스틱 회귀분석(Logistic regression)

직선형 회귀분석과 다중 회귀분석은 종속변수가 연속적이라는 가정하에 적용되는 반면에 로지스틱 회귀분석은 이분화된 항목일 경우에 사용한다. 따라서 이론적인 이항분포를 보인다. 

 

D) Cox 비례회귀분석(proportional Cox regression)

Cox 비례회귀분석은 생존이나 그 외에도 시간이 관계된 사건들에 영향을 미치는 변수를 결정하기 위해 사용한다. 결과측정에 사용된 시간은 실제 생존시간이 아니며 위험비의 개념이 사용된다.







회귀 분석 (Regression analysis) End.

BioinformaticsAndMe

'Statistics' 카테고리의 다른 글

비모수 검정 (Non-parametric test)  (0) 2019.05.31
T-검정 (T-test)  (0) 2018.08.29
상관 분석 (Correlation analysis)  (0) 2018.08.10
베이지안 이론 (Bayesian theory)  (1) 2018.08.02
정규성 검정 (Normality Test)  (1) 2018.07.21

PatientsLikeMe (환자 커뮤니티) Start.

BioinformaticsAndMe







PatientsLikeMe (나와 같은 병을 지닌 사람들)

‘환자들의 페이스북’ 으로 불리는 미국 PatientsLikeMe는 환자들을 위한 소셜네트워크 서비스로

60만명이 넘는 환자들이 이 플랫폼을 통해서 질병 정보, 치료법, 부작용 등을 공유.

크라우드소싱으로 축적된 익명의 환자 데이터를 제약회사나 보험회사에 판매하는 비즈니스 모델.

#크라우드소싱: 대중을 제품이나 창작물 생산 과정에 참여시키는 방식. 대중(crowd) + 아웃소싱(outsourcing)


#PatientsLikeMe 홈페이지

https://www.patientslikeme.com/





#PatientsLikeMe 특징

- PatientsLikeMe 서비스는 희귀 질환인 루게릭병(ALS, Amyotrophic Lateral Sclerosis)에 걸린 설립자의 형제를 위해서 3명의 MIT 출신 엔지니어가 모여, 2006년에 ALS에 대한 온라인 커뮤니티를 만든 것이 그 시작.

- 여러 희귀 질환 및 암 등 다양한 질환으로 확대하여 거대한 SNS 서비스로 발전.

- 현재 2,800개 이상의 질병에 대한 전세계의 600,000명 이상의 환자 정보 보유.



- 특히, 환자들은 PatientsLikeMe에 익명 가입이 가능하기 때문에, 개인 정보 노출에 대한 부담 없이 솔직하게 자신의 질병에 대한 정보를 공유.

- 그래서 특정 약에 대한 효능, 부작용에 대하여 환자들이 직접 작성한 데이터들이 상당 부분 축적.

- 기존 의학계의 시스템에서라면 시장에 출시된 약품에 대한 추적 조사를 하기 위해 많은 비용과 시간이 들지만, 이렇게 환자들이 직접 약의 효능, 부작용에 대한 피드백을 올리고 이러한 데이터를 의사, 제약사, 보험사 등 의료 시스템 내의 관계자들이 이용할 수 있는 혁신적인 시스템.

- 머크(2012), 사노피 (2013), 제넨테크 (2014) 등의 대형제약기업들과 파트너십 관계.


#PatientsLikeMe 소개 영상






#PatientsLikeMe 에서 어떤 정보가 등록되고 공유되는지 살펴보자.

Patients, Conditions, Research 3개 카테고리만 살펴보겠다.


1) Patients (환자 정보)

- 632,261명이 현재 본인의 질병 관련 정보들을 등록했고, 그 중 17,796명이 오픈한 상태이다.

- 왼쪽 검색란에 관심있는 질병을 검색할 수 있고, 심지어 로그인을 하면 검색자 기준 주변에 있는 환자들도 찾아볼 수 있다.

- 이외에도 국가. 인종, 증상. 치료법, 군복무여부? 등 다양한 정보로 필터링할 수 있다.




2) Conditions (질병 정보)

- 현재, 2,800개 정도의 질병 정보들이 등록되어 있어, 관심 있는 질병을 검색하면 해당 상세 정보를 볼 수 있다.


- 아래는 Lung cancer를 검색한 결과이며, 해당 환자들이 폐암에 걸렸을 때 어떤 증상이 있었는지 보여준다.


- 아래는 역시 Lung cancer를 검색한 결과이며, 해당 환자들이 폐암에 걸렸을 때 어떤 치료법과 약물을 복용했는지 보여주는 결과이다.

- 이외에도 여러 정보들이 있으니 직접 살펴보는 것을 추천한다



3) Research (연구 정보)

- PatientsLikeMe는 환자의 질병에 대한 많은 정보를 가지고 있기 때문에 임상 시험에 참여할 환자 모집이 가능.

- 여러 제약사들과 파트너십을 맺어 임상환자모집을 대행해주기도 하며, 현재 48,323 개의 임상시험 리쿠르팅 중.

- My location란에 KOREA라 놓고 Distance란에 25miles(40kms)을 입력했을 때 93개의 임상시험이 검색되었다.





마무리하며..

흥미로운점은 PatientsLikeMe는 임상환자를 모집하는 것을 넘어 자체 연구할 수 있는 플랫폼을 보유하고 있기에,

제약회사 및 연구기관들과 함께 질병 공동 연구도 적극적으로 참여하는 것으로 보인다.

국내에도 PatientsLikeMe와 유사한 스타트업과 정책들이 생겨나고 있지만,

항상 민감한 문제였던 개인정보보호법 등의 국내법들이 발목을 잡지 않을까 모르겠다.





PatientsLikeMe (환자 커뮤니티) End.

BioinformaticsAndMe



R apply 함수 Start.

BioinformaticsAndMe




# R apply() Function

- apply() : 데이터프레임 또는 매트릭스에 함수를 적용하여 행 또는 열 단위의 계산 수행.



apply( X, MARGIN, FUN)

- X : matrix

- MARGIN : 1(row) , 2(col)

- FUN : row/column 단위로 적용할 함수. 사용자가 만든 함수도 가능함.


EX1) apply(X, 1, sum)

EX2) apply(X, 2, sd)





# apply() 함수는 벡터, 행렬 등의 데이터 프레임에서 row/column 단위의 계산을 할 때 함수를 쉽게 적용할 수 있도록 도와준다.
# 실습데이터
> weight <- c(65.4, 55, 380, 72.2, 51, NA)
> height <- c(170, 155, NA, 173, 161, 166)
> gender <- c("M", "F","M","M","F","F")
> testDate <- c("2013/09/01", "2013/09/01", "2013/09/05", "2013/09/14", "2013/10/11", "2013/10/26")
> patients <- data.frame( weight = weight, height=height, gender=gender, testDate=testDate)


# weight, height만 추출
> patients.sub <- patients[ ,c("weight","height")]
> patients.sub
  weight height
1   65.4    170
2   55.0    155
3  380.0     NA
4   72.2    173
5   51.0    161
6     NA    166
 

# 각 환자(row)별로 몸무게와 키의 평균을 구한다
> apply(patients.sub, 1, mean)
[1] 117.7 105.0    NA 122.6 106.0    NA
 
# NA(결측치)는 빼고 계산한다
> apply(patients.sub, 1, mean, na.rm=TRUE)
[1] 117.7 105.0 380.0 122.6 106.0 166.0


# 각 특성(Column)별로 평균을 구한다

> apply(patients.sub, 2, mean, na.rm=TRUE)

weight height

124.72 165.00


# 각 셀에 2를 곱해준다

MulTwo <- function(x){ return(2*x) }

> apply(patients.sub, c(1,2), MulTwo)

     weight height

[1,]  130.8    340

[2,]  110.0    310

[3,]  760.0     NA

[4,]  144.4    346




#다양한 apply 함수군이 존재한다.

lapply: 결과를 리스트 형태로 반환

sapply: 벡터, 또는 행렬의 형태로 반환 (s: simplify)

tapply: 입력값을 index에 지정한 factor 값으로 분류(그룹화)하여 매개변수로 넘어온 function을 적용하는 함수다.



# lapply

> lapply( patients.sub, mean, na.rm = TRUE )
$weight
[1] 124.72
$height
[1] 165

# sapply
> sapply( patients.sub, mean, na.rm = TRUE )
weight height 
124.72 165.00 
 
# tapply
> patients$gender # categorical data
[1] M F M M F F
Levels: F M

> tapply(patients$weight, patients$gender, mean, na.rm=TRUE)
       F        M 
 53.0000 172.5333 




R apply 함수 End.

BioinformaticsAndMe

'R' 카테고리의 다른 글

R plot (그래픽스)  (0) 2018.08.27
R 회귀분석 (R regression test)  (0) 2018.08.19
R 상관분석 (R correlation test)  (0) 2018.08.10
막대그래프 (Barplot)  (0) 2018.08.06
R, 결측치 처리 (Missing value, NA)  (0) 2018.07.26

Cloud Drug discovery Start.

BioinformaticsAndMe




오늘은 Computer-aided drug discovery(CADD) 분야에서 'Cloud Computing'의 잠재력을 살펴보겠다.



1. 컴퓨터를 활용한 신약 개발 (CADD)

클라우드 컴퓨터를 논하기 전에 먼저 CADD에 대한 설명이 필요할 것 같다 (아래 참조).

http://bioinformaticsandme.tistory.com/26?category=808221



컴퓨터 성능의 비약적인 발달에 따라, 많은 제약회사들이 CADD를 통해 신약을 개발하기위해 각축을 벌였다.

영국의 제약회사 글락소웰컴은 Relenza(리렌자)라는 흡입식 독감 전문 치료제를 CADD를 활용해 창출하였다.

#리렌자: 독감 바이러스 표면에 있는 바이러스 증식 효소 neuraminidase를 억제함으로써 바이러스가 다른 세포로 확산되는 것을 저해.

#뉴라미니다아제를 표적으로 수많은 단백질의 표적 구조를 탐색연구하는데 CADD를 활용.




#Drug discovery 연구에서 컴퓨터를 활용한 가상 스크리닝 과정을 심플하게 살펴보자.

1) 타겟사이트를 찾음

2) 찾은 것을 3D 모델링.

3) 수많은 candidate을 docking해봄.

4) 얼마나 잘 결합하는지 측정.

5) 가장 유망한 candidate을 physical screening 코스로 넘김.


위 일련의 과정 중에서 성공적인 신약 개발에 필수적인 요소가 무엇일까? 아래 2가지를 키포인트로 두고싶다.

- 데이터(Ex: compound data)를 얼마냐 확보하고 있는가?

- compound 하나당 얼마나 빠른 속도로 정확하게 처리될 수 있는가?


다시 말해, candidate으로 활용할 대용량 데이터들을 얼마나 빠르고 정확하게 처리할 수 있는지

컴퓨터를 활용한 신약 개발의 성공을 결정지을 것이다.





2. 클라우딩 컴퓨터 (Cloud computing)

클라우드 컴퓨팅은 인터넷을 통해 유저가 필요한만큼의 리소스를 가져다 사용하며, 유연성 있게 작업 환경을 구축할 수 있다.




CADD 연구를 위해 방대한 computer cluster를 로컬 환경에 직접 구축하는 것은 생각보다 긴 시간을 소모한다.

서버컴퓨터를 사고, 모델링 소프트웨어를 사고, 필요 인력을 고용하는 등

제대로 된 CADD 분석 환경을 구축하려면 넉넉잡아 3년이 걸린다한다. 


신약개발 앞단의 연구가 물론 중요하지만(garbage-in, garbage-out),

그 앞단 연구를 위해 방대한 시스템을 구축하는 시간과 비용 또한 무시할 수 없을 것이다.

기껏 시간과 돈을 들여 CADD 분석 환경을 구축했는데, 이렇다할 성과가 안나와 사업을 접게 된다면,

힘들게 구축한 서버 클러스터와 각종 비싼 라이센스가 큰 부담으로 남을 것이다.




신약개발의 주요 포인트는 대용량 데이터와 빠른 프로세싱이기 떄문에,

손쉽게 그러한 환경을 구축할 수 있는 클라우드 컴퓨팅이 CADD 연구에 기반이 될 수 있다.


클라우드의 대용랑 Storage와 빠른 분산처리 시스템은 신약개발,

특히 CADD 연구 기간을 비약적으로 단축할 것이다. 예를 들어,

1개의 cpu로 100시간 걸리는 일은 클라우드로 손쉽게 100개의 cpu로 늘려 1시간만에 끝낸다면 어떨 것인가?





3. AutoDock

CADD 연구에서 가장 많이 활용되는 도팅 패키지 'AutoDock'을 예로 들어보겠다.

#AutoDock: 신약개발을 위한 Molecular docking, virtual screening을 오픈소스 형태로 제공


#AutoDock을 이용한 신약개발 예제

- 도킹 알고리즘을 이용해 하나의 도킹을 계산하는데 평균적 20분 정도가 소요되고, 30만개 화합물을 대상으로 하면 39년 정도의 시간이 소요.

- 사용되는 데이터는 단백질(400KB), 화합물(3KB) 등이 있는데, 30만개를 기준으로 1GB정도의 저장 공간이 필요.


아래 논문을 참고하면 AutoDock에 고속처리기법을 적용해 SARS(중증 급성 호흡기 증후군) 대규모 신약후보물질탐색을 수행하였으며,

컴퓨팅 자원을 활용하여 110만개의 화합물을 대상으로 평균 2500개의 CPU를 동시 활용하여 실험을 하였고,

총 42년의 계산을 11일만에 완료했다고 한다.

#참조: 슈퍼컴퓨팅환경에서의 대규모 계산 작업 처리 기술 연구

http://www.dbpia.co.kr/Journal/ArticleDetail/NODE02416799



위 사례를 통해 다시한번 CADD 연구에서 클라우드의 필요성이 분명해진다.

1) candidate 증가에 따른 대용량 Storage

2) 수십년의 계산을 몇일만에 끝낼 수있는 고속처리기법




마무리하며

최근 대규모 제약 및 생명공학 회사 (GSK, pfizer, Eli Lilly & Co, Johnson & Johnson, Genentech)에서

신약개발 과정에서 적극적으로 클라우드 컴퓨팅을 활용하는 것으로 알려져 있다.

또한, 클라우드 선두주자인 아마존과 마이크로소프트 및 뒷따르는 알리바바, 구글의 적극적인 투자 개발로

그 사업영역이 확대되고 있고, 특히 신약개발과 관련한 시장을 앞다투어 개척 중이다.





Cloud Drug discovery End.

BioinformaticsAndMe


'Drug Discovery' 카테고리의 다른 글

CADD(Computer-Aided Drug Design)_v2  (0) 2019.05.21
Ligand 라이브러리 for CADD  (0) 2018.09.05
Ligand 데이터베이스  (0) 2018.09.03
Drug repositioning (신약재창출)  (0) 2018.07.23
CADD (Computer-Aided Drug Design)  (0) 2018.07.15

+ Recent posts