4. KinMatch REST API¶
Contents
KinMatch REST API는 KinMatch의 기능을 RESTful API 형태로 제공한다. 다음과 같이 대립유전자 빈도정보, 유전자형정보 등의 (1)자원관리 와 혈연관계 검사와 검색을 포함한 (2)분석기능 을 제공한다.
자원관리 | 분석기능 |
---|---|
|
|
4.1. REST API 일반 (REST API)¶
REST API의 모든 HTTP 요청은 설치 중 python manage.py syncdb
를 통해 생성한 REST API ID를 통한 인증이 필요하므로
HTTP HEADER에 아이디와 패스워드 정보를 넣어 주어야 한다.
4.1.1. 응답코드¶
다음은 REST API의 요청결과의 HTTP 주요 상태코드이다. 요청성공시 코드는 ‘200’이다.
상태코드 | 설명 | 비고 |
---|---|---|
200 | 성공 | OK |
405 | 실패 | METHOD NOT ALLOWED |
400 | 실패 | BAD REQUEST |
409 | 실패 | CONFLICT |
415 | 실패 | UNSUPPORTED MEDIA TYPE |
503 | 실패 | SERVICE UNAVAILABLE |
500 | 실패 | INTERNAL SERVER ERROR |
4.1.2. 반환결과¶
모든 KinMatch API 요청에 대한 반환결과는 JSON 객체로, 아래 키 값을 포함한다. 그 중 ‘items’ 는 요청의 실행결과를 담고 있는 리스트이다.
키 | 설명 | 타입 | 비고 |
---|---|---|---|
totalPageCount | 총 페이지 수 | string | . |
status | 요청결과 | string | {Success|Failure|Exception} |
totalCount | 총 데이터 수 | string | . |
apiVersion | API 버전 | string | . |
message | 요청결과 메세지 | string | . |
itemCount | 실행결과 데이터 수 | string | . |
items | 실행결과 | list | . |
각 요청별 상세한 반환결과정보는 각 섹션에서 설명한다.
4.2. 유전자형 정보 관리 (genotype management)¶
개인의 유전자형 정보를 조회하고 입력하고 삭제할 수 있는 유전자형 정보관리를 제공한다. 모든 유전자형 정보는 개인별 식별번호(identifier)로 구분된다.
URL | METHOD | 기능 |
---|---|---|
/kind/genotypes/ | POST | 유전자형 자원 입력 |
/kind/genotypes/ | PUT | 유전자형 자원 갱신 |
/kind/genotypes/ | GET | 유전자형 자원 요약정보 출력 |
/kind/genotypes/{identifier}/ | GET | 유전자형 자원 상세정보 |
/kind/genotypes/{identifier}/{genotype}/ | DELETE | 유전자형 자원 삭제 |
4.2.1. 유전자형 자원 입력¶
유전자형 정보를 입력한다. 입력파일은 ‘CSV’, ‘XLSX’, ‘JSON’, ‘GeneMark’ 포맷이 가능하다.
-
POST
/kind/genotypes/
¶ 요청 예:
POST /kind/genotypes/?type=A-STR&informat=XLSX&group=group1&save-by=new&infile=infile.xlsx Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "totalPageCount": 0, "status": "Success", "totalCount": 0, "apiVersion": "0.1", "message": "Success uploading A-STR", "itemCount": 0, "items": [] } ]
Parameters: - type (string) – 유전자 종류,
A-STR
,Y-STR
,SNP
,mtDNA
중 하나 - informat (string) – 입력파일 형식,
GeneMark
,JSON
,XLSX
,CSV
중 하나 - group (string) – 입력자원이 속할 그룹
- save-by (string) – 저장형태,
new
(새로쓰기),replacement
(모두대체),merge-with-overwrite
(중복마커 덮어쓰기),merge-without-overwrite
(중복마커 덮어쓰기 안함) 중 하나 - infile (string) – 입력파일명
- type (string) – 유전자 종류,
4.2.2. 유전자형 자원 갱신¶
유전자형 정보를 갱신한다. 입력파일은 ‘CSV’, ‘XLSX’, ‘JSON’, ‘GeneMark’ 포맷이 가능하다.
-
PUT
/kind/genotypes/
¶ 요청 예:
PUT /kind/genotypes/?type=A-STR&informat=XLSX&group=group1&save-by=replacement&infile=infile.xlsx Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "totalPageCount": 0, "status": "Success", "totalCount": 0, "apiVersion": "0.1", "message": "Success uploading A-STR", "itemCount": 0, "items": [] } ]
Parameters: - type (string) – 유전자 종류,
A-STR
,Y-STR
,SNP
,mtDNA
중 하나 - informat (string) – 입력파일 형식,
GeneMark
,JSON
,XLSX
,CSV
중 하나 - group (string) – 입력자원이 속할 그룹
- save-by (string) – 저장형태,
new
(새로쓰기),replacement
(모두대체),merge-with-overwrite
(중복마커 덮어쓰기),merge-without-overwrite
(중복마커 덮어쓰기 안함) 중 하나 - infile (string) – 입력파일명
- type (string) – 유전자 종류,
4.2.3. 유전자형 자원 요약정보 출력¶
모든 식별번호(identifier)의 ‘A-STR’, ‘Y-STR’, ‘mtDNA’ 마커수와 소속된 그룹정보를 요약해서 보여준다.
-
GET
/kind/genotypes/
¶ 요청 예:
GET /kind/genotypes/ Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "status": "Success", "message": "Success fetching Genotype None", "apiVersion": "0.1" "itemCount": 10, "totalCount": 63, "totalPageCount": 6, "items": [ { "Y-STR": "16", "A-STR": "16", "mtDNA": "0", "identifier": "sample1_1", "groups": "group1" }, { "Y-STR": "16", "A-STR": "16", "mtDNA": "0", "identifier": "sample1_2", "groups": "group1" }, { "Y-STR": "16", "A-STR": "16", "mtDNA": "0", "identifier": "sample1_3", "groups": "group1" }, { "Y-STR": "0", "A-STR": "16", "mtDNA": "9", "identifier": "sample1_18", "groups": "group1" }, { "Y-STR": "16", "A-STR": "16", "mtDNA": "0", "identifier": "sample1_4", "groups": "group1" }, { "Y-STR": "16", "A-STR": "16", "mtDNA": "0", "identifier": "sample1_5", "groups": "group1" }, { "Y-STR": "16", "A-STR": "16", "mtDNA": "0", "identifier": "sample1_6", "groups": "group1" }, { "Y-STR": "16", "A-STR": "16", "mtDNA": "0", "identifier": "sample1_7", "groups": "group1" }, { "Y-STR": "16", "A-STR": "16", "mtDNA": "0", "identifier": "sample1_8", "groups": "group1" }, { "Y-STR": "16", "A-STR": "16", "mtDNA": "11", "identifier": "sample1_9", "groups": "group1" } ], } ]
Parameters: - type (string) – 유전자 종류,
A-STR
,Y-STR
,mtDNA
중 하나 - format (string) – 출력 형식,
csv
,tsv
,json
중 하나 - identifier (string) – 식별번호 (정렬용)
- page-no (integer) – 페이지 번호
- paginate-by (integer) – 페이지 당 행 수
- sort (string) – 정렬 대상
- desc (boolean) – 차순,
true
,false
중 하나 - filter-astr (boolean) – A-STR 정보가 없는 데이터 제거 여부,
true
,false
중 하나 - filter-ystr (boolean) – Y-STR 정보가 없는 데이터 제거 여부,
true
,false
중 하나 - filter-mtdna (boolean) – mtDNA 정보가 없는 데이터 제거 여부,
true
,false
중 하나
- type (string) – 유전자 종류,
4.2.4. 유전자형 자원 상세정보¶
선택한 개인식별번호(identifier)에 대한 유전자형 상세정보를 제공한다.
-
GET
/kind/genotypes/{identifier}/
¶ 요청 예:
GET /kind/genotypes/sample1_8/ Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "status": "Success", "message": "Success fetching Genotype sample1_8", "items": [ { "groups": [ "group1" ] }, { "A-STR": [ {"Amelogenin": "X,Y"}, {"D3S1358": "-"}, {"D1S1656": "-"}, {"D2S441": "-"}, {"D10S1248": "-"}, {"D13S317": "8,11"}, {"Penta E": "-"}, {"D16S539": "11,13"}, {"D18S51": "14,18"}, {"D2S1338": "17,19"}, {"CSF1PO": "11,12"}, {"Penta D": "-"}, {"TH01": "-"}, {"vWA": "14,14"}, {"D21S11": "29,32.2"}, {"D7S820": "-"}, {"D5S818": "-"}, {"TPOX": "-"}, {"D8S1179": "10,14"}, {"D12S391": "-"}, {"D19S433": "-"}, {"FGA": "21.2,23"}, {"D22S1045": "-"}, {"SE33": "-"} ] }, { "mtDNA": [ {"73": "G"} ] }, { "Y-STR": [ {"DYS576": "-"}, {"DYS389I": "14"}, {"DYS448": "18"}, {"DYS389II": "-"}, {"DYS19": "-"}, {"DYS391": "10"}, {"DYS481": "-"}, {"DYS549": "-"}, {"DYS533": "-"}, {"DYS438": "-"}, {"DYS437": "14"}, {"DYS570": "-"}, {"DYS635": "22"}, {"DYS390": "23"}, {"DYS439": "-"}, {"DYS392": "-"}, {"DYS643": "-"}, {"DYS393": "13"}, {"DYS458": "17"}, {"DYS385": "7"}, {"DYS456": "15"}, {"GATAH4.1": "-"} ] } ], "itemCount": 4, "totalCount": 0, "totalPageCount": 0, "apiVersion": "0.1" } ]
Parameters: - identifier (string) – 개인 식별번호
- format (string) – 출력 형식,
csv
,tsv
,json
중 하나 (default: json)
4.2.5. 유전자형 자원 삭제¶
선택한 개인식별번호(identifier)에 대한 유전자형 정보를 삭제한다.
-
DELETE
/kind/genotypes/{identifier}/{genotype}/
¶ 요청 예:
GET /kind/genotype/solider_8/all/ Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "status": "Success", "message": "Success deleting sample1_8", "items": [], "itemCount": 0, "totalCount": 0, "totalPageCount": 0, "apiVersion": "0.1" } ]
Parameters: - identifier (string) – 유전자형 자원 식별번호
- genotype (string) – 삭제 대상,
all
,Y-STR
,A-STR
,mtDNA
중 하나
4.4. 대립유전자 빈도정보 관리 (allele frequency table management)¶
다음은 kinship coefficient를 계산하는데 사용되는 대립유전자 빈도정보의 API 리스트이다. API 별 상세설명은 표 아래를 참고한다.
URL | METHOD | 기능 |
---|---|---|
/kind/allale-frequencies/ | POST | 대립유전자 빈도자원 입력 |
/kind/allale-frequencies/ | PUT | 대립유전자 빈도자원 갱신 |
/kind/allele-frequencies/ | GET | 대립유전자 빈도자원 요약정보 출력 |
/kind/allele-frequencies/{name}/ | GET | 대립유전자 빈도자원 상세정보 출력 |
/kind/allele-frequencies/{name}/ | DELETE | 대립유전자 빈도자원 삭제 |
4.4.1. 대립유전자 빈도자원 입력¶
대립유전자 빈도정보를 입력한다. 입력파일은 ‘CSV’, ‘XLSX’, ‘TSV’ 형식이 가능 하다.
-
POST
/kind/allele-frequencies/
¶ 요청 예:
POST /kind/allele-frequencies/?name=Korean_frequencies&type=A-STR&save-by=new&informat=CSV&infile=infile.csv&description=korean Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "totalPageCount": 0, "status": "Success", "totalCount": 0, "apiVersion": "0.1", "message": "Success uploading Korean", "itemCount": 0, "items": [] } ]
Parameters: - name (string) – 데이터 이름
- type (string) – 유전자 종류,
A-STR
,Y-STR
,mtDNA
중 하나 - save-by (string) – 저장 유형,
new
(새로쓰기),replacement
(덮어쓰기) 중 하나 - informat (string) – 입력파일 형식,
CSV
,XLSX
,TSV
중 하나 - infile (string) – 입력파일명
- description (string) – 입력파일설명
4.4.2. 대립유전자 빈도자원 갱신¶
대립유전자 빈도정보를 갱신한다. 입력파일은 ‘CSV’, ‘XLSX’, ‘TSV’ 형식이 가능 하다.
-
PUT
/kind/allele-frequencies/
¶ 요청 예:
PUT /kind/allele-frequencies/?name=korean&type=A-STR&save-by=replacement&infile=infile.csv Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "totalPageCount": 0, "status": "Success", "totalCount": 0, "apiVersion": "0.1", "message": "Success uploading Korean", "itemCount": 0, "items": [] } ]
Parameters: - name (string) – 데이터 이름
- type (string) – 유전자 종류,
A-STR
,Y-STR
,mtDNA
중 하나 (default: A-STR) - save-by (string) – 저장 유형,
new
,replacement
중 하나 (default: new) - informat (string) – 입력파일 유형,
CSV
,XLSX
,TSV
중 하나 (default: CSV) - infile (string) – 입력파일명
- description (string) – 입력파일설명
4.4.3. 대립유전자 빈도자원 요약정보 출력¶
대립유전자 빈도자원별 마커 수와 대립유전자 수 등의 요약정보를 출력한다.
-
GET
/kind/allele-frequencies/
¶ 요청 예:
GET /kind/allele-frequencies/ Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "message": "", "itemCount": 4, "apiVersion": "0.1", "status": "Success", "totalCount": 0, "totalPageCount": 0, "items": [ { "description": "", "type": "A-STR", "identifier": 0, "name": "Korean_23_A-STR_N526", "number of markers": "23", "number of alleles": "68" }, { "description": "", "type": "A-STR", "identifier": 1, "name": "Belgian_15_A-STR_N222", "number of markers": "15", "number of alleles": "47" }, { "description": "", "type": "A-STR", "identifier": 2, "name": "Belgian_23_A-STR_N", "number of markers": "23", "number of alleles": "62" }, { "description": "", "type": "A-STR", "identifier": 3, "name": "Spaniard_21_A-STR_N284", "number of markers": "21", "number of alleles": "65" } ] } ]
Parameters: - format (string) – 출력 형식,
csv
,tsv
,json
중 하나 (default: json)
- format (string) – 출력 형식,
4.4.4. 대립유전자 빈도자원 상세정보 출력¶
선택한 대립유전자 빈도자원의 마커별 빈도정보를 출력한다. CSV, TSV, JSON 형식으로 출력할 수 있다.
-
GET
/kind/allele-frequencies/{name}/
¶ 요청 예:
GET /kind/allele-frequencies/Korean_23_A-STR_N526/?type=A-STR Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "message": "Success fetching Allele frequency Korean_23_A-STR_N526", "itemCount": 1, "apiVersion": "0.1", "status": "Success", "totalCount": 0, "totalPageCount": 0, "items": [ { "A-STR": [ { "identifier": "CSF1PO", "5": "", "6": "", "7": "0.001901140684410646", "8": "0.001901140684410646", "9": "0.04847908745247148", "10": "0.2271863117870722", ..., }, { "identifier": "D10S1248", "23.1": "", "34.2": "", "28.2": "", "27.2": "", "14.3": "", ..., }, ... ] } ] } ]
Parameters: - name (string) – 대립유전자 빈도 고유명
- type (string) – 대립유전자 유형,
A-STR
,Y-STR
,mtDNA
중 하나 - format (string) – 출력 형식,
csv
,tsv
,json
중 하나 (default: json)
4.4.5. 대립유전자 빈도자원 삭제¶
입력한 대립유전자 빈도자원을 삭제한다.
-
DELETE
/kind/allele-frequencies/{name}/
¶ 요청 예:
DELETE /kind/allele-frequencies/Korean_23_A-STR_N526/ Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "message": "Success deleting Korean_23_A-STR_N526", "itemCount": 0, "apiVersion": "0.1", "status": "Success", "totalCount": 0, "totalPageCount": 0, "items": [] } ]
Parameters: - name (string) – 대립유전자 빈도 테이블명
4.5. 작업정보 관리 (task management)¶
다중비교검색 (search-multiple) 은 분석시간이 오래 걸리므로 작업관리를 지원한다. 다음은 작업정보관리 API 이다. 상세설명은 표 아래에 설명한다.
URL | METHOD | 기능 |
---|---|---|
/kind/task/ | GET | 작업요약정보 출력 |
/kind/task/{identifier}/ | GET | 작업상세정보 |
/kind/task/{identifier}/ | DELETE | 작업 삭제 |
4.5.1. 작업요약정보 출력¶
관리되고 있는 모든 작업의 목록을 출력한다.
-
GET
/kind/task/
¶ 요청 예:
GET /kind/task/ Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "message": "Fetching tasks", "itemCount": 1, "apiVersion": "0.1", "status": "Success", "totalCount": 1, "totalPageCount": 0, "items": [ { "description": null, "query_first": "sample2_1", "target_first": "sample1_1", "query_type": "range", "query_group": "group2", "relationship_type": "kinship", "astr_option": { "partial": false, "min_kinship_index": 1, "af_table": "Korean", "permit_mismatches": 2 }, "query_second": "sample2_2", "target_count": 12, "target_type": "range", "registered_time": "201505081512", "query_count": 12, "target_second": "sample1_2", "mtdna_option": {}, "partial": false, "ystr_option": {}, "status": "Finished", "target_group": "group1", "progress": 100, "identifier": "20150513-1" } ] } ]
Parameters: - identifier (string) – 작업 고유번호
- query-type (string) – 쿼리 타입,
all
,range
,keyword
,manual
중 하나 - query-group (string) – 쿼리 그룹,
group2
,group1
중 하나 - target-type (string) – 타겟 타입,
all
,range
,keyword
,manual
중 하나 - target-group (string) – 타겟 그룹,
group2
,group1
중 하나 - description (string) – 설명
- status (string) – 작업 상태,
Submitted
,Finished
중 하나 - sort (string) – 정렬 기준,
identifier
,query_group
,query_type
,quer_count
,target_group
,target_type
,target_count
,status
,progrss
,registered_time
중 하나 - desc (boolean) – 차순,
true
,false
중 하나 - paginate-by (integer) – 페이지당 행 수
- page (integer) – 페이지 번호
4.5.2. 작업상세정보¶
특정 다중비교검색의 task_id를 통해 분석결과를 확인 할 수 있다
-
GET
/kind/task/{task_id}/
¶ 요청 예:
GET /kind/task/20150513-1/ Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "apiVersion": "0.1", "status": "Success", "items": [ {"description": null}, { "result": [ { "A-STR full-sib": "7.420942922e-18", "A-STR first cousin": "8.311666799e-17", "A-STR unrelated": "3.111270195e-18", "A-STR half-sib": "1.93192592e-16", "A-STR 7 chon": "6.94192835e-18", "A-STR parent-child": "0.0", "A-STR max_relative": "half-sib", "A-STR max_index": "62.0944437211", "A-STR 8 chon": "4.82731193e-18", "A-STR 6 chon": "1.245774238e-17", "Identifier B": "sample1_18", "Identifier A": "sample2_19", "A-STR 5 chon": "2.903088108e-17", "identifier": "0" }, { "A-STR full-sib": "2.686367138e-19", "A-STR first cousin": "2.463312918e-18", "A-STR unrelated": "4.867132425e-19", "A-STR half-sib": "5.341600882e-18", "A-STR 7 chon": "6.338070731e-19", "A-STR parent-child": "0.0", "A-STR max_relative": "half-sib", "A-STR max_index": "10.9748418881", "A-STR 8 chon": "5.569653545e-19", "A-STR 6 chon": "8.081823415e-19", "Identifier B": "sample1_2", "Identifier A": "sample2_13", "A-STR 5 chon": "1.244302756e-18", "identifier": "1" }, { "A-STR full-sib": "1.095894402e-18", "A-STR first cousin": "2.596247433e-18", "A-STR unrelated": "9.174258268e-19", "A-STR half-sib": "2.345791754e-18", "A-STR 7 chon": "1.12734765e-18", "A-STR parent-child": "0.0", "A-STR max_relative": "first cousin", "A-STR max_index": "2.829926254", "A-STR 8 chon": "1.02041778e-18", "A-STR 6 chon": "1.350437317e-18", "Identifier B": "sample1_18", "Identifier A": "sample2_16", "A-STR 5 chon": "1.812081165e-18", "identifier": "10" }, ... ] }, {"query_first": "sample2_1"}, {"target_first": "sample1_1"}, {"query_type": "range"}, {"query_group": "group2"}, {"relationship_type": "kinship"}, { "astr_option": [ { "partial": false, "min_kinship_index": 1, "af_table": "Korean", "permit_mismatches": 2 } ] }, {"query_second": "sample2_2"}, {"target_count": 12}, {"target_type": "range"}, {"registered_time": "201505081512"}, {"query_count": 12}, {"target_second": "sample1_2"}, { "mtdna_option": [ {} ] }, { "partial": false }, { "ystr_option": [ {} ] }, {"status": "Finished"}, {"target_group": "group1"}, {"progress": 100}, {"identifier": "20150513-3"} ], "totalPageCount": 0, "message": "Fetching task identifier 20150513-3", "totalCount": 0, "itemCount": 21 } ]
Parameters: - task_id (string) – 작업 고유번호
4.5.3. 작업 삭제¶
-
DELETE
/kind/task/{task_id}/
¶ 요청 예:
DELETE /kind/task/20150513-1/ Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "apiVersion": "0.1", "status": "Success", "itemCount": 0, "message": "Deleted tasks 20150513-1", "items": [], "totalCount": 0, "totalPageCount": 0 } ]
Parameters: - task_id (string) – 작업 고유번호
4.6. 혈연관계 검사 · 검색¶
URL | METHOD | 기능 |
---|---|---|
/kind/check-between/ | GET | 혈연관계 검사 (check-between) |
/kind/search/ | GET | 혈연관계 검색 (search) |
/kind/search-multiple/ | GET | 다중비교검색 (search-multiple) |
4.6.1. 혈연관계 검사 (check-between)¶
두 쿼리를 비교한다.
-
GET
/kind/check-between/
¶ 요청 예:
GET /kind/check-between/?relationship=kinship&identifier-a=sample1_18&identifier-b=sample2_19&af-table=Korean&check-astr=true&check-ystr=true&check-mtdna=true Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "message": "Search", "itemCount": 1895, "apiVersion": "0.1", "status": "Success", "totalCount": 0, "totalPageCount": 0 "items": [ {"astr_result": [{"8 chon": "0.19456421952030534", "sample1_18": "9,11", "sample2_19": "11,12", "7 chon": "0.19473499689167112", "identifier": "CSF1PO", "parent-child": "0.2053231939163498", "first cousin": "0.1971258800907921", "6 chon": "0.19507655163440268", "half-sib": "0.19985831803264467", "5 chon": "0.19575966111986584", "full-sib": "0.15125995749540977", "unrelated": "0.19439344214893955"}, ...}]}, {"ordered_astr_result": [{"half-sib": "0.19985831803264467", "sample1_18": "9,11", "full-sib": "0.15125995749540977", "sample2_19": "11,12", "5 chon": "0.19575966111986584", "identifier": "CSF1PO", "parent-child": "0.2053231939163498", "first cousin": "0.1971258800907921", "unrelated": "0.19439344214893955", "6 chon": "0.19507655163440268"}, ..]}, {"ordered_relationship": ["unrelated", "6 chon", "5 chon", "first cousin", "half-sib", "full-sib", "parent-child"]}, {"astr_result_summary": [{"Unrelated": "2.0208255512e-39", "Half sibling": "5.48014764655e-41", "First cousin": "7.88436124393e-40", "5 chon": "1.51390029785e-39", "identifier": "total", "Full sibling": "4.39366541106e-45", "Parent child": "0.0", "6 chon": "1.82821576547e-39"}, ...]}, {"report": [{"astr_option": {"permit_mismatches": 2.0, "af_table": "Korean", "min_kinship_index": 1.0, "partial": true}, "mtdna_report": {"decision": true, "markers": 10, "matches": 10}, "astr_report": {"index": 1.0, "relation": "unrelated", "markers": 24, "decision": true}, "total_option": {"type": "kinship", "partial": true}, "total_decision": true, "mtdna_option": {"permit_mismatches": 2.0, "exclude_cstretchs": false, "partial": true}}]}, {"sample_b": [{"identifier": "sample2_19", "groups": ["group2"], "A-STR": {"D8S1179": [110, 110], "vWA": [180, 190], "D5S818": [120, 130], "Penta_E": [70, 120], "D1S1656": [110, 160], "D19S433": [140, 160], "CSF1PO": [110, 120], "D10S1248": [130, 140], "Penta_D": [110, 120], "D3S1358": [150, 170], "D21S11": [270, 300], "TH01": [70, 70], "D12S391": [200, 230], "XY": [10, 10], "TPOX": [80, 80], "D16S539": [110, 130], "D2S1338": [170, 240], "D7S820": [70, 110], "D2S441": [100, 113], "D13S317": [90, 120], "D22S1045": [160, 160], "SE33": [190, 242], "FGA": [240, 240], "D18S51": [120, 180]}, "mtDNA": {"_523": "d", "_73": "G", "_16223": "T", "_524": "d", "_250": "C", "_16129": "A", "_204": "C", "_199": "C", "_263": "G", "_315__1": "C"}}]}, ..., ] } ]
Parameters: - relationship (string) – 검색종류,
identity
(동일성),paternity
(친자관계),kinship
(친척관계) 중 하나 - identifier-a (string) – 식별번호 A
- identifier-b (string) – 식별번호 B
- partial (boolean) – 부분검색 여부,
true
,false
중 하나 - check-astr (boolean) – A-STR 검색 여부,
true
,false
중 하나 - astr-partial (boolean) – A-STR 부분검색 여부,
true
,false
중 하나 - astr-permit-mismatches (integer) – A-STR 허용 불일치 수
- af-table (string) – 대립유전자 빈도테이블명
- min-kinship-index (integer) – 최소지수
- check-ystr (boolean) – Y-STR 검색 여부,
true
,false
중 하나 - ystr-partial (boolean) – Y-STR 부 검색 여부,
true
,false
중 하나 - ystr-permit-mismatches (integer) – Y-STR 허용 불일치 수
- check-mtdna (boolean) – mtDNA 검색 여부,
true
,false
중 하나 - mtdna-partial (boolean) – mtDNA 부분검색 여부
- mtdna-permit-mismatches (integer) – mtDAN 허용 불일치 수
- mtdna-exclude-cstretches (boolean) – C-Stretch 영역 제외 여부,
true
,false
중 하나 - dbname (string) – DB 이름 (default: kinmatch)
- relationship (string) – 검색종류,
4.6.2. 혈연관계 검색 (search)¶
하나의 쿼리를 전체 대상에 비교 검색한다.
-
GET
/kind/search/
¶ 요청 예:
GET /kind/search/?relationship=kinship&identifier=sample1_1&target-group=group1&af-table=Korean&astr-partial=true&partial=true&astr-permit-mismatches=2&min-kinship-index=1&check-astr=true&check-ystr=false&check-mtdna=false Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "message": "Search", "itemCount": 1895, "apiVersion": "0.1", "status": "Success", "totalCount": 0, "totalPageCount": 0 "items": [ { "A_STR_5_chon": "4.042263608246954e-17", "A_STR_max_index": "2.394041883324095", "A_STR_parent_child": "0.0", "A_STR_unrelated": "2.350308678202722e-17", "A_STR_max_relative": "half-sib", "A_STR_7_chon": "2.7553162965864753e-17", "A_STR_6_chon": "3.177963251584977e-17", "A_STR_full_sib": "5.4757020996104524e-18", "A_STR_first_cousin": "5.560638542095288e-17", "A_STR_8_chon": "2.5501441009531565e-17", "identifier": "sample1_26", "A_STR_half_sib": "5.626737414357409e-17" }, { "A_STR_5_chon": "1.077891029229294e-22", "A_STR_max_index": "1.7253655399002952", "A_STR_parent_child": "0.0", "A_STR_unrelated": "7.224498660845276e-23", "A_STR_max_relative": "first cousin", "A_STR_7_chon": "8.208849048413434e-23", "A_STR_6_chon": "9.146803147252178e-23", "A_STR_full_sib": "8.924924388681844e-25", "A_STR_first_cousin": "1.246490103247827e-22", "A_STR_8_chon": "7.72078423948879e-23", "identifier": "sample1_8", "A_STR_half_sib": "8.264563389805676e-23" }, { "A_STR_5_chon": "1.25212566804955e-18", "A_STR_max_index": "1.5777924950886355", "A_STR_parent_child": "0.0", "A_STR_unrelated": "9.3592557798722e-19", "A_STR_max_relative": "first cousin", "A_STR_7_chon": "1.0184717074300296e-18", "A_STR_6_chon": "1.0996058273578237e-18", "A_STR_full_sib": "2.4753812977946185e-20", "A_STR_first_cousin": "1.4766963529097292e-18", "A_STR_8_chon": "9.772938984300684e-19", "identifier": "sample1_20", "A_STR_half_sib": "1.3239600790934623e-18" }, { "A_STR_5_chon": "1.875945909646489e-18", "A_STR_max_index": "1.0942322270840026", "A_STR_parent_child": "0.0", "A_STR_unrelated": "1.7143946807759988e-18", "A_STR_max_relative": "5 chon", "A_STR_7_chon": "1.788164701088569e-18", "A_STR_6_chon": "1.8406098756693786e-18", "A_STR_full_sib": "1.2878471756130789e-20", "A_STR_first_cousin": "1.6688515934362103e-18", "A_STR_8_chon": "1.7538222485219938e-18", "identifier": "sample1_16", "A_STR_half_sib": "6.4669052465298e-19" }, { "A_STR_5_chon": "7.179487685409528e-20", "A_STR_max_index": "1.0729053954119108", "A_STR_parent_child": "0.0", "A_STR_unrelated": "6.691631635101596e-20", "A_STR_max_relative": "5 chon", "A_STR_7_chon": "6.914918598455149e-20", "A_STR_6_chon": "7.072915417137844e-20", "A_STR_full_sib": "3.723627576951575e-22", "A_STR_first_cousin": "6.547350630408839e-20", "A_STR_8_chon": "6.811146259812972e-20", "identifier": "sample1_7", "A_STR_half_sib": "3.076171981607111e-20" }, ... ] } ]
Parameters: - identifier (string) – 검색할 쿼리 고유번호
- relationship (string) – 검색종류,
identity
(동일성),paternity
(친자관계),kinship
(친척관계) 중 하나 - target-group (string) – 검색 대상그룹,
group1
,group2
,anonymous-staff
중 하나 - partial (boolean) – 부분검색 여부,
true
,false
중 하나 - check-astr (boolean) – A-STR로 검색 여부,
true
,false
중 하나 - astr-partial (boolean) – A-STR로 부분검색 여부,
true
,false
중 하나 - astr-permit-mistmatches (integer) – A-STR 허용 불일치 수
- af-table (string) – 대립유전자 빈도 테이블명
- min-kinship-index (integer) – 최소지수
- check-ystr (boolean) – Y-STR로 검색 여부,
true
,false
중 하나 - ystr-partial (boolean) – Y-STR로 부분검색 여부,
true
,false
중 하나 - ystr-permit-mistmatches (integer) – Y-STR 허용 불일치 수
- check-mtdna (boolean) – mtDNA로 검색 여부,
true
,false
중 하나 - mtdna-partial (boolean) – mtDAN로 부분검색 여부,
true
,false
중 하나 - mtdna-permit-mismatches (integer) – mtDNA 허용 불일치 수
- mtdna-exclude-cstretches (boolean) – C-Stretch 영역제외 여부,
true
,false
중 하나 - dbname (string) – DB 명 (default: kinmatch)
4.6.3. 다중비교검색 (search-multiple)¶
특정 특정 두 그룹의 대상 전체를 비교한다. 검색 결과는 반환된 task_id (‘GET /kind/task/{task_id}/’)를 통해 확인 할 수 있다.
-
GET
/kind/search-multiple/
¶ 요청 예:
GET /kind/search-multiple/?relationship=kinship&af-table=Korean&partial=false&target-group=group1&check-astr=true&astr-partial=false&check-ystr=false&ystr-partial=false&check-mtdna=false&mtdna-partial=false&mtdna-exclude-cstretches=false&query-group=group2&query-first=sample2_1&query-second=sample2_2&target-first=sample1_1&target-second=sample1_2&query-type=range&target-type=range Host: 0.0.0.127:8000 Accept: application/json
응답 예:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json [ { "apiVersion": "0.1", "status": "Success", "itemCount": 1, "message": "Search", "items": [ {"taskId": "20150513-1"} ], "totalCount": 0, "totalPageCount": 0 } ]
Parameters: - identifier (string) – 식별번호
- query_group (string) – 질의그룹 조건,
group1
,group2
,anonymous-staff
중 하나 - query_type (string) – 질의 타입 조건,
all
,range
,keyword
,manual
중 하나 - query_first (string) – 질의그룹 검색조건 1
- query_second (string) – 질의그룹 검색조건 2
- target_group (string) – 대상 그룹 조건,
group1
,group2
,anonymous-staff
중 하나 - target_type (string) – 대상타입 조건,
all
,range
,keyword
,manual
중 하나 - target_first (string) – 대상타입 검색조건 1
- target_second (string) – 대상타입 검색조건 2
- relationship (string) – 검색종류,
identity
(동일성),paternity
(친자관계),kinship
(친척관계) 중 하나 - partial (boolean) – 부분 검색 여부,
true
,false
중 하나 - check-astr (string) – A-STR 검색 여부,
true
,false
중 하나 - astr-partial (string) – A-STR 부분 검색 여부,
true
,false
중 하나 - astr-permit-mismatches (string) – A-STR 불일치 허용 개수
- af-table (string) – 대립유전자 빈도 테이블 명
- min-kinship-index (string) – 최소지수
- check-ystr (boolean) – Y-STR 검색 여부,
true
,false
중 하나 - ystr-partial (boolean) – Y-STR 부분 검색 여부,
true
,false
중 하나 - ystr-permit-mismatches (string) – Y-STR 불일치 허용 개수
- check-mtdna (boolean) – mtDNA 검색 여부,
true
,false
중 하나 - mtdna-partial (boolean) – mtDAN 부분 검색 여부,
true
,false
중 하나 - mtdna-permit-mismatches (string) – mtDNA 불일치 허용 개수
- mtdna-exclude-cstretches (boolean) – C-Stretch 영역 제외 여부,
true
,false
중 하나 - dbname (string) – DB 명 (default: kinmatch)