Blair  - Soul Eater KNU COMPASS 플랫폼 기반 의생명 데이터 분석 해커톤 후기

• program/COMPASS 의생명 데이터 분석 해커톤

KNU COMPASS 플랫폼 기반 의생명 데이터 분석 해커톤 후기

oujin 2024. 1. 12. 11:49
728x90

평소 의생명 및 바이오 데이터를 다루어 보고 싶다는 생각을 하고 있었다.

하지만 다른 데이터와는 달리 환자의 건강과 관련된 데이터는

제약이 많이 되어있고 접할 수 있는 기회도 많이 없어서 아쉬웠다.

그동안 내가 다루어 본 데이터는 케글의 신부전데이터와 같이

인터넷상에서 쉽게 접할 수 있는 데이터였다.

 

하지만 콤파스 플랫폼을 이용한 의생명 데이터 분석 경진대회를 통해

COPD(만성 폐쇄성 폐질환)

CRC(대장암)

MI(심근경색)

Breast Cancer(유방암)

AML(급성 골수성 백혈병)

데이터를 다루어 볼 수 있었고

컬럼이 매우 다양해서 데이터를 살펴보는데에만 시간이 많이 걸릴정도로

다양한 정보가 담겨져 있는 데이터였다.

또한 의생명 데이터이다보니까 모르는 의학용어가 많이나와서

하나하나 검색하며 이해하다보니 데이터를 파악하는데 더 오랜 시간이 걸린것 같기도 하다.

 

물론 실제 환자의 실제데이터가 아니라

가공된 합성데이터 이지만

의생명 데이터를 전문으로 분석하기 위한 플랫폼 개발사에서 제공한 데이터인 만큼

가공데이터라 하더라도 전문성이 높아 재미있었다.

 

데이터 구조 ▼

더보기
  • Measurement(측정)
  • 검사실 테스트(laboratory tests), 활력 징후(vital signs), 병리학 보고서(pathology reports)와 같은 표준화된 검사 또는 환자와 환자의 샘플 테스트를 통해 얻은 측정 기록들이 저장된 테이블입니다. Measurement 테이블에 포함된 데이터는 양적 또는 질적결과를 생성하기 위해 표준화된 검사 등이 필요하다는 점에서 관측 테이블에 포함 되는 데이터들과 차이를 두며, 체질량지수(BMI), 1초당강제날숨량(FEV1) 등의 기록을 포함합니다.
  • Observation(관찰)
  • 검사 기록(examination), 질문지 응답 또는 procedure에 같은 임상 데이터들의 관찰값이 기록된 테이블입니다. 사회적 상황, 생활방식, 의료 기록, 가족력 등 다른 영역에서 나타낼 수 없는 모든 기록들이 저장되며, 흡연력, 음주력, 유전적 변이 정보(rs22866351, rs141553824 등)의 경우 각각의 concept_id가 배정되어 포함됩니다.
  • Condition_occurrence(진단)
  • 의료진 또는 환자로부터 보고된 진단, 징후 또는 증상으로 명시된 질병이나 의학적 컨디션 기록들이 포함된 테이블입니다. 고혈압, 당뇨, 뇌졸중 등 다양한 과거병력 정보를 포함합니다.
  • Death(사망)
  • 환자의 사망에 관련해 사망 원인과 시기에 대한 임상 이벤트 기록들이 저장된 테이블 입니다. 사망 날짜와 시간, 사망 원인 등의 정보를 포함합니다.
  • Drug_exposure(약물)
  • 환자가 섭취하거나 환자의 체내에 유입된 약물에 대한 노출 기록들이 저장된 테이블입니다. 아스피린, 클로피도그렐, 스테로이드, 항우울증약, 비스테로이드성 진통소염제 등의 약물 이름, 복용 기간, 중단 이유 등의 정보를 포함합니다.
  • Procedure_occurrence(치료)
  • 진단 또는 치료 목적을 가진 환자에 대해 health provider가 수행한 activity 또는 process에 대한 기록들이 저장된 테이블입니다. 치료 날짜 및 시간 등의 기록을 포함합니다.
  • Concept(개념)Concept은 도메인(증상(condition), 약물(drug), 치료(procedure))부터 코드의 사용과 관련 설명의 임상정보를 나타내는 vocabulary에서 파생됩니다. 일부 concept은 standard concept으로 지정됩니다. 즉, 이러한 concept들은 OMOP CDM과 표준화된 분석에서 임상 개체의 규범적 표현으로 사용될 수 있습니다.
  • Standardized vocabulary에 포함된 기록들은 국내 또는 국제 vocabulary에서 파생됩니다. 예시로 SNOMED-CT, RxNorm, LOINC 또는 다양한 측면의 관찰 데이터 분석을 정의하기 위한 custom concept 등이 있습니다.
  • OMOP concept으로 변환된 모든 데이터의 관련 정보를 포함하는 테이블입니다. Standardized Vocabularies는 모든 도메인테이블에서 임상정보를 표현하는데 사용되는 각 기본 단위의 의미에 대한 기록 또는 concept의 고유 식별 ID를 포함합니다.
  • Visit_occurrence(방문)
  • 환자가 의료 시스템에 속해 있는 동안 발생한 이벤트들을 포함하는 테이블입니다. 기록들은 종종 ‘Encounters’로 표현되기도 하며, Visit은 방문이 발생한 상황의 configuration 에 의해 정의됩니다.
  • Visit_detail(방문 세부)
  • Visit_detail 테이블은 상위 Visit_occurrence 테이블의 각 레코드에 대한 세부 정보를 나타내는 데 사용되는 선택적 테이블입니다. 예시로는 입원 기간 동안 병실 이동, 또는 보험 청구와 관련된 정보 등이 있습니다. Visit_occurrence 테이블의 모든 기록에 대해 Visit_detail 테이블은 0개 이상 존재할 수 있습니다. (1:n 관계, n은 0일 수 있음) Visit_detail 테이블은 구조적으로 Visit_occurrence 테이블과 매우 유사하며 Visit 도메인에 속합니다.

 

COMPASS 사용자 가이드북

https://cipherome.notion.site/COMPASS-db3bb2b52443400bb669f8c352c1a5b6#dd8ac99d46b1487cb7eb4aa31aa81946

 

COMPASS 사용자 가이드북 | Notion

Built with Notion, the all-in-one connected workspace with publishing capabilities.

cipherome.notion.site

 

COMPASS Research Hub

https://knu.compass.cipherome.com/

 

Compass Research Hub

Compass Research Hub

knu.compass.cipherome.com

 


 

코호트 선택 ▼

더보기
  • Cohort - 코호트
    • 코호트는 일정 기간 동안 하나 이상의 포함 기준을 충족하는 사람들의 집합입니다.
  • Cohort selection - 코호트 선택
    • 특정 특성을 가진 환자 그룹을 정의하거나 주어진 데이터셋 내에서 특정 기준을 충족하는 과정을 말합니다. Compass에서는 선택할 수 있는 코호트의 제한이 없습니다. 따라서 한 두개가 아닌, 여러 개의 다중 코호트를 선택할 수 있습니다. 이러한 유연성을 통해 다양하게 정의된 코호트를 선택하고, 이중 연구에 대해서 가장 적절하고 이상적인 정의를 탐색해볼 수 있습니다.
  • Inclusion criteria - 포함 기준
    • 연구자는 환자가 코호트에 포함되기 위해 충족해야 하는 기준을 지정합니다.예를 들어 특정 진단 코드, 연령 범위 또는 약물 노출이 있는 환자를 선택합니다.
  • Exclusion criteria - 제외 기준
    • 또한 연구자는 특정 조건 또는 특성에 따라 특정 환자를 코호트에서 제외하는 기준을 정의할 수 있습니다.
  • Applying temporal constraints - 시간 제약 조건 적용
    • 연구자는 특정 시간 범위 내에서 환자를 선택하거나 사건의 순서를 고려하는 것과 같은 시간 관련 제약 조건을 지정하여 코호트 선택을 더욱 세분화할 수 있습니다.
  • Reviewing cohort statistics - 코호트 통계 검토
    • 코호트 기준이 정의되면 Compass는 선택된 코호트의 요약 통계와 인구 통계를 제공하여, 사용자가 코호트의 크기와 특성을 평가할 수 있도록 합니다.
  • Index event date: 환자가 특정한 임상 사건을 경험하는 날짜입니다. 관찰적 의학연구에서 중요한 개념으로 임상 사건과의 시간적 관계를 확립하고 연구 대상 집단을 정의하는데 사용됩니다. 해당 용어에 대해서는 STEP 02 Index Event Date 설정 부분에서 자세하게 다룹니다.

 

Index event date와 Observation period (관찰 기간)의 차이 ▼

더보기
  • Index event date: 환자가 주요 특정 임상 이벤트를 경험하는 날짜.예를 들어 '환자의 만성 폐쇄성 폐질환 진단 날짜', 혹은 '클로피도그렐 복용 시작 날짜' 등으로 지정할 수 있습니다.
  • Observation period (관찰 기간): 최종 데이터의 경우 관찰하고자 하는 기간을 정하는 것은 여러 환자 또는 코호트 간의 분석 및 비교에서 일관성과 정확성을 유지하는 데 도움이 됩니다. 관찰 기간 선택에 index event date을 통합하여 관찰하고자 하는 사건을 중심으로 특정 시간대에 초점을 맞춘 코호트를 생성할 수 있습니다.예를 들어 'index event date 전 365일부터 index event date 이후 365일까지' 라는 관찰 기간을 설정하여 코호트를 보다 구체적으로 세분화할 수 있습니다.

대회 주제 및 진행  ▼

1. 연구주제는 자유

2. compass 플랫폼을 사용해 해당 5개 데이터를 이용하여 분석을 진행하고 분석포스터와 PPT 제출

3. 연구보고서 기반 발표

4. 1박2일내 가능한 연구 과제로 진행

5. 헬스케어 중심으로 분석을 진행 할 것

6. 재생산가능한 분석으로 진행

7. 영어로 발표하면 가산점

8. 포스터: 연구주제, 목적, 배경,조사방법,결과 작성

 

후보주제 ▼

1. 만성 폐쇄성질환에 가장 주요한 영향을 미치는 피처 찾기

2. 백혈병 환자의 초기,중기,말기별 증상 예방 및 처방

3. 백혈병 치료로 최근 주목받고 있는 중핮효소연쇄반응, 형광제자리부합법등을 추천할만한 근거 찾기

4. 심근경색 데이터로 전조증상 파악 및 예측하는 모델 개발 *

-전조증상파악 :필요한 데이터 컬럼: 진단, 나이, 흡연여부

-예후대비 :이미 심근경색 진단을 받은 사람이므로 필요한 약물 투여, 관찰등의 정보 필요

                     필요한 데이터 컬럼: 약물, 생활습관, bmi,혈압, 혈당등

-예측 모델 생성: 주요 feature추출하여 모델 생성후 , 신규 데이터 적용시 심근경색 여부 판단 가능


분석 포스터 ▼

 

 

데이터셋에 입력한 컬럼 ▼

더보기

약물

hydrochlorothiazide: 고혈압, 부종을 치료하기 위해 주로 사용되는 이뇨제 약물

  • hydrochlorothiazide_lisinopril
  • hydrochlorothiazide_valsartan
  • hydrochlorothiazide_losartan
  • bisoprolol fumarate_hydrochlorothiazide

metoprolol succinate : 심부전

metoprolol tartrate : 고혈압

rosuvastatin calcium : 고지혈증

Amlodipine: 칼슘채널 차단제

benazepril: 혈관을 수축하는 물질의 생성을 저해하여 혈관을 확장시켜 혈압강하작용, 심부전 증상 개선

Enalapril: 고혈압, 당뇨병성 신장 질환, 심부전 치료에 사용되는 약물

ramipril: 1989년 고혈압에 적응증을 획득한 것을 시초로, 1993년 심근경색 후 심부전, 1999년 당뇨병성 신증으로 적응증을 확대하였으며, 2000년에는 고위험군 환자의 사망 위험 또는 혈관재생술의 필요성 감소를 위해 처방할 수 있는 약물

Valsartan: 고혈압과 심부전 치료에 사용되는 약물

Losartan: 고혈압과 고혈압이 있는 제2형 당뇨병* 환자의 신장병을 치료하는 약물

Nitroglycerin: 협심증성 흉통을 완화하는 데 사용되는 혈관 확장제


사망

Acute non-ST segment elevation myocardial infraction

Acute ST segment elevation myocardial infraction

Chronic congestive heart failure

Ischemic heart disease


Procedure

echocardiography: 심장 초음파 검사

Transesophageal echocardiography: 식도 경유 심장 초음파

Transthoracic echocardiography: 경흉부 심초음파는 가장 일반적인 유형의 심초음파

CABG: 관상동맥 우회술

12 lead ECG

oxtgen administration

opening of chest

PCI

 

결과 ▼

더보기

심근경색으로 인한 합병증 예측 후, 예측에 사용한 데이터셋의 정보를 기반으로 심근경색을 예방하기 위한 바탕을 마련하기 위한 설계 구상 후 진행했다.

모델 훈련에는 feature 선정이 중요하다. 따라서 feature가 될만한 컬럼을 진단명, 투여 약물, 생활 습관 등을 고려하여 선정했다. 진단명은 허혈성 심질환(Ischemic heart disease), 심부전(Heart failure) 등과 당뇨병(Diabetes)의 9가지를 하나의 컬럼으로 추가했다. 투여 약물로는 고혈압, 부종을 치료하기 위해 주로 사용되는 이뇨제 약물인 hydrochlorothiazide, 고지혈증 치료제인 rosuvastatin calcium, 혈관을 수축하는 물질의 생성을 저해하여 혈관을 확장시켜 혈압강하작용, 심부전 증상 개선하는 benazepril 등이 있다. 생활 습관으로는 알코올 섭취 빈도, 흡연 여부, 고용 여부 등을 포함시켰다.

데이터 수가 적고 심근경색의 합병증 예측 특성 상 데이터셋의 컬럼이 서로 연관성이 깊었기에 과적합을 방지하여 데이터의 불균형 데이터를 다루는 샘플링 방법인 Feature balancing method와 모델에서 주요 feature 수를 지정하는 Feature selection method를 생략 후 훈련했다.

모델로는 XGBoost, Lasso, Random Forest, SVM을 사용했으며, 모델의 하이퍼파라미터는 기본값으로 둔 채 훈련 진행했다.

첫 번째로 XGBoost(Extreme Gradient Boosting)는 트리 기반의 앙상블 학습 모델로, Gradient Boosting 알고리즘을 기반으로 작동한다. 과적합 방지, 높은 예측 성능, 빠른 속도 등의 장점을 지녔다.

두 번째로 Lasso는 선형 회귀 모델에서 L1 정규화를 사용하는 모델이다. 특성이 많은 데이터셋에서 유용하며, 불필요한 특성을 제거하여 모델의 해석이 용이하게 사용할 수 있다.

세 번째로 Random Forest는 여러 의사결정 트리(Decision Trees)를 앙상블한 모델이다. 과적합에 강하고, 다양한 특성들의 중요도를 측정할 수 있다.XGBoost와 성능을 비교하기 위해 이번 실험에 사용했다.

마지막으로 SVM은 류 및 회귀 문제에 사용되는 강력한 지도학습 모델이다. RBF(Radial Basis Function)을 커널로 설정한 모델을 사용했다. 복잡한 비선형 데이터를 처리하는 데에 효과적이다.

하이퍼파라미터는 전부 기본값인 채로 진행했다. XGBoost에서 분류성능 지표(Evaluation Metric)는 aucpr을 사용하고, random State는 42, 목표(Objective)는 이진분류이고 라벨 인코딩은 사용하지 않는다.

Lasso에서는 최대 반복(Maximum Iteration)이 100번이고, 클래스 가중치(Class Weight)는 balanced로, 자동으로 각 가중치를 계산하도록 설정한다.

Random Forest에서 클래스 가중치(Class Weight)는 balanced이고, 결정트리의 수(Number of Estimators)는 100개이다.

SVM에서 클래스 가중치(Class Weight)는 balanced이고, 커널은 RBF이다.

XGBoost의 ROCAUC는 1이라는 결과이며, 이는 과적합(Over fitting)되었음을 의미한다. 혼돈 매트릭스(ConfusionMatrix)에서 모델의 정확도(Accuracy)는 1이다.

SVM의 ROCAUC의 정확도는 0.84이며 정확도는 0.95이다.

Lasso와 Random Forest는 XGBoost와 결과가 동일하다.

 

결론 ▼

더보기

본 분석은 심근경색 (MI) 데이터를 통해 심근경색 환자의 합병증의 예측 및 효과적으로 예방 하는 방법을 얻고자 하였다.

이를 통해 심근경색을 앓고 있는 환자의 다양한 특징 데이터에따라 여러 특징들이 심부전(Heart Failure), 허혈성 심장 질환(Ischemic Heart Disease,IHD) 합병증에 영향을 미침을 알 수 있었고 이를 통해 합병증 예측을 머신러닝 모델을 통해 볼 수 있었다. 이러한 의료 데이터 분석 및 활용을 통해 환자의 삶의 질 향상을 기대할 수 있다.


소감:

합성데이터라 하더라도 다양한 특성과 값들이 있는 의생명 데이터를 살펴보니

일단 데이터를 파악하고 다양한 값들 중에서 나에게 필요한 값이 무엇이고, 분석에 필요한 컬럼이 무엇인지

알아보는 것 자체가 어렵다는 생각이 들었다.

 

이 데이터를 분석하기 위해서 의학적 지식이 바탕이 되어야 더 잘 분석할 수있음을 다시 한 번 깨달았다.

 

하지만 모델 훈련을 위해 해당 데이터에서 원하는 컬럼을 추출하여 데이터셋을 만들고

효과적인 예측을 위해 모델을 공부하여 선정하고

결과를 분석하는 과정이 즐거웠다.

 

비록 과적합이 나오긴 했지만

왜 과적합이 나왔는지, 과적합을 탈출하기 위해서는 어떠한 추가 작업을 거쳐야 하는지

모델에서 조정해야 하는 하이퍼 파라미터 값에는 뭐가 있는지 등을 생각해보며

머신러닝과 조금 더 친해질 수 있었던 시간이었다고 생각한다.

 

또한 바이오 데이터란 이런것이구나 라는 전체적인 이해도 할 수 있었으며

한 환자의 질병에 관해서 기록을 할때 직업, 흡연유무, 음주 습관, 성별, 인종, 유전자, 과거 진단기록등 다양한 정보를

수집하여 기록을 하고, 이러한 것들중에서 서로 유기적으로 영향을 미치며

질병 분석을 더 잘 할 수 있게끔하는 지표가 된다는 점도 배울 수 있었다.

 

그리고 같은 데이터를 가지고 다른 팀들은 어떤 주제를 설정하고 , 어떤 가설을 설정했는지

포스터도 보고 설명과 발표를 들어 볼 수있었는데,

같은 데이터로도 이러한 분석을 할 수있구나 라는 생각을 했다.

 

728x90