안녕하세요 한주현 입니다
개인유전체 시장이 열리면서 게놈 뿐만아니라 특정 위치의 알려진 변이를 나타내는 rsID를 생물정보학 분석가 뿐만 아니라 일반인들도 보실 기회가 점점 늘어 나고 있습니다
그런데 rsID 그 자체로는 "rs712829" 처럼 이것만 봐서는 무슨 의미인지 알 수가 없는데요,
그래서 rsID에서 의미를 찾아내는 포스팅을 시리즈로 작성하고 있습니다
오늘은 dbSNP의 restAPI 사용법에 대하여 포스팅해보겠습니다
ensembl 서버에 dbSNP rs Number를 보내서 JSON 형태로 받아오도록 하는 것으로
간단히 도식화 하면 다음과 같습니다
출처: http://korbillgates.tistory.com/76 [생물정보학자의 블로그]
오늘은 dbSNP의 restAPI 사용법에 대하여 포스팅해보겠습니다
ensembl 서버에 dbSNP rs Number를 보내서 JSON 형태로 받아오도록 하는 것으로
간단히 도식화 하면 다음과 같습니다
출처: http://korbillgates.tistory.com/76 [생물정보학자의 블로그]
첫 번째 시리즈는 지난 포스트에서 rsID 로 해당 chromosome의 position을 찾아내었는데요,
(해당 포스트: http://korbillgates.tistory.com/76 )
오늘은 rsID chromosome position에 맞는 gene을 얻는 방법을 소개해 드리겠습니다
방법
1. Ensembl API 를 사용하여 rsID 에 맞는 GRCh37 position을 찾습니다
2. Oncotator API 를 사용하여 Chromosome position에 해당하는 gene을 찾습니다
소스코드 - 파이썬3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | import sys import urllib.request import json def readRSNumToEnsembl(sRSNum): sURL = "http://grch37.rest.ensembl.org/variation/human/"+sRSNum+"?content-type=application/json" dRSNum = json.loads(urllib.request.urlopen(sURL).read().decode('utf-8')) return dRSNum #end: def readRSNumToJson def readPositionToOncotator(sPos): sChr = sPos.split(":")[0] sPos1 = sPos.split(":")[1].split("-")[0] sPos2 = sPos.split(":")[1].split("-")[1] sURL = "http://portals.broadinstitute.org/oncotator/genes/"+sChr+"_"+sPos1+"_"+sPos2 dOncotator = json.loads(urllib.request.urlopen(sURL).read().decode('utf-8')) return dOncotator #end: def readPositionToOncotator def printResult(sPos, dOncotator): sGene = "" for s in dOncotator.keys(): sGene += s print(sPos+" "+sGene) #end: def printResult if __name__ == "__main__": if len(sys.argv) != 2: print("#usage: python3",sys.argv[0],"<rs Number>") sys.exit() sRSNum = sys.argv[1] dRSNum = readRSNumToEnsembl(sRSNum) sPos = dRSNum['mappings'][0]['location'] dOncotator = readPositionToOncotator(sPos) printResult(sPos, dOncotator) #end: if __name__ | cs |
실행 예
$ python rsIDtoGene_GRCh37.py rs712829
7:55086755-55086755 EGFR
rsID에 해당하는 chromosome position과 gene이 잘 찍혀서 나오는군요 ㅎㅎ
그럼 다음 시간에 만나요~
'생물정보학 > Tools' 카테고리의 다른 글
[Samtools] BAM 파일에서 Duplicated Read 찾기 (0) | 2017.10.30 |
---|---|
[GATK] GATK 오류 - "Problem detecting index type" 해결법 (0) | 2017.10.16 |
[dbSNP] dbSNP rest API 사용법 - rsID 로 chromosome position 찾기 (0) | 2017.04.26 |
[PDF phaser] pdf 8페이지씩 양면으로 뽑을 때 책모양으로 인쇄를 도와주는 툴 - pdf 책 모양으로 뽑기 (0) | 2017.04.15 |
[bedtools 사용방법] bedtools를 이용하여 vcf 의 특정 범위 꺼내기 (3) | 2017.04.04 |
댓글