본문 바로가기
데이터과학/데이터 분석 실습

Data Analysis (3): Flip Neuroimaging Data

by 경성현 2014. 4. 30.

병변Lesion이 있는 환자의 뇌영상을 분석할 때, 종종 영상의 좌-우를 반전Flip이 필요한 경우가 있습니다. 가령, Stroke으로 인해 운동영역에 손상을 입은 환자의 병변을 overlay 하는 연구를 진행한다고 했을때, 가장 좋은 방법은 병변이 한쪽으로 몰려 있는 환자들만을 피험자로 선정하여 연구를 진행하면 좋습니다.

하지만, 모든 뇌졸중 환자들이 천편일률적으로 오른쪽 대뇌 피질의 운동영역에 손상이 오지 않습니다. 어떤 환자는 왼쪽 운동영역에 손상이 오기도 하고, 어떤 환자는 오른쪽 운동영역에 손상이 오기도 합니다. 이럴때는, 피험자의 숫자가 적은 쪽의 뇌영상 데이터를 좌-우 Flip하여 병변이 한쪽인것처럼 맞춘 후에 통계분석을 하게 됩니다. 이러한 경우가 아니더라도, 뇌영상 데이터를 처리하는 과정에서 좌우가 바뀌어져 있다면, 올은 방향으로 전환해야 합니다. 

모든 의료영상 데이터가 모두 마찬가지겠지만, 뇌영상 데이터를 다룰때는 왼쪽과 오른쪽이 제대로 되어 있는지 꼭!! 확인한 후에 연구를 진행해야 합니다.


아래에 첨부된 파일은 임의의 뇌영상 데이터를 선택하고, 선택된 영상의 좌우를 반전시키는 프로그램입니다. 프로그램을 실행시키기 위해서는 우선, spm8의 path가 설정되어 있어야 합니다.

참고 Data Analysis (1): Neuroimaging Data loading using SPM8 toolbox


다음의 명령어를 통해서 뇌영상을 MATLAB workspace에 loading하게 되면,

>vin = spm_vol(fn); >IMG = spm_read_vols(vin);

IMG 변수는 3차원 볼륨 영상이 저장됩니다.

좌-우, 앞-뒤, 상-하 반전의 핵심은 

불러들인 뇌영상을 새로운 파일에 저장할때, 

다음과 같이 한쪽 방향의 데이터를 순서를 거꾸로 하여 저장하는 것입니다.

>spm_write_vol(vout, IMG(end:-1:1,:,:)); # 좌-우 flip >spm_write_vol(vout, IMG(:,end:-1:1,:)); # 앞-뒤 flip >spm_write_vol(vout, IMG(:,:,end:-1:1)); # 상-하 flip


좌-우 flip과 관련된 전체 MATLAB 프로그램은 

첨부된 파일을 참고하시면 도움이 될것 같습니다.

참고로 MATLAB에서 'end'라는 변수는 미리 지정되어 있는 변수로서,

어떤 행렬 또는 벡터형 데이터의 맨 마지막 데이터를 의미합니다.


작성자: 뇌과학자 경성현

filplr.m