이 문서는 Herbomics API를 사용하여 외부 애플리케이션을 개발하는 방법을 안내합니다.
/api/유전자 세트 풍부화 분석을 수행하는 API입니다.
/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
}
/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
}'
/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"
]
}
한약재와 질병 간의 상관관계를 분석하는 API입니다.
/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
}
/api/msi/herbs
사용 가능한 한약재 목록을 반환합니다.
curl -X GET "/api/msi/herbs?limit=349"
/api/msi/diseases
사용 가능한 질병 목록을 반환합니다.
curl -X GET "/api/msi/diseases?limit=840"
/api/msi/correlation
특정 한약재와 질병 간의 상관관계를 조회합니다.
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
| herb_name | string | 필수 | 한약재명 (한글 또는 영문) |
| disease_name | string | 필수 | 질병명 |
curl -X GET "/api/msi/correlation?herb_name=인삼&disease_name=diabetes"
/api/msi/top-correlations
상관관계 값이 높은 한약재-질병 조합을 반환합니다.
curl -X GET "/api/msi/top-correlations?limit=100"
/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 | 서버 내부 오류 | 잠시 후 다시 시도하거나 관리자에게 문의하세요 |