4. KinMatch REST API

KinMatch REST API는 KinMatch의 기능을 RESTful API 형태로 제공한다. 다음과 같이 대립유전자 빈도정보, 유전자형정보 등의 (1)자원관리 와 혈연관계 검사와 검색을 포함한 (2)분석기능 을 제공한다.

자원관리 분석기능
  1. 대립유전자빈도정보
  2. 유전자형정보
  3. 작업정보
  4. 그룹정보
  1. 혈연관계검사
  2. 혈연관계검색
  3. 다중비교 검색

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) – 입력파일명

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) – 입력파일명

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 중 하나

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)

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)

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)