我用的資料是philips的資料,如果是ge或者西門子的資料可能會有所不同。
原始資料:包括3dt1資料和高解析度dti資料,均是dicom格式。
工具:mricron和fsl,所有的命令均在linux的終端中執行。
1.格式轉換:將字尾名為dcm的原始資料轉換為字尾名為nii.gz格式的資料。
nii.gz格式的資料不損失原始資料資訊,並且能節省大量空間。fsl能夠處理的是nii.gz格式的資料。
命令:dcm2nii *.dcm
需處理的檔案包括:3dt1資料和dti資料
輸出檔案說明:
1)3d結構像生成原檔案、o開頭、co開頭的檔案。其中o開頭的檔案主要是進行了reorient的,而co是經過切割了neck的。一般用於空間normalize都選用co開頭的檔案。為了便於說明,此處生存的檔名記為file1。
2)對於dti資料,philips的資料選用已x開頭的.nii.gz檔案。檔名記為file2.
轉換完成後需要檢查bvals和bvecs檔案。可以在matlab中檢視所有被試的bvlas檔案,檢查b值是否一致,方向數是否相同;檢查bvecs檔案,檢視不同被試的dti方向差別是否太大。
2.提取b0影象
需處理的檔案為:.nii.gz格式的dti資料
命令:fslroi file2 b0 0 -1 0 -1 0 -1 0 1
輸出檔案:b0.nii.gz
3.波腦
命令:bet2 b0.nii.gz nodif_brain -m -f 0.3
bet2 file1 -m -f 0.3
需處理的檔案包括:.nii.gz格式的3dt1資料和dti資料
輸出檔案:nodif_brain.nii.gz和nodif_brain_mask.nii.gz
需要檢查剝腦效果,後面如果想做tbss的話,個別被試的剝腦結果不好的話會影響整個骨架的mask。
4.渦流校正
命令:eddy_correct file2 data 0
輸入檔案:.nii.gz格式的dti資料
輸出檔案:data.nii.gz
此處生成的檔案data.nii.gz就是包含後面一系列處理需要使用的檔案了。
5.計算張量,fa,md值等
命令:dtifit --data=data.nii.gz --out=data--mask=nodif_brain_mask.nii.gz --bvecs=bvecs --bvals=bvals
輸入檔案:eddy_currect生成的檔案data.nii.gz,nodif_brain_mask.nii.gz bvlasbvecs
輸出檔案:data_fa.nii.gz data_l1.nii.gz data_l2.nii.gz data_l3.nii.gzdata_md.nii.gz data_mo.nii.gz data_so.nii.gz data_v1.nii.gzdata_v2.nii.gz data_v3.nii.gz
dti資料的預處理基本上就包括上面這些內容,此時計算出來的各項資料均是個體空間下的,沒有配準到標準空間裡,不能直接做組間對比。後續還可以依據data.nii.gz檔案在dtk上做確定性纖維跟蹤,也可以繼續在fsl上進行概率性纖維跟蹤或者tbss。
基於pandas進行資料預處理
參加kaggle資料探勘比賽,就第乙個賽題titanic的資料,學習相關資料預處理以及模型建立,本部落格關注基於pandas進行資料預處理過程。包括資料統計 資料離散化 資料關聯性分析 import pandas as pd import numpy as np train df pd.read c...
基於patch的地形PVS資料預處理 續
前面一篇說了pvs資料的預處理,當時是用純cpu來計算patch之間的可見性。後來聽說有個idirect3dquery9介面可以判mesh的可見性,就試了一下,果然比用純粹cpu計算快了很多。計算同樣的512地圖的pvs資料,原來的演算法需要4.7小時,利用gpu之後縮短到了不到800秒,快了大約2...
資料的預處理
機器學習演算法無法理解原始資料,所以需對原始資料進行預處理,常用預處理如下 預處理主要使用了preprocessing包,所以需對該包進行匯入 import numpy as np from sklearn import preprocessing data np.array 3,1.5,2,5.4...