Coffee Chat Brewing AI Knowledge

eng kor

[MRIQC 4] MRIQC Report와 Image Quality Metrics (IQMs)

MRIQC Results

ex1 ex2 ex3

MRIQC를 사용하여 magnetic resonance imaging (MRI) 이미지를 분석하면 HTML 형식의 report를 얻을 수 있습니다. Report 결과는 크게 두 섹션으로 구분됩니다.

  1. Basic visual report: View of the background of the anatomical image, Zoomed-in mosaic view of the brain
  2. About: Errors, Reproducibility and provenance information


View of the background of the anatomical image

MRI 상에서 뇌 영역을 둘러싸고 있는 배경(air) 부분의 결함(artifact)을 시각화하여 보여줍니다. 머리 주변의 배경에는 일반적으로 신호가 존재하지 않습니다. 이 air mask에서 감지되는 신호는 이미지 처리 과정에서 발생한 잡음이나 이상한 패턴, 즉 artifact라고 볼 수 있습니다. 잘 촬영된 T1 weighted-image (T1WI)와 괜찮은 영상에 인위적으로 noise를 추가한 T1WI의 MRIQC report를 비교해보겠습니다. noise는 torchio 라이브러리를 사용해 ghosting 현상를 주었습니다.

mosaic_bg_normal1 mosaic_bg_normal2

mosaic_bg_abnormal1 mosaic_bg_abnormal2

위쪽 결과가 잘 촬영된 영상(1번), 아래쪽이 noise가 추가된 영상(2번)의 report 결과 중 일부입니다. 슬라이스 별로 영상 내 신호 강도가 밝기로 표시 됩니다. 색이 진할수록 신호가 강하게 나타납니다. 1번 이미지에서는 전반적으로 head mask가 어둡고, air mask가 밝아 명확히 구분됩니다. 반면 2번 이미지에서는 head와 air의 밝기 차이가 상대적으로 크지 않고, 오히려 air보다 강도가 약한 head 부분도 존재합니다. 자세히 보면 인위적으로 생성한 ghosting 현상이 이미지에서 물결 무늬로 나타납니다. 이렇게 background artifact 검사를 통해 잡음이 개입되지 않고 배경이 배제되어 뇌 영역이 잘 촬영되었는지 정성적으로 판단할 수 있습니다.


Zoomed-in mosaic view of brain

MRI를 슬라이스 순서대로 나열해(mosaic view) 보여 줍니다. 이미지 중 뇌 부분을 자세히 보기 위해 배경부는 거의 제외되고 head mask 크기에 맞게 확대되어(zoomed-in) 있습니다. Mosaic view를 통해 MRI 촬영 시 움직임이 있었는지(head-motion), 이미지의 밝기가 균일하게 나타나는지(intensity inhomogeneities), 이미지에 전반적 또는 국소적인 noise가 있는지(global/local noise) 등을 확인하여 품질을 평가할 수 있습니다. 위에서 사용된 두 이미지의 MRIQC report 결과를 다시 비교해보겠습니다.

mosaic_bg_normal1 mosaic_bg_normal2

mosaic_bg_abnormal1 mosaic_bg_abnormal2

위쪽이 1번, 아래쪽이 2번의 결과입니다. 전반적으로 화질이나 구조물의 영역 간 구분 등을 기준으로 1번 이미지가 더 선명한 것을 볼 수 있습니다. Head-motion의 경우 mosaic view의 모든 슬라이스 이미지를 놓고 판단했을 때, 두 이미지 모두 두드러진 관련 사항은 없었습니다. 다만 2번 이미지의 경우 인위적으로 추가한 ghosting noise가 슬라이스 내에서 관찰됩니다. Head mask 내 물결 무늬가 나타나 영상 화질이 떨어져 보입니다. 이렇게 mosaic view를 통해 직접적으로 이미지를 검토함으로써 문제사항에 대해 판단할 수 있습니다.


Reproducibility and provenance information

MRIQC report 결과의 재현성 및 투명성을 보장하기 위해 품질 검사 관련 출처 사항을 알려줍니다.

Provenance Information

재현성과 출처 관련 메타데이터를 제공합니다. 여기에는 분석 환경(Execution environment), 사용한 데이터 경로(Input filename), 사용된 패키지의 버전(Versions), 파일 무결성 검증을 위한 MD5 checksum(MD5sum) 등의 정보가 포함됩니다.

prov_info

  • Execution environment: 분석 환경. 여기서는 ‘singularity’ 컨테이너 환경에서 실행되었음을 의미합니다.
  • Input filename: 사용한 데이터의 경로.
  • Versions: MRIQC, NiPype, TemplateFlow 등 사용한 패키지의 버전.
  • md5sum: 입력한 파일과 같은 파일을 사용하였는지 확인하기 위한 MD5 checksum.
  • warnings: ‘large_rot_frame’은 이미지 내 큰 회전 프레임이 있었는지, ‘small_air_mask’는 작은 air mask가 있었는지를 나타냅니다. 두 요인 모두 이미지 분석 정확성에 영향을 미칠 수 있습니다.

Dataset Information

분석에 사용된 데이터 관련 메타데이터가 제공됩니다.

data_info

  • AcquisitionMatrixPE: matrix의 인코딩 방향 크기. 위 예시에서는 256 x 256을 나타냅니다.
  • AcquisitionTime: 이미지 스캔이 수행된 시점.
  • ConversionSoftware: DICOM을 NIfTI로 변환하는 데 사용된 소프트웨어. 여기서는 ‘dcm2niix’가 사용되었습니다.
  • ConversionSoftwareVersion: 위 변환 소프트웨어의 버전.
  • HeudiconvVersion: 파일을 BIDS 형식으로 만드는 데 사용한 Heudiconv의 버전.
  • ImageOrientationPatientDICOM: 환자의 몸의 방향 관련 벡터 정보
  • ImageType: 이미지의 유형으로, 여기서는 ‘2차적’으로 생성 유도된 이미지임을 의미합니다.
  • InstitutionName: 데이터의 출처가 되는 기관명.
  • Modality: 이미지의 촬영 방식. 여기서는 ‘Magnetic Resonance (MR)’ 이미지가 사용되었습니다.
  • ProtocolName: 사용한 프로토콜의 이름.
  • RawImage: raw image 인지 아닌지를 나타냅니다.
  • ReconMatrixPE: 재구성된 행렬의 인코딩 방향 크기. 여기서는 256 x 256을 나타냅니다.
  • ScanningSequence: 사용된 스캐닝 시퀀스.
  • SeriesNumber: 시리즈 번호로, dataset이 속한 시리즈를 식별하는 데 사용됩니다.
  • SliceThickness: 슬라이스의 두께.
  • SpacingBetweenSlice: 각 슬라이스 사이 간격.

Image Quality Metrics

iqm

이미지 품질을 정량적으로 평가하는 다양한 Image quality metrics (IQMs) 점수가 보고됩니다. 이미지 모달리티(modality)에 따라 metric 항목이 달라집니다.

  • IQMs for structural images: T1WI, T2WI 등
  • IQMs for functional images: fMRI 관련 이미지 등
  • IQMs for diffusion images: DWI 등

IQM 점수 결과는 각 이미지의 MRIQC output directory에 생성되는 JSON 파일에서도 찾아볼 수 있습니다.


IQMs for Structural Images

이번 예시에서 T1WI를 사용함에 따라 IQMs for structural images에 대해 알아보겠습니다.

Measures based on noise measurements

  • cjv Coefficient of joint variation (CJV; 계수 결합 변이)
    • 두 개 이상의 변수를 동시에 고려한 상대적 변이의 측도로, 여러 변수의 변이가 그들 간 평균에 비해 얼마나 큰지를 알려준다.
    • 여러 변수를 포함한 데이터셋을 다룰 때 유용하며, 전체적인 변이를 이해하는 데에 도움을 준다.
    • 여러 변수의 표준 편차를 변수들의 평균으로 나눈 비율로 계산한다:
    \[CJV={(Standard \ Deviation \ of \ Combined \ Variables)\over(Mean \ of \ Combined \ Variables)}\times100\%\]
    • MRIQC에서는 뇌의 회백질(gray matter)과 백질(white matter) 간 CJV를 구한다. GM과 WM의 CJV는 Intensity non-uniformity (INU) 보정 알고리즘 최적화의 object function으로서 Granzetti 등이 제안했다.
      • INU은 MRI에서 서로 다른 부위에서 나타나는 밝기의 불균일성을 말한다. 자기장이 균질하지 않은 경우, 특히 라디오 주파수(radio frequency; RF) 전파 강도에 의해 발생한다.
      • INU는 이미지의 정확성을 저하시켜 해석을 어렵게 할 수 있으므로, MRI 품질 향상을 위해 INU를 보정하는 것이 좋다.
    • CJV가 높을 수록 머리가 강하게 움직였거나, INU 결함이 크다는 것을 의미한다. 따라서 CJV가 작을 수록 이미지 quality가 좋다고 평가할 수 있다.
  • snr Signal-to-noise ratio (SNR; 신호 대 잡음 비율)
    • 측정한 신호의 강도와 주변 잡음 수준의 관계를 나타내는 측도로, 측정된 신호의 품질과 정확성을 나타낸다. 신호(signal)는 관찰 대상인 조직에서 보이는 신호, 잡음(noise)은 환자의 움직임이나 전자기기의 간섭 등으로 나타나는 신호로, SNR은 둘을 구분하기 위해 사용된다.
    • SNR이 높을수록 측정하고 싶은 신호가 잡음에 비해 크다, 즉 데이터의 quality가 좋다.
    \[SNR={Signal \ Strength\over Stnadard \ Deviation \ of \ Noise}\]
  • snrd Dietrich’s SNR (SNRd)
    • MRI에서 주변 대기 배경을 참조로 하여 SNR을 계산하는 것으로, MRI 품질을 평가하는 중요 지표 중 하나이다.
    • 대기는 일반적으로 균일한 신호를 가지므로, 이를 참조하면 신호를 잡음과 더 정확하게 구별할 수 있다. 이로써 더 정확하게 이미지를 진단할 수 있다. Dietrich 등이 제안하였다.
    \[SNRd={Signal \ Strength\over Stnadard \ Deviation \ of \ Air Background}\]
  • cnr Contrast-to-noise ratio (CNR; 대비 대 잡음 비율)
    • 이미지에서 대비와 잡음 수준의 관계를 나타내는 측도로, SNR을 확장한 개념이다. 대비(contrast)는 이미지 내 구조나 물체 간의 밝기 차이를, 잡음(noise)은 불규칙하거나 무작위하게 나타나는 신호를 말한다.
    • CNR이 높을수록 원하는 이미지 대비를 얻었을 때 잡음이 낮다. 즉 높은 CNR은 물체나 구조가 뚜렷이 표현되어 있으면서도 잡음이 낮아 이미지 해석이 쉽고 이미지 quality가 좋다는 것을 의미한다.
    • MRIQC에서는 CNR을 GM과 WM가 얼마나 잘 분리되어 나타나고 영상 해석이 쉬운지를 평가하기 위해 사용한다.
    \[CNR={|\mu_{GM}-\mu_{WM}|\over \sqrt{\sigma^2_{GM}+\sigma^2_{wM}}}\]
  • qi_2 Mortamet’s Quality index 2 (QI2; 품질 지수 2)
    • 인위적 강도(artificial intensities)가 제거된 후 대기 마스크(air mask) 상의 데이터 분포가 적합한지를 평가하는 지표이다. 대기 마스크 영역 내 데이터 분포의 적합성은 이미지 처리 및 해석의 신뢰성에 영향을 미칠 수 있다.
    • 낮은 값일수록 좋은 품질을 나타낸다.

Measures based on information theory

  • efc Entropy-focus criterion (EFC)
    • 머리 움직임에 의해 발생한 ghosting과 blurring의 지표로 voxel 강도의 Shannon entropy를 사용하는 측정법이다. Atkinson 등이 제안했다.
    • ghosting과 blurring이 증가할수록 voxel은 정보량을 잃게 되어, 보클의 Shannon entropy가 증가한다. 즉, EFC는 ghosting 및 blurring이 많을수록 큰 값을 가지므로, 낮은 값일수록 이미지의 quality가 좋다.
    • 계산식은 maximum entropy로 normalize되어 있어 이미지 차원이 달라도 비교할 수 있다. $p_i$는 각 voxel의 확률, $N$은 pixel 수를 의미한다.
    \[EFC={-\sum^N_i=1 p_i\log_2(p_i) \over \log_2(N)}\]
  • fber Fraction of brain explained by resting-state data (FBER)
    • 이미지 속 뇌 조직의 평균 에너지를 뇌 주변의 대기 값과 비교한다. 이것으로 이미지 상 뇌 조직이 얼마나 포함되어 있는지를 측정하여 이미지 품질을 평가한다. Shehzad 등이 제안했다.
    • Quality assurance protocol (QAP) 측정 항목 중 하나이다.
    \[FBER ={Mean \ energy \ of image \ value \ within \ the \ head \over Mean \ energy \ of image \ value \ outside \ the \ head}\]

Measures targeting specific artifacts

  • inu : N4ITK로 추출된 INU bias field에 대한 요약 통계(max, min, median)</span
    • N4ITK 알고리즘은 MRI의 RF field 불균일성을 보정하여 영상의 품질을 향상시키는 고급 기법이다.
    • INU field 또는 bias field는 N4ITK를 통해 필터링 된 field를 말한다. INU field에 대한 통계를 통해 영상의 quality를 판단할 수 있다. 값이 0에 가까울수록 RF field 불균일성이 크다는 것을 의미하므로, 통계치가 1에 가까울수록 보정이 잘 된, quality가 높은 영상이다.
  • qi_1 Mortamet’s Quality index 1 (QI1; 품질 지수 1)
    • 대기 마스크 상의 인위적 강도를 감지하는 데 사용되는 지수이다. 인위적인 강도를 제거하여 대기 마스크를 올바르게 분석하기 위한 목적으로 사용한다.
    • 일반적으로 MRI 등 영상 데이터 전처리 단계에서 이미지의 품질을 향상시킴으로서 중요한 지표로 여겨진다.
  • wm2max White-matter to maximum intensity ratio
    • WM 내 중간 intensity와 전체 intensity 분포의 95% 백분위수(percentile)의 비율이다. 이로써 WM 영역 내 중요하게 나타난 강도의 비율을 측정한다.
    • 이 비율을 통해 intensity의 분포 상 꼬리가 어떤 경우에 길게 나타나는지를 알 수 있는데, 이 꼬리는 보통 성상 동맥 혈관이나 지방 조직의 intensity에 의해 발생할 수 있다.
    • 비율이 0.6에서 0.8 사이를 벗어나는 경우 이미지의 WM 영역이 불균일하다고, 즉 quality가 떨어진다고 판단할 수 있다.

Other measures

  • fwhm Full width ad half maximum (FWHM)
    • 이미지 intensity 값의 spatial distribution에서 전체 너비를 나타내는 값으로, 이미지의 해상도와 선명도를 측정하는 데 사용된다.
    • Spatial distribution의 최고점의 절반 값에서부터 얻을 수 있는 전체 너비 값으로 구해진다.
    • FWHM 값이 낮을수록 선명하고 고해상도의 이미지를 나타낸다.
    • MRIQC에서는 AFNI의 3dWHMx에 구현된 Gaussian width estimator filter를 사용해 FWHM를 계산한다.
  • icvs_* Intracranial volume scaling (ICVS)
    • Intracranial volume (ICV; 두개내액 체적)은 뇌와 두개액을 둘러싸고 있는 두개막 내 액체의 총량을 의미한다. ICVS는 MRI 에서 ICV를 기준으로 어떤 조직의 상대적인 비율을 나타낸다.
    • MRIQC에서는 volume_fraction() 함수로 cerebrospinal fluid (CSV; 뇌척수액), GM, WM의 ICVS를 계산한다.
    • 각 ICVS가 정상 범위 내에서 변동하는지, 서로 간 이상적인 비율을 갖는지를 보고 뇌의 상태를 판단할 수 있다.
  • summary_*_*
    • MRIQC의 summary_stats() 함수는 MRI 내 배경(background), CSF, GM, WM 영역의 픽셀 분포에 관련된 다양한 통계량을 제공한다. 이러한 영상의 통계량을 quality 평가에 사용할 수 있다.
    • 제공되는 통계량: 평균(mean), 중간값(median), 중간값 절대 편차(median absolute deviation; MAD), 표준 편차(standard deviation), 첨도(kurtosis), 하위 5% 백분위수(5th percentile), 상위 95% 백분위수(95th percentile), 픽셀 수(number of voxels).
  • tpm Tissue probability map (TPM)
    • 뇌 조직 유형(GM, WM 등)의 확률 분포를 가리킨다. MRIQC에서는 이미지에서 추정된 TPM과 ICBM nonlinear-asymmetric 2009c templete의 map 간의 중첩을 측정한다.
    • ICBM nonlinear-asymmetric 2009c templete: 표준 brain map을 제공하는 국제 협회인 International consortium for brain mapping (ICBM)이 제공하는 templete 중 하나이다.

      A number of unbiased non-linear averages of the MNI152 database have been generated that combines the attractions of both high-spatial resolution and signal-to-noise while not being subject to the vagaries of any single brain (Fonov et al., 2011). … We present an unbiased standard magnetic resonance imaging template brain volume for normal population. These volumes were created using data from ICBM project.

      6 different templates are available: …

      ICBM 2009c Nonlinear Asymmetric template – 1×1x1mm template which includes T1w,T2w,PDw modalities, and tissue probabilities maps. Intensity inhomogeneity was performed using N3 version 1.11 Also included brain mask, eye mask and face mask.Sampling is different from 2009a template. … [Reference]


References


[MRIQC 3-1] Flask를 사용해 HTML 파일 열어보기

MRIQC는 MRI 이미지의 퀄리티를 분석 및 평가 후 report를 HTML 파일로 출력해 줍니다. HTML 파일을 열어보기 위해서 Flask를 사용했는데요, 제가 사용한 방법을 정리해보겠습니다.

Flask

Flask는 Python으로 작성된 마이크로 웹 프레임워크입니다. 가볍고 유연한 구조로, 간단한 웹 애플리케이션과 API 서버를 빠르게 개발할 수 있도록 도와줍니다. 기본 기능만 포함하고 있어 확장성이 높고, 필요에 따라 다양한 플러그인과 확장 모듈을 추가할 수 있습니다. 또한, 배우기 쉽고 직관적인 코드 구조를 갖추고 있어 초보자에게도 적합합니다. 다만 최소한의 기능을 갖추고 있어서 복잡한 기능을 추가하기 위해선 외부 라이브러리를 사용해야 하며, 프로젝트 규모가 커질수록 유지보수가 어려워질 수 있습니다.

Flask로 HTML 파일 열기

Installing Flask

PyPI를 통해 설치할 수 있습니다:

pip install Flask

‘static/’과 ‘templates/’

Flask는 static/templates/ 두 폴더를 필요로 합니다. static/에는 HTML 파일에 존재하거나 적용되는 이미지, CSS, JavaScript 등 정적 파일을 저장합니다. templates/에는 렌더링할 HTML 파일을 저장합니다.

MRIQC 보고서를 여는 과정을 예시로 설명하겠습니다. 프로젝트 폴더에 위 두 폴더를 생성한 뒤, 정적 파일과 열고자 하는 HTML 파일을 각각 저장합니다.

HTML 파일 내 static/에 저장한 파일 경로가 이미 존재했다면 바뀐 경로로 수정해줍니다. MRIQC report HTML 파일을 열어보면 이미지 파일이 상대 경로로 지정되어 있습니다. 이미지를 static/에 옮겼으므로 이에 맞게 절대 경로로 바꿔줍니다:

실행 코드 작성

그리고 HTML 파일을 렌더링하기 위한 코드를 작성합니다. 위 예시 이미지 내 main.py에 해당합니다:

from flask import * 

app = Flask(__name__)
@app.route("/")
def test():
    return render_template("sub-001_ses-001_T1w.html")
app.run("0.0.0.0", port=5001)
  • app = Flask(__name__): Flask 애플리케이션 인스턴스를 생성합니다. __name__은 현재 모듈의 이름을 의미하며, Flask가 애플리케이션의 리소스를 찾는 데 사용됩니다.
  • @app.route("/"): 데코레이터로 기본 URL(/)에 대해 test 함수를 호출하도록 Flask에 지시합니다.
  • test(): 기본 URL이 요청될 때 실행될 함수입니다.
  • return render_template(HTML_FILE_NAME.html): templates/ 디렉토리에 있는 HTML 파일을 렌더링하여 반환합니다.
  • app.run("0.0.0.0", port=5001): 애플리케이션을 0.0.0.0 주소와 5001 포트에서 실행합니다.

결과

입력한 주소에 들어가보면 HTML 파일이 잘 띄워진 것을 볼 수 있습니다:


Reference


[MRIQC 3] MRIQC 실행하기: 사전 작업부터 결과 확인까지

MRIQC는 입력된 MRI 이미지의 quality를 분석 및 평가하고, 관련 내용을 report로 정리해줍니다. MRIQC를 사용하기 위해서는 BIDS 형식에 맞게 저장된 MRI 이미지가 필요합니다. 이번 포스트에서는 DICOM 파일을 가지고 MRIQC를 실행하고 분석 결과를 얻는 일련의 과정을 상세히 설명해보겠습니다.


nii2dcm

여기서는 DICOM 파일을 사용하지만, NIfTI 형식의 파일 또한 일반적인 MRI 파일 포맷 중 하나입니다. NIfTI 파일을 사용하는 경우 NIfTI를 지원하는 BIDS converter를 사용하거나, NIfTI를 DICOM으로 변환한 뒤 DICOM 지원 BIDS converter를 사용할 수 있습니다. 개인적인 경험으로는 NIfTI 지원 BIDS converter들이 안정적으로 작동하지 않았습니다 (제가 실패한 것일 수도 있습니다만). nii2dcm 라이브러리를 사용해 NIfTI를 DICOM으로 변환할 수 있습니다. 아래 코드를 실행할 수 있습니다:

nii2dcm NIFTI_FILE_DIR OUTPUT_DIR -d MR
  • NIFTI_FILE_DIR: 변환하고자 하는 NIfTI 파일 경로
  • OUTPUT_DIR: 변환된 DICOM 파일을 저장할 경로


Heudiconv

저는 BIDS converter로 Heudiconv를 사용했습니다. 공식 페이지에서 제공하는 튜토리얼를 참고하며 제가 성공적으로 실행한 방법을 정리했습니다. 사용 방법은 다음과 같습니다.

Heudiconv 설치

pip를 통해 설치합니다:

pip install heudiconv

heuristic.py 작성

각 이미지가 BIDS 형식에 맞춰 저장되도록 규칙을 정의하는 코드를 작성합니다. 튜토리얼에 제공된 데이터 저장소에서 heuristic.py 파일을 참고하거나 직접 수정할 수 있습니다. 이 파일은 입력된 이미지 파일의 모달리티를 판단하고, 각 모달리티별로 BIDS 형식에 맞는 파일 경로를 생성하여 이미지를 새로 저장합니다. 필요한 경우 판단 조건과 저장 경로를 수정할 수 있습니다.

참고 및 수정할 함수는 heuristic.pyinfotodict() 입니다.

  • 사용할 이미지의 모달리티를 인지합니다: T1WI, T2WI, DWI 등
  • 사용할 모달리티가 아닌 경우 관련 코드를 삭제하거나 주석 처리합니다.
  • 사용할 이미지의 모달리티가 저장될 경로 형식을 확인하고 필요한 경우 수정합니다.
  • 각 모달리티를 구분할 수 있는 기준(차원, 현재 파일명 특징 등)을 조건문에 명시하여 수정합니다.

제가 수정한 예시 코드는 아래와 같습니다. T1WI과 DWI를 사용하는 경우, 이미지가 저장될 경로와 이미지의 모달리티를 판단한 조건을 설정하였습니다.

Heudiconv 실행

설치 후 아래와 같이 파라미터를 설정하여 실행합니다. Heudiconv는 여러 개의 subject 데이터, 즉 DICOM 파일 묶음 여러 개를 한 번에 처리할 수 있습니다.

heudiconv --files DICOM_FILE_DIRS -o OUTPUT_DIR -f HEURISTIC.PY -s SUB_ID -ss SES_ID -c dcm2niix -b minmeta --overwrite 
  • DICOM_FILE_DIRS: 여러 subject의 DICOM 파일을 글로빙(globbing) 형식으로 입력 (e.g. dataset/sub-001/ses-001/*/*.dcm)
  • OUTPUT_DIR: 변환된 BIDS 형식의 폴더가 저장될 경로
  • HEURISTIC.PY: 위에서 작성한 heuristic.py 파일의 경로
  • SUB_ID: Subject id (e.g. 001)
  • SES_ID: Session id (e.g. 001)

실행 예시는 다음과 같습니다. 아래 코드를 입력할 경우:

heudiconv --files data/*/*.dcm -o bids/data/ -f heuristic.py -s 0 -ss 0 -c dcm2niix -b minmeta --overwrite 

bids/data/ 아래 다음과 같이 BIDS 형식의 폴더가 생성됩니다.


MRIQC

BIDS 형식으로 저장된 MRI 이미지가 준비되었다면, 이를 MRIQC에 입력할 수 있습니다. MRIQC는 PyPI를 통해 다운로드하여 사용하거나, docker 컨테이너를 통해 사용할 수 있습니다.

With PyPI

우선 아래 코드를 통해 설치해줍니다:

python -m pip install -U mriqc

설치 후 실행 코드는 아래와 같습니다:

mriqc BIDS_ROOT_DIR OUTPUT_DIR participant --participant-label SUB_ID
  • BIDS_ROOT_DIR: BIDS format 폴더의 루트 경로
  • OUTPUT_DIR: MRIQC 결과를 저장할 경로
  • participant OR group: participant로 지정할 경우 subject를 단위로, group으로 지정할 경우 루트 경로 하 모든 이미지를 대상으로 MRIQC 분석 결과를 얻습니다.
  • SUB_ID: participant 모드의 경우 --participant-label에 subject id를 입력하여 분석할 subject를 지정할 수 있습니다. 복수의 id를 한번에 입력할 수 있습니다 (e.g. --participant-label 001 002 003)

With Docker

저는 Docker를 통해 MRIQC를 사용했습니다. Docker 컨테이너는 프로그램의 실행에 필요한 모든 종속성을 포함하기 때문에 일관된 환경을 보장하는 장점이 있습니다. 아래 코드를 입력하면 participant level에서 MRIQC를 실행할 수 있습니다:

docker run -it --rm -v BIDS_ROOT_DIR:/data:ro -v OUTPUT_DIR:/out nipreps/mriqc:latest /data /out participant --participant_label SUB_ID [--verbose-reports]

nipreps/mriqc 이미지가 다운로드되어 있지 않아도 코드를 실행할 시 자동으로 다운로드됩니다.

  • BIDS_ROOT_DIR: BIDS format 폴더의 루트 경로. -v flag에 따라 컨테이너 내부의 /data 폴더와 연결됩니다. ro 옵션은 ‘read only’로, 로컬 경로에서 컨테이너 경로로 읽기만 가능하다는 의미를 가집니다.
  • OUTPUT_DIR: MRIQC 결과를 저장할 경로. 컨테이너 내 /out 폴더와 연결됩니다. 컨테이너의 /out 폴더 내용을 로컬로 복사해보면 OUTPUT_DIR과 동일한 결과가 저장되어 있는 것을 확인할 수 있습니다.
    • 컨테이너 내부 파일 내용 복사하기: 위 docker run 실행 시 --rm (작업 완료 후 삭제) 옵션을 삭제하고, 작업 완료 후 docker cp CONTAINER_NAME:FILE_PATH LOCAL_PATH 실행
  • SUB_ID: Subject id. 여러 개의 id를 입력할 수 있습니다. (e.g. --participant_label 001 002 003)
  • --verbose-reports (Optional): 이 flag를 입력하면 기본적으로 보고되는 visual report plot 외 다른 plot 4가지가 추가적으로 보고됩니다.

위 코드 실행 후 docker image 및 container 리스트를 확인하면 실행된 MRIQC 관련 항목을 볼 수 있습니다.

docker_ex


MRIQC Results

mriqc_ex1_1

MRIQC 분석이 완료되면 OUTPUT_DIR 하에 위와 같은 파일들이 생깁니다. 이 중 figures 폴더 내 plot 이미지 파일 및 파일명을 이름으로 가지는 JSON과 HTML 파일, 위 예시에서는 sub-0_ses-0_T1w.jsonsub-0_ses-0_T1w.html에 분석 결과가 담깁니다. Plot 이미지들과 JSON 파일을 기반으로 하여 HTML 파일로 결과 report가 작성됩니다.

ex1 ex2 ex3

해당 HTML 파일을 열면 위와 같은 report를 볼 수 있습니다. Visualized plot과 quality metric score를 종합하여 report를 해석하면 이미지의 quality를 알 수 있습니다.


References


[MRIQC 2] Brain Imaging Data Structure (BIDS)

Brain Imaging Data Structure (BIDS)

Brain Imaging Data Structure (BIDS)는 neuroimaging 데이터를 조직하고 공유하는 과정을 간소화하기 위해 만들어졌습니다. 연구자들이 각자의 스타일로 조작한 데이터를 공유하여 다른 연구자들이 사용하게 되면, 데이터를 재정리하는 데에 비효율적인 시간과 자원이 듭니다. BIDS는 표준화된 데이터 형식의 필요성에 따라 오해를 방지하고 불필요하게 소요되는 시간을 줄이며 재현성을 향상시키기는 것을 목적으로 합니다. BIDS는 데이터의 구조를 간단하고 직관적으로 제공하여 협력을 돕고 연구 속도를 높이며, 다양한 과학자들이 neuroimaging 데이터를 더 쉽게 접근할 수 있도록 합니다.

BIDS는 파일을 포맷하고 이름을 지정하는 방법에 대한 상세한 지침을 제공하여 연구 간의 일관성을 보장합니다. BIDS는 MRI, MEG, EEG, iEEG 등 다양한 영상 형식을 지원하고, 새로운 데이터 유형과 메타데이터를 통합할 수 있게 확장할 수 있습니다. 또한 데이터를 검증, 분석 및 공유하는 연구 생테계 추세에 따라 BIDS는 연구 커뮤니티에서 유용성을 더욱 높이고 있습니다.

BIDS Format

BIDS는 OpenfMRI repository에서 사용된 형식을 따서 만들어 졌고, 현재는 OpenNeuro로 알려져 있습니다. BIDS format은 본질적으로 계층적 폴더 구조 내에서 데이터와 메타데이터를 조직하는 방법입니다. 데이터를 조작하는 데 최소한의 도구만을 요함으로써 유연하고 광범위한 호환성을 갖습니다.

fig1

Folders

폴더 계층 구조는 네 단계로 구성되어 있으며, 루트 폴더를 제외한 모든 하위 폴더는 특정한 형식의 이름으로 저장됩니다. 예시 폴더 구조와 이름은 다음과 같습니다:

Project/
└─ Subject (e.g. 'sub-01/')
  └─ Session (e.g. 'ses-01/')
    └─ Datatype (e.g. 'anat')
  • Project: dataset을 포함하는 폴더로, 어떤 이름으로도 저장될 수 있습니다.
  • Subject: 한 개체(subject)의 데이터를 포함합니다. 한 subject는 고유한 이름을 갖습니다.
    • Name format: sub-PARTICIPANT LABEL
  • Session: 한 subject에 대해 촬영된 영상을 구분하는 폴더입니다. 각 subject는 여러 상황에서 촬영된 데이터가 있는 경우 여러 session을 가질 수 있습니다.
    • 만약 session이 subject 당 하나만 존재하는 경우 session 단계는 생략될 수 있습니다.
    • Name format: ses-SESSION LABEL
  • Datatype: 데이터의 타입을 명시합니다.

    fig2

    • anat: anatomical MRI data
    • func: functional MRI data
    • fmap: fieldmap data
    • dwi: diffusion MRI data
    • perf: arterial spin labeling data
    • eeg: electroencephalography data
    • meg: magnetoencephalography data
    • ieeg: intracranial EEG data
    • beh: behavioral data
    • pet: positron emission tomography data
    • micr: microscopy data
    • nirs: near-infrared spectroscopy data
    • motion: motion capture data

Files

파일의 유형으로는 기본적으로 세 가지가 있습니다:

  • .json file: 메타데이터 관련 내용
  • .tsv file: 메타데이터 관련 내용 (특히 테이블 등)
  • Raw data files: .jpg, .nii.gz, .dcm

파일 이름은 아래의 기준에 따라 표준화됩니다:

  • 이름에 공백을 포함하지 않습니다.
  • 문자, 숫자, -, _만 사용 가능합니다.
  • 대소문자를 구분하지 않습니다: 운영체제에 따라 대소문자 구분이 되지 않을 수 있으므로
  • 이름의 형식을 통일하여 체계적으로 이름을 짓습니다.
    • CamelCase or snake_case

파일 이름 템플릿

fig3

최종적으로 BIDS format 예시는 아래와 같습니다:

Dataset/
 └─ participants.json
 └─ participants.tsv
 └─ sub-01/
   └─ anat/
     └─ sub-01_t1w.nii.gz
     └─ sub-01_t1w.json
   └─ func/
     └─ sub-01_task-rest_bold.nii.gz
     └─ sub-01_task-rest_bold.json
   └─ dwi/
     └─ sub-01-task-rest_dwi.nii.gz


Reference

[MRIQC 1] MRIQC: Magnetic Resonance Imaging Quality Control

MRI 영상을 대상으로 하는 연구의 진행과 퀄리티를 높이기 위해서는 영상 데이터의 상태를 체크하고 좋은 데이터를 확보해야 합니다. 그런데 MRI 품질 평가는 여러가지 요인으로 인해 난이도가 높습니다. MRI 촬영 시 발생할 수 있는 결함(artifact)의 종류가 많고, 사람마다 영상 품질에 대해 달리 평가하며, 일부 결함 사항은 사람이 인지하기 어렵기도 합니다. 이런 상황에서 객관적인 MRI 품질 관리(quality control; QC) 시스템은 MRI 품질 평가 초기에 도움이 될 수 있습니다. 또한 여러 스캔 사이트에서 매우 큰 영상 데이터 샘플을 획득하려 하는 최근의 추세에 따라 완전 자동화되고, 편향이 최소화된 QC 프로토콜이 점점 필요해지고 있습니다.

Magnetic Resonance Imaging Quality Control (MRIQC)

MRI 품질 평가 자동화 도구로 MRIQC (Magnetic Resonance Imaging Quality Control)를 사용할 수 있습니다. MRIQC는 구조적(anatomical) 및 기능적(functional) MRI 이미지의 품질을 평가하기 위해 설계된 오픈 소스 도구입니다. MRIQC는 별도의 참조 이미지를 사용하지 않고, 입력된 이미지 자체만으로 품질 지표(image quality metrics; IQMs)를 추출합니다. 더불어 다양한 출처나 세션에서 MRI 스캔을 평가하고 비교할 수 있는 표준화된 방법을 제공합니다.

Priciples

  • Modular and Integrable: Nipype 프레임워크를 기반으로 한 모듈형 workflow를 사용하여 ANTs나 AFNI와 같은 다양한 서드파티 소프트웨어 도구를 통합합니다.
  • Minimal Preprocessing: 전처리를 최소화하여 이미지의 원본 상태 혹은 원본에 가까운 상태에서 IQM을 추정하고, IQM이 가능한 원본 데이터를 정확하게 반영할 수 있도록 합니다.
  • Interoperability and Standards: Brain Imaging Data Structure (BIDS) 표준을 준수하여 상호운용성을 촉진하고, 다양한 neuroimaging workflow 통합을 용이하게 합니다.
  • Reliability and Robustness: 다양한 데이터와 파라미터에 대해 일관된 성능을 보장할 수 있게 테스트됩니다.
  • Visual Report: 각 이미지와 이미지 그룹에 대한 visual report를 제공합니다. Report는 각 이미지에 대한 모자이크 뷰(mosaic view) 및 segmentation contour, 그룹에 대한 scatter plot을 제공해 이상치를 식별할 수 있게 합니다.

Image Quality Metrics (IQMs)

MRIQC는 크게 네 분류의 IQM을 계산합니다:

  • Noise-related metrics: 이미지 내 노이즈의 영향과 특성을 평가합니다.
  • Information theory-based metrics: 지정된 마스크를 사용하여 정보의 공간 분포(spatial distribution)를 평가합니다.
  • Artifact detection metrics: 불균일성(inhomogeneity)과 움직임에 의한 신호 누출(signal leakage)과 같은 특정 결함를 식별하고 그 영향을 측정합니다.
  • Statistical and morphological metrics: 조직(tissue) 분포의 통계적 특성과 이미지의 선명도/흐림(sharpness/blurriness) 정도를 특정합니다.

Paper

Esteban O, Birman D, Schaer M, Koyejo OO, Poldrack RA, Gorgolewski KJ (2017) MRIQC: Advancing the automatic prediction of image quality in MRI from unseen sites. PLoS ONE 12(9): e0184661. https://doi.org/10.1371/journal.pone.0184661

How to run MRIQC

MRIQC를 실행하기 위해서는 몇 개의 스텝을 거쳐야 합니다. 자세한 실행 과정은 다음 포스트를 참고해주세요!


References