인간 변이의 HGVS 표현의 변환(vep api)

16561 단어 Pythonvep

변이 HGVS가 나타내는 상호 변환


지금까지 인간 게놈 변이의 HGVS 변환을 위해 시도변종 HGVS 표현의 상호 변환(Ensembl variant recorder)변형 HGVS 표현의 변환(Pythn hgvs)
그러나 간편하다는 점에서vepapi를 이용할 수 없을 것 같습니다

vep restiful api를 이용한 variant recorder


변종 HGVS 표현의 상호 변환(Ensembl variant recorder)의 선택할 수 있는 지정과 통일하기 위해pythn을 사용하여 다음 코드를 제작합니다
Python의 Requests 모듈을 미리 설치하십시오
variant_recoder_rest.py
import argparse
import json
import requests

server_grch37 = "https://grch37.rest.ensembl.org"
server_grch38 = "https://rest.ensembl.org"
variant_recoder_human = "/variant_recoder/human"


def variant_recoder(input_data, grch37, pretty):
    server = server_grch38 if not grch37 else server_grch37
    api_url = server + variant_recoder_human + '/' + input_data
    result = requests.get(api_url, headers={"Content-Type": "application/json"})
    if result.status_code != requests.codes.ok:
        header = result.headers
        ratelimit_remaining = int(header['X-RateLimit-Remaining'])
        if ratelimit_remaining == 0:
            print("You are not allowed to submit any request.")
            raise ValueError(
                "You've reached the rate limit of api. Please wait {} seconds.".format(header['X-RateLimit-Reset']))
        raise ValueError(result.text)

    if pretty:
        print(json.dumps(result.json(), indent=4))
    else:
        print(json.dumps(result.json()))


def parse_args():
    parser = argparse.ArgumentParser(description='vep recoder with ensembl vep API.')
    parser.add_argument('--input_data', nargs=1, required=True,
                        help='hgvs string to convert')
    parser.add_argument('--grch37', action='store_true',
                        help='Set genome version to GRCh37. (Default version is GRCh38)')
    parser.add_argument('--pretty', action='store_true', help="Prettify JSON result")
    return parser.parse_args()


if __name__ == "__main__":
    args = parse_args()
    input_data = args.input_data[0]
    grch37 = args.grch37
    pretty = args.pretty
    variant_recoder(input_data=input_data, grch37=grch37, pretty=pretty)
Bug Fix(2019/12/18)
지난번에 똑같이 지정할 수 있는 옵션은 다음과 같다
옵션
설명
메모
--input_data
변환 원본 hgvs로 표시된 문자열
큰따옴표 또는 작은따옴표로 구분
--grch37
인간 유전자 그룹 지정 버전
지정하지 않은 경우 GRRCh38(hg38) 사용
--pretty
JSON 태그의 성형 표현 보기

GRCh37을 통해 가져오기


변이의 hgvs는'NM'을 나타낸다000603.4: c.894T>G에서 변환 결과 얻기
$ python variant_recoder_rest.py \
    --input_data 'NM_000603.4:c.894T>G' \
    --grch37 \
    --pretty
결과는 다음과 같다.
[
    {
        "hgvsp": [
            "ENSP00000297494.3:p.Asp298Glu",
            "ENSP00000417143.1:p.Asp92Glu",
            "ENSP00000420551.1:p.Asp298Glu",
            "ENSP00000420215.1:p.Asp298Glu",
            "NP_000594.2:p.Asp298Glu",
            "NP_001153581.1:p.Asp298Glu",
            "NP_001153582.1:p.Asp298Glu",
            "NP_001153583.1:p.Asp298Glu"
        ],
        "id": [
            "rs1799983",
            "CM981388"
        ],
        "hgvsg": [
            "NC_000007.13:g.150696111T>G"
        ],
        "hgvsc": [
            "ENST00000297494.3:c.894T>G",
            "ENST00000461406.1:c.276T>G",
            "ENST00000467517.1:c.894T>G",
            "ENST00000484524.1:c.894T>G",
            "NM_000603.4:c.894T>G",
            "NM_001160109.1:c.894T>G",
            "NM_001160110.1:c.894T>G",
            "NM_001160111.1:c.894T>G"
        ],
        "input": "NM_000603.4:c.894T>G"
    }
]

GRRCh38을 통해 가져오기

--grch37 옵션을 생략한 상태에서 GRRCh38에서 변환 결과를 출력합니다.
$ python variant_recoder_rest.py \
    --input_data 'NM_000603.4:c.894T>G' \
    --pretty
[
    {
        "hgvsc": [
            "ENST00000297494.7:c.894T>G", 
            "ENST00000461406.5:c.276T>G", 
            "ENST00000467517.1:c.894T>G", 
            "ENST00000484524.5:c.894T>G", 
            "NM_000603.4:c.894T>G", 
            "NM_001160109.1:c.894T>G", 
            "NM_001160110.1:c.894T>G", 
            "NM_001160111.1:c.894T>G"
        ], 
        "input": "NM_000603.4:c.894T>G", 
        "hgvsp": [
            "ENSP00000297494.3:p.Asp298Glu", 
            "ENSP00000417143.1:p.Asp92Glu", 
            "ENSP00000420551.1:p.Asp298Glu", 
            "ENSP00000420215.1:p.Asp298Glu", 
            "cds46555.1:p.Asp298Glu", 
            "cds46558.1:p.Asp298Glu", 
            "cds46557.1:p.Asp298Glu", 
            "cds46556.1:p.Asp298Glu"
        ], 
        "hgvsg": [
            "NC_000007.14:g.150999023T>G"
        ], 
        "id": [
            "rs1799983", 
            "CM981388"
        ]
    }
]
hgvsg의 결과를 보면
  • GRCh37
  • "NC_000007.13:g.150696111T>G"
  • GRCh38
  • "NC_000007.14:g.150999023T>G"
  • 지정된 유전자 그룹에서 전환되었음을 확인할 수 있다

    단위 시간 요구의 제한


    Ensembl API를 사용하여 시간당 사용 제한 설정
    일반적으로 최대 3600초 동안 55000회이므로 제한에 도달하지 않을 수 있습니다. 그러나 제한에 도달하면 몇 초 동안 기다려야 복구할 수 있는 정보를 표시하는 것은 잘못된 것입니다.
    이번엔 여기까지

    좋은 웹페이지 즐겨찾기