회귀 분석 (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

[NGS] RNA sequencing Start.

BioinformaticsAndMe




1. Target Enrichment(Capture) assay

- 시퀀싱 하기 전 특정 유전자 또는 기타 관심부위를 DNA 또는 cDNA 라이브러리로부터 분리 또는 그 빈도를 증가시키기 위한 방법.

- 간단히 표현하자면, DNA는 너무 작아서 시퀀싱하기 어렵기 때문에 증폭이라는 과정을 통해 시퀀싱할 정도로 사이즈를 불린다.



# Target enrichment 과정이 NGS에서 어느 순서에 존재하느냐나는 아래 그림을 참고하자.




# Target enrichment 방법에는 주로 Amplicon(A: 엠플리콘)과 Hybridization(B: 하이브) 2가지가 흔하게 사용된다.


2. Amplicon-based assay (위 A그림)

→ PCR 증폭과정을 통해, 타깃 유전자 부분을 풍부하게(enrichment) 하는 방식.

→ forward primer와 reverse primer가 결합하는 위치 사이의 공간이 증폭.

→ 일반적으로 엑손 하나 혹은 하나의 엑손을 두 개로 타겟함.

→ 타깃 범위 혹은 유전자의 수/사이즈가 늘어날수록 primer 디자인이 쉽지 않음.

Turnaround time이 좀 더 짧고, 상대적으로 적은 양의 input DNA를 필요.

→ 작은 수의 유전자 패널에 대한 target sequencing에 유용하지만, 패널의 유전자 수가 많아지거나 exome sequencing을 수행하는 경우에는 비효과적.

→ 패널사이즈↓

3. Hybridization capture-based assay (위 B그림)

→ 혼성화와 Biotin-Avidin 결합으로 골라내는 방식.

→ Hybridization: Probe가 상보적인 염기서열을 갖고 있는 DNA fragment에 결합.

→ Capture: Probe와 DNA fragment 혼성체는 magnetic bead에 채집

→ Enrichment: Magnetic은 자기장을 형성하여, probe 결합 fragment만을 골라냄.

→ 작은 사이즈의 target 부위에서부터 whole exome과 같이 큰 사이즈 부위까지 유효한 검사를 가능하게 하는 방식.

Amplicon 방식에 비해 검사 시간이 더 길고 더 많은 양의 input DNA가 필요.

→ 패널사이즈↑



CancerPanel (암패널)에 경우 엠플리콘 방식을 사용하는데,

엠플리콘의 높은 정확도와 빠른 Turnaround time의 특징들은 Customized panel 제작에 필수적이다.





#아래 그림 역시 엠플리콘과 하이브를 비교한 그림이다.



NGS 파이프라인 과정에서 Amplicon 데이터를 Picard를 사용해 De-duplication(중복리드없애주는과정)하는 실수를 범할 때가 있다.

엠플리콘 방식의 특징상 특정 엑손 영역 부위를 반복적으로 시퀀싱하도록 제작된 것이므로 리드중복의 오류라 볼 수 없다.

우리가 흔하게 알고 있는 일반적인 NGS 파이프라인은 일루미나 Hybridization에 기반하여 만든 것이기에,

엠플리콘 데이터 분석에서는 Tool이나 Parameter에 주의를 기울여야겠다.





[NGS] RNA sequencing End.

BioinformaticsAndMe

'Technology' 카테고리의 다른 글

[NGS] Epigenetic sequencing  (0) 2019.05.26
[NGS] Targeted gene panel  (0) 2018.08.19
[NGS] RNA sequencing  (0) 2018.08.12
[NGS] Resequencing  (0) 2018.08.12
[NGS] Next Generation Sequencing  (0) 2018.08.11

[GATK] HaplotypeCaller 알고리즘 Start.

BioinformaticsAndMe



GATK4에서 Unifiedgenotyper를 이기고 살아남은
HaplotypeCaller
Variant calling 과정을 살펴보겠다.



#HaplotypeCaller는 아래 그림에서 보듯이, 4가지의 주요 과정으로 변이을 찾아낸다.


1. Define active regions
- 변이가 나올 것이라 예측되는 active region을 정의.
- 간단하게 생각하면 위 그림에서처럼 reference와 다른 allele들이 반복적으로 나오는 곳을 특정함.
- 아래 그림처럼 active region을 정의할 수 있으며, 다음 칼럼에서 좀 더 자세하게 다뤄 볼 예정.





2. Determine haplotypes by re-assembly of the active region
- 각 ActiveRegion으로 De Bruijn 그래프(아래 참조)를 만들어 ActiveRegion을 재구성하고, 데이터에서 나올 수 있는 haploytype들을 추출한다.
- 그다음 잠재적 variant를 확인하기 위해, Smith-Waterman algorithm(아래아래참조)을 사용하여 각각의 haploytype들을 reference에 다시 매핑한다.

#De Bruijn 그래프: genome assembly에서 Read들을 효율적으로 조립하기 위한 알고리즘.
#아래 그림에서 주어진 Read를 4mer로 +1씩 sliding했을 때, 8개의 조각들이 나오고,  그 순서에 따라 엣지를 그려 De Brujin 그래프를 만들었다.


#Smith-Waterman algorithm: 두 서열(haplotype과 reference)을 정열하여 비교하는 알고리즘 정도로 이해 (자세히는 아래 인실리코젠 홈페이지 참조).





3. Determine likelihoods of the haplotypes given the read data
- PairHMM 알고리즘을 사용하여 각 haplotype에 ActiveRegion의 Read들을 pairwise하게 매핑.
- 이 과정을 통해 주어진 리드에 대한 haplotype likelihood 매트릭스를 생성.

#HMM 알고리즘 참고




4. Assign sample genotypes
- Read x Haplotype 매트릭스에서 각 리드마다 타겟 allele의 가장 높은 확률을 선택.

- 아래 그림 오른쪽 표를 이용해 베이지안 모델에 적용하여, 가장 높은 evidence를 가지는 variation을 선택하여 변이 동정.





#베이즈 이론 참고







[GATK] HaplotypeCaller 알고리즘 End.

BioinformaticsAndMe

'Algorithm' 카테고리의 다른 글

[GATK] Base Quality Score Recalibration (BQSR)  (0) 2018.08.25
[PCA] 주성분분석 3  (0) 2018.08.02
[PCA] 주성분분석 2  (0) 2018.08.01
[PCA] 주성분분석 1  (0) 2018.07.25
[GWAS] Imputation  (2) 2018.07.09
[Expert] Bio ICT 딥러닝/머신러닝 개발자

1. 주요 수행 업무 및 역할

  • Bio와 IT가 융합된 신사업을 추진하기 위해 딥러닝/머신러닝 관련 역량을 갖춘 인재를 채용하고자 합니다. 수행 업무는 다음과 같습니다.
    • 딥러닝/머신러닝 기술 연구를 통한 Bioinformatics 과제 수행
    • 딥러닝 기술 기반 이미지 분석 및 이미지 생성, 의료 데이터 분석 등을 통해 SKT의 Bio ICT의 가치를 높일 수 잇는 프로젝트 진행
    • 관련분야 최신 기술 동향 연구 및 cutting-edge 기술 개발

2. 필요 역량

  • 딥러닝/머신러닝 분야 최신 논문을 읽고 직접 구현할 수 있는 역량
  • 딥러닝/머신러닝 알고리즘 이해 및 구현 가능자
  • Tensorflow, PyTorch, Caffe 등 딥러닝 프레임워크 응용 개발 경력 우대
  • 오픈소스 공헌 및 관련 활동 경험 우대

3. 자격요건

  • 관련분야 석사학위 이상 소지자 및 개발 경력 3년 이상

 

주 근무지

 본사_SK T-타워

직무

 SW Engineering

조직

 Data_Unit
채용 유형 정규직
직급 유형 실무직(Expert)

접수기간

 2018. 8. 10- 2018. 9. 9 


[NGS] RNA sequencing Start.

BioinformaticsAndMe




1. RNA-sequencing

→ RNA-seq: RNA-Seq은 transcriptome을 분석하는 NGS 기술로 샘플에서 발현되는 RNA 서열을 시퀀싱.

→ DEG, Novel transcript, Fusion 분석 등에 사용.


 



2. RNA-seq Quality Control

- RNAseq에서 QC 과정은 중요하며, 몇 가지 Checkpoint를 집중적으로 살펴야하겠다.

① Raw read quality control 

→ 염기서열 quality, GC content, adaptor 유무, 지나친 k-mer 존재 유무, duplicated read 등을 검사.

→ 위 QC 에서 30% 이상의 불일치를 나타내는 outlier 샘플은 제외하기를 권장.


② Read alignment

→ 보통 70~90%의 RNA-seq read가 사람 genome에 mapping 되며, 이 중 일부가 multi-mapping될 것으로 예상.


③ Quantification

→ Transcript 정량값이 계산된 후, GC content와 유전자 길이의 bias를 고려해 normalization.


④ Reproducibility

→ 반복 실험과 batch effect 확인을 위해 재현 가능성을 측정.

→ Technical replicate의 재현 가능성 (r2>0.9)은 보통 높지만, biological replicate는 실험 간 이질성으로 인해 정해진 기준이 없음.






3. RNAseq Transcript identification 과정

① De novo transcript reconstruction

- 레퍼런스 genome이 존재하지 않거나 불완전한 경우, RNA-seq read를 input으로 SOAP, Trinity 등의 프로그램을 이용해 새로 transcriptome을 조립.



② Mapping to a reference

- 레퍼런스 genome에 mapping하는 것은 novel gene 또는 transcript identification을 가능하게 함.

- splice junction에 존재하는 read를 mapping하기 위해, gapped or spliced mapper를 필요로 함.

▶ RNAseq mapper로 흔하게 사용되는 TopHat은 두 단계의 과정으로 진행되는데,

    먼저 exon에 존재하는 splicing 되지 않은 read가 mapping 되고

    이후 mapping되지 않은 read들을 각각 split하여 다시 exon junction에 mapping을 시도.


▶ GSNAP, PALMapeer, MapSplic: SNP나 indel 발견에 최적화된 mapper.

▶ STAR, MapSplice: non-canonical splice junction에 특화된 mapper.

▶ Mapping 중 중요한 parameter : strandedness / 허용하는 mismatch 수 / read의 길이 / read의 type / sequence 길이.


 

③ Transcript quantification

- RNA-seq에서 gene 또는 transcript 발현을 측정 (기본이 되는 값은 transcript에 mapping된 read의 수).

- 아래는 RNAseq의 readcount 지표이다. raw count에서부터 normalized count까지 다양하게 존재한다.

▶ Quantification은 mapped read를 모으는 HTSeq-count 또는 featureCounts 사용.

▶ RPKM : 샘플 내 feature의 길이와 라이브러리 크기에 의한 효과를 보정.

▶ FPKM : RPKM에서 paired-end를 하나의 fragment라 인식하여 보정.

▶ TPM : 위와 비슷하지만 RNA 샘플 사이에서 transcript 길이 분포까지 포함한 개념.

▶ TMM : TPM과 마찬가지로 비교하고자 하는 RNA pools의 다른 조성에 대해 보정.


#아래 논문은 RNA-seq에서 사용되는 Normalized value를 비교한 내용이다.

https://academic.oup.com/bib/article/14/6/671/189645



④ Differential gene expression analysis

- RNA-seq read count에 기반한 Poisson 또는 negative binomial 확률 분포를 통해 발현 차이 분석.

▶ edgeR : input으로 raw read count와 가능한 bias의 원인을 통해 통계 모델을 만들어 normalization과 발현 차이 분석을 연계.

▶ DESeq2 : edgeR과 같이 negative binomial 분포로 고유 normalization 방법을 제공.

▶ baySeq, EBSeq : negative binomial model에 기반하고 있는 Bayesian 방식을 사용하여, 실험 그룹 간의 차이를 표현하고 각 유전자의 확률을 계산.







[NGS] RNA sequencing End.

BioinformaticsAndMe

'Technology' 카테고리의 다른 글

[NGS] Targeted gene panel  (0) 2018.08.19
[NGS] Target Enrichment(Capture) assay  (0) 2018.08.14
[NGS] Resequencing  (0) 2018.08.12
[NGS] Next Generation Sequencing  (0) 2018.08.11
[Blockchain] 블록체인과 헬스케어 (2)  (0) 2018.07.18

[NGS] Resequencing Start.

BioinformaticsAndMe




1. Resequencing (Reference sequencing)

- 종마다 이미 알려진 유전체(reference genome)를 기반으로 연구 샘플 유전체와의 비교를 통해 새로운 유전체 서열을 완성하는 방법.

- SNP, InDel 뿐만 아니라 CNV(Copy Number Variation), SV(Structural Variation)까지 분석 가능


- Denovo assembly (Denovo seqeuncing): reference genome X. 지금까지 밝혀지지 않은 미생물이나 동식물의 전체 유전체 정보를 알아내는 방법







2. Resequencing 과정

① Raw data Quality control

→ FastqQC로 시퀀싱 데이터의 퀄리티를 확인하고, Adaptor trimming 과정을 통해 Index 정보를 잘라냄 (보통 전체데이터의 1% 손실).

→ 가장 많이 사용되는 일루미나 시퀀싱은 형광물질을 자르고 붙이는 과정의 효율이 시퀀싱 후반부에 갈수록 떨어짐.



② Read Mapping

→ bwa, bowtie와 같은 aligner를 이용해 reference genome에 NGS read를 매핑하는 과정으로, SAM 혹은 BAM 파일이 생성 된다.

→ a) Reference indexing

→ b) Alignment

→ c) SAM file



③ Sorting and Add Read Group

→ Mapping된 Read들의 순서를 정리하고 샘플의 ID 및 태그정보를 추가하는 과정.


④ Remove Duplicates

→ Library 제작과정 중 진행되는 PCR 증폭 중에 생성된 중복 Read pair를 제거하는 과정.


⑤ Base Quality Recalibration

→ base calling 과정에서 생산된 raw Phred 스코어는 정확하지 않기 때문에, 여러 covariate를 이용하여 재조정.



⑥ Variant calling

→ 매핑 정보로 부터 염기변이 정보를 추출 (GATK, Varscan 등).

→ GATK에는 Calling method로 Haplotypecaller (정확/느림) 과 UnifiedGenotyper (부정확/빠름) 가 존재

→ 했지만, GATK4로 넘어오면서 UnifiedGenotyper 활용성이 떨어진다고 판단하여 사라짐.






 3. 시퀀싱에서 염두에 둬야할 사항

- 시퀀싱 과정에 PCR이 포함되어 있다면, 데이터의 GC contents (Human, 40%)가 매우 중요.

- GC contents에 따라 PCR 효율이 달라지기 때문에 결과에 bias가 생길 수 있음.

- 해당 샘플의 높은 GC contents를 인지하고 있다면, PCR-free 키트 활용을 고려.

- Read Length (Specification) vs  Read Count (Quantification)

Read Length : Structure variation, Gene fusion에서 중요.

Read Count : Sequence variation, DEG 분석에서 중요.





[NGS] Resequencing End.

BioinformaticsAndMe

[NGS QC] MultiQC Start.

BioinformaticsAndMe





NGS 분석을 이것저것 하다 보면, 결과들이 쌓이고 일일이 Quality Control하기 귀찮아진다.

또한, 샘플까지 많다면 첩첩산중이다.. 이때 찾아낸 QC tool이 있었으니,


2016년 6월 bioinformatics 저널에 이름을 알린 'MultiQC' 이다.

Citation도 이미 100을 넘은 것을 보아, 많은 생물정보학 연구자들이 사용하고 있는 추세로 보인다.



#이 툴은 NGS 분석과정에서 나오는 QC 결과들을 아래처럼 한장의 report로 만들어준다.



위 그림의 상단 메뉴바를 본다면, RNA-Seq에서부터 Hi-C 등 다양한 NGS 분석 QC를 지원한다.


한가지 착각할 수가 있는데, MultiQC가 모든 QC 분석을 진행하는 것은 아니고, 여러 툴에서 돌린 QC 결과를 종합해주는 것이다.

예를 들어, 왼쪽바에서 STAR, Cutadapt, FastQC를 볼수 있는데,

저 3개의 툴을 돌리고 나온 결과 로그값을 스캔하여 모든 샘플의 QC정보를 제공한다.





#단언컨대, NGS 분석을 하는 연구자라면 지금 소개하는 ‘MultiQC’ 를 강력하게 추천한다.

이렇게 강력강력하게 추천하는 이유는 직접 사용해보고 느낀 아래 3가지 이유 때문이다.


1. 일단 사용하기 굉장히 쉽다.


2. 샘플이 많거나 여러 분석이 진행됐다면, 쉽게 결과들을 종합해준다.


3. 리포트 파일이 깔끔하며, 리포트 화면에서 세세한 수정이 가능하다.


 


#또한 MultiQC는 NGS 연구자들이 흔하게 사용하는 대부분의 프로그램들을 지원한다.

본인이 사용하는 분석툴이 MultiQC에서 지원하지 않는다면, 개발자에게 요청하는 방법이 있겠다.

그러나, 나라면 내가 가진 툴에서 나오는 로그값들을 위 표에서 지원하는 다른 툴의 로그값 형태로 변환시키는 스크립트를 짤 것이다.

 




#MultiQC 설치

MultiQC 설치는 매우 간단하다.

아래 그림 우측하단에 나와 있듯이, pip으로 간단하게 설치할 수 있다.

MultiQC는 python으로 만들어졌다. 

#github을 이용할 수도 있다.

git clone https://github.com/ewels/MultiQC.git

cd MultiQC

python setup.py install


 


#MultiQC가 진행되는 과정은 3단계로 요약 가능하다.

1) 특정 디렉터리에서 분석 결과의 로그 파일을 검색.


2) 로그파일의 통계를 요약하여 한장의 HTML 보고서를 생성.


3) MultiQC 보고서 내의 결과 그림들 확인 및 export.


정말 간단하게 실행하려면 특정 폴더(data)에 모든 NGS 분석결과를 모아둔 뒤에,

$ multiqc data/

를 실행하면 NGS 결과 로그들을 스캔하면서 자동적으로 MultiQC결과 리포트를 생성해준다.



 

#물론, 원하는 폴더나 파일들만을 '*(asterisk)'를 이용해 스캔할 수 있다.

#Choosing where to scan

multiqc data/

multiqc data/ ../proj_one/analysis/ /tmp/results

multiqc data/*_fastqc.zip

multiqc data/sample_1*


#원하지 않는 파일은 '-x/--ignore flag'를 이용해 거른다.

# -x/--ignore flag

multiqc . --ignore *_R2*

multiqc . --ignore run_two/

multiqc . --ignore */run_three/*/fastqc/*_R2.zip





#RNA-seq QC 결과 예제

http://multiqc.info/examples/rna-seq/multiqc_report.html


- 위 그림은 전체적인 QC 값들의 통계를 보여준다.


- 위 그림은 Alignment stat 결과


- 우리에게 익숙한 FASTQC 'Per Base Sequence Quality' 결과





#multiQC 홈페이지

http://multiqc.info/



[NGS QC] MultiQC End.

BioinformaticsAndMe



'Bioinformatics Tool' 카테고리의 다른 글

[BLAST] BLAST result  (0) 2018.11.26
[NGS Fusion] Fusion Tools  (0) 2018.09.09
[Cytoscape] GeneMANIA 1  (0) 2018.07.22
[Driver Annotation] iCAGES  (0) 2018.07.13
[CNV] ONCOCNV  (0) 2018.07.08

+ Recent posts