안녕하세요
한주현 입니다
오늘은 dbSNP의 restAPI 사용법에 대하여 포스팅해보겠습니다
ensembl 서버에 dbSNP rs Number를 보내서 JSON 형태로 받아오도록 하는 것으로
간단히 도식화 하면 다음과 같습니다
사용 방법
http://grch37.rest.ensembl.org/variation/human/rs116035550?content-type=application/json
붉은색 부분을 rs number로 교체하면 아래와 같이 json이 반환됩니다
{"source":"Variants (including SNPs and indels) imported from dbSNP","mappings":[{"location":"11:212464-212464","assembly_name":"GRCh37","end":212464,"seq_region_name":"11","strand":1,"coord_system":"chromosome","allele_string":"G/A/C","start":212464}],"name":"rs116035550","MAF":null,"ambiguity":"V","var_class":"SNP","synonyms":[],"evidence":["Frequency","1000Genomes","ESP","ExAC"],"ancestral_allele":"G","minor_allele":null,"most_severe_consequence":"missense_variant"}
참고로 json 뿐 만 아니라 XML, jsonp 형식으로도 반환 할 수 있습니다
자세한 설명은 아래 URL 을 참고해 주세요 ㅎㅎ
http://grch37.rest.ensembl.org/documentation/info/variation_id
반환 된 json을 가지고 코딩을 조금 해보면, rsID 로 chromosome position 을 쉽게 찾을 수 있습니다
json 을 반환된 것을 python 이나 HTML로 받아오려면 아래와 같이 해봅시다 ㅎㅎ
Python으로 구현
## 소스코드
import sys import urllib.request import json def readRSNumToJson(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 if __name__ == "__main__": if len(sys.argv) != 2: print("#usage: python3",sys.argv[0],"<rs Number>") sys.exit() sRSNum = sys.argv[1] dRSNum = readRSNumToJson(sRSNum) print(dRSNum) #end: if __name__
## 실행 예
$ python dbSNP.py rs116035550
{'name': 'rs116035550', 'ancestral_allele': 'G', 'source': 'Variants (including SNPs and indels) imported from dbSNP', 'synonyms': [], 'mappings': [{'strand': 1, 'start': 212464, 'location': '11:212464-212464', 'allele_string': 'G/A/C', 'assembly_name': 'GRCh37', 'coord_system': 'chromosome', 'seq_region_name': '11', 'end': 212464}], 'evidence': ['Frequency', '1000Genomes', 'ESP', 'ExAC'], 'most_severe_consequence': 'missense_variant', 'ambiguity': 'V', 'minor_allele': None, 'var_class': 'SNP', 'MAF': None}
웹 구현
var sURL = "http://grch37.rest.ensembl.org/variation/human/"+rsNum.rsNum+"?content-type=application/json"; console.log(sURL) $.getJSON(sURL, function(data){ console.log(data); console.log(data.mappings[0]); console.log(data.ancestral_allele); $("#checkResult").val(rsNum.rsNum+" chr"+data.mappings[0].location+" "+data.ancestral_allele); });
HTML script 부분에 요렇게 코딩을 해주시면 됩니다
간단히 설명 드리자면, API 에 접근하여 jquery 로 만들었습니다
필요한 값들만 가져와서 찍는 걸로 ㅎㅎ
그럼 다음시간에 만나요~
'생물정보학 > Tools' 카테고리의 다른 글
[GATK] GATK 오류 - "Problem detecting index type" 해결법 (0) | 2017.10.16 |
---|---|
[dbSNP] rsID 로 chromosome position, gene 찾기 (0) | 2017.08.04 |
[PDF phaser] pdf 8페이지씩 양면으로 뽑을 때 책모양으로 인쇄를 도와주는 툴 - pdf 책 모양으로 뽑기 (0) | 2017.04.15 |
[bedtools 사용방법] bedtools를 이용하여 vcf 의 특정 범위 꺼내기 (3) | 2017.04.04 |
[bedtools] bedtools 설치 방법 - How to install bedtools (0) | 2017.04.04 |
댓글