Gretna源碼解讀

為了簡(jiǎn)化程序開發(fā),還是要站在巨人的肩膀上书斜,所以我又開始讀Gretna的源碼了诬辈,今天讀的是Gretna預(yù)處理的第二個(gè)步驟——Remove First Images。顧名思義荐吉,這個(gè)步驟就是移除掉fMRI圖像中經(jīng)常遇到的偽影焙糟,在Grenta中,這個(gè)功能被封裝在gretna_RUN_RmFstImg.m文件中样屠,其源碼如下:

function gretna_RUN_RmFstImg(InputFile, DelImg)
%-------------------------------------------------------------------------%
%   Run Remove First Images
%   Input:
%   InputFile  - The input file list, Nx1 cell (1x1 cell for 4D NIfTI)
%   DelImg     - The number of time points should be removed
%-------------------------------------------------------------------------%
%   Written by Sandy Wang (sandywang.rest@gmail.com) 20161013.
%   Copyright (C) 2013-2016
%   State Key Laboratory of Cognitive Neuroscience and Learning &
%   IDG/McGovern Institute of Brain Research, 
%   Beijing Normal University,
%   Beijing, PR China.

OutputFile=cellfun(@(f) gretna_FUN_GetOutputFile(f, 'n'), InputFile,...
    'UniformOutput', false);
if numel(InputFile)==1 %4D
    Nii=nifti(InputFile{1});
    TP=size(Nii.dat, 4);
    InputCell=arrayfun(@(t) sprintf('%s,%d', InputFile{1}, t),...
        (1:TP)', 'UniformOutput', false);
    InputCell=InputCell(DelImg+1:end, 1);
else %3D
    InputCell=InputFile;
    InputCell=InputCell(DelImg+1:end, 1);
end
V_in=spm_vol(InputCell);
V_out=gretna_FUN_GetOutputStruct(V_in, OutputFile);

cellfun(@(in, out) WriteByVolume(in, out), V_in, V_out);

function WriteByVolume(in, out)
Y=spm_read_vols(in);
spm_write_vol(out, Y);

在這段代碼的最開始穿撮,首先用grentna_FUN_GetOutputFile函數(shù),來獲取輸出的文件名稱痪欲。
之后悦穿,判斷輸入的文件是否為4D的nifti數(shù)據(jù)。如果是的話业踢,則將這段文件進(jìn)行一個(gè)讀取和截?cái)嗬跗猓⒈4娴絀nputCell變量中;如果不是知举,則直接進(jìn)行截?cái)嗨猜伲⑹褂?code>WrtieByVolume進(jìn)行文件的寫入操作,只不過這個(gè)寫入過程使用了cellfun函數(shù)雇锡,因此不難想見的是如果原來該位置中存在一個(gè)已經(jīng)寫好的文件逛钻,則此舉必然會(huì)造成數(shù)據(jù)寫入發(fā)生錯(cuò)誤(例如第一次截?cái)嗟臅r(shí)候,去除了前10幅圖像锰提,經(jīng)過查看后覺得前10幅圖像并不滿足要求曙痘,需要去除前20幅,則在不執(zhí)行刪除操作的情況下再次執(zhí)行該函數(shù)時(shí)立肘,會(huì)進(jìn)行文件的重復(fù)寫入边坤,最終結(jié)果就是得到的仍然是去除了前10圖像的數(shù)據(jù))。

這不知道算不算個(gè)小Bug谅年。也許在使用界面操作的時(shí)候惩嘉,gretna會(huì)有其他的處理,但是單獨(dú)調(diào)用該函數(shù)時(shí)則可能會(huì)發(fā)生錯(cuò)誤L吖省N睦琛惹苗!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市耸峭,隨后出現(xiàn)的幾起案子桩蓉,更是在濱河造成了極大的恐慌,老刑警劉巖劳闹,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件院究,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡本涕,警方通過查閱死者的電腦和手機(jī)业汰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來菩颖,“玉大人样漆,你說我怎么就攤上這事』奕颍” “怎么了放祟?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長呻右。 經(jīng)常有香客問我跪妥,道長,這世上最難降的妖魔是什么声滥? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任眉撵,我火速辦了婚禮,結(jié)果婚禮上落塑,老公的妹妹穿的比我還像新娘纽疟。我一直安慰自己,他們只是感情好芜赌,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布仰挣。 她就那樣靜靜地躺著伴逸,像睡著了一般缠沈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上错蝴,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天洲愤,我揣著相機(jī)與錄音,去河邊找鬼顷锰。 笑死柬赐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的官紫。 我是一名探鬼主播肛宋,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼州藕,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了酝陈?” 一聲冷哼從身側(cè)響起床玻,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎沉帮,沒想到半個(gè)月后锈死,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡穆壕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年待牵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喇勋。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡缨该,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茄蚯,到底是詐尸還是另有隱情压彭,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布渗常,位于F島的核電站壮不,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏皱碘。R本人自食惡果不足惜询一,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望癌椿。 院中可真熱鬧健蕊,春花似錦、人聲如沸踢俄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽都办。三九已至嫡锌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間琳钉,已是汗流浹背势木。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留歌懒,地道東北人啦桌。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像及皂,于是被迫代替她去往敵國和親甫男。 傳聞我的和親對(duì)象是個(gè)殘疾皇子且改,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容