공부하면서 정리하는 Bioinformatics
본 포스팅은 genomics를 공부하며 작성하는 포스팅이기 때문에 잘못된 부분이 있을수 있습니다.
또한, 범문에듀케이션에 출판된 유전체 데이터 분석2 (NGS편, 암과 질병 유전체) 서적을 기반으로 공부하여 작성하였음을 미리 알립니다.
variants calling까지 마치면 이 변이들을 해석하는 과정이 남음.
1.variants annotation
variants가 유전자에 미치는 영향을 추정하는 단계
크게 세가지 방법.
1.진화적으로 보존된 위치에 발생한 염기서열 변이가 해당 단백질에 미치는 영향이 클것으로 판단하는 방법
-진화적으로 보존되었다? -> 중요한 염기서열이다.
-SIFT(sorting tolerant from intolerant)를 가장 많이사용.
2.단백질의 3차원 구조를 추정하고, 기계학습으로 염기서열 변이가 해당단백질의 구조와 기능에 미치는 영향을 예측
-PolyPhen2가 대표적인 방법
3.1과 2를 조합하는 방법
-CADD 알고리즘이 대표적
2. gene-level annotation
변이수준의 주석을 다는것이 아니라 유전자 수준의 주석달기.
염기서열 변이가 발생한 유전자가 어떤 유전자인지에 초점. 데이터 베이스들을 활용
Ensembl의 BioMart가 많이 활용됨.
유전자 수준의 annotation이 완료되면, 표현형관점에서 추가적으로 변이 해석을 시도함.
OMIM(online mendelian inheritance Man), HGMD, GAD등이 사용됨.
실습
1.variants annotation
ANNOVAR - variants calling에 많이 사용되는 tools중 하나. 크게 Gene-based, Region-based, Filter-based로 나눠진다.
a) Gene-based annotation
-SNP와 CNV가 포함되어 있는 gene name을 매핑한다.
-reference genome은 사용자가 선택 or ANNOVA에서 자체제공(Refseq, UCSC, Ensembl, Gencode)
b) Region-based annotation
-대상 변이가 생물학적 activation을 가지는 특정 영역에 포함되는지 확인.
-ex) UCSC의 PhastCon을 이용해서 진화적으로 보존된 영역에 있는지 확인.
c) Filter-based annotation
-대상 변이가 dbSNP에 포함되어있는지 (즉, 한번이상 발견되고 보고된 변이인지)
- 또는 변이의 유형은 무엇이고 SIFT나 GERP를 이용한 변이점수는 얼마인지
1) VCF형식의 variants 정보를 ANNOVAR의 입력 포맷으로 변경
$convert2annovar.pl -format vcf4 HG00096_chr3.vcf > HG00096.avinput
VCF
▼
anv input
2) SIFT, PolyPhen2, CADD 이용해 변이점수 annotation
개별 변이 단위에서 해당 변이가 유전자와 단백질에 미칠 영향을 예측하는 알고리즘.
-SIFT : 변이가 발견된 영역의 진화적 보존도를 평가하여 변이의 영향을 예측. 0~1의값/ 일반적으로 0.05이하일때 해당 변이가 해당 단백질에 유해한 손상변이 (damaging variant)로 해석한다.
-PolyPhen2 : 단백질의 3차원 구조를 추정하고, 기계학습으로 염기서열 변이가 해당단백질의 구조와 기능에 미치는 영향을 예측. 0.95이상일 경우 영향을 준다고 해석.
-CADD : 가장 최근 나온 알고리즘. 데이터베이스들을 종합하여 해당 변이의 병인성 여부를 판단. phred점수 형태를 가지며, 20점 이상이면 상위 1%에 해당하는 병인성을 갖는것으로 해석
#SIFT
$annotate_variation.pl -filter -dbtype generic -genericdbfile hg19_sift_reduced.txt \
-build hg19 -out HG00096_SIFT HG00096.avinput humandb/
#polyphen
$annotate_variation.pl -filter -dbtype generic -genericdbfile hg19_polyphen2_reduced.txt \
-build hg19 -out HG00096_polyphen HG00096.avinput humandb/
#CADD
$annotate_variation.pl -filter -dbtype generic -genericdbfile hg19_CADD_reduced.txt \
-build hg19 --score_threshold 20 -out HG00096_CADD HG00096.avinput humandb/
#-filter : filter_based annotation
#-dbtype generi: generic database를 이용
#hg19_CADD_reduced.txt : input
#-build hg19 : hg19 reference genome을 사용
#--score_threshold 20 : 점수가 20이상인것만 유의하다고 판단
이제 이 변이들이 어떤 유전자에 위치해 있는지 확인한다.
주석을 달기 위해 출력파일을 다시 입력파일 형식으로 변환한다. 파이썬코드를 짜서 진행해야 한다.
실습에는 ensemble gene reference를 사용한다.
Script_Out2in.py
import sys
if len(sys.argv) < 2:
print 'Fatal error : needs file name'
sys.exit(0)
fName = sys.argv[1]
rName = sys.argv[2]
result = open(rName, 'w')
with open(fName, 'r') as fdata:
for Line in fdata:
temp = Line.strip().split('\t')
res = ''
for j in range(2, len(temp)):
res += temp[j] + '\t'
result.write(res.strip() + '\n')
#출처 범문에듀케이션 유전체 데이터 분석(김주한)
python Script_Out2In.py HG00096_SIFT.hg19_generic_dropped SIFTList.avinput
인풋형식으로 변환했으니 유전자이름을 추가해보자
annotate_variation.pl -out SIFTGenes -build hg19 SIFTList.avinput humandb/ -dbtype ensGene
유전자이름이 추가된다.
2. gene-level annotation
이제 찾아낸 유전자가 어떤 유전자인지 확인해 본다.
Ensembl의 BioMart가 대표적으로 활용될수 있다.
또한 질병관련 변이 정보는 ClinVar, OMIM, COSMIC census를 활용할수 있다.
일단 NGS기초는 이정도로 마무리하고 나머지 부분은 TCGA를 공부하면서 알아보도록 한다.