Herbomics API 개발가이드

이 문서는 Herbomics API를 사용하여 외부 애플리케이션을 개발하는 방법을 안내합니다.

기술적 요구사항

  • • REST API 호출을 지원하는 HTTP 클라이언트
  • • JSON 형식의 데이터 처리 능력
  • • 기본 Base URL: /api/

GSEA (Gene Set Enrichment Analysis) API

유전자 세트 풍부화 분석을 수행하는 API입니다.

1. Enrichr Analysis

POST /api/gsea/enrichr

Enrichr 데이터베이스를 이용한 유전자 세트 풍부화 분석을 수행합니다.

요청 파라미터

파라미터 타입 필수 설명
gene_list Array<string> 필수 분석할 유전자 심볼 목록
gene_sets Array<string> 선택 사용할 유전자 세트 (기본값: GO_Biological_Process_2023, KEGG_2021_Human)
organism string 선택 생물종 (Human, Mouse, Fly) 기본값: Human
cutoff float 선택 p-value 임계값 (기본값: 0.05)

요청 예시

curl -X POST "/api/gsea/enrichr" \
  -H "Content-Type: application/json" \
  -d '{
    "gene_list": ["TP53", "BRCA1", "EGFR", "MYC", "KRAS"],
    "gene_sets": ["GO_Biological_Process_2023", "KEGG_2021_Human"],
    "organism": "Human",
    "cutoff": 0.05
  }'

응답 예시

{
  "results": [
    {
      "term": "regulation of cell cycle",
      "p_value": 0.001,
      "adjusted_p_value": 0.045,
      "odds_ratio": 5.2,
      "combined_score": 45.8,
      "genes": "TP53;BRCA1;MYC",
      "gene_set": "GO_Biological_Process_2023"
    }
  ],
  "total_genes": 5,
  "gene_sets_analyzed": ["GO_Biological_Process_2023", "KEGG_2021_Human"],
  "organism": "Human",
  "cutoff": 0.05
}

2. Pre-ranked GSEA

POST /api/gsea/prerank

순위가 매겨진 유전자 목록을 사용한 GSEA 분석을 수행합니다.

요청 파라미터

파라미터 타입 필수 설명
ranked_genes Object<string, float> 필수 유전자 심볼과 점수의 매핑 (gene: score)
gene_sets Array<string> 선택 사용할 유전자 세트 (기본값: GO_Biological_Process_2023)
organism string 선택 생물종 (기본값: Human)
permutation_num integer 선택 순열 검정 횟수 (기본값: 100)
min_size integer 선택 최소 유전자 세트 크기 (기본값: 15)
max_size integer 선택 최대 유전자 세트 크기 (기본값: 500)

요청 예시

curl -X POST "/api/gsea/prerank" \
  -H "Content-Type: application/json" \
  -d '{
    "ranked_genes": {
      "TP53": 2.5,
      "BRCA1": -1.2,
      "EGFR": 3.1,
      "MYC": 1.8,
      "KRAS": -2.0
    },
    "gene_sets": ["GO_Biological_Process_2023"],
    "organism": "Human",
    "permutation_num": 100,
    "min_size": 15,
    "max_size": 500
  }'

3. 사용 가능한 Gene Sets 조회

GET /api/gsea/gene-sets

분석에 사용할 수 있는 유전자 세트 목록을 반환합니다.

요청 예시

curl -X GET "/api/gsea/gene-sets"

응답 예시

{
  "Human": [
    "GO_Biological_Process_2023",
    "GO_Cellular_Component_2023",
    "GO_Molecular_Function_2023",
    "KEGG_2021_Human",
    "Reactome_2022",
    "WikiPathways_2023_Human",
    "MSigDB_Hallmark_2020",
    "BioPlanet_2019",
    "OMIM_Disease",
    "GWAS_Catalog_2023"
  ],
  "Mouse": [
    "GO_Biological_Process_2023",
    "GO_Cellular_Component_2023",
    "GO_Molecular_Function_2023",
    "KEGG_2021_Mouse",
    "Reactome_2022",
    "WikiPathways_2023_Mouse",
    "MSigDB_Hallmark_2020",
    "MGI_Mammalian_Phenotype_2022"
  ],
  "Fly": [
    "GO_Biological_Process_2023",
    "GO_Cellular_Component_2023",
    "GO_Molecular_Function_2023",
    "KEGG_2021_Fly",
    "Reactome_2022"
  ]
}

MSI (Multiscale Interactome) API

한약재와 질병 간의 상관관계를 분석하는 API입니다.

1. MSI 데이터 검색

GET /api/msi/search

한약재명 또는 질병명으로 MSI 데이터를 검색합니다.

쿼리 파라미터

파라미터 타입 필수 설명
query string 필수 검색할 한약재명 또는 질병명
search_type string 선택 검색 타입 (all, herb, disease) 기본값: all
limit integer 선택 반환할 결과 수 (기본값: 1000)

요청 예시

curl -X GET "/api/msi/search?query=인삼&search_type=herb&limit=100"

응답 예시

{
  "results": [
    {
      "id": 1,
      "drug": "GINSENG",
      "disease": "DIABETES",
      "correlation": 0.85,
      "p_value": 0.001,
      "p_value_fdr_bh": 0.05,
      "disease_name": "Diabetes Mellitus",
      "herb_name": "Ginseng",
      "herb_korean": "인삼",
      "enrichment": 2.3
    }
  ],
  "count": 1
}

2. 한약재 목록 조회

GET /api/msi/herbs

사용 가능한 한약재 목록을 반환합니다.

요청 예시

curl -X GET "/api/msi/herbs?limit=349"

3. 질병 목록 조회

GET /api/msi/diseases

사용 가능한 질병 목록을 반환합니다.

요청 예시

curl -X GET "/api/msi/diseases?limit=840"

4. 특정 한약재-질병 상관관계 조회

GET /api/msi/correlation

특정 한약재와 질병 간의 상관관계를 조회합니다.

쿼리 파라미터

파라미터 타입 필수 설명
herb_name string 필수 한약재명 (한글 또는 영문)
disease_name string 필수 질병명

요청 예시

curl -X GET "/api/msi/correlation?herb_name=인삼&disease_name=diabetes"

5. 높은 상관관계 조회

GET /api/msi/top-correlations

상관관계 값이 높은 한약재-질병 조합을 반환합니다.

요청 예시

curl -X GET "/api/msi/top-correlations?limit=100"

6. MSI 데이터베이스 통계

GET /api/msi/statistics

MSI 데이터베이스의 전체 통계 정보를 반환합니다.

요청 예시

curl -X GET "/api/msi/statistics"

응답 예시

{
  "total_records": 25000,
  "unique_herbs": 349,
  "unique_diseases": 840,
  "correlation_stats": {
    "average": 0.6542,
    "maximum": 0.9856,
    "minimum": 0.1023
  }
}

오류 처리

API 호출 시 발생할 수 있는 오류들과 처리 방법입니다.

HTTP 상태 코드 설명 해결 방법
400 잘못된 요청 (필수 파라미터 누락) 요청 파라미터를 확인하고 필수 필드를 모두 포함시키세요
404 리소스를 찾을 수 없음 API 엔드포인트 URL을 확인하세요
500 서버 내부 오류 잠시 후 다시 시도하거나 관리자에게 문의하세요

추가 리소스

FastAPI 자동 문서

상호 작용 가능한 API 문서로 실시간 테스트가 가능합니다.

Swagger UI 문서 보기 →

ReDoc 문서

깔끔한 형태의 API 참조 문서입니다.

ReDoc 문서 보기 →