大多數(shù)醫(yī)學(xué)成像設(shè)備以復(fù)雜的 DICOM 格式(后綴 .dcm)的變體存儲(chǔ)圖像。許多科學(xué)工具希望醫(yī)學(xué)圖像以更簡(jiǎn)單的 NIfTI 格式(后綴 nii.gz)存儲(chǔ)。事實(shí)上坟乾,我們做深度學(xué)習(xí)基本都是使用的 nii.gz 格式或者 nii 格式损拢。
那么,如何將 dicom 格式轉(zhuǎn)換為 Nifti 格式溺蕉,是我們做研究的第一個(gè)難題。
本次推薦一個(gè)特別好用的轉(zhuǎn)換工具(dcm2niix)悼做,可以批量轉(zhuǎn)換你的 dicom 數(shù)據(jù)疯特。當(dāng)然,你要是不滿足一種方案肛走,直接拉到文章最后漓雅,查看轉(zhuǎn)換工具匯總,總有一個(gè)適合你
dcm2niix 簡(jiǎn)介
dcm2niix 是一款由 NTRC團(tuán)隊(duì)開發(fā)的醫(yī)學(xué)圖像轉(zhuǎn)換工具朽色,用于將數(shù)字成像與通信(DICOM)格式的醫(yī)學(xué)圖像轉(zhuǎn)換為更加通用的神經(jīng)影像學(xué)信息交換(NIfTI)格式邻吞。該軟件直接讀取磁共振成像(MRI)和計(jì)算機(jī)斷層掃描(CT)數(shù)據(jù),并把它們轉(zhuǎn)換為 NIfTI 格式葫男。除此之外抱冷,dcm2niix 還能夠處理其他信息,例如醫(yī)院信息化系統(tǒng)(HIS)中的元數(shù)據(jù)梢褐、圖像方向和標(biāo)簽等旺遮。
NTRC 團(tuán)隊(duì)還開發(fā)了 MRICron 軟件赵讯,這是一款 NIfTI 格式的看圖軟件,而且它可以方便地調(diào)用 dcm2niix 進(jìn)行圖像轉(zhuǎn)換耿眉。dcm2niix 的出現(xiàn)使得神經(jīng)影像學(xué)數(shù)據(jù)的轉(zhuǎn)換和處理更加高效瘦癌、準(zhǔn)確和便捷。
dcm2niix 使用方法-簡(jiǎn)單版
為了讓各位看官對(duì) dcm2niix 跷敬。有個(gè)初步印象和了解讯私。在這里,先簡(jiǎn)單介紹一下如何使用西傀。后面再跟深入的講解安裝和使用細(xì)節(jié)~
簡(jiǎn)單講斤寇,使用分為 圖形界面版和命令版
圖形界面版
[圖片上傳失敗...(image-4805cf-1687093397679)]
圖形界面版需要先下載 MRICron。在上圖左邊設(shè)置好輸出文件的命名格式拥褂,輸出文件夾等參數(shù)娘锁,把dcm文件夾拖到右邊空白處即可完成轉(zhuǎn)換。
命令行版
[圖片上傳失敗...(image-3e1276-1687093397680)]
對(duì)于使用 shell 命令不太熟饺鹃,數(shù)據(jù)量少的朋友莫秆,可以使用圖形界面版,鼠標(biāo)點(diǎn)點(diǎn)點(diǎn)就可以了悔详。當(dāng)然計(jì)算機(jī)玩家還是推薦命令行版镊屎。
dcm2niix 圖形界面安裝和使用
圖形界面版的安裝
官方推薦下載 MRIcroGL 版本,是 MRICron 的升級(jí)版本茄螃。如下圖缝驳,選擇對(duì)應(yīng)的操作系統(tǒng)下載安裝即可
[圖片上傳失敗...(image-a90453-1687093397680)]
軟件打開界面如下圖??
[圖片上傳失敗...(image-e30590-1687093397680)]
這個(gè)界面我還沒(méi)研究透。還是用 MRICron 比較順手归苍。
使用方法
MRIcroGL包括一個(gè)簡(jiǎn)單的圖形用戶界面用狱,用于控制dcm2niix。啟動(dòng) MRIcroGL 后拼弃,選擇 Import/ConvertDICOMtoNIfTI
菜單項(xiàng)夏伊。
界面如下圖所示。
[圖片上傳失敗...(image-2791e0-1687093397680)]
復(fù)選框設(shè)置輸出是壓縮(創(chuàng)建.nii.gz文件)還是不壓縮(創(chuàng)建.nii文件)吻氧。然后溺忧,您可以使用圖片中描述的格式指定所需的輸出文件名。
當(dāng)您調(diào)整所需的輸出名稱時(shí)医男,軟件將顯示一個(gè)示例砸狞,說(shuō)明您的文件將如何顯示捻勉。您還可以選擇是否要將輸出保存到特定的文件夾中镀梭,或者是否應(yīng)該在與輸入DICOM文件相同的文件夾中創(chuàng)建NIfTI圖像。
最后一步是拖放要轉(zhuǎn)換為應(yīng)用程序的文件夾踱启。注意报账,界面總是以交互方式顯示命令行研底,因此,當(dāng)您通過(guò)選擇復(fù)選框與界面交互時(shí)透罢,您正在創(chuàng)建一個(gè)文本命令榜晦,您可以將其復(fù)制并粘貼到您喜歡的腳本中。
注意:我在 mac 中使用 MRIcroGL 轉(zhuǎn) Nii 時(shí)羽圃,會(huì)提示沒(méi)有有效的DICOM文件
乾胶,但是我換成 MRICron 就能成功。奇了怪了朽寞,搞不懂识窿,遇到同樣問(wèn)題的話,你就使用 MRICron脑融。
MRICron的下載鏈接,軟件示意圖??
[圖片上傳失敗...(image-923e4a-1687093397680)]
圖形界面版比較簡(jiǎn)單喻频,就介紹這么多
dcm2niix 命令行版
命令行版的安裝
有幾種方法可以安裝 dcm2niix
- 有 conda,
conda install -c conda-forge dcm2niix
on Linux, MacOS or Windows. - 有 pip,
python -m pip install dcm2niix
on Linux, MacOS or Windows.
這兩種方法安裝最簡(jiǎn)單,但不一定有效肘迎。比如甥温,我在 mac 上使用這兩種方法安裝后,轉(zhuǎn) nii 時(shí)妓布,總會(huì)提示下圖錯(cuò)誤
[圖片上傳失敗...(image-c9c086-1687093397680)]
但是在 linux 上這樣安裝是可用的姻蚓。
如果上述安裝方法不行,試試以下兩種方法匣沼,稍微復(fù)雜一些史简。
- 下載 Github Releases 版本,提供了最新的可編譯的執(zhí)行文件肛著。
[圖片上傳失敗...(image-b951b9-1687093397680)]
下載對(duì)應(yīng)的版本并解壓圆兵,把可執(zhí)行文件放入/Users/xxx/opt/anaconda3/bin/dcm2niix
為什么放在這個(gè)地方?計(jì)算機(jī)咱也不太懂枢贿,不過(guò)我們之前不是使用 conda 安裝過(guò) dcm2niix 嗎殉农,它就放在了這個(gè)位置。我想的是它自動(dòng)安裝的版本可能不太好用局荚,我就用最新版本替換掉它超凳,所以放在了此處,實(shí)際證明是可行的耀态。
[圖片上傳失敗...(image-3b9808-1687093397680)]
我們可以通過(guò)命令 which dcm2niix
獲取地址轮傍,并使用剛下載的 dcm2niix 替換掉它
[圖片上傳失敗...(image-f51f68-1687093397680)]
- 運(yùn)行以下命令獲取Linux、Macintosh或Windows的最新版本
如果你不想從上述網(wǎng)站進(jìn)去下載首装,也可以直接使用如下命令下載
- curl -fLO https://github.com/rordenlab/dcm2niix/releases/latest/download/dcm2niix_lnx.zip (linux版)
- curl -fLO https://github.com/rordenlab/dcm2niix/releases/latest/download/macos_dcm2niix.pkg (macos版)
- curl -fLO https://github.com/rordenlab/dcm2niix/releases/latest/download/dcm2niix_win.zip (windows版)
如果是計(jì)算機(jī)玩家创夜,還可以 build from source((using make or cmake)). 詳細(xì)流程自行瀏覽 dcm2niix github
dcm2niix 命令行詳細(xì)使用說(shuō)明
dcm2niix 命令中唯一必填的參數(shù)是:需要轉(zhuǎn)換的 DICOM 文件夾的位置,該參數(shù)始終作為最后一個(gè)參數(shù)進(jìn)行提供仙逻。例如驰吓,dcm2niix ~/dicomdir
將會(huì)轉(zhuǎn)換文件夾 “dicomdir” 中的所有 DICOM 文件涧尿。但是,你可以指定一些可選參數(shù)來(lái)影響轉(zhuǎn)換結(jié)果檬贰。
因此姑廉,一個(gè)典型的轉(zhuǎn)換命令可能是 dcm2niix -o ~/niftidir -f %p_%s -g y ~/dicomdir
。
在這個(gè)例子中翁涤,軟件會(huì)在 dicomdir 中查找 DICOM 圖像并將轉(zhuǎn)換后的 NIfTI 文件保存在 niftidir 中桥言,輸出文件將被壓縮,并包含協(xié)議名稱 (%p) 和序列號(hào) (%s) 作為文件名葵礼。
下面是詳細(xì)的參數(shù)列表(在終端直接輸入 dcm2niix
命令來(lái)查看所有命令的列表)限书。以下是各個(gè)參數(shù)的說(shuō)明:
[圖片上傳失敗...(image-608511-1687093397680)]
- -1..-9 壓縮級(jí)別(1為最快,9為最慢但會(huì)產(chǎn)生更小的文件章咧,默認(rèn)為6)倦西。
- -b: BIDS sidecar:(“-b y”或“-b n”, 默認(rèn)為 y)如果選擇“yes”,則軟件將生成與NIfTI圖像同名的一種Brain Imaging Data Structure文件赁严。該文件采用JSON文本格式扰柠,提供了有關(guān)掃描的附加信息,這些信息無(wú)法保存在NIfTI頭文件中
-ba
BIDS sidecar的匿名化:(“-ba y”或“-ba n”)如果選擇“no”疼约,則BIDS文件將包含編碼在DICOM文件中的參與者個(gè)人信息卤档。這些識(shí)別信息可能會(huì)危及參與者的隱私。此選項(xiàng)僅影響B(tài)IDS sidecar(見b)程剥。
[圖片上傳失敗...(image-eb00ab-1687093397680)] - -f 輸出文件名:(例如“-f myMR”, 默認(rèn) '%f_%p_%t_%s')dcm2niix允許您指定轉(zhuǎn)換后的 NIfTI 文件的命名方式劝枣。該方法可能一開始看起來(lái)很復(fù)雜,但它提供了非常大的靈活性织鲸。
一個(gè)簡(jiǎn)單的文件名可能是“exp03subj09”舔腾。
在這種情況下,這個(gè)參與者的第一個(gè)序列將被命名為exp03subj09.nii搂擦,
接下來(lái)是exp03subj09a.nii稳诚,然后是exp03subj09b.nii等等。
但是
dcm2niix還允許您將相關(guān)信息的存在和位置標(biāo)注到文件名中瀑踢。
考慮您指定“exp03subj09%p%s”
在這種情況下扳还,協(xié)議的名稱和序列號(hào)(存儲(chǔ)在DICOM文件中)將成為文件名的一部分。
在這種情況下橱夭,輸出文件的名稱可能是exp03subj09fmri1.nii氨距、
exp03subj09t12.nii
和exp03subj09fmri3.nii。
您可以按任意順序組合盡可能多的修飾符棘劣。
以下是特殊修飾符的列表:
%a:插入天線(線圈)編號(hào)俏让。例如,“myName%a”的輸出文件名將生成“myName1”,“myName2”等舆驶,每個(gè)線圈一個(gè)橱健。請(qǐng)注意而钞,大多數(shù)掃描都會(huì)將所有線圈的數(shù)據(jù)組合在一起沙廉,在這些情況下,該選項(xiàng)將被忽略臼节。例如撬陵,大多數(shù)將所有線圈的數(shù)據(jù)組合在一起的掃描通常只稱為“myName”。
%d:插入系列描述(0008,103E)网缝。例如巨税,使用“myName%d”轉(zhuǎn)換的回波平面圖像會(huì)產(chǎn)生“myNameEPI”
%e:插入回波數(shù)。例如粉臊,具有兩個(gè)回波時(shí)間的序列使用輸出文件名“myName%e”進(jìn)行轉(zhuǎn)換草添,將產(chǎn)生“myName1”和“myName2”。請(qǐng)注意扼仲,大多數(shù)MRI序列僅使用單個(gè)回波時(shí)間远寸,在這種情況下,您只會(huì)得到“myName1”屠凶。
%f:插入輸入文件夾名驰后。例如,使用輸入文件夾“/usr/Subj22”和輸出文件名“myName%f”將導(dǎo)致輸出文件命名為“myNameSubj22.nii”矗愧。
%i:插入病人ID(DICOM標(biāo)簽0010,0020)灶芝。例如,“myName%i”的輸出文件名將把病人ID命名為“ID123”的圖像轉(zhuǎn)換為“myNameID123.nii”
%m:制造商名稱唉韭。 例如夜涕,“myName%m”的輸出文件名將把來(lái)自GE掃描儀的圖像轉(zhuǎn)換為“myNameGE.nii”,而來(lái)自Philips的圖像將變?yōu)椤癿yNamePh.nii”属愤,而Siemens將變?yōu)椤癿yNameSi.nii”钠乏,否則制造商不可用(“myNameNA.nii”)。 (需要2015年或之后的dcm2nii版本)春塌。
%n:插入受試者姓名(DICOM標(biāo)簽0010,0010)晓避。例如,“myName%n”的輸出文件名將把來(lái)自John Doe的圖像轉(zhuǎn)換為“myNameJohnDoe.nii”只壳。如果您的參與者名稱僅使用英文字母俏拱,則此選項(xiàng)最有效。對(duì)于其他歐洲語(yǔ)言吼句,您可能會(huì)發(fā)現(xiàn)它進(jìn)行一些基本轉(zhuǎn)換(“Müller”將變成“Muller”)锅必。對(duì)于非歐洲語(yǔ)言,您會(huì)發(fā)現(xiàn)此選項(xiàng)不滿意。也許以后的版本可以支持DICOM標(biāo)簽0008,0005搞隐。
%p:插入?yún)f(xié)議名稱(DICOM標(biāo)簽0018,1030)驹愚。例如,“myName%p”的輸出文件名將把協(xié)議命名為T1的圖像轉(zhuǎn)換為“myNameT1.nii”
%q:插入序列名稱(DICOM標(biāo)簽0018,1020)劣纲。例如逢捺,使用輸出文件名“myName%q”將旋轉(zhuǎn)回波序列轉(zhuǎn)換為“myNameSE.nii”(新功能,在2015年8月30日版本中)癞季。
%s:插入系列(DICOM標(biāo)簽0020,0011)劫瞳。例如,使用輸出文件名“myName%s”將第二個(gè)序列轉(zhuǎn)換為“myName2.nii”绷柒。如果您想將系列號(hào)補(bǔ)零志于,請(qǐng)插入所需的數(shù)字?jǐn)?shù)(0..9)。例如废睦,在轉(zhuǎn)換11個(gè)序列時(shí)應(yīng)用過(guò)濾器“m%s”將創(chuàng)建文件伺绽,這些文件將導(dǎo)致簡(jiǎn)單的按字母排序出現(xiàn)問(wèn)題,例如“m1.nii嗜湃,m11.nii奈应,m2.nii...m9.nii”的區(qū)別在于指定“m%3s”將有助于排序(例如“m001.nii,m002.nii...m011.nii”)净蚤。
%t:插入會(huì)話日期和時(shí)間(DICOM標(biāo)簽0008,0021和0008,0030)钥组。例如,“myName%t”的輸出文件名將把會(huì)話開始于2014年1月13日下午1:23的圖像轉(zhuǎn)換為“myName20140113132322.nii”
%z:插入序列名稱(0018,0024)今瀑,因此使用“myName%z”轉(zhuǎn)換的T1掃描可能會(huì)產(chǎn)生“myNameT1”程梦。
- -h 顯示幫助屏幕
- -m: 合并2D切片:(n/y or 0/1/2, default 2) [no, yes, auto])如果選擇,同一系列的圖像將堆疊到單個(gè)NIfTI圖像中. 默認(rèn)就好了橘荠,3維數(shù)據(jù)直接在同一個(gè) nii 里面屿附。
- -o: 輸出文件夾(不給,就會(huì)直接放在input folder)
- -z: 是否壓縮哥童,(y/o/i/n/3, default n) [y=pigz, o=optimal pigz, i=internal:zlib, n=no, 3=no,3D] 一般會(huì)選擇壓縮(-z y)
參數(shù)很多挺份,但常用的轉(zhuǎn)換命令如下(至少滿足我的需求)
dcm2niix -z y -f %i_%d_%s -o niftidir dcmdir
表示將 dcmdir 的所有圖像轉(zhuǎn)換到 niftidir 并壓縮圖像,重命名為 %i_%d_%s
dcm2niix 我已經(jīng)用了 2年以上了贮懈,團(tuán)隊(duì)里面轉(zhuǎn)換都是用這個(gè)匀泊,轉(zhuǎn)換快,需要的操作少朵你。
但是朋友們剛開始接觸需要花一點(diǎn)時(shí)間了解各聘,我都做到這份上了,學(xué)習(xí)起來(lái)應(yīng)該很容易吧抡医。
[圖片上傳失敗...(image-adbb64-1687093397680)]
你要是覺(jué)得這個(gè)工具不ok, 別急走!!!我還能在推薦10個(gè)
- dinifti: dinifti 下載鏈接, 用C語(yǔ)言編寫的躲因,專注于Siemens數(shù)據(jù)的轉(zhuǎn)換
- dicm2nii: 用Matlab編寫的。Matlab語(yǔ)言使得這個(gè)工具非常易于腳本化。它試圖保留擴(kuò)散梯度信息大脉。dicm2nii 下載鏈接
[圖片上傳失敗...(image-cfc5f7-1687093397680)] - dicom2nifti: 看起來(lái)很有前途:可使用命令行搞监,也可以在python中調(diào)用 dicom2nifti 下載鏈接。
[圖片上傳失敗...(image-383748-1687093397680)] - dcmstack: Python編寫的镰矿。它具有一個(gè)巧妙的功能琐驴,可以讓你在NIfTI文件中存儲(chǔ)/查看DICOM元頭數(shù)據(jù)。dcmstack下載鏈接
[圖片上傳失敗...(image-e99b08-1687093397680)] - mrconvert: MRtrix工具mrconvert是一個(gè)有用的通用圖像轉(zhuǎn)換器衡怀,并能夠良好地處理DTI數(shù)據(jù)
- mri_convert: mri_convert下載鏈接是流行的FreeSurfer軟件包的一部分棍矛。根據(jù)我的有限經(jīng)驗(yàn)安疗,這個(gè)工具適用于GE和Siemens數(shù)據(jù)抛杨,但在Philips 4D數(shù)據(jù)集上失敗。
以下是不同工具處理數(shù)據(jù)所需花費(fèi)的時(shí)間荐类。dcm2niix為對(duì)照組怖现,表里的時(shí)間是相對(duì)dcm2niix而言的
[圖片上傳失敗...(image-a39f76-1687093397680)]
這么多工具,總有一個(gè)適合你吧玉罐。