OneKGPd: 1000 Genomes 프로젝트 개인 수준 질의
범위
이 스킬은 GRCh38 어셈블리에서 확장된 고해상도 코호트인 1000 Genomes 프로젝트 데이터셋(전장유전체 시퀀싱된 3,202명)을 질의합니다. 모든 결과는 이 코호트에서 도출되며, 스킬이 반환하는 샘플 이름(예: HG00096 또는 NA21130)은 코호트 참가자를 식별합니다.
질의는 코호트의 개인별 유전자형 데이터에 대해 수행됩니다. 이는 두 가지 상호 보완적인 질문 유형을 지원합니다: 영역 내에서 운반되는 변이 선택(전체 코호트 또는 지정된 개인 집합 내)과 주어진 기준과 일치하는 변이를 운반하는 개인 선택입니다. 변이 선택은 대립유전자 빈도, 예측된 결과, 임상적 중요성, AlphaMissense 분류 및 아래 나열된 기타 주석 축으로 필터링할 수 있습니다. 두 명명된 개인 간의 친족 관계도 확인 가능합니다.
변이가 운반되는 유전자형 상태(이형접합 또는 동형접합)는 질의에서 지정할 수 있는 기준입니다. 결과는 원시 유전자형이 아닌 변이 또는 샘플 이름으로 반환됩니다.
사용 시기
다음과 같은 경우 이 스킬을 사용하십시오:
- 전체 코호트에서 일부 기준과 일치하는 영역 또는 여러 영역에서 운반되는 변이 찾기 (
select-variants). - 특정 개인 집합에서 일부 기준과 일치하는 영역 또는 여러 영역에서 운반되는 변이 찾기 (
select-variants-in-samples). - 영역 또는 여러 영역에서 일부 기준과 일치하는 변이를 운반하는 1000 Genomes 개인 찾기 (
select-samples). - 특정 변이를 운반하는 개인 수 계산 (
count-samples). - 변이 질의를 이형접합 전용 또는 동형접합 전용 운반으로 제한하거나, 둘 다 질의(기본값).
- 단일 위치에서 동형접합 참조인 개인 식별 (
select-samples-hom-ref). - 두 명명된 1000 Genomes 개인 간의 친족 관계 확인 — 정도(쌍둥이 / 1촌 / 2촌 / 3촌 / 무관) 및 KING 혈연 계수 (
kinship). - 데이터셋 총계 가져오기 — 샘플 수, 성별 구분, 변이 수, 어셈블리 (
dataset-info). - 변이 선택은 KGP 대립유전자 빈도, gnomAD 4.1 엑솜 및 gnomAD 4.1 유전체 대립유전자 빈도, AlphaMissense 점수 및 AlphaMissense 클래스, ClinVar 중요도(202502), VEP 주석(영향, 바이오타입, 특징 유형, 변이 클래스, 결과)으로 지정할 수 있습니다.
다음과 같은 경우 이 스킬을 사용하지 마십시오:
- 유전자 기호, rsID 또는 전사체를 좌표로 확인하거나 참조 서열을 가져오는 경우. 먼저 좌표를 확인한 후(아래 좌표 출처 참조), 확인된 GRCh38 영역으로 이 스킬을 질의하십시오.
- 1000 Genomes 프로젝트 이외의 코호트 — 이 스킬은 해당 데이터셋만提供服务합니다.
전제 조건
uv: 이 스킬의 스크립트는uv run으로 실행되며, 스크립트의 인라인 종속성 메타데이터를 읽고 임시 환경을 프로비저닝합니다.uv가 설치되어 있고 PATH에 있는지 확인하십시오(https://docs.astral.sh/uv/).- 데이터 사용 약관: 1000 Genomes 프로젝트 데이터는 공개되어 있습니다. 사용자는 1000 Genomes 프로젝트 / IGSR 데이터 사용 약관(https://www.internationalgenome.org/data)을 인지해야 합니다.
- 접근 제약: 구성할 API 키,
.env파일 또는 속도 제한 토큰이 없습니다. - 자격 증명 필요 없음
핵심 규칙
- 래퍼 사용: 자체 클라이언트 호출 또는 네트워크 요청을 구성하는 대신 제공된 도우미 스크립트를 항상 실행하십시오. 변이/샘플/친족 질의에는
scripts/onekgpd_api.py(연결, 스트리밍, 페이지 매김 및 JSON 직렬화 처리)를 사용하고, 샘플/인구 메타데이터에는scripts/onekgpd_meta.py(오프라인, 샘플 및 인구 메타데이터 참조)를 사용하십시오. - 좌표는 먼저 권위 있는 출처에 대해 확인해야 합니다 — 좌표 출처(필수 첫 단계)를 참조하십시오. 이는 권고 사항이 아닌 필수 사항입니다.
- 선택하기 전에 개수 세기: 모든 변이 및 샘플 선택에는 쌍을 이루는 카운팅 명령이 있습니다. 먼저 카운트 명령을 호출하여 결과 집합의 크기를 측정한 다음, 카운트가 관리 가능한 경우에만 선택하십시오.
- 접합성 기본값은 둘 다: 선택 및 카운팅 명령은 기본적으로 이형접합 및 동형접합 운반을 모두 포함합니다. 질문이 특정 상태에 관한 것일 때
--het-only또는--hom-only로 좁히십시오. (둘 다 얻기 위해 아무것도 전달할 필요가 없습니다.) - 출력: 스크립트는 전체 JSON을 파일(
--output, 기본값/tmp/아래)에 쓰고 간결한 요약을 stdout에 인쇄합니다. 큰 JSON 파일을 컨텍스트로 읽지 마십시오.jq또는 작은 일회용uv run python스니펫을 사용하여 필드를 추출하십시오.
좌표 출처(필수 첫 단계)
영역 기반 질의 전에 유전자 또는 특징을 권위 있는 출처(예: Ensembl)에 대해 GRCh38 좌표로 확인하고, 확인된 좌표로 질의하십시오. 어셈블리는 명시적이어야 하며, 유전자 범위는 사용 전에 정확한 위치로 확인되어야 합니다. 이는 구조적이며 권고 사항이 아닙니다. 잘못된 영역을 잡아낼 서버 측 안전 장치가 없으므로, 확인되지 않은 좌표는 오류 없이 의도하지 않은 위치에 대한 결과를 생성합니다.
# 유전자 기호 -> GRCh38 영역을 먼저 권위 있는 출처로 확인한 다음,
# 확인된 좌표를 아래 OneKGPd 질의에 전달하십시오.
[!CAUTION] 데이터셋은 GRCh38입니다. GRCh37 좌표 또는 GRCh38에서 의도한 특징에 올바르게 해당하지 않는 영역은 오류를 발생시키지 않고 의도하지 않은 위치에 대한 결과를 반환합니다. 질의하기 전에 어셈블리와 확인된 좌표를 확인하십시오.
명령 선택 가이드
질문을 명령과 일치시키십시오. 카운팅 명령은 저렴하며 선택 명령보다 먼저 수행해야 합니다.
- 영역에서 일치하는 변이를 운반하는 개인 →
count-samples다음select-samples - 코호트 전체에서 영역 내 변이 →
count-variants다음select-variants - 명명된 개인 집합 내에서 영역 내 변이 →
count-variants-in-samples다음select-variants-in-samples - 단일 위치에서 동형접합 참조인 사람 →
count-samples-hom-ref다음select-samples-hom-ref - 두 명명된 개인 간의 친족 관계(정도 + 계수) →
kinship - 데이터셋 총계(샘플 수, 성별 구분, 변이 총계, 어셈블리) →
dataset-info
주석 필터(변이 및 샘플 선택/카운팅에 공유)
모든 변이 및 샘플 선택 명령(count-variants, select-variants, -in-samples 형식, count-samples, select-samples)은 동일한 주석 필터를 허용합니다. 다른 필드 필터는 AND로 결합됩니다. 하나의 필드 내 여러 값은 OR로 결합됩니다. 열거형 값은 대소문자를 구분하지 않습니다(예: missense_variant 또는 MISSENSE_VARIANT).
이는 서버에 적용되는 선택 기준입니다. 선택된 변이에 반환되는 필드는 변이 반환 명령 아래에 나열되어 있습니다. 필터링에 사용된 기준이 반환된 변이에 반드시 다시 반영되는 것은 아닙니다.
--af-lt/--af-gt: 1000 Genomes 데이터셋 대립유전자 빈도 범위--gnomad-exomes-af-lt/--gnomad-exomes-af-gt: gnomAD v4.1 엑솜 AF 범위--gnomad-genomes-af-lt/--gnomad-genomes-af-gt: gnomAD v4.1 유전체 AF 범위--clin-significance: ClinVar 중요도 용어, CSV(예:PATHOGENIC,LIKELY_PATHOGENIC)--consequence: 서열 온톨로지 결과 용어, CSV(예:MISSENSE_VARIANT,STOP_GAINED)--impact: VEP 영향, CSV(HIGH,MODERATE,LOW,MODIFIER)--variant-type,--feature-type,--bio-type: SO 변이 클래스 / VEP 특징 / VEP 바이오타입, CSV--alpha-missense-class:AM_LIKELY_BENIGN,AM_LIKELY_PATHOGENIC,AM_AMBIGUOUS(CSV)--alpha-missense-score-lt/--alpha-missense-score-gt: AlphaMissense 점수 범위--biallelic-only/--multiallelic-only--exclude-males/--exclude-females--min-len-bp/--max-len-bp: 대체 대립유전자 길이 범위(bp)
[!NOTE]
--alpha-missense-class와--alpha-missense-score-*는 상호 배타적입니다(점수 범위가 설정되면 엔진이 클래스를 무시함).--biallelic-only와--multiallelic-only는 상호 배타적입니다.--exclude-males와--exclude-females는 상호 배타적입니다.*-gt범위를 일치하는*-lt범위보다 크거나 같게 설정하면 빈 범위가 정의되어 아무 것도 반환되지 않습니다.
[!NOTE] 대립유전자 빈도 필드는
0.0을 "해당 출처에 없음"을 의미하는 데 사용합니다. 따라서--gnomad-exomes-af-gt 0은 gnomAD 엑솜에 있는 변이를 선택합니다. 반환된gnomad_exomes_af가0.0이면 변이가 gnomAD 엑솜에 없음을 의미합니다. gnomAD 유전체 AF에도 동일한 규칙이 적용됩니다. 반대로,--gnomad-exomes-af-lt/--gnomad-genomes-af-lt범위는 주석이 없는 변이를 포함합니다. "gnomAD에서 AF < X"에는 gnomAD AF = 0인 변이, 즉 주석이 없는 변이가 포함됩니다. gnomAD에 존재하도록 요구하려면--gnomad-*-af-gt 0과 함께 사용하십시오.
[!NOTE]
am_score가0.0이면 AlphaMissense에 의해 점수가 매겨지지 않았거나 주석이 추가되지 않았음을 의미합니다.benign을 의미하지 않습니다. 실제 AlphaMissense 점수는 항상 0보다 큽니다.
빠른 시작
# 1단계. 권위 있는 출처에 대해 좌표 확인 — 좌표 출처 참조.
# 예: BRCA1: chr17:43044292-43170245
# 2단계. 결과 집합 크기 측정: 이 영역에서 예측된 병원성 가능성이 있는 미스센스 변이를 운반하는 개인은 몇 명입니까?
uv run scripts/onekgpd_api.py count-samples \
--chrom chr17 --start 43044292 --end 43170245 \
--consequence MISSENSE_VARIANT \
--alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/count.json
# 3단계. 개수가 관리 가능하면 해당 개인을 나열합니다.
uv run scripts/onekgpd_api.py select-samples \
--chrom chr17 --start 43044292 --end 43170245 \
--consequence MISSENSE_VARIANT \
--alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/samples.json
# 4단계: 해당 개인 집합에 대해 실제 운반하는 변이를 확인합니다.
uv run scripts/onekgpd_api.py select-variants-in-samples \
--chrom chr17 --start 43044292 --end 43170245 \
--samples HG03169,NA20506 \
--consequence MISSENSE_VARIANT --alpha-missense-class AM_LIKELY_PATHOGENIC \
--output /tmp/variants.json
명령
각 명령은 전체 JSON을 파일(--output PATH, 기본값 임시 파일)에 쓰고 간결한 stdout 요약을 인쇄합니다. 모든 영역/샘플 명령은 영역 입력(--chrom/--start/--end with optional --ref/--alt, 또는 하나 이상의 반복 --region CHR:START-END), 접합성 플래그(--het-only/--hom-only, 기본값 둘 다) 및 위의 주석 필터를 공유합니다. 전체 플래그별 테이블은 references/onekgpd_commands.md에 있습니다.
변이 반환 명령
select-*는 일치하는 변이를 반환합니다. count-*는 정수 개수를 반환합니다.
count-variants— 영역 내 변이 개수, 코호트 전체.select-variants— 영역 내 변이 선택, 코호트 전체.--limit N(하드 캡, 기본값 200) 또는--page-size N(전체 집합을 페이지 단위로 검색)을 사용하십시오. 둘은 상호 배타적입니다. 캡에 도달하면 요약에truncated플래그가 표시됩니다.count-variants-in-samples—count-variants와 같지만--samples NAME1,NAME2,...(필수)로 제한됩니다.select-variants-in-samples—select-variants와 같지만--samples NAME1,NAME2,...(필수)로 제한됩니다.
반환된 각 변이는 다음 22개 키를 갖습니다: chr, start, end, ref, alt, af, ac, an, hom_samples, het_samples, mis_samples, hom_samples_fx, het_samples_fx, mis_samples_fx, hom_samples_mxy, het_samples_mxy, mis_samples_mxy, gnomad_exomes_af, gnomad_genomes_af, am_score, amino_acids, biallelic.
ClinVar 중요도 및 VEP 결과는 필터 기준일 뿐 반환되지 않습니다. 전체 스키마:
references/onekgpd_commands.md.
샘플 반환 명령
count-samples— 영역에서 일치하는 변이를 운반하는 개인 수.select-samples— 일치하는 변이를 운반하는 개인의 이름을 나열합니다.--skip N및--limit N을 지원합니다. 이름만 반환합니다. 개인이 자격을 얻은 변수를 보려면 이름을select-variants-in-samples에 전달하십시오.
동형접합 참조 명령
--chrom + --position을 통한 단일 위치(영역 아님).
count-samples-hom-ref— 해당 위치에서 0/0 호출을 가진 개인 수. 카운트는 센티널입니다:-1= 해당 위치에 변이가 전혀 없음;0= 변이가 존재하지만 동형접합 참조 개인이 없음;>0= 동형접합 참조 개인 수. 요약에 해당 사례가 명시됩니다.select-samples-hom-ref— 해당 위치에서 0/0 호출을 가진 개인을 나열합니다.
친족 관계 명령
kinship --sample1 NAME --sample2 NAME— 두 명명된 개인 간의 친족 관계: 정도(TWINS_MONOZYGOTIC/FIRST_DEGREE/SECOND_DEGREE/THIRD_DEGREE/UNRELATED) 및 KING 혈연 계수(phi_bwf).
데이터셋 메타데이터 명령
dataset-info— 데이터셋 총계:samples_total(3,202), 여성/남성 구분,variants_total,assembly(GRCh38) 및 코호트 분석. 영역 필요 없음. 연결 확인을 겸합니다.
샘플 및 인구 메타데이터(오프라인)
인구, 성별, 계보 및 초인구 질문은 스킬에 번들된 데이터 파일에서 두 번째 스크립트 scripts/onekgpd_meta.py로 답변됩니다. 네트워크, 자격 증명 또는 좌표가 필요하지 않습니다. 샘플 ID는 변이 명령이 사용하는 것과 동일한 이름이므로 두 계층을 합성할 수 있습니다(예: 인구별로 코호트를 선택한 다음 변이를 질의). uv run scripts/onekgpd_meta.py <command>를 실행하십시오.
코호트에는 5개의 초인구(AFR, AMR, EAS, EUR, SAS)와 26개의 인구가 있습니다.