3D프린터로 망막(retina) 모형 제작하기.

오늘은 3D프린터의 의학적 응용, 특히 안과 영역에서의 3D프린팅 기술 적용에 대하여 이야기해보고자 합니다. 안과 영역은 분야 특성상 3D프린팅 기술이 적용되기 어렵습니다. 왜냐하면 뭔가 눈 구조 및 모형을 만드는 방법도 한정적이고 만든다 하더라도 쓸 곳이 별로 없기 때문이지요. 


하지만 최근 수술 전 계획을 세우거나 환자 설명 및 교육용으로 사용하기 위해, 안과 영상 데이터(OCT)를 이용하여 망막 및 망막 혈관 구조를 3D프린팅하는 것에 대한 논문이 2편 발표된 바, 이에 본 포스팅에서 각 논문에 대해 간략하게 소개해드리고 논문 내 방법을 이용하여 망막 모형을 3D프린팅하는 과정에 대해 설명드리고자 합니다. 



첫번째 논문은 망막 앞에 또 다른 막이 생기는 질환인 망막전막(epiretinal membrane)의 모형을 SLA 방식의 3D프린터인 Form 1+을 이용하여 제작하는 과정에 대해 소개하고 있습니다[각주:1]


본 논문에서는 안과 영상 장비인 빛간섭단층촬영기(SD-OCT)의 데이터를 다음 프로그램을 이용하여 3D 데이터로 전환한 뒤 3D프린팅하였습니다. 


- ImageJ version 1.47s (National Institutes of Health, Bethesda, USA)

- Blender version 2.67b (Blender Foundation, Amsterdam, The Netherlands)

- MeshLab version 1.3.2 (Visual Computing Lab, ISTI-CNR, Pisa, Italy)


본 포스팅의 후반부에 위 과정을 이용한 망막 모형의 3D프린팅에 대해 추가로 알려드리도록 하겠습니다. 



두번째 논문도 첫번째 논문과 마찬가지로 OCT 데이터를 이용하였으나, 이 논문에서는 혈관조영이 가능한 빛간섭단층촬영기(optical coherence tomography angiography)를 사용하여 망막, 특히 황반(macula) 부분의 혈관 구조에 대한 데이터를 얻은 후 이를 3차원으로 전환하여 3D프린팅하였습니다[각주:2]


첫번째 논문에서는 데이터 편집을 위해 오픈소스 프로그램을 사용하였으나, 두번째 논문에서는 zBrush 4R7 (Pixologic inc., Los Angeles, CA, USA)을 사용하였으며 3D프린팅은 i.materialise (Materialise HQ, Leuven, Belgium) 서비스를 이용하여 출력대행하였습니다. 황반 중앙의 무혈관부위(foveolar avascular zone) 및 황반 부위의 혈관분포를 3D프린팅된 결과물을 통해 잘 확인할 수 있습니다. 


심지어 이 논문에서는 혈관 구조를 더 잘 확인하기 위해 3D프린팅된 결과물을 도금하기도 했습니다ㅎ


이렇게 출력된 망막 모형들은 수술 전 계획을 세우는데 사용될 수도 있구요, 환자에게 망막 질환에 대해 설명하거나 의학적 교육을 위한 교구로도 사용될 수 있겠습니다. 


자, 이제까지 망막 모형을 제작하는 것에 대한 두 편의 안과 논문에 대하여 살펴보았습니다. 이제부터는 앞서 소개한 첫번째 논문에 나온, 3D프린팅을 위한 데이터 편집 과정을 이용하여 실제 망막 모형을 제작하는 과정을 살펴보도록 하겠습니다. 



본 과정을 위한 첫번째 단계는 안과에서 OCT 영상을 겟(get)하는 것입니다. 저는 제 오른쪽 눈의 OCT 데이터를 이용하도록 하겠습니다. 


OCT 데이터는 일반 CT 영상과 마찬가지로 한장한장 얻어집니다. 이 한장한장의 데이터를 그 한장한장 사이의 거리만큼 띄워서 나열한 뒤, 각 데이터들의 빈 공간을 소프트웨어적으로 연결함으로써 전체 3차원 부피 데이터를 얻어 3D프린터로 출력할 수 있게 됩니다. 


이를 위해서는 OCT 이미지들이 연속성을 가져야하므로 각 이미지들을 같은 크기로 잘라야 합니다. 저는 포토스케이프(PhotoScape)라는 프로그램을 이용하여 잘랐습니다. 



같은 크기로 편집된 OCT 이미지들을 이미지J (ImageJ) 프로그램으로 가져와야합니다. 이를 위해서는 이미지J의 image sequence import 기능을 이용하면 됩니다.



총 61장의 OCT 데이터가 import 되었군요. 각 OCT 이미지들의 간격을 실제 비율만큼 띄워서 나열하기 위해 이미지J의 image - properties 기능을 이용하여 Voxel depth를 조정해주어야 합니다. 위 캡쳐 사진이 바로 이미지J의 image - properties를 클릭했을 때 나오는 대화상자이며, pixel width와 pixel height는 각각 1로, Voxel depth는 OCT 이미지사이의 실제 간격 길이를 y축의 scaling value로 나누어 얻은 ㎛/pixel 값을 넣어주면 됩니다. 



그 다음으로는 이미지J의 플러그인들 중 3D viewer를 이용하면 되는데요.



3D viewer에서 OCT 이미지들을 불러올 때 display as 옵션은 surface로, threshold는 70 정도로 맞춰주면 됩니다. 물론 이 threshold 값은 여기서 설정된 threshold 이상의 데이터를 2차원 이미지에서 3차원 데이터로 추출할 때 사용하는 값이므로 입력된 데이터에 따라 조절 가능합니다. 



3D viewer로 OCT 데이터 전체를 불러온 모습입니다. OCT 이미지들 사이는 소프트웨어적으로 연결되었음을 알 수 있습니다. 



성공적으로 3차원 데이터를 구성하였다면 이를 export surfaces as 기능을 사용하여 STL(binary) 형식으로 저장하면 됩니다.



이미지J만을 거친 3차원 OCT 데이터는 첨예한 부분 등 3D프린팅에 적합하지 않은 부분을 가지고 있을 수 있으므로, 소프트웨어적으로 매끄럽게 만드는 smoothing 과정이 필요합니다. 이를 위해 블렌더(Blender) 프로그램을 이용합니다. 일단 앞서 이미지J에서 제작한 STL파일을 블렌더로 불러옵니다. 



블렌더로 불러온 3차원 OCT데이터입니다. 뭔가 뾰쪽뾰족하군요.



블렌더의 Add Modifier 기능을 통해 Laplacian Smooth를 적용합니다.



Laplacian Smooth에서 Lambda Factor를 0.05, Lambda Border를 0.01로 설정한 뒤 100번 반복해줍니다. 물론, 이 값들은 임의로 조절가능합니다. 저는 이상하게 이 단계에서 컴퓨터가 힘들어 하더군요. 단계단계 넘어갈 때마다 컴퓨터가 잠시 멈추더군요ㅠ



Laplacian Smooth가 적용된 3차원 OCT 데이터입니다. 맨 처음 데이터와 비교하면 훨씬 표면이 매끄러워졌음을 알 수 있습니다. 이를 다시 STL 파일로 저장합니다. 



마지막 단계는 노이즈를 제거하는 과정입니다. 이를 위해 메쉬랩(MeshLab) 프로그램으로 데이터를 가져옵니다. 



그 다음 Cleaning and Repairing 옵션에서 Remove isolated pieces (wrt Diameter)를 적용해주면..



3차원 OCT 데이터에 불필요하게 포함된 노이즈들이 제거되어, 최종적으로 3D프린팅에 적합한 데이터가 만들어지게 됩니다. 


자, 긴 작업을 통해 안과 영상장비인 빛간섭단층촬영기, OCT로부터 얻은 데이터에서 3D프린팅이 가능한 3차원 모델링 파일이 만들어졌습니다. 이제 3D프린터로 출력해보도록 하겠습니다. 



출력을 위해 XYZware Pro에 데이터를 불러온 모습입니다. 출력에 사용한 3D프린터는 XYZ프린팅 사의 다빈치 주니어 1.0 프로(da Vinci Jr. 1.0 Pro) 이구요, 필라멘트는 XYZ프린팅 정품 검정 PLA 필라멘트입니다, 다빈치 주니어 1.0 프로의 세부 프린팅 세팅은 다음과 같습니다. 


Nozzle diameter 0.4mm

Nozzle temperature 200도

Layer height 100마이크론

Shell 5, Top surface 8, Bottom surface 8

Infill density 10%

Infill type Rectilinear


Speed

- normal 50mm/s

- surface 50mm/s

- small radius 20mm/s

- top surface 50mm/s

- solid infill 30mm/s

- bridge printing speed 50mm/s

- non-printing movement speed 200mm/s

- bottom layer speed 10mm/s

- retract speed 30mm/s


Brim+


Retraction length 4mm

Activate threshold 5mm


shell & infill extrusion ration 100%




데이터가 좀 크다보니 컴퓨터에서 다빈치 주니어 1.0 프로로 전달되는 것도 오래걸리더군요. 대략 20분 정도 걸린 듯 합니다. 



출력 막바지에 한 컷 담아본 모습입니다. 이게 얼마나 출력된 것이냐면요.



무려 약 15시간 정도 출력한 결과물입니다;;;;



최종 출력된 모습입니다. 출력완료까지 약 15시간 30분 정도 소요되었습니다. 



출력 완료된 제 오른쪽 눈의 망막 중심부위의 모습입니다.



중심부를 조금 더 확대하면 이렇게 생겼습니다. 원래 정상 망막 중심부분, 즉 황반 부분은 저렇게 움푹 파여있습니다. 



3D프린팅된 망막 모형의 우측 상단의 모습입니다. 표면에 뭔가가 묻어있는 것처럼 출력되어서 의아했었는데요. 



뭔가가 망막 표면 앞에 부유물 같은게 있어서 저렇게 출력되었나 봅니다. 



좌측 상단 부위의 클로즈업 사진입니다.



우측 하단 부분의 클로즈업 사진입니다. 



좌측 하단의 클로즈업 사진입니다. 전체적으로 보았을 때 망막의 중심부분인 황반이 황반 주변보다 살짝 올라와있는 걸 알 수 있네요.



오른쪽 눈의 좌측, 즉 코쪽 부위에 위치한 시신경 부분의 모습입니다.



망막의 전체 신경층들이 시신경으로 모여 눈 뒤쪽으로 가는데, 폭포수가 떨어지듯이 움푹 파이는 구조가 잘 나타나있네요.



시신경의 반대쪽 부위, 즉 오른쪽 눈의 우측 부위입니다.



망막 모형의 위쪽 모습입니다. 망막의 다층 구조가 정확하게 표현되진 않았지만, "아 뭔가 쌓여있구나"라는 느낌은 있네요. 



망막 모형의 아래쪽 모습입니다. 출력하면서 brim을 함께 출력하도록 세팅해서 저렇게 보이는 것입니다. 이 brim이 망막 모형으로부터 분리가 안되더군요ㅠ



망막 모형의 뒤쪽부분, 즉 망막의 반대쪽 부분, 다시 말해 해부학적으로 망막의 아래쪽에 위치한 맥락막 부분의 모습입니다. 맥락막 부분은 OCT 상에서 뭔가 가려진 듯한 혈관들이 많이 나타나기 때문에 3D프린팅된 본 모델에서는 위와 같이 뭔가 주름진 모양으로 나타나게 됩니다. 



오늘은 안과 영역에서의 3D프린팅 기술의 적용에 대해 기술한 논문 두편과, 3D프린터로 망막 모형 제작하는 과정에 대해서 살펴보았습니다. 사실 이렇게 망막 모형을 3D프린터로 출력했다고 해서 3D프린팅 기술이 뭔가 안과 영역에서 큰 힘을 발휘하거나 하는 건 아닙니다. 단지 '망막이 이렇게 생겼구나' 정도를 판단 가능한, 만질 수 있는 모형(tactile model)을 만들었다는 정도의 의미인 것이지요. 


하지만 누군가에게 망막에 대해 설명하는데 있어서는 이 망막 모형이 약간의 도움이 될 수 있을 것입니다. 머리 속으로 상상하는 것과, 뭔가 만질 수 있어 실제로 볼 수 있는 것과는 큰 차이가 있을 것이니 말이죠. 


또한 본 작업을 접한 분들이 '3D프린팅 기술을 이렇게도 사용할 수 있구나'하시며 3D프린팅 기술의 메디컬 분야로의 응용에 대한 조그마한 관심을 가지실 수만 있다면 그것만으로도 충분할 것 같습니다.


지금까지 메이드인네버랜드였습니다~!



  1. Choi, S.W., Kwon, H.J. & Song, W.K. Three-dimensional printing using open source software and JPEG images from optical coherence tomography of an epiretinal membrane patient. Acta ophthalmologica (2016). [본문으로]
  2. Maloca, P.M. et al. Enhanced resolution and speckle-free three-dimensional printing of macular optical coherence tomography angiography. Acta ophthalmologica (2017). [본문으로]
저작자 표시 비영리 변경 금지
신고

|  1  |  2  |  3  |  4  |  5  |  ···  |  422  |