ADNI多模態(tài)神經(jīng)影像整理筆記

目標(biāo):將ADNI下載的多模態(tài)格式影像轉(zhuǎn)為BIDS存儲(chǔ)格式的NIFTI文件
環(huán)境:Ubuntu 2020
工具包:

1. 下載影像

官網(wǎng):https://ida.loni.usc.edu/login.jsp
注冊(cè)賬號(hào),Proposal通過(guò)之后就可以下載了。
在IDA里面找到待下載的影像,打包下載。
推薦分?jǐn)?shù)個(gè)壓縮包下載,方便后續(xù)解壓。
推薦使用advance research

IDA普通搜索界面,找到待下載的影像,打包下載

文件下載界面

ADNI image acquisition (https://adni.loni.usc.edu/methods/mri-tool/mri-acquisition/)

2. 解壓影像

用Ubuntu自帶的解壓工具即可解壓。
由于傳輸故障可能出現(xiàn)無(wú)法解壓的情況。下載完之后要及時(shí)查看,以便及時(shí)重下。


10個(gè)DTI壓縮包
解壓

典型文件結(jié)構(gòu)

3. 匯總影像到一個(gè)目錄下

以下步驟適用于dicom或者nifti格式
首先利用mv指令將所有包下的sub級(jí)別的目錄移動(dòng)到一起(如都移動(dòng)到/adni/dicom/dti/)。

mv alldti2/ADNI/* ~/adni/dicom/dti/

由于分批下載的特性,不同子包之間可能出現(xiàn)1??重復(fù)下載 2??同個(gè)被試的多次掃描出現(xiàn)在不同包里。
這兩種情況均會(huì)導(dǎo)致mv失敗。因此需要使用rsync進(jìn)行一次同步。

rsync -av --ignore-existing alldti2/ADNI/* ~/adni/dicom/dti/

為節(jié)省空間,同步結(jié)束之后可以只保留/adni/dicom/dti/,刪除子包以及解壓的子包。

匯總之后的文件夾,有的被試下面可能有多個(gè)掃描

Single Scan

4. 獲得下載匯總表

匯總到一個(gè)文件夾后需要對(duì)下載情況進(jìn)行評(píng)估。
目的主要是1??找到異常影像(文件大小異常、volume數(shù)目異常等等)2?? 統(tǒng)計(jì)跨模態(tài)的id

4.1匯總nifti格式的下載情況

*需要tidyverse包和glue包

# Returns a summary table of downloaded nifti files of a single modality
# Usage: summary_nifti(path). The path has "011_S_0003" "011_S_0005" "011_S_0005" "011_S_0005" ...
# "id_subject"        "image_path"        "image_size"        "image_description" "image_date"        "image_time"        "image_ID" 
summary_nifti <- function(path.download){
  future::plan(future::multisession, workers = 8)
  result <- furrr::future_map_dfr(list.files(path.download), function(id_subject) {
    map_dfr(list.files(glue('{path.download}/{id_subject}')), function(image_description){
      map_dfr(list.files(glue('{path.download}/{id_subject}/{image_description}')), function(image_time){
        map_dfr(
          list.files(glue('{path.download}/{id_subject}/{image_description}/{image_time}')),
          function(image_ID){
            filename <- list.files(glue('{path.download}/{id_subject}/{image_description}/{image_time}/{image_ID}'))
            filepath <- glue('{path.download}/{id_subject}/{image_description}/{image_time}/{image_ID}/{filename}')
            file_size = file.info(filepath)$size / 1000^2
            return(
              tibble(
                id_subject = id_subject,
                image_path = filepath,
                image_size = file_size,
                image_description = image_description,
                image_time = image_time,
                image_ID = image_ID
              )
            )
          })
      })
    })
  })
  result.date <- result %>% separate(col = 'image_time', into = c('image_date', 'image_time'), sep = '_', extra = 'merge')
  return(result.date)
}
匯總表格

4.2 匯總dicom格式下載情況

# Returns a summary table of downloaded nifti files of a single modality
# Usage: summary_nifti(path). The path has "011_S_0003" "011_S_0005" "011_S_0005" "011_S_0005" ...
# "id_subject"        "image_path"        "image_volume_size"        "image_description" "image_date"        "image_time"        "image_ID" 
summary_dicom <- function(path.download){
  future::plan(future::multisession, workers = 3)
  result <- furrr::future_map_dfr(list.files(path.download), function(id_subject) {
    map_dfr(list.files(glue('{path.download}/{id_subject}')), function(image_description){
      map_dfr(list.files(glue('{path.download}/{id_subject}/{image_description}')), function(image_time){
        map_dfr(
          list.files(glue('{path.download}/{id_subject}/{image_description}/{image_time}')),
          function(image_ID){
            dicom_path <- list.files(glue('{path.download}/{id_subject}/{image_description}/{image_time}/{image_ID}'))
            return(
              tibble(
                id_subject = id_subject,
                dicom_volume = length(list.files(dicom_path)),
                dicom_path = dicom_path,
                image_description = image_description,
                image_time = image_time,
                image_ID = image_ID
              )
            )
          })
      })
    })
  })
  result.date <- result %>% separate(col = 'image_time', into = c('image_date', 'image_time'), sep = '_', extra = 'merge')
  return(result.date)
}

5. DICOM轉(zhuǎn)換為BIDS存儲(chǔ)格式的NIFTI文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 大多數(shù)醫(yī)學(xué)成像設(shè)備以復(fù)雜的 DICOM 格式(后綴 .dcm)的變體存儲(chǔ)圖像。許多科學(xué)工具希望醫(yī)學(xué)圖像以更簡(jiǎn)單的 ...
    Tina姐吖閱讀 766評(píng)論 0 0
  • 前言 Google Play應(yīng)用市場(chǎng)對(duì)于應(yīng)用的targetSdkVersion有了更為嚴(yán)格的要求。從 2018 年...
    申國(guó)駿閱讀 66,200評(píng)論 15 98
  • """1.個(gè)性化消息: 將用戶的姓名存到一個(gè)變量中,并向該用戶顯示一條消息。顯示的消息應(yīng)非常簡(jiǎn)單,如“Hello ...
    她即我命閱讀 5,844評(píng)論 0 6
  • 我們都是軟弱的人,所以才會(huì)說(shuō)謊。我們都是膽小的人,所以才要武裝。我們都是一群笨蛋,所以才會(huì)互相傷害。
    所羅門(mén)的偽證_dc0a閱讀 3,915評(píng)論 1 3
  • 為了讓我有一個(gè)更快速、更精彩、更輝煌的成長(zhǎng),我將開(kāi)始這段刻骨銘心的自我蛻變之旅!從今天開(kāi)始,我將每天堅(jiān)持閱...
    李薇帆閱讀 2,281評(píng)論 1 4

友情鏈接更多精彩內(nèi)容