1. 目的
2. XTRACT
3. 前処理
4. 必要なファイル
5. 実行
6. 結果
7. XTRACTのトラクトを用いて、定量値のサンプル
1. 目的
- XTRACTを用いたトラクトグラフィー(Tractography)
- 主要白質路の抽出
2. XTRACT
XTRACTの論文はこちら
https://www.sciencedirect.com/science/article/pii/S1053811920304092
XTRACTのドキュメントはこちら
https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/XTRACT:embed:cite
XTRACTによって以下の白質路がトラクトグラフィーによって抽出される。
Tract | Abbreviation | Left/Right? | Seeding Strategy | |
---|---|---|---|---|
Association Fibres | Arcuate Fasciculus | AF | Yes | Reverse-seeding |
Frontal Aslant Tract | FA | Yes | Single-ROI | |
Inferior Longitudinal Fasciculus | ILF | Yes | Reverse-seeding | |
Inferior Fronto-Occipital fasciculus | IFO | Yes | Reverse-seeding | |
Middle Longitudinal Fasciculus | MdLF | Yes | Reverse-seeding | |
Superior Longitudinal Fasciculus I | SLF1 | Yes | Single-ROI | |
Superior Longitudinal Fasciculus II | SLF2 | Yes | Single-ROI | |
Superior Longitudinal Fasciculus III | SLF3 | Yes | Single-ROI | |
Uncinate Fasciculus | UF | Yes | Single-ROI | |
Vertical Occipital Fasciculus | VOF | Yes | Reverse-seeding | |
Commissural Fibres | Anterior Commissure | AC | No | Reverse-seeding |
Forceps Major | FMA | No | Reverse-seeding | |
Forceps Minor | FMI | No | Reverse-seeding | |
Middle Cerebellar Peduncle | MCP | No | Reverse-seeding | |
Limbic Fibres | Cingulum subsection: Dorsal | CBD | Yes | Single-ROI |
Cingulum subsection: Peri-genual | CBP | Yes | Single-ROI | |
Cingulum subsection: Temporal | CBT | Yes | Single-ROI | |
Fornix | FX | Yes | Single-ROI | |
Projection Fibres | Acoustic Radiation | AR | Yes | Reverse-seeding |
Anterior Thalamic Radiation | ATR | Yes | Single-ROI | |
Corticospinal Tract | CST | Yes | Single-ROI | |
Optic Radiation | OR | Yes | Reverse-seeding | |
Superior Thalamic Radiation | STR | Yes | Single-ROI |
(Shaun W, et al. NeuroImage. 2020より)
XTRACTコマンドのヘルプは次の通り。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | __ _______ ____ _ ____ _____ \ \/ /_ _| _ \ / \ / ___|_ _| \ / | | | |_) | / _ \| | | | / \ | | | _ < / ___ \ |___ | | /_/ \_\ |_| |_| \_\ /_/ \_\____| |_| Usage: xtract -bpx <bedpostX_dir> -out <outputDir> -species <SPECIES> [options] xtract -bpx <bedpostX_dir> -out <outputDir> -species CUSTOM -str < file > -p <folder> -stdref <reference> [options] xtract -list Compulsory arguments: -bpx <folder> Path to bedpostx folder -out <folder> Path to output folder -species <SPECIES> One of HUMAN or MACAQUE or HUMAN_BABY or CUSTOM If -species CUSTOM: -str < file > Structures file ( format : format : <tractName> [samples=1], 1 means 1000, '#' to skip lines) -p <folder> Protocols folder (all masks in same standard space) -stdref <reference> Standard space reference image Optional arguments: -list List the tract names used in XTRACT -str < file > Structures file ( format : <tractName> per line OR format : <tractName> [samples=1], 1 means 1000, '#' to skip lines) -p <folder> Protocols folder (all masks in same standard space) (Default= /usr/local/fsl/data/xtract_data/ <SPECIES>) -stdwarp <std2diff> <diff2std> Standard2diff and Diff2standard transforms (Default=bedpostx_dir /xfms/ {standard2diff,diff2standard}) -stdref <reference> Standard space reference image (Default = /usr/local/fsl/data/standard/MNI152_T1_1mm [HUMAN], /usr/local/fsl/data/xtract_data/standard/F99/mri/struct_brain [MACAQUE], /usr/local/fsl/data/xtract_data/standard/neonate/schuh_template [HUMAN_BABY]) -gpu Use GPU version -par If cluster, run in parallel: submit 1 job per tract -res <mm> Output resolution (Default=same as in protocol folders unless '-native' used) -ptx_options <options.txt> Pass extra probtrackx2 options as a text file to override defaults, e.g. --steplength=0.2 --distthresh=10) And EITHER: -native Run tractography in native (diffusion) space OR: -ref <refimage> <diff2ref> <ref2diff> Reference image for running tractography in reference space, Diff2Reference and Reference2Diff transforms |
3. 前処理
XTRACTに必要な前処理は次の通り。FDT processing pipelineで処理することが可能。
- Brain extraction using BET
- Susceptibility distortion correction using TOPUP
- Eddy current distortion and motion correction using EDDY
- Fit the crossing fibre model using BEDPOSTX
- Registration to standard space (MNI152), see the FDT pipeline
4. 必要なファイル
必要なファイルは次の通り。
1 2 3 | . ├── DTI.bedpostX # BEDPOSTXの出力フォルダ └── T1_brain.nii.gz # BET後のBrain 3D-T1WI |
「DTI.bedpostX/xfms/」にDiffusion空間からMNI空間への変換行列があることを確認する。
01 02 03 04 05 06 07 08 09 10 11 12 | DTI.bedpostX /xfms/ ├── diff2standard.mat ├── diff2standard_warp.nii.gz ├── diff2str.mat ├── eye.mat ├── standard2diff.mat ├── standard2diff_warp.nii.gz ├── standard2str.mat ├── standard2str_warp.nii.gz ├── str2diff.mat ├── str2standard.mat └── str2standard_warp.nii.gz |
5. 実行
XTRACTを実行するには、次のコマンドを実行。
- GPUを使用する場合:
-gpu
オプション追加 - 個人のDiffusion空間で出力する場合:
-native
オプション追加
1 2 3 | BPX_DIR= 'DTI.bedpostX' xtract -bpx $BPX_DIR -out XTRACT_output -species HUMAN -stdwarp $BPX_DIR /xfms/standard2diff_warp $BPX_DIR /xfms/diff2standard_warp |
6. 結果
結果の可視化には、xtract_viewer
を用いるとよい。xtract_viewerのヘルプは次の通り。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | __ _______ ____ _ ____ _____ _ \ \/ /_ _| _ \ / \ / ___|_ _| __ _(_) _____ _____ _ __ \ / | | | |_) | / _ \| | | | \ \ / / |/ _ \ \ /\ / / _ \ '__| / \ | | | _ < / ___ \ |___ | | \ V /| | __/\ V V / __/ | /_/ \_\ |_| |_| \_\ /_/ \_\____| |_| \_/ |_|\___| \_/\_/ \___|_| Usage: xtract_viewer - dir <xtractDir> -species HUMAN [options] xtract_viewer - dir <xtractDir> -species MACAQUE [options] xtract_viewer - dir <xtractDir> -brain <PATH> [options] Compulsory arguments: - dir <FOLDER> Path to XTRACT output folder And EITHER: -species <SPECIES> One of HUMAN or MACAQUE or BABY OR: -brain <PATH> The brain image to use for the background overlay - must be in the same space as tracts. Default is the FSL_HCP065_FA map for HUMAN and F99 T1 brain for MACAQUE Optional arguments: -str STRUCTURE,STRUCTURE,... Structures (comma separated (default = display all that is found in input folder) -thr NUMBER NUMBER The lower and upper thresholds applied to the tracts for viewing Default = 0.001 0.1 |
今回の例では、次のようなコマンドを実行する。引数として、XTRACTの出力フォルダを指定する。個人空間でXTRACTをした場合:-brain
で個人脳を指定。
1 | xtract_viewer - dir XTRACT_output -species HUMAN |
7. XTRACTのトラクトを用いて、定量値のサンプル
XTRACTのトラクトグラフィーで抽出した、白質ROIを用いて定量値を算出することも可能。コマンドは、xtract_stats
を用いる。
xtract_statsのヘルプは次の通り。
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | __ _______ ____ _ ____ _____ _ _ \ \/ /_ _| _ \ / \ / ___|_ _|__| |_ __ _| |_ ___ \ / | | | |_) | / _ \| | | |/ __| __/ _ | __/ __| / \ | | | _ < / ___ \ |___ | |\__ \ || (_| | |_\__ \ /_/ \_\ |_| |_| \_\ /_/ \_\____| |_||___/\__\__ _|\__|___/ Usage: xtract_stats -d <dir_basename> -xtract <XTRACT_dir> -w <xtract2diff> [options] Compulsory arguments: -d <folder_basename> Path to microstructure folder and basename of data (e.g. /home/DTI/dti_ ) -xtract <folder> Path to XTRACT output folder -w <xtract2diff> EITHER XTRACT results to diffusion space transform OR 'native' if tracts are already in diffusion space Optional arguments: -r <reference> If not 'native' , provide reference image in diffusion space (e.g. /home/DTI/dti_FA ) -out <path> Output filepath (Default <XTRACT_dir> /stats .csv) -str < file > Structures file (as in XTRACT) (Default is all tracts under <XTRACT_dir>) -thr <float> Threshold applied to tract probability map (default = 0.001 = 0.1%) -meas <list> Comma separated list of features to extract (Default = vol,prob,length,FA,MD - assumes DTI folder has been provided) vol = tract volume, prob = tract probability, length = tract length Additional metrics must follow file naming conventions. e.g. for dti_L1 use 'L1' -keepfiles Keep temporary files |
計測するための、Diffusion定量値を計算する。DTIの定量値を計算するには、dtifit
を用いる。
DTIFITの詳細はこちらをご覧ください。
dtifit
のために次のファイルを用意する。
1 2 3 4 5 | DTI_metrics/ ├── bvals # DWIのGradient Table ├── bvecs # DWIのGradient Table ├── data.nii.gz # DWI └── nodif_brain_mask.nii.gz # b=0のマスク |
DTIの定量値を計算するために、dtifit
を用いて、次のようにコマンドを実行する。
1 | dtifit -k DTI_metrics /data -o DTI_metrics /dti -m DTI_metrics /nodif_brain_mask -r DTI_metrics /bvecs -b DTI_metrics /bvals |
これで、DTIの定量値であるFAおよびMDが計算される。
次に、定量値の計測に移ります。今回の例では、標準空間にトラクトがあるため、次のようなコマンドを実行する。デフォルトでは、トラクトの容積・確率・長さ、FAとMDの平均値のみしか計算しないが、-meas
オプションで計測したい定量値をリストで指定することで計測できる。
1 2 | BPX_DIR= 'DTI.bedpostX' xtract_stats -d DTI_metrics /dti_ -xtract XTRACT_output -w $BPX_DIR /xfms/standard2diff_warp -r DTI_metrics /dti_FA |
tract | vol (mm3) | median_prob | mean_prob | stddev_prob | median_length (mm) | mean_length (mm) | stddev_length (mm) | median_FA | mean_FA | stddev_FA | median_MD (mm2.s-1) | mean_MD (mm2.s-1) | stddev_MD (mm2.s-1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ac | 3414.398 | 0.002678 | 0.017128 | 0.045917 | 28.7 | 29.74347 | 17.81838 | 0.521566 | 0.523296 | 0.236441 | 0.000546 | 0.000549 | 0.000086 |
af_l | 20666.68 | 0.002328 | 0.003994 | 0.004256 | 42.12476 | 44.20898 | 23.76673 | 0.613976 | 0.577222 | 0.173791 | 0.000502 | 0.00051 | 0.000074 |
af_r | 24948.77 | 0.002255 | 0.003645 | 0.003219 | 47.85464 | 48.74961 | 25.61298 | 0.615803 | 0.592681 | 0.1526 | 0.000504 | 0.00051 | 0.000188 |
ar_l | 8164.129 | 0.003856 | 0.012093 | 0.022575 | 28.42037 | 36.09538 | 29.55519 | 0.55656 | 0.520793 | 0.225014 | 0.000536 | 0.00054 | 0.000158 |
ar_r | 8293.718 | 0.002954 | 0.012143 | 0.022982 | 22.85014 | 32.43816 | 28.56032 | 0.533049 | 0.499066 | 0.221096 | 0.000544 | 0.000546 | 0.00018 |
atr_l | 18289 | 0.002699 | 0.004647 | 0.004877 | 57.80597 | 49.69841 | 29.79699 | 0.575311 | 0.575069 | 0.165324 | 0.000503 | 0.000506 | 0.000063 |
atr_r | 17821.35 | 0.002619 | 0.00464 | 0.005357 | 54.94699 | 49.30058 | 29.63312 | 0.557883 | 0.545817 | 0.170427 | 0.000514 | 0.000517 | 0.000065 |
cbd_l | 11657.41 | 0.002613 | 0.010754 | 0.028017 | 98.31573 | 81.48625 | 42.73049 | 0.607537 | 0.596432 | 0.165071 | 0.000514 | 0.000522 | 0.000058 |
cbd_r | 8603.606 | 0.002572 | 0.012132 | 0.027985 | 89.72475 | 75.92992 | 42.34245 | 0.592488 | 0.580259 | 0.179246 | 0.000525 | 0.000534 | 0.000068 |
cbp_l | 2197.385 | 0.003905 | 0.022907 | 0.053306 | 22.45625 | 25.27225 | 19.48524 | 0.545097 | 0.533311 | 0.195338 | 0.000531 | 0.000542 | 0.000076 |
cbp_r | 1295.893 | 0.004301 | 0.030165 | 0.056452 | 22.73876 | 25.37224 | 16.77534 | 0.584728 | 0.562756 | 0.176806 | 0.000554 | 0.000556 | 0.000074 |
cbt_l | 3211.562 | 0.005425 | 0.01773 | 0.030143 | 26.74173 | 26.77412 | 18.85376 | 0.430775 | 0.435227 | 0.207792 | 0.000581 | 0.000573 | 0.000085 |
cbt_r | 3256.637 | 0.005607 | 0.016774 | 0.028038 | 16.79167 | 22.45104 | 18.22606 | 0.382306 | 0.4093 | 0.212651 | 0.000577 | 0.000572 | 0.000237 |
cst_l | 17832.62 | 0.003415 | 0.007274 | 0.012186 | 90.84464 | 85.81865 | 32.18107 | 0.640534 | 0.621043 | 0.179487 | 0.000484 | 0.000488 | 0.000102 |
cst_r | 18311.54 | 0.003422 | 0.007005 | 0.010465 | 87.59891 | 82.39769 | 33.99891 | 0.660138 | 0.637923 | 0.176238 | 0.000489 | 0.00049 | 0.000082 |
fa_l | 8981.105 | 0.00313 | 0.008087 | 0.014326 | 30.88156 | 35.4233 | 21.24802 | 0.551998 | 0.524526 | 0.186808 | 0.000505 | 0.000513 | 0.000085 |
fa_r | 11020.73 | 0.00295 | 0.007052 | 0.011075 | 32.56344 | 35.19621 | 21.1158 | 0.556506 | 0.530259 | 0.18864 | 0.000504 | 0.000513 | 0.000133 |
fma | 20244.11 | 0.002896 | 0.007776 | 0.011268 | 83.8533 | 83.33609 | 57.70774 | 0.681275 | 0.659728 | 0.211593 | 0.000525 | 0.000559 | 0.001264 |
fmi | 26627.79 | 0.002735 | 0.004226 | 0.003915 | 50.42218 | 53.67333 | 34.15696 | 0.616961 | 0.618517 | 0.170364 | 0.000526 | 0.000536 | 0.000067 |
fx_l | 7392.227 | 0.002952 | 0.015563 | 0.036943 | 61.5648 | 63.38259 | 41.55957 | 0.584486 | 0.591175 | 0.244622 | 0.000576 | 0.002147 | 0.053695 |
fx_r | 6062.528 | 0.003308 | 0.018033 | 0.046488 | 79.0278 | 72.24227 | 42.73615 | 0.505915 | 0.527057 | 0.251368 | 0.000612 | 0.000642 | 0.001626 |
ifo_l | 24374.07 | 0.00259 | 0.006683 | 0.011182 | 55.74806 | 73.31606 | 51.36399 | 0.644492 | 0.632296 | 0.150666 | 0.000522 | 0.000528 | 0.000061 |
ifo_r | 24531.83 | 0.002684 | 0.006509 | 0.011672 | 63.05942 | 78.94564 | 55.58284 | 0.629515 | 0.614532 | 0.158353 | 0.000527 | 0.000536 | 0.000268 |
ilf_l | 16356.43 | 0.00263 | 0.005763 | 0.008443 | 51.05518 | 48.10694 | 28.54763 | 0.610046 | 0.568141 | 0.206338 | 0.000554 | 0.000558 | 0.000068 |
ilf_r | 16750.83 | 0.002442 | 0.004905 | 0.006768 | 43.45034 | 43.53699 | 24.9466 | 0.566343 | 0.532399 | 0.205195 | 0.000564 | 0.000571 | 0.000078 |
mcp | 20756.83 | 0.002571 | 0.005435 | 0.006748 | 53.16116 | 59.9034 | 37.39916 | 0.638924 | 0.606495 | 0.217408 | 0.00044 | 0.000441 | 0.000085 |
mdlf_l | 22621.79 | 0.002328 | 0.004845 | 0.006854 | 62.31984 | 57.58495 | 34.51005 | 0.619331 | 0.583481 | 0.190562 | 0.000524 | 0.001737 | 0.076146 |
mdlf_r | 26210.85 | 0.002244 | 0.004559 | 0.006158 | 64.63949 | 60.43966 | 34.84705 | 0.618442 | 0.584208 | 0.190205 | 0.000529 | 0.000542 | 0.000303 |
or_l | 15900.05 | 0.002753 | 0.005406 | 0.006641 | 58.00233 | 52.80807 | 25.41879 | 0.687723 | 0.664749 | 0.148922 | 0.000517 | 0.000522 | 0.000067 |
or_r | 19567.99 | 0.002326 | 0.004878 | 0.006523 | 66.28878 | 62.15824 | 29.92579 | 0.670205 | 0.647372 | 0.15949 | 0.000518 | 0.000525 | 0.000071 |
slf1_l | 11668.68 | 0.002888 | 0.009406 | 0.016493 | 44.12645 | 45.98651 | 26.8693 | 0.634192 | 0.59082 | 0.19284 | 0.000514 | 0.000522 | 0.000098 |
slf1_r | 10479.83 | 0.003252 | 0.009862 | 0.019153 | 41.26475 | 42.87262 | 22.49848 | 0.600393 | 0.553235 | 0.204767 | 0.00053 | 0.000537 | 0.000091 |
slf2_l | 11629.24 | 0.003415 | 0.012128 | 0.023267 | 33.56578 | 36.14035 | 24.11797 | 0.557181 | 0.528692 | 0.198405 | 0.000509 | 0.000514 | 0.000085 |
slf2_r | 14666.13 | 0.00291 | 0.010663 | 0.019574 | 52.40123 | 47.55139 | 21.13686 | 0.591315 | 0.548816 | 0.193379 | 0.000506 | 0.000512 | 0.000094 |
slf3_l | 12801.17 | 0.00283 | 0.008231 | 0.016514 | 42.1875 | 41.84864 | 21.03708 | 0.584062 | 0.531114 | 0.189168 | 0.00052 | 0.000534 | 0.000109 |
slf3_r | 21331.53 | 0.002617 | 0.00664 | 0.011388 | 50.27447 | 52.50993 | 26.76177 | 0.591089 | 0.549534 | 0.177987 | 0.000517 | 0.000533 | 0.000283 |
str_l | 17781.91 | 0.002877 | 0.004736 | 0.004635 | 45.51739 | 43.66699 | 24.95468 | 0.572124 | 0.557619 | 0.189184 | 0.000481 | 0.000492 | 0.000123 |
str_r | 17117.06 | 0.002982 | 0.004948 | 0.004979 | 44.51994 | 43.55247 | 24.74726 | 0.584902 | 0.560258 | 0.183142 | 0.000482 | 0.000487 | 0.000082 |
uf_l | 11189.76 | 0.002795 | 0.008007 | 0.01537 | 51.86394 | 47.84278 | 28.20727 | 0.532622 | 0.518818 | 0.178007 | 0.000562 | 0.000845 | 0.010806 |
uf_r | 10981.29 | 0.002616 | 0.007184 | 0.011671 | 49.07641 | 46.89259 | 27.77912 | 0.560397 | 0.53906 | 0.170793 | 0.000566 | 0.001967 | 0.058334 |
vof_l | 7223.198 | 0.002525 | 0.004833 | 0.005789 | 19.95182 | 19.58273 | 9.168275 | 0.578046 | 0.540677 | 0.183096 | 0.000504 | 0.00051 | 0.000065 |
vof_r | 9183.941 | 0.002322 | 0.004658 | 0.006384 | 27.81706 | 27.70939 | 11.97529 | 0.553992 | 0.522878 | 0.201648 | 0.000505 | 0.000519 | 0.00008 |
何度も相談させていただいております.Sawaiです.
ご教示いただいた方法でxtractの前処理を完了することができました.
ありがとうございます.
その後,FDT pipelineを使用するために続けてFSLを起動させようとしたのですが,以下のエラーコードが出ました.
application-specific initialization failed: couldn’t connect to display “:0.0”
Error in startup script: couldn’t connect to display “:0.0”
while executing
“load /home/・/fsl/lib/libtk8.6.so”
(“package ifneeded Tk 8.6.12” script)
invoked from within
“package require Tk”
(file “/home/・/fsl/tcl/fslstart.tcl” line 19)
invoked from within
“source [ file dirname [ info script ] ]/fslstart.tcl”
(file “/home/・/fsl/tcl/fsl.tcl” line 71)
invoked from within
“source ${FSLDIR}/tcl/${origname}.tcl”
(file “/home/・/fsl/bin/fsl” line 20)
以前教えていただいた通り,export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk ‘{print \$2}’):0.0と入力した後であればうまく起動するのかと考えたのですが,上記を入力した際に以下のエラーコードが出ました.
awk: cmd. line:1: {print \$2}
awk: cmd. line:1: ^ backslash not last character on line
awk: cmd. line:1: {print \$2}
awk: cmd. line:1: ^ syntax error
このとき,参照ディレクトリはDWIデータが入っているwindowsのフォルダになります.
解決方法があれば何度も申し訳ありませんが,ご教示お願い致します.
awk の後は、 $2 でバックスラッシュは不要です。
また、シングルクォートもエラーになることがあるので、そこはコピペでなく、ご自身でタイプした方がいいかもしれません。
export
DISPLAY=$(
cat
/etc/resolv
.conf |
grep
nameserver |
awk
'{print $2}'
):0.0
ご返信ありがとうございます.
ご教示いただいた方法で修正したのですが,以下のようにディスプレイの数字が変わってしまってfslを開くことができませんでした.
application-specific initialization failed: couldn’t connect to display “172.18.1.20
172.18.1.21
fec0:0:0:ffff::1:172.18.1.20”
Error in startup script: couldn’t connect to display “172.18.1.20
172.18.1.21
fec0:0:0:ffff::1:172.18.1.20”
while executing
“load /home/hidekinakano/fsl/lib/libtk8.6.so”
(“package ifneeded Tk 8.6.12” script)
invoked from within
“package require Tk”
(file “/home/hidekinakano/fsl/tcl/fslstart.tcl” line 19)
invoked from within
“source [ file dirname [ info script ] ]/fslstart.tcl”
(file “/home/hidekinakano/fsl/tcl/fsl.tcl” line 71)
invoked from within
“source ${FSLDIR}/tcl/${origname}.tcl”
(file “/home/hidekinakano/fsl/bin/fsl” line 20)
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk ‘{print $2}’):0.0
こちらを入力した際にはエラーコードは出ず,次のコマンド週力へと進むことができました.
何度も申し訳ありませんが,ご教示お願い致します.
このような場合、VirtualBoxを使って仮想マシンで作業していただくのが一番かなと思いました。
近日中に公開しますが、最新のLin4Neuroの仮想マシンは以下になります。
https://www.nemotos.net/l4n_archive/l4n-22.04.2-standard-ja_20230604.ova
すでにFSLもMrtrix3もANTSも入っていますので、VirtualBoxにインポートさえしていただければすぐに使えるようになっています。
こちらを試されてはいかがでしょうか。
ご返信ありがとうございます.
Virtual Boxのインストールは完了しました.
仮想デスクトップの中のなにかのアプリケーションを使用してFSLを立ち上げるのでしょうか.
何度も申し訳ありませんが,ご教示お願い致します.
VirtualBoxのインストールは終わったわけですね。
そうしたら、
https://kytk.github.io/abis-web-202212/setup_l4n_2022.html
このページの「D. Lin4Neuro仮想アプライアンスのインポート (所要時間約15分)」
から進めてください。
Lin4Neuroの仮想マシンのIDは brain, PW は lin4neuro です。
教えていただいた環境で解析が進められそうです。
ありがとうございます。
何度もエラーが出てしまい申し訳ありませんが、FDT pipelineの際に、nodif_brain_mask.nii.gzがマッチしないというエラーが出てしまい、standard2diff.nii.gzが生成されませんでした。
nodif_brain.nii.gzはBedoostXのフォルダに入れてあるのですが、何か誤った手順を踏んでしまったのでしょうか。
何度も申し訳ありませんが教えていただけると幸いです。
タイプしたコマンドとエラーメッセージをそのままコピペしていただけませんか?
申し訳ありません.
T1画像の保存フォルダを誤っていたようで,解決できました.
わかりにくい質問をしてしまい申し訳ありません.
XTRACTまで何とか解析することができました.
何度もご相談させていただきありがとうございます.
結果をFSLeyesで開いたのですが,色をRender2などに変更してもこちらのサイトで示されている画像よりもかなり広い範囲に色がついてしまいます.
小脳や基底核などがかなり広く色で示されていました(Render2では,小脳は青や緑,基底核は緑).
どこかFSLeyerの操作を誤っているのでしょうか.
白質線維をはっきりを示すことができる設定があれば教えていただきたいです.
xtract_viewer のオプションに
-thr NUMBER NUMBER
というのがあります。
デフォルトは 0.001 0.1 となっています。
この値を変えてみてはいかがでしょうか?
教えていただいた方法で少し線維がはっきりと見えるようになりました.ありがとうございます.
FA値を算出する際に,
DTIFITはエラーなく実行できました.
XTRACTstatsを実行した際に「af_l」「af_r」「ar_l」などは値を算出することができ,プログラムもエラーなく進みましたが,多くのtractは
ERROR:: Empty mask image
と表示されて全ての値が0になってしまいました.
実行したXTRACTstastのコードは以下の通りです.
xtract_stats -d DTI_metrics/dti_ -xtract XTRACT_output -w $BPX_DIR/xfmd/standard2diff_warp -r DTI_metrics/dti_FA
また,エラーコードは以下のようにtractごとに表示されました.
Processing ac
ERROR:: Empty mask image
ERROR:: Empty mask image
ERROR:: Empty mask image
ERROR:: Empty mask image
ERROR:: Empty mask image
これは、DWIの画像によるものなので、なんとも言えないところです。
いくつかの画像を試してみてもらうしかないかなと思います。
承知しました.
最後まで解析することができました.
ありがとうございます.
XTRACTの解析に4日間かかったのですが,virtual desktopの設定を変更することで解析時間の問題は解決しないですか?
現在の設定は,以前に教えていただいたサイトの通りになっています.
何度も申し訳ありませんがよろしくお願いいたします.
XTRACTは正直、GPUを使って計算させないと非常に時間がかかります。
仮想マシンはGPUを使えないので、できることがあるとすれば、仮想マシンのCPUのコア数とメモリをPC本体のCPUとメモリを考慮しながらあげることぐらいでしょうか。
XTRACTできっちり解析したいのであれば、GPUを搭載したLinuxマシンを入手していただくのが一番だと思います。最低でも40万円ぐらいかかってしまいますが。私が監修しているものでは、https://www.amulet.co.jp/solutions/lin4neuro/ があります。
ご教示ありがとうございます。
仮想デスクトップではいけないということは、windows PCに外付けGPUをつけても意味は無いですか?
Windows PCに外付けGPUをつけた場合、これまでトライされてきた WSL2 で動かすならばGPUを活用できる可能性があります。
ただ、WSL2は私は個人的にはそこまで使っていないので、そこまでサポートできないです。
まだリソースも少ないのでかなりの試行錯誤が必要になるのかなとは思います。
承知しました。
lin4neuroでCPUを出来るだけ高く設定して見ようと思います。
何も分からないところから手取り足取り教えて頂き本当にありがとうございました。
先生のご指導があり一連の解析の手順や環境は出来ましたので、研究を進めていこうと思います。
長期間にわたり、何度もご指導頂きありがとうございました。
何度もご相談させていただいたsawaiです.
xtractを実施する際に新しいエラーが出て来たのでご相談させていただきたいです.
ターミナル上でXTRACTを実施する際に
xtract -bpx $BPX_DIR -out XTRACT_output -species HUMAN -stdwarp $BPX_DIR/xfms/standard2diff_warp $BPX_DIR/xfms/diff2standard_warpと入力したのですが,
Unknown option ‘XTRACT_output’と表示され,解析できませんでした.
XTRACT_outputをオプションではなくアウトプットするフォルダ名だと認識してもらえないのですが,どのように解決すればよろしいでしょうか.
一度うまく行ったのに申し訳ありません.
よろしくお願いします.
output=XTRACT_output
としたうえで
xtract -bpx $BPX_DIR -out $output -species HUMAN -stdwarp $BPX_DIR
/xfms/standard2diff_warp
$BPX_DIR
/xfms/diff2standard_warp
とされてはいかがでしょうか?
ありがとうございます
解決することが出来ました
無事に解決してよかったです。
以前からご相談させていただいているsawaiです.
何度も教えていただきありがとうございます.
教えていただいた方法でFSLの画面を表示させることができました.
以前のpreproc.shをUbuntuで実施しようとしたのですが,preproc.shやdwiデータなどがWindowsからUbuntuに移動させることができなくて解析できませんでした.
アクセス権がないと出てしまってWindowsからコピペできなかったのですが,なにか方法はありませんでしょうか.
ネットではプロパティからアクセス権を変更できると記載されていましたが,Ubuntuのプロパティにはアクセス権の項目がありませんでした.
ファイルを移動させずに,UbuntuからWindowsのファイルにアクセスして解析できないかと考えたのですが,fslのファイルはUbuntu上にあるためなのか,preproc.shを実行できませんでした.
なにか解決方法を教えていただけるとありがたいです.
不足している情報がありましたら,送信いたしますのでよろしくお願いします.
どこからwslをたちあげるかだと思います。
Powershellから、ご自身の脳画像解析データが入っているディレクトリに移動したうえで、
wsl
として起動すると、Ubuntuはそのファイルにアクセスできるかなと思いますがいかがでしょうか。
アクセスできました.ありがとうございます.
以前教えていただいたpreproc.shを実行したのですが,以下のエラーが出ました.
何かソフトが足りないのでしょうか.
・はユーザー名を示しています.
何度も教えて頂き申し訳ありません.
よろしくお願いいたします.
brain extraction from sub1_dwi_b0
No
subjectdir is /mnt/c/Users/・/desktop/sample/bedpostx/sub1
Making bedpostx directory structure
Queuing preprocessing stages
Queuing parallel processing stage
/home/・/fsl/bin/bedpostx: line 96: ${subjdir}.bedpostX/monitor: ambiguous redirect
chmod: cannot access ‘/mnt/c/Users/・/desktop/sample/bedpostx/sub1.bedpostX/monitor’: No such file or directory
/home/・/fsl/bin/bedpostx: line 272: /mnt/c/Users/・/desktop/sample/bedpostx/sub1.bedpostX/monitor: No such file or directory
Error submitting job – Array task definition file fault: Unable to read ‘/mnt/c/Users/・’
Queuing post processing stage
ユーザー名が日本語でかつスペースが入っている可能性はないでしょうか?
ご返信ありがとうございます.
英語ですが,スペースが入っています.
英語でも半角スペースが入るとパスが上手に通りません。
もし、それなら、ひとつの対応方法として、
Cドライブの下に、img_data などのフォルダを作成し、
img_data の中に画像ファイルやスクリプトを保存したうえで、
Powershell から
cd C:\img_data
wsl
としてUbuntuを起動したうえで、スクリプトを実行されてはいかがでしょうか。
以前xtractについて何度も教えていただいていたsawaiです.
なんとか解析できるようになりました.ありがとうございます.
以前まで自分のMacで解析していたのですが,研究室にあるwindows10でLINUXから再度解析できる環境を構築することになりました.
他のサイトを参考にWindows Subsystem for LINUXを使用してLINUXの仮想デスクトップを構築しようとしていたのですが,エラーが出てしまい進めなくなりました.WindowsやLINUXについてもご相談させていただけないでしょうか.何度も申し訳ありません.
以下に使用しているソフトや経緯を記載します.不足している情報がありましたら,お教えください.
【ソフトウェア】
Windows 10
Ubuntu -10.04
XLaunch
【エラーについて】
https://ao-tela.com/wsl_gui/#toc8
https://qiita.com/ikota3/items/590f6efa267576493a30
これらのサイトを参考にubuntuを使用した仮想デスクトップ構築をしようとしていました.一度デスクトップを開くことができたのですが,突然ubuntuが落ちてしまい,それ以降開くことができなくなってしまいました.その際のエラーコードは以下のとおりです.sudo service dbus start
sudo service x11-common start
の後に
gnome-shell -x11 -r
を入力した時に以下エラーが表示されました.
libmutter-Message: 16:27:58.228: running GNOME Shell (using mutter 42.5) as a X11 window and compositing manager
Failed to setup: Unable to open display, DISPLAY not set
仮想デスクトップを立ち上げなくでもubuntuからコードを入力してfslやxtractを作動させられないかなと思って操作していたのですが,私の技量では困難でした.
お忙しい中申し訳ありませんが,お助け願えませんでしょうか.
export
DISPLAY=:0.0
fsl
でどうですか?
ご返信ありがとうございます.
sudo service dbus start
sudo service x11-common start
export DISPLAY=:0.0
gnome-shell –x11 -r
の順であっていますでしょうか.
上記の順序で入力した際に以下のようなエラーがでました.
libmutter-Message: 16:59:16.716: Running GNOME Shell (using mutter 42.5) as a X11 window and compositing manager
Failed to setup: Unable to open display ‘:0.0’
また,fslと入力した場合には以下のようなエラーが出るのですが,fslをインストールするにはどのようなコードが必要でしょうか.
Command ‘fsl’ not found, did you mean:
command ‘fsa’ from deb fsa (1.15.9+dfsg-6)
command ‘wsl’ from deb wsl (0.2.1-3)
command ‘sl’ from deb sl (5.02-1)
command ‘fs’ from deb openafs-client (1.8.8.1-3ubuntu2~22.04.1)
command ‘fstl’ from deb fstl (0.9.4-1)
command ‘fal’ from deb dnet-progs (2.65build2)
command ‘fls’ from deb sleuthkit (4.11.1+dfsg-1)
command ‘psl’ from deb psl (0.21.0-1.2build2)
command ‘fsc’ from deb scala (2.11.12-5)
command ‘gsl’ from deb generator-scripting-language (4.1.5-3)
Try: sudo apt install
WSL(およびXlaunch)をインストールしたら
Powershellから
wsl
でUbuntuが起動し、
FSLを正しくインストールできていたら、
fsl
でFSLが起動すると思うのですが、いかがでしょうか?
sudo service dbus start などはあえてやる必要はないと思うのですが…。
以下に、WindowsのWSLを使ってFSLを起動する方法をまとめました。
こちらをご確認いただけますか。
https://www.nemotos.net/?p=5396
丁寧に説明していただきありがとうございます.
送信していただいた記事から進めたところ,glxgearsと入力した時にError: couldn’t open display :0.0
と表示されました.
どのように解決すればよろしいでしょうか.
何度も解説していただきありがとうございます.
申し訳ありませんが,よろしくお願いいたします.
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk ‘{print \$2}’):0.0
としてから
glxgears
としたらいかがでしょうか?
xtractについて教えていただいていた澤井です.
コメントの追加ができなくなっていたので新しくコメントをさせていただきます.
bedpostXまでは教えていただいた方法で解析できました.ありがとうございます.
次の解析のFDT pipelineで以下のエラーコードが出ました.
Error: Could not open matrix file /Users/username/sample/bedpostX/sub1bedpostX/xfms/str2diff.mat libc++abi: terminating with uncaught exception of type std:: logic error: matrix multiplication: incompatible matrix dimensions: 0×0 and 4×1
そして,xfmsフォルダに
eye.mat
standard2str_warp.nii.gz
standard2str.mat
str2standard_warp.nii.gz
str2standard.mat
が生成されていました.
これは正しく解析できていないのでしょうか.
確認しました。
nodif_brain.nii.gz というファイルが sub1.bedpostX に入っていないといけないんですが、それが入っていないですね。
FDT pipelineを実行する前にコピーしていただく必要があります。
とりいそぎ、sample ディレクトリ直下にある
sub1_dwi_brain.nii.gz を sub1.bedpostX にコピーし、ファイル名を nodif_brain.nii.gz と変更してください。
そのうえで再度実行していただけませんか?
ありがとうございます.
生成されたファイルが増えました.
私のPCのスペックが悪いのもあるかもしれませんが,かなり時間がかかっており,後diff2standard_warp.nii.gzとstandard2diff_warp.nii.gzだけ生成されていない状態です.
fnirtなどはかなり時間がかかるので忍耐が必要です。XTRACTはGPUがないとさらに時間がかかります。まる一日かかると覚悟しておいてください。
FDT pipelineは正常に完了しました.ありがとうございます.
XTRACTはPreparing submission script…で固まっているのですが,あっていますでしょうか.
そこまで固まらずにはじまるはずですが…
現在,logは少しずつ生成されていっていますが,前回送信したコマンドのままで止まっています.
そうなのですね。ログが生成されていっているということは待ってみるしかないかもですね。
お世話になります.
初めてMRI画像の解析を行うためかなり苦戦しており,ご助言をいただきたいです.
X-tractを実行する前処理の段階で,nii.gzファイルはあるのですが,他のacqparams.txtやbval,bvecなどの付随するファイルがありません.
こちらはどのように入手すればいいのでしょうか?
また,手順を解説しているyoutubeなどでnodif.nii.gzやnodif_PA.nii.gzなどのデータが出てきたのですが,これはMRIからデータを抜き取る際に2種類のデータが存在するということなのですか?
無知で申し訳ありません.スクリプトを動かすことに慣れていないので見当違いなことを言ってしまっているかもしれませんが,ご教示いただけると幸いです.
はじめてMRIの解析をされるのですね。それならば、XTRACTを最初から行うのはかなりハードルが高いかもしれません…
まず、.nii.gzファイルはあるということですが、それはどのように入手されたものでしょうか?
拡散MRIの解析のためには、以下の手順を踏む必要があります。
・DICOM画像をNIFTI画像に変換する
この際に、NIFTI画像(拡張子は nii もしくは nii.gz)とbval, bvec ファイルが生成されます。
・TOPUPおよびEddyというプログラムを使って歪み補正をするためには、PA方向に撮像した画像とAP方向に撮像した画像が必要になります。
ただ、これは研究向けでないと撮像していないと思うので、普通はPA方向に撮像した画像しかないのではないかと思います。それでも大丈夫です。
・acqparams.txtもTOPUP用です。
なお、bval, bvecファイルは電子カルテ経由で得られたDICOM画像では生成できないことがあります。そういう場合には、放射線科に相談していただく必要があるかもしれません。
まずはそこからご確認いただけませんか?
ご返信ありがとうございます.
なんとかネット上の情報からacquisition parametersとindexのファイルの生成は完了しました.
bval,bvecのデータはT1強調画像のNIfTI変換では出てこなかったのですが,DWI画像の変換では生成できました.これはもしかすると以前まで解析していたT1強調画像がカルテ経由で取得したものである可能性がありますね(ネット上のサンプルデータを使用して解析の練習をしています).
PAしか臨床では撮影されていないことが多いとのことですが,その場合,topupなどの補正はどのように実施するのでしょうか.
bval, bvec は、DWI画像でしか生成されません。これは、印加軸の情報であり、DWIのように、磁場の向きを変えて撮像する時にだけできるものなので、T1強調画像では生成されないのが標準ですのでご安心ください。
TOPUPの補正は、PAとAPと双方を撮像している時にのみ使えます。それ以外の場合は、TOPUPを使わないで渦電流の補正などを行うことが多いです。FSLでは、eddy_correctという方法を使うことが多いかと思います。(TOPUPとEDDYが出る前の標準的な方法でした)
ご返信ありがとうございます.
ご指導の通り,eddy_correctで渦電流の補正ができました.
ありがとうございます.
このeddy_correctの出力ファイルを使用してxtractのその後の解析に進めるでしょうか?
また,xtractの一連の処理プロセスについて,
①dcm2niixでDICOM→NIfTI(DWI画像であればbval,bvec等もここで出力)
②BETでmask画像等作成
③eddy_correctで渦電流の補正
④bedpostXでcrossing fibre modelの適応
⑤FDT pipelineで位置合わせ
⑥xtract
の流れであってますか?
何度も申し訳ありませんが,ご教示お願いいたします.
はい、その流れでいけるかと思います。
eddy_correctで以下のエラーコードが出ました.
Input does not exist or is not in a supported format
DWI画像をNIfTIに変換したデータなのですが,どこが間違っているのでしょうか.
ご教示お願いいたします.
具体的にどのようなコマンドを入力したか示していただけますか。
また、input does not exist とありますので、入力画像がきちんと存在するかの確認もお願いします。
eddy_correct sampledata_dwi.nii.gz eddy 0
こちらのコードを入力しました.
DWI画像データを参照しているディレクトリに移動させたら解析できました.
他の解析では,参照しているディレクトリの中のフォルダの中にデータがあっても解析できていたのですが,フォルダからは出していた方が良いのでしょうか.
(例えば,デスクトップを参照していて,デスクトップ上のフォルダにDWIデータが入っている状態.こちらではeddy_correctでエラーが生じました.)
何度も申し訳ありません.
eddy_correct の場合、カレントディレクトリにファイルがあることを前提にしています。
したがって、方法としては先生がとられたようにデータそのものを移動するか、
もしくは、データが入っているディレクトリに移動して解析をするかどちらかになるかと思います。
あまり移動するとファイルを失うリスクが高くなるので、私は後者のディレクトリを移動するという方法をとっています。
ありがとうございます.解決できました.
何度も申し訳ありませんが,次のFDTpipelineでの位置合わせで使用するBET前後のファイルはそれまで解析していたDWI画像ではないのでしょうか.
3次元T1強調画像ですね。
https://www.nemotos.net/?p=4653
こちらもご参考にしていただけたら。
ありがとうございます。
XTRACTのところまで来たのですが,現在ネット上のサンプルデータで解析練習をしており,DWIデータとT1データで同一対象者のものが揃っていない状態です.
DWI画像とは異なるサイトから取ってきたT1画像でFDTpipelineは実施できたのですが,XTRACTは以下のエラーコードが出てしまいます.
これは同一対象者のDWI画像とT1画像であれば解決するのでしょうか.
何度も申し訳ありませんがご教示お願いいたします.
-str file format is inconsistent. Format should be either:
per line
OR
[samples=1] per line
samples=1, 1 means 1000. Use ‘#’ to skip lines
なんとも言えないですが、同一個人のT1とDWIをサンプルで準備しましたのでよかったらこちらで試してもらえたら。(1週間でリンクは切れます)
https://www.dropbox.com/t/G3gPnk7CyD0tLc7t
ありがとうございます。
試してみます。
だいぶ前に下に書き込ませていただいたのですが、小山先生がおっっしゃるように-strオプションは-species HUMAN ( もしくはMACAQUE)を指定した場合には既製品が用意されているので必要ないかと思います。(指定する場合にはT1wなどの構造画像ではなく、自分で決めたseedやtarget等のROIを記載したファイルを指定します。)
上の5. 実行にあるコマンドを「-str T1_brain.nii.gz」だけ削除すると実行できるかと思います。
金子先生、フォローをどうもありがとうございます!
BedpostXで以下のようなエラーコードが出ました.
ファイル名は修正していて問題ないと思うのですが,このエラーコードから何か問題点はわかりますでしょうか.
何度も申し訳ありません.
No
subjectdir is /Users/sample/sub1
Making bedpostx directory structure
Queuing preprocessing stages
Queuing parallel processing stage
—– Bedpostx Monitor —–
Queuing post processing stage
An error ocurred. Please check file /Users//sample/sub1.bedpostX/logs/bedpostx.e31402.1
/Users/fsl/share/fsl/bin/bedpostx: line 2: 30661 Killed: 9 /Users/fsl/bin/bedpostx “$@”
/Users/(ユーザー名が入るのかなとは思います)/sample/sub1.bedpostX/logs/bedpostx.e31402.1 の中身を貼り付けていただけませんか?
あと、気になるのは、FSLのインストール場所なのですが、macをお使いと思うのですが、/Users/fsl というアカウントをお作りになっているということですか?
Image Exception : #3 :: Mask of different size used in matrix()
Mask of different size used in matrix()
こちらの内容が入っていました.
fslの保存場所はUsers/ユーザー名/fslです.
フルネームのユーザー名なので消去していました.
そういうことですね。たぶん マスク画像がうまく作れていないのでしょう。DWIから b0 画像を抽出し、b0画像に対してbetで脳抽出を行い、そこからマスク画像を生成するプロセスができていないのかもしれません。
そうしましたら、一度、以下の内容を “preproc.sh” として、sample ディレクトリの直下に保存し、そして
ターミナルから
bash
preproc.sh sub1_dwi.nii.gz
として実行していただけませんか?
eddy_correct, bedpostx まで実行してくれます。
#!/bin/bash
if
[[ $
# -lt 1 ]]; then
echo
"ERROR: Please specify dwi file"
echo
"Usage: $0 <dwi>"
exit
1
fi
dmri=$(imglob $1)
subject=${dmri%_*}
# eddy_correct
echo
"eddy_correct $dmri"
eddy_correct $dmri ${dmri}_ecc 0
# extract B0
echo
"extract B0 from $dmri"
fslroi ${dmri}_ecc ${dmri}_b0 0 1
# bet
echo
"brain extraction from ${dmri}_b0"
bet ${dmri}_b0 ${dmri}_brain -f 0.3 -m
# preparation for bedpostx
[[ -d bedpostx ]] ||
mkdir
bedpostx
mkdir
-p bedpostx/${subject}
cp
${dmri}.nii.gz bedpostx/${subject}
/data
.nii.gz
cp
${dmri}.bval bedpostx/${subject}
/bvals
cp
${dmri}.bvec bedpostx/${subject}
/bvecs
cp
${dmri}_brain_mask.nii.gz bedpostx/${subject}
/nodif_brain_mask
.nii.gz
# bedpostx
cd
bedpostx
bedpostx ${subject}
お世話になっております。
上記5.でxtractを実行する時に、-str でT1画像を指定しようとするとerrorになってしまいます。https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/XTRACT ではoptional argumentsとなっていたので、-str以下を削除したら実行できました。External Compatible Protocol Librariesのところを見ると、何らかのTractnameなどを自分で指定しないといけないと書かれている気がするのですが・・・
当方も同様エラーを体験しております。-str以下を削除したら実行できました。以下より、それで問題ないものと考えております。
ターミナルで
xtract
とタイプしてリターンしてください。xtract の使用例(Usage)が表示されます。
その最初の一行(典型例)は以下です。
xtract -bpx -out -species [options]
-species については HUMAN または MACAQUE あるいは CUSTOM です。
CUSTOMの場合 -str オプションが必要に見えます。
-species HUMAN なら -str オプションは不要と読み解けます。
次にターミナルで
ls ${FSLDIR}/data/xtract_data/Human/
とタイプしてリターンしてください。
そこにトラクトのseed, target, exclude を含んだフォルダと並んで、structureList という名のがあります。
次にターミナルで
cat ${FSLDIR}/data/xtract_data/Human/structureList
とタイプしてリターンしてください。
その一行に
# Format:
が見えます。
-species HUMAN なら既に -str オプションに必要な情報を読み込んでいると読み解いています。
以上から当方も -str オプションはオミットしています。