'공부하기'에 해당되는 글 43건

  1. 감사하라, 그리하면 정신이 건강해질 것이다.
  2. 생체시계의 기능적 연결성과 섬망환자에서 보여지는 수면각성 장애의 신경 기전에 대한 연구
  3. 패스트캠퍼스 - 유니티5 수강후기
  4. 토폴로지 데이터 분석을 이용한 섬망의 하위그룹 발견 (1)
  5. Topological Data Analysis (토폴로지 데이터 분석 방법) (6)
  6. 뇌영상 데이터 분석 - Create Brain Mask
  7. 뇌영상 데이터 분석 - Matlab Index scheme
  8. intuitive voxel-based lesion symptom mapping (iVLSM) toolbox
  9. 무한도전 - 심장박동으로 식스맨의 기분을 측정하다.
  10. 실리콘 밸리에서도 주목받고 있는 토폴로지 데이터 분석

"감사는 뇌를 건강하게 한다?"

사람들은 인상 생활에서 많은 스트레스를 받는데, 이는 부정적인 자극에 민감하게 반응하게 하는 원인이 된다. 행복하지 않고 스트레스가 많은 삶은 감정조절 능력과 삶의 만족도의 감소와 인지 장애와 관련이 있다. 반면, 삶의 만족도가 높은 사람들은 자기참조처리(Self-Referential Processing)와 관련된 부정적인 자극을 처리할때 뇌의 여러 영역과 더 많은 연결성을 보이는 특징이 있다.


"감사 표현은 긍정적인 사고를 촉진하고 스트레스 수준을 낮춘다."

긍정적인 감정은 내재동기 뿐만이 아니라 자기조절능력과 회복탄력성의 증진과 관련이 있습니다. 특히, '감사 표현'은 긍정적인 사고를 촉진하고 스트레스 수준을 낮추는 것으로 알려져 있습니다. 감사는 우리의 정신 건강과 'mental well-being'의 증진을 위해 중요한 요소이다. 감사는 정신 질환 발병 위험을 낮추고, 또한 삶의 만족도와 지혜를 증진시키는 것과 관련 있다. 더욱 구체적으로 말하자면, '부모에 대한 감사'는 높은 행복감 뿐만이 아니라 회복탄력성과 공격성 감소와도 관련이 있다. 여러 연구에서 살펴본 바와 같이 '부모를 향한 감사 표현'은 우리를 더욱 행복한 삶으로 인도 할 수 있는 강력한 긍정적 경험이지만, 일상에서 실천은 쉽지 않은 일이다.


"Mental training을 통해 뇌의 기능을 변화시킨다."

심리학적 관점에서 감사와 원망을 이해하는데 진전이 있었지만, 두 감정에 대해 중추신경계 및 자율신경계에 미치는 영향에 대한 연구는 많지 않은 편이다. 명상과 관련하여 마음 챙김이나 열정 훈련 등과 관련해서는 몇가지 선행연구가 있다. 우선, 마음챙김 훈련이 기본 신경망의 기능적 연결성의 변화와 관련 있음이 밝혀졌고, 열정 훈련 이후에는 전두엽과 측위 신경핵(Nucleus Accumbens, NA) 영역간의 연결성의 변화가 있음이 밝혀졌다.

다양한 명상 중 감사 명상이 뇌활동에 미치는 영향에 대한 fMRI 연구는 지금까지 두 건 수행되었다. 한 연구에서는 fMRI 과제에서 감사의 정도와 전측대상피질 및 안쪽전두엽 영역의 뇌활성화와 관련이 있는 것으로 밝혀졌다. 또 다른 연구에 의하면 감사 표현은 왼쪽 전두-두정엽 영역과, 전전두엽, 그리고 후두엽의 뇌활성화를 변화시키는 다고 알려져 있다. 

Mental training으로 전두엽, 전측대상피질, 편도체, 측위 신경핵, 그리고 기본신경망의 뇌활동이 변화됨을 고려하여, 우리는 이번 연구에서 이런 영역들의 뇌 기능(가령, 감정 조절, 자기-참고-처리, 보상-동기 처리)도 mental training을 통해서 조절 될 수 있음을 가정했다. 이런 가설을 검증하기 위해, 우리는 정신 건강에 긍정적인 영향을 주는 감사 명상(Gratitude intervention)과 부정적인 영향을 주는 원망 명상(Resentment intervention)을 개발했다. 


"감사 명상은 마음을 건강하게 한다."

명상을 수행하는 동안 뿐만이 아니라 명상 수행 전과 후에도 심박수와 기능자기공명영상(functional MRI, fMRI)를 측정하여 자율신경계와 중추신경계의 변화를 조사했다. 특히, 감사 명상이 부교감신경계를 자극하여 몸의 이완을 유도하고, 원망 명상은 교감신경계를 자극하여 몸의 긴장도를 증가시킬 것이라는 가설을 검증하기 위해 심박동을 측정했다. 감사 명상과 원망명상의 수행 순서는 연구에 참여한 사람에 따라 무작위로 배정했다. 아래 그림은 감사 명상(Gratitude intervention)에 몰입함에 따라서 심박수가 점점 줄어들어 드는 것을 보여주는 그래프이다. 심박수는 자존감이 높은 사람일수록 낮은 경향이 있고, 스트레스를 받거나 불안감이 높은 사람일수록 높다는 여러 선행연구 결과를 우리 연구 결과에 반영한다면, 감사 명상은 정신 건강(mental health)이 증진되는 방향으로 우리의 뇌를 훈련 시킨다고 볼 수 있을 것이다.

"감사는 뇌와 마음에 강한 동조를 일으킨다."

이번 연구의 중요한 발견 중 하나는 명상을 수행하는 중에는 심박과 동조하는 기능적 연결성이다. 심박과 동조하는 기능적 연결성(Temporal synchronization between heart rate and functional connectivity)이란, 명상중에 심장박동이 변화하는 패턴과 기능적 연결성이 변화하는 패턴이 통계적으로 유사함을 의미한다. 특히, 편도체-측두엽 연결성과 편도체-후두엽 연결성은 명상중의 심박과 동일하게 변한다는 것을 발견했다(아래 그림의 왼쪽). 위의 그림에서 명상중에 심박수가 낮아지는 결과를 참고해보자. 낮은 심박수는 심리적으로 안정적인 상태를 의미하고, 편도체는 감정 처리와 관련된 뇌 기능을 담당하고 있음을 고려했을때, 편도체 연결성과 심박의 동조는 감사 명상 중의 감정 조절(emotion regulation)과 깊은 관련이 있다고 할 수 있을 것이다. 편도체의 기능적 연결성과 심박의 동조 현상은 원망 명상을 수행하는 중에는 발견되지 않았다. 

또한, 감사 명상 중의 심박은 측위신경핵-측두엽 연결성(temporostriatal functional connectivity)과 동조현상을 보였다(아래 그림의 오른쪽). 측위 신경핵은 보상회로의 중추적인 역활을 하는 영역이다. 이런 영역이 semantic remembering등의 기능을 담당하는 측두엽과 연결성이 있다는 것은 감사 명상 중에 떠올리는 감사와 관련된 여러가지 의미있는 경험과 기억들이 '지금의 내가 있음에 감사함.' 것과 무관할 수 없으니, 감사함을 생각하는 것 만으로 스스로에게 내적으로 보상이 될 수 있는 것이 아닐까? 그런 측면에서 측위신경핵-측두엽 연결성이 '감사'에 있어서 보상 회로와 관련 있다고 할 수 있지 않을까? (이 부분은 논문에 기술하지는 않았기 때문에 추측형으로...)


"감사하라, 그리하면 정신이 건강해질 것이다."

논문에서는 부모님에 대한 감사 (특히 엄마에 대한 감사) 명상의 효과를 연구한 것이긴 하지만 이를 확장해도 어느정도 정신적 건강에는 도움이 될 것이라고 생각한다. 지금 당신에게 스트레스를 주는 수많은 요인이 존재할 수 있다. 하지만 그 요인 자체만을 파고들어 스스로를 고통스럽게 하지 말고 잠깐의 여백을 주는 것은 어떨까. 당장의 긴밀한 인과관계가 존재하지 않더라도, '감사'의 대상을 떠올리며 나를 괴롭히는 것들로부터 거리를 확보해 보자. 감사 훈련은 감정 조절과 내적 동기를 증진시킬 수 있는 방향으로 뇌의 기능적 연결성을 변화시키기 때문에 장기적으로 훈련을 지속한다면 좀 더 건강한 나의 마음 가꾸기의 계기가 될 수 있을 것이다.


논문 원문 보기

Sunghyon Kyeong et al., Effects of gratitude meditation on neural network functional connectivity and brain-heart coupling, Scientific Reports 7:5058 (2017) link


신고

섬망 중 환자는 증상의 일중 변화를 보입니다.  수면각성 주기의 장애, 낮 시간 중의 졸림, 밤 시간에 잠 들기 어려움 등의 증상은 모두 일중 변화와 관련되어 있다고 할 수 있습니다. 이러한 증상의 일중 변화는 우리 몸(정확하게는 뇌) 안에 있는 생체시계(Circadian Clock)가 섬망 중에 오작동 했을 가능성과 관련 있을 것입니다. 여러 생체시계 중에서 마스터 시계라고 불리는 Suprachiasmatic Nucleus (SCN)은 다른 모든 Peripheral Organs의 생체리듬을 조절하는데 핵심적인 역할을 수행한다고 알려져 있습니다. 따라서 본 연구에서는 섬망 증상의 일중변화가 SCN이 오작동에서 기인했다는 가설을 세우게 되었고, SCN과 다른 뇌의 영역간의 기능적 연결성이 섬망 환자와 비섬망 환자군 간의 신경학적 차이를 연구하게 되었습니다. 

이번 연구에서 발견한 핵심 결과는 섬망 환자의 경우 SCN과 dorsal anterior cingulate 영역간의 기능적 연결성이 증가되어 있다는 것입니다. 반면에, SCN과 기본신경망 영역(left posterior cingulate cortex), parahippocampal gyrus, thalamus, 소뇌의 기능적 연결성은 섬망 환자에서 감소되어 있다는 것입니다. 특히 SCN과 소뇌와의 연결성은 섬망 증상이 심각한 환자에게서 더욱 감소되어 있음을 발견했습니다. 소뇌가 정신활동의 조절과 운영(mental coordination)에 관여하는 중요한 뇌의 영역임을 고려하면, 섬망 중에 SCN과 소뇌와의 연결성 감소는 섬망 환자의 수면각성장애와 증상의 일중변화와 연관되여 있을 것이다.

본 연구 논문의 원문은 다음 링크에서 확인 가능합니다.
(링크: 
http://www.sciencedirect.com/science/article/pii/S0925492716303389)

<Fig. 1 in Psychiatry Research: Neuroimaging 264 (2017) 10-22>



신고

처음 강의에 임할 때는 이번 기회에 게임을 만들어봐야지!’ 라는 마음가짐 보다는 유니티의 다양한 기능들을 잘 활용할 수 있는 수준으로 열심히 배워야지!’ 라는 마음가짐이었습니다. 그런데 강의 둘째주였나? 강사님이 각자 게임 기획을 만들어 공유해 보자고 하셔서, 게임을 만들지 않을 수 없게 되었습니다. (사실 저는 게임을 즐기는 편이 아니어서대체 어떤 게임을 만들어야 하나고민이 컸습니다.) 저도 종종 후배들에게 MATLAB 강의를 해 주곤 하는데, 그럴 때마다 제가 강조하는 것이 숙제였어요. 숙제는 해야하는 사람의 입장에서는 어렵고 하기 싫은 것? 인 경우가 많지만, 내주는 사람의 입장에서는 숙제를 통해서 실력이 늘 수 있음을 확신하기 때문에 숙제를 내주는 거예요. 그래서 유니티를 제대로 배우려면 강사님이 제안해 주시는 개임 제안서 작성부터 개임 개발 개인 프로젝트도 열심히 하기로 결심했답니다.

<나홀로 완성하는 유니티 3D액션 게임> 교재를 통해서 유니티 엔진의 여러가지 특징들을 배울 수가 있었습니다. 캔버스에 UI 게임 오브젝트를 만들어 놓고 닻을 내려서 다양한 종류의 모바일 화면에서도 개발자가 지정한 위치에 UI 오브젝트가 보여지게 설정할 수 있는 것도 신기했습니다. 특히, 유니티의 가장 큰 장점이 질랑이 있는 강체(rigid body)를 쉽게 다룰 수 있도록 물리엔진이 내장되어 있다는 거예요. 게임 오브젝트를 하나 만들어 놓고, ‘gravity’ 옵션만 체크해주면, 중력에 따라 자동으로 땅으로 떨어지니 얼마나 훌륭해요? 다른 개발 툴이었다면, 이런 부분들까지 모두 직접 구현해야 했을 텐데 말이죠.  

패스트캠퍼트 유니티1기 수업에서 제가 만든 게임은 체노바 라는 게임입니다. 게임의 규칙이 체스와 닮았지만 체스와 동일하지는 않고, 게임에서 공격 기능이 있지만, 보통 액션 게임에서의 공격과도 조금 다른 측면이 있습니다. 그래서 게임 이름을 Chess nor battle (Chenoba, 체노바) 라고 지었어요.

(Google Play Store Link: https://play.google.com/store/apps/details?id=com.milkywaymind.chenoba)


체노바는 패이스북 로그인을 통해서 게임 로비화면으로 이동할 수 있습니다. 로비화면에서는 적군의 인공지능 레벨을 선택하고, 게임 보드의 크기를 결정하게 됩니다. 지난 10주동안에는 시간이 부족해서 추가하지 못했지만, 이후에 업데이트에서는 게임 보드 중간 중간에 장애물도 넣고, 아이템 전?에 대한 내용도 추가할 계획입니다. 현재는 적군의 인공지능 레벨과 게임 보드의 크기를 선택하면 게임을 시작할 수 있습니다. 나의 게임 말은 흰색 이고, 적군의 말은 검정색 입니다. 게임이 시작되면, 이동 게이지와 공격 게이지가 시간이 지남에 따라서 채워지게 됩니다. 이동 게이지 및 공격 게이지가 채워지면, 이동 또는 공격을 할 수 있습니다. 게임 말은 체스 규칙에 따라서 이동할 수 있고, 이동할 수 있는 위치에 적군이 있다면 적군을 선택하여 포탄 공격을 할 수도 있습니다.

실제 체스에서는 King’이 죽으면 게임이 종료되지만, 체노바에서는 모든 플레이어가 포탄 공격을 받아 죽으면 게임이 종료됩니다. 체스와 비슷하지만 다른 점이 있다는 것이 체노바의 재미 요소가 아닐까? 생각해 봅니다.

수업 내용이 대부분 좋았지만, 특히나 좋았던 부분은 서버와 연동되는 게임을 만들 수 있다는 거예요. 사실 10주동안 유니티 하나만 배우는 것도 벅차긴 하지만, 서버와 연동이 되지 않는 게임은 그 자체로 완성되었다고 하기 힘들다고 생각합니다. 체노바의 경우에는 게임이 종료 될 때마다 각 게임 결과가 서버에 전송이 되고, 게임에 로그인하게 되면 내가 이긴 횟수와 진 횟수에 대한 정보를 서버에서 받아오게 됩니다.

수동적으로 수업에서 강사님이 가르쳐주는 것만 따라할 요량으로 강의를 들었다면, 지금처럼 성취감이 크지는 않았을 꺼예요. 개인 프로젝트를 통해서 형편없는 게임이지만 직접 만들어 있게 가르쳐 주신 강사님께 감사드립니다. 무에서 유를 창조하여 직접 Google Play Store 올려 놓고, 친구들에게 내가 만든 게임이야. 한번 해봐.” 라고 말할 때의 뿌듯 함이란물론 돌아오는 피드백은 차마 글로 적을 수가 없네요. 

허기져서 코딩할 없을 만큼 당이 떨어졌을 간식을 준비해 주신 김용성 선생님께도 감사드리고, 사비를 털어서 종종 커피와  간식을 제공해 주신 송호연 강사님께도 다시 한번 감사 말씀을 드립니다. 함께 수강했던 여러 수강생 분들과 소셜 활동을 많이 하지 못한 것이 끝내 아쉽습니다. 2 수업 종종 찾아가서 이런 저런 질문 드리고 싶은데괜찮을까요?

신고

'공부하기' 카테고리의 다른 글

패스트캠퍼스 - 유니티5 수강후기  (0) 2017.04.04

최근 미국 식품의약청(FDA)는 Personalized Medicine의 중요성을 강조하고 있는 추세다. 같은 병명의 질병을 가졌다고 할지라도 사람마다 유전적인 특징이 다를 수가 있고, 생물학적으로 약물에 반응하는 정도가 모두 다르기 때문에다. 이에 따라 함께 강조되고 있는 것이 환자들을 아형에 따라 하위그룹으로 나누는 "Phenotypic Subgrouping"이다. 

Subgrouping을 위해 사용할 수 있는 비지도 기계 학습(Unsupervised Machine Learning) 방법은 여러가지가 있을 수 있지만, 질환을 범주화 하기에는 어려움이 있다. 이제 새롭게 등장한 것이 토폴로지 데이터 분석(Topological Data Analysis, TDA)이다. TDA는 일종에 Partial Clustering 방법으로 질병이 Spectrum 형태로 분포하는 경우에, 매우 유용하게 적용할 수 있는 클러스터링 방법이다.

토폴로지 데이터 분석에서 Input Features를 선택하는 방법은 많이 있지만, 이번 연구에서는 로지스틱 회귀분석을 이용해서 수술후 섬망 발생에 영향을 미치는 위험인자를 우선적으로 찾아냈다. 이렇게 찾아낸 위험인자는 노인 인지기능 평가 지수(MMSE), 심경증, 성실성, 수술시 마취의 종류이다. 이 4개의 특징 변수의 Principal Component를 찾아내서, 이를 Mapper의 filter metric으로 사용했다. 아래 그래프에서 노드의 색깔은 filter metric이다. Mapper에 input으로 사용된 distance metric으로는 L2-distance를 사용했고, 클러스터링 알고리즘으로는 single-linkage dendrogram을 적용했다. 

분석 결과로 생성된 Topology of patient-patient networks에 여러 임상 변인들을 mapping해보니, 섬망의 하위 그룹이 2개 정도로 나눠지는 것을 발견했다. 하나의 섬망 그룹은 인지기능 평가지수가 낮으면서 수술시에 부분마취를 했던 환자그룹(G1)이고, 또 다른 섬망 그룹은 인지기능 평가점수는 보통이지만, 신경증 지수가 매우 높고, 성실성 점수가 낮으며 수술시에 전신마취를 했던 환자 그룹(G2)임을 밝혔다.

재미있는 것은 로지스틱 회귀 분석에서는 혈액내 단백질 총량이나 알부민 수치가 섬망의 위험인자가 아닌것으로 나타났지만, 이 두 변인을 Patient-patient network에 Mapping 했더니, 섬망이 발생한 그룹에도 단백질과 알부민 수치가 낮은 것으로 나타났다. 이 두 수치가 환자의 영양상태와 관련 있음 고려했을때, 수술 전에 환자의 영양 상태가 섬망 발생에 영향을 미칠 수 있음을 밝힌 셈이다. 이는 같은 데이터에 로지스텍 회귀분석을 적용했을때는 발견할 수 없던 결과로, TDA 연구의 중요성이 강조되는 부분이다.

본 연구는 2016년 11월에 BMC Psychiatry 학술지에 게제되었다.
저널 바로가기: https://bmcpsychiatry.biomedcentral.com/articles/10.1186/s12888-016-1079-z



신고

토폴로지 데이터 분석은 다양한 분야에서 거대하고 복잡한 데이터로부터 의미있는 정보를 추출하는데 활용된 사례가 많이 있다. 많은 연구자들이 토폴로지 데이터 분석이 어떻게 작동하는지 원리를 알지 못한체 사용하는 사례가 많이 있기 때문에, 이번 포스팅에서는 토폴로지 분석이 왜 데이터 분석에서 효과적인 방법론인지에 대해 설명하고자 한다.

토폴로지 데이터 분석을 둘러싼 한가지 중요한 메세지는 데이터는 모양Shape을 갖고 있고, 그 모양이 우리에게 새로운 통찰을 줄 수 있다는 것이다. 분석을 통해서 완전히 새로운 메세지가 나타났다고 해도, 사실은 우리가 잘 알고 있는 것을 설명하는 것인 경우가 종종 있다.

토폴로지 데이터 분석에 대한 방법을 이야기 하기 전에 몇가지 서로 다른 형태의 데이터 분포에 대해서 이야기 하고자 한다. 위에 제시된 그림 중 제일 왼쪽에 보여지는 데이터는 직선 모양으로 대표될 수 있다. 이러한 데이터는 보통 선형회귀 분석을 통해서 데이터의 기울기를 찾을 수 있다. Fitting을 통해서 1차방정식의 계수를 구한다면, 데이터에 대해서 충분히 이해했다고 할 수 있을것이다. 두번째로 보여지는 데이터는 세개의 덩어리로 나뉘어진 데이터이다. 이러한 데이터는 1차 선형 방적식으로 설명할수는 없고, 최소 3개의 선형 방정식이 있어야 세개의 덩어리를 구분할 수 있을것이다. 두번째 예제에서는 데이터가 세군데의 서로 다른 곳을 중심으로 클러스터를 이루고 있기 때문에 평면에서 세개의 point cloud가 하나의 직선으로 대표될 수 없음을 쉽게 알 수 있다. 이러한 데이터를 보는 순간 사람들을 모양이 없는 데이터로군! 이라고 생각할 수도 있겠지만, 곧이어 '아! 이 데이터는 세개의 클러스터로 나눌 수 있겠군.' 이라고 생각할 것이다.  

세번째로 원형 모양의 데이터 분포를 생각해 보자. 이 데이터는 가운데 구멍이 뚤려 있는 원형 방정식으로 표현하면 가장 적절할 것이다. 직선 방정식으로 원형 모양의 데이터를 설명하고 싶은 사람은 없을 테니까. 마지막으로 데이터가 Y-모양 처럼 생겼다고 가정하면, 어떻게 할것인가? 이러한 데이터는 직선 방정식으로 표현할 수도 없고, 여러개의 덩어리 형태로 표현하기도 어려울 것이다. 그럼 어떻게 Y-모양 데이터를 설명할 수 있을까? 또는 하나의 방법으로 다양한 형태의 모양을 가진 데이터를 표현할 수 있는 방법은 없을까? 토폴로지 데이터 분석 기법에서 그 해답을 찾을 수 있을 것이다.

토폴로지 데이터 분석은 2007년에 스탠포트 대학교의 계산공학을 전공하는 Gurgeet Singh 박사과정 학생과 위상수학을 전공하는 Gunnar Carlsson 교수에 의해서 방법론이 세상에 처음 소개 되었다 (논문: Topological Methods for the Analysis of High Dimensional Data Sets and 3D Object Recognition). 이후 2011년도에는 스탠포드대학의 Monica Nicolau와 Gunnar Carlsson 교수는 토폴로지 데이터 분석 기법을 이용하여 유방암 환자의 Microarray 데이터를 분석했고, 유방암의 subgroups을 찾아내는데 성공했다 (논문: Topology based data analysis identifies a subgroup of breast cancers with a unique mutational profile and excellent survival).

논문이 소개된 년도를 보면 알겠지만, 수학의 토폴로지가 데이터 분석에 활용되기 시작한것이 2010년 쯔음이고, 데이터로부터 가치를 창출하는 것은 학계와 기업에 많은 관심과 수요가 예상되는 부분이다. 토폴로지 데이터 분석은 기계학습 방법론 측면에서 보면 비지도 기계학습 (unsupervised machine learning)에 해당되고, 보다 구체적으로는 "Partial Clustering"이라고 하는게 더욱 정확할 것이다.

토폴로지 데이터 분석은 크게 네 단계로 나눌 수 있다. 첫번째는 필터 함수를 구성하는 것이다. 필터 함수의 역할은 고차원의 데이터의 모양을 가장 잘 표현할 수 있도록 데이터를 Projection하기 위함이라고 할 수 있다. 위의 예제 그림에서는 Y축의 좌표값을 return하도록 필터 함수를 구성하면, Y-모양의 데이터 분포의 토폴로지를 가장 잘 추출할 수 있을 것이다. 두번째는 거리 함수를 정의하는 것이다. 고차원의 데이터가 필터함수를 통해서 하나의 값으로 요약되고 나면, 필터 값을 기준으로 데이터를 구획화 하게 되고, 구획화된 데이터 값들 간의 거리를 계산하게 된다. 거리 함수를 정의하는 방법도 여러가지가 있겠지만, 가장 많이 사용되는 거리함수는 유클리디언 거리 함수 있다. 세번째로 클러스터링 방법이다. 필터값에 따라서 데이터를 구획화 하고, 구획화된 데이터 값들 간에 거리를 구하고 나면, 이후에는 데이터 값들간의 거리를 기준으로 클러스터링을 지행하게 된다. 해당 필터 구간내에 몇개의 데이터들이 서로서로 모여 있는지, 아니면 2~3개의 덩어리로 서로 뭉쳐 있는지 등이 클러스터링을 통해서 계산되게 된다. 마지막으로 데이터를 시각화가 필요하다. 데이터 포인트로부터 결과로 생성된 simplicial complex를 그래프의 형태로 표현하고 나면 위의 그림에서 (C)의 형태가 되는데, 그래프에서 각 노드Node는 Cluster이고, 선Edge는 클러스터간의 교집합이 존재함을 표현한다. 마지막으로 노드의 색은 관심있는 값을 표현하게 되는데, 위의 예제에서는 각 노드 내의 데이터 값이 같는 필터 값의 평균을 표현했다. 

토폴로지 데이터 분석은 다양한 분야의 데이터 분석에서 많이 활용되고 있고, 토폴로지 데이터 분석이 각광받고 있는 이유는 기존의 클러스터링 방법으로는 찾지 못하는 "데이터 내의 특이한 subgroups"을 잘 추출하는데 있다. P.Y. Lum은 미국 NBA 농구선수들의 분당 리바운드, 슈팅, 피스, 파울 등의 수치 값들을 이용해서 토폴로지 데이터 분석을 시행했더니, 기존에 잘 알려진 공격형, 수비형 선수를 구분해 냈을 뿐만이 아니라 All star players들도 하나의 subgroup으로 검출해 냈다. 이는 기존의 고전적 비지도학습 방법으로는 확인할 수 없덨던 결과이다 (논문: Extracting insights from the shape of complex data using topology).

마지막으로 토폴로지 데이터 분석이 뇌영상 데이터 분석에도 적용한 연구도 있다. S. Kyeong은 토폴로지 데이터 분석을 뇌영상 데이터 분석에 적용하여 정상군과 환자군을 구분해 내는데 성공했다. 연구 초기의 목표는 토폴로지 데이터 분석으로 주의력결핍/과잉행동 장애 환자의 아형을 구분해 내는 것 이었는데, 실제 데이터 분석에서는 아형을 구분해 내지는 못했다. 연구 결과는 PLoS One에 게제되었다 (논문: A New Approach to Investigate the Association between Brain Functional Connectivity and Disease Characteristics of Attention-Deficit/Hyperactivity Disorder: Topological Neuroimaging Data Analysis). 본 연구는 뇌영상 데이터를 분석하는데 토폴로지 데이터 분석 기법을 처음으로 제기 했다는데 큰 의미가 있다.

신고

MATLAB을 이용하여 뇌영상 데이터를 분석하다 보면, 뇌영역에 해당되는 부분의 마스크Mask를 만들어야 하는 경우가 있습니다. 이러한 경우에는 뇌영상 데이터 분석 - Matlab Index scheme 강의에서 처럼 MATLAB의 index 기능을 이용하면 회색질, 백색질, 뇌척수액 등에 해당되는 뇌 영역을 indices 값을 얻을 수 있고, 각각의 인덱스 값의 합집합을 이용하면 전체 뇌영역에 해당되는 마스크Mask를 얻을 수 있습니다.

위에 그림은 회색질(Grey Matter, GM), 백질(White Matter, WM), 뇌척수액(Cerebro-spinal Fluid, CSF)의 3차원 공간에서의 확률 분포를 보여주고 있습니다. 각각의 영상은 SPM (Statistical Parametric Mapping)을 설치하면 자동으로 설치되는 영상파일 입니다.

이제 다음의 MATLAB 명령어를 통해서 뇌마스크(Brain Mask)를 만들어 보겠습니다. 다음과 같이 한줄씩 MATLAB 명령창(Command Window)에 입력해 보시면서, 각각의 명령어가 의미하는바가 무엇인지 결과를 확인해 보시면 많은 공부가 될것 같습니다. 

>> % Specify file path >> fn_GM = fullfile(spm('dir'),'tpm', 'grey.nii'); >> fn_WM = fullfile(spm('dir'), 'tpm', 'white.nii'); >> fn_CSF = fullfile(spm('dir'), 'tpm', 'csf.nii'); >> >> % read volume header information >> vo_GM = spm_vol(fn_GM); >> vo_WM = spm_vol(fn_WM); >> vo_CSF = spm_vol(fn_CSF); >> >> % read 3D volume image data >> GM = spm_read_vols(vo_GM); >> WM = spm_read_vols(vo_WM); >> CSF = spm_read_vols(vo_CSF); >> >> % find indices of brain matter mask (idbrainmask) >> idx_gm = find(GM>0.5); % GM mask with Prob(GM>0.5); >> idx_wm = find(WM>0.5); % WM mask with Prob(WM>0.5); >> idx_csf = find(CSF>0.5); % CSF mask with Prob(CSF>0.5); >> >> % Set operation to compute union of two indices >> idbrainmask = union(idx_gm, idx_wm); >> idbrainmask = union(idbrainmask, idx_csf); >> >> % Fill ones for ROI >> IMG = zeros(size(GM)); % create zeros matrix >> IMG(idbrainmask) = 1; >> >> % Write 3D image >> vout = vo_GM; % copy header information >> vout.fname = 'brainmask.nii'; >> spm_write_vol(vout,IMG);

ex1.m

위의 프로그램을 실행하기 위해서는 확률맵(grey.nii, white.nii, csf.nii)이 필요한데, 이 파일들은 위에 설명되어 있듯이 SPM을 설치하고 MATLAB에서 Set Path로 SPM의 경로를 설정해 주어야 접근 가능한 파일들입니다.

신고

매틀랩으로 데이터 분석을 하다보면 find() 명령어를 통해서 특정 index를 찾고, 해당되는 index 값에 대해서만 여러 연산을 수행하는 과정이 필요합니다. 매틀랩에서 행렬을 생성하게 되면 아래의 그림과 같이 Subscript space에서는 A(1,1) 또는 A(1,2) 등의 과정을 통해서 행렬의 각 요소에 있는 값을 얻어올 수 있습니다. 하지만, Subscript space에서 Index space로 변환을 하게 되면 A(1,1)은 A(1)로 접근이 가능하고, A(1,2)는 A(11)을 통해서도 행렬의 값을 얻을 수 있습니다.

가령 아래와 같은 10x20의 행렬 A를 생각해 보겠습니다. 숫자는 행렬의 index를 의미하는 것이고 색깔은 행렬 요소의 값을 의미합니다. 파란색은 0이고 빨간색은 1을 나타냅니다. 이제 Matlab의 find() 명령어를 이용해서 행렬의 값이 1인 요소들의 index 값들을 찾아보도록 하겠습니다.

위의 그림에서 오른쪽에 나와 있듯이 Matlab에서 (>> idx = find(A>0)) 이란 명령어를 통해서 값이 0보다 큰 행렬 요소들이 어느 위치에 있는지 알 수 있습니다. 

신고

About iVLSM

  • iVLSM는 intuitive voxel-based lesion symptom mapping의 약자 입니다.

  • 가장 간단한 방법으로 병변과 증상간의 관계를 연구 할 수 있는 Matlab 기반의 툴박스 입니다.

  • 복셀 기반의 병변을 Overlap하고 병증과의 관계를 연구 할 수 있는 프로그램들을 이미 여러개가 있습니다. 하지만, 기능이 복잡하거나 사용 방법이 사용자에게 친숙하지 않기 때문에 연구하기에 제약도 많이 있습니다.

  • iVLSM toolbox를 구동하기 위해서는 SPM12 툴박스를 미리 다운로드 받고 Matlab에서 Set Path를 설정해야 합니다.

Functionality

  • Overlap of lesions: 개별 데이터에 병변을 ROI로 그렸다면, 해당 ROI들의 overlay map을 생성해 주는 기능을 수행합니다.

  • Lesion-symptom mapping: 각 볼셀별로 병변이 있는 환자들과 병변이 없는 환자들을 나누고, 여러가지 임상 척도가 연구자가 나누어진 그룹 간에 통계적으로 유의미한 차이가 있는지 통계분석을 수행하는 기능을 제공합니다. 제공되는 통계방법으로는 Independent sample t-test와 Mann-Whitney U test가 있습니다. 적절한 통계 방법을 선택해서 연구를 수행하시면 됩니다.

Download

  • 아래의 링크에서 간단한 설문에 응답해 주시면 다운로드 링크를 보실 수 있습니다.

  • 어떤 연구자들이 주로 프로그램을 사용하는지 알기 위한 설문이지, 최대한 성의것 응답해 주시면 추후에 프로그램을 업데이트 하는데 큰 도움이 될것 같습니다.

  • 깃허브Github 다운로드: https://github.com/skyeong/iVLSM

Hands-on Exercise


신고

무한도전이 10주년을 맞이하여 새로운 멤버인 식스맨(여섯번째 멤버)를 뽑는 오디션을 진행하고 있다. 지난주 (2015년 3월 28일) 방송에서는 오디션 과정에서 식스맨 후보들이 "애정어린 쓴소리에 어떻게 반응하는가?" 또는 민감한 질문들을 거짓없이 대답하는지? 판단하기 위한 목적으로 심박수(Heart Rate, HR)를 측정하고 그 수치를 방송 화면에 함께 보여줬다. 

사실 방송에서는 고급 분석을 사용해서 심박수를 분석하지는 않았지만, 심박수가 높아지고 있음으로 악플을 읽고 있는 식스맨 후보의 짜증과 불쾌감을 간접적으로 표현했다는 데 큰 의미가 있는 것 같다. 심장박동은 우리가 스스로 조절할 수 있는 것이 아니고 우리몸의 자율신경계의 길항 작용으로 조절되는 생체반응이다. 따라서 스스로 조절이 불가능한 흥분된 감정 상태가 되면 교감신경이 활발하게 활동하게 되고, 이것이 심장박동을 증가시키는 주요한 요인이다. 하지만, 심장박동이 높아진채로 계속 유지되는 것은 아니고, 자율신경계의 신비로운 길항작용에 의해서 원래의 상태로 돌아오게 된다. 심박수를 시계열 데이터의 형태로 얻으면 다양한 지표를 계산할 수 있고, 여러 지표들을 복합적으로 활용하면 감정 상태를 더욱 잘 예측할 수도 있을 것이다.


ECG 또는 PPG를 이용한 심장박동 측정 

본래 심장 박동은 Electrocardiogram (ECG or EKG from Greek: kardia, meaning heart) 을 통해서 측정해야 가장 정확하지만 최근에는 손가락 끝의 모세혈관 내의 동맥혈량의 변화로 심장박동을 간접적으로 측정할 수 있는 광혈류량량검사Photoplethysmogram (PPG)를 이용한 방법도 있다. 무한도전에서 보여진 심박수 측정 방법은 이 PPG 를 이용한 방법이라 할 수 있겠다. 심박수의 측정 단위는 분당 심박수로 영어로는 beat per minute (BPM)을 사용한다. 단위에서도 알 수 있듯이 본래 심박수는 1분동안 박동횟수를 측정하고 그 횟수를 이야기 하는 것이지만, 의료기기나 웨어러블 장비에서 측정되는 심박수는 연속적으로 측정되는 심장박동 간의 시간 간격 (RR interval)으로 1분 동안 측정되었을때를 가정하여 매 심장박동이 발생할때마다 심박수를 계산해 준다. 가령 아래 그림에서 처럼 첫번째 심장박동과 두번째 심장박동 간의 시간 간격이 845ms라고 하면 이때의 심장 박동은 60/0.845bpm이 된다. 즉, 71bpm 이 된다.

위의 그림과 같이 ECG로 측정되는 심장박동 신호는 아주 강한 peak 값(QRS complex의 R값)을 나타나지만 PPG로 측정되는 펄스 신호에서는 peak 값이 보여지기는 하지만 ECG 처럼 강하지는 않다 (아래 그림 참고). 하지만 ECG의 RR-interval 값과 PPG의 peak to peak interval 값으로 HR을 측정했을때의 상관계수는 거의 0.98 정도 이미 많은 연구에서 증명되었다[1]. 물론 부정맥 등 심장계 질환을 가진 환자의 경우에는 PPG 신호로 HR을 계산 하는 것에는 무리가 있다. 또한 주의해야 하는 것은 ECG는 심박수를 전기적 신호로 측정하는 것이고, PPG는 동맥혈의 변화를 측정하는 것이기 때문에 두개의 신호 간에는 time delay가 발생함을 인지해야 한다. 정확한 timing을 요구하는 연구에서는 PPG로 HR을 측정하는 것이 무리가 있지만, 정상인을 대상으로 한 연구(또는 실험)에서 5분동안 (혹은 그 이상) 연속 측정한 데이터로 심박변이도(Heart Rate Variability, HRV) 등을 측정하는 것에는 큰 무리가 없을 것이다.


PPG의 장점

그렇다면 ECG에 비해 PPG의 장점은 무엇을까? ECG는 왼쪽 가슴에 전극을 부착하여 측정하는 것이 QRS complex를 측정하기에 가장 정확하고, 그 밖에는 양쪽 손목에 +전극와 -전극을 부착하고 발목에 그라운드 전극을 부착하여 측정하는 것(또는 양쪽 발목에 전극을 부착하고 가슴이나 손목에 그라운드 전극을 부착하여 측정하는 것)도 가능하다. 이처럼 ECG는 몸에 전극을 부착해서 신호를 측정하기 때문에 (전극 부착으로 통증이 있는 것은 아니지만) 불편하기도 하고, 측정중에 발생하는 몸의 움직임이 곧 잡음으로 측정될 수 있다. (전류가 흐르는 전선이 움직이게 되면 전자기장이 발생하기 때문에 신호에 교란을 일으키게 된다.) 또한, ECG 측정을 위해서는 항상 몸의 양쪽에 전극을 부착해야 한다. 따라서 가령 양쪽 손목에 전극을 부착하게되면 측정중에는 손으로 다른 활동을 하는 것이 불가능 하다. 하지만 PPG는 빛센서를 이용하고 한쪽 손가락 끝이나 귓볼에 센서를 착용하면 바로 측정이 시작되고, 빛으로 측정하기 때문에 움직임으로 인해 유도전류가 발생하여 생기는 잡음으로부터 자유롭다. 하지만 센서를 착용한 손을 번쩍 들어올리는 행위를 한다면 혈액의 흐름이 갑자기 변화가 생기기 때문에 PPG 신호가 제대로 측정 되지 않는다. PPG 센서는 뛰거나 과도한 움직임을 제외한 일상 생활 중에서도 신호를 측정하는 것이 가능하다.

무엇보다 최근 다양한 웨어러블 기기들에서는 PPG 센서의 장점을 살려서 간편하게 심박수를 측정할 수 있는 기능을 제공하고 있다. 앞으로 웨어러블 헬스케어 분야에 어떠한 변화가 일어날지 기대해 본다.


Reference

[1] G. Lu, F. Yang, J.A. Taylor, and J.F. Stein, A comparison of photoplethysmography and ECG recording to analyse heart rate variability in healthy subjects, Informa healthcare 33(8), p634-641 (2009).

신고

Slideshare를 통해서 토폴로지 데이터 분석(Topological Data Analysis, TDA)에 대한 발표 자료를 2014년 4월에 공유했다. 슬라이드 쉐어에서는 나의 슬라이드를 본 사람들이 어떤 경로로 찾아왔는지에 대한 정보와 어느나라 사람들이 주요하게 관심을 갖고 있는지의 여부를 자동으로 분석해주는 기능이 있어서 한번 살펴봤다.

한국 사람중에 나의 슬라이드를 본 사람들은 대부분 얼굴책 등에서 내가 공유한 것을 보고 링크를 타고 온 사람들이라고 생각된다. 하지만 미국이나 독일에서 슬라이드를 본 사람은 분명히 검색을 통해서 나의 토폴로지 데이터 분석 슬라이드를 찾았을 것이다. 또한, 아래 그림 중에서 국가별로 슬라이드를 '본 사람 수'의 그래프에서도 볼 수 있듯이 토폴로지 분석은 미국, 독일, 인도 등 IT 강국에서 큰 관심을 갖고 있는 분야임은 분명한 것 같다.

미국 내에서도 특히 어느 지역의 사람들이 관심을 갖고 있는지 궁금해서 Google Fusion Table의 heat map 기능을 이용해서 지도에 뿌려보니, 실리콘 벨리 지역의 사람들이 토폴로지 데이터 분석에 많은 관심이 있는 것으로 보인다 (아래 그림). 꼭 토폴로지 데이터 분석이 아니더라도, 쌓여있는 데이터에서 의미 있는 정보를 찾아내고 그것으로부터 가치를 부여하는 일은 분명 많은 수요가 있을 것으로 기대된다. 위에 bar-graph는 2014년 4월부터 2015년 3월 18일까지의 누적 수치이고, 아래 heat map은 최근 1달(2015년 2월 19일-3월 18일)간의 정보를 통해서 얻은 결과이다. heat map도 전체 viewer에 대해서 그려고보 싶었는데, slideshare에서는 최근 1달간의 방문자 기록만 raw 데이터 형태로 추출이 가능하다.



신고