#TCGA系列#TCGA樣本中的注釋文件處理

前面幾期已經(jīng)完成了從TCGA表達譜/臨床數(shù)據(jù)下載處理整合,本次對樣本中的有annotations.txt的進行分析處理

在之前下載的表達文件中,可能已經(jīng)有人注意到有些樣本文件夾中還有個annotations.txt文件.

先看看這樣的annotations文件有多少:

# 查看annotations.txt的文件的數(shù)量
ls ./*/annotations.txt|wc -l   # 結果是23

發(fā)現(xiàn)有23個.隨便打開一個是這樣的:

annotations.txt文件

再打開一個是這樣的:

![annotations.txt文件]](http://upload-images.jianshu.io/upload_images/903467-5c53537dd01057f6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

重點注意notes部分,是對這個樣本的說明.不過這樣一個個點開看不方便,我們編個腳本合并下:
#將 23個annotations.txt合并到一個文件:
anno_files=(`ls ./*/annotations.txt`)
awk 'BEGIN{OFS="\t"}{if(ARGIND==1){print $0};if(ARGIND>1 && FNR>1){print $0} }' ${anno_files[@]} >../annotations_all.tsv

這樣就得到了一個有全部23個annotations.txt文件的合并文件annotations_all.tsv,前面幾列分別是注釋ID,提交者ID,cases_ID,所屬范圍,分類,創(chuàng)建時間,狀態(tài),注釋信息.前幾列都不重要,重要的是最后一列注釋信息也就是notes,23個樣本的注釋信息如下:

23個annotations.txt的注釋
這些notes大概包括以下幾方面的注釋:
  1. 屬于肝膽混合樣本,適合在膽管癌中研究,不適合在肝癌中研究.
  2. 在TCGA統(tǒng)計前已經(jīng)經(jīng)歷過治療.
  3. 先前有結腸癌 或腎細胞癌 或膀胱癌等癌癥,接受或沒有接受治療,或者治療史不明
  4. 其他...
通過上面的說明可以看出這23個樣本都不是正常的肝癌樣本,為了防止這23個特例在分析過程中產(chǎn)生不可控的因素,而且相對于整體樣本數(shù)量425來說,去除這23個樣本也不構成影響.所以我們?nèi)コ磉_譜中這23個樣本.然后再合并為表達量矩陣.
之前的講過的內(nèi)容(TCGA基因/miRNA表達譜數(shù)據(jù)整合?)已經(jīng)可以生成miRNA表達譜矩陣文件.通過對之前的那個腳本修改,得到的下面這個腳本會跳過有annotaions的樣本然后合并為表達量矩陣.
將這個腳本存為merge_except_anno.sh.這個腳本需要三個參數(shù), 第一個是manifest文件路徑,第二個是'reads'或'rpm' ,第三個是輸出文件路勁.
#! /bin/bash
#需要三個參數(shù),$1是manifest文件路徑,$2是'reads'或'rpm' ,$3是輸出文件路勁.

manifest_path=$1
exp_patten=$2
out_path=$3

file_ID=(`awk '{if(NR>1)print $1}' $manifest_path`)
file_name=(`awk '{if(NR>1)print $2}' $manifest_path`)
anno_files_ID=(`ls ./*/annotations.txt|awk 'BEGIN{FS="/"}{print $2}' -`)

# 排除anno_files_ID后,使用數(shù)組file_path存儲文件路徑:
for((i=0;i<${#file_ID[@]};i++)){
    if [[ "${anno_files_ID[@]}" =~ "${file_ID[$i]}" ]]
    then
        echo "跳過注釋文件:"${file_ID[$i]}
        continue
    fi
    file_path[$i]="./"${file_ID[$i]}"/"${file_name[$i]}
} 

echo "去除注釋文件還有"${#file_path[@]}"個文件"

# 使用awk二維數(shù)組進行合并:
awk -v file_num=${#file_path[@]} -v exp_patten=$exp_patten ' 
    BEGIN{
        OFS="\t";
    }
    {
        # 每一個文件第一行是列名,而我們不需要合并列名,所以要NR>1
        # 然后以miRNA($1),文件ID(ARGIND),構建值為表達量($2)二位數(shù)組a[miRNA][exp].
        if(FNR>1 && exp_patten=="rpm"){a[$1][ARGIND]=$3;}
        if(FNR>1 && exp_patten=="reads"){a[$1][ARGIND]=$2;}
    }
    # 構建了425個數(shù)組后進行合并:
    END{
        for(i in a){    # 一維是miRNA,所以i就是miRNA
            printf "%s\t",i     #輸出miRNA
            j=1;        # 為了不改變文件順序所以使用漸加的方式循環(huán)
            while(j<file_num+1){        #循環(huán)輸出每個樣本中miRNA的表達量
                printf "%s\t",a[i][j];
                j=j+1;
            }
            print ""    #每一行加個換行
        }
    }' ${file_path[@]} > $out_path
#添加首行列名:
aaa=`echo  ${file_path[@]}|sed 's/ /\n/g'|awk 'BEGIN{FS="/";ORS="\t"}{print $2}'|awk 'BEGIN{printf "%s\t","miRNA"}{print}' -  `
sed -i "1i $aaa" $out_path
echo "成功生成去除注釋的$exp_patten模式的表達量矩陣文件:"$out_path
生成reads count作為表達量值的表達量矩陣文件exp_matrix_reads.tsv 的腳本:
../merge_except_anno.sh ../gdc_manifest.2017-05-26T16-02-11.963011.tsv "reads" ../exp_matrix_reads.tsv
生成reads_per_million作為表達量值的表達量矩陣文件exp_matrix_rpm.tsv 的腳本:
../merge_except_anno.sh ../gdc_manifest.2017-05-26T16-02-11.963011.tsv "rpm" ../exp_matrix_rpm.tsv

本期查看并去除了有annotations的樣本,并將剩余樣本進行了整合,得到了最終的兩個表達量矩陣文件,這為之后的差異表達分析及生存分析做好了準備.

更多原創(chuàng)精彩內(nèi)容敬請關注生信雜談

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哲银,更是在濱河造成了極大的恐慌,老刑警劉巖屁擅,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡粗截,警方通過查閱死者的電腦和手機耸三,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門乱陡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人仪壮,你說我怎么就攤上這事憨颠。” “怎么了积锅?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵爽彤,是天一觀的道長。 經(jīng)常有香客問我缚陷,道長适篙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任蹬跃,我火速辦了婚禮匙瘪,結果婚禮上,老公的妹妹穿的比我還像新娘蝶缀。我一直安慰自己丹喻,他們只是感情好,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布翁都。 她就那樣靜靜地躺著碍论,像睡著了一般。 火紅的嫁衣襯著肌膚如雪柄慰。 梳的紋絲不亂的頭發(fā)上鳍悠,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機與錄音坐搔,去河邊找鬼藏研。 笑死,一個胖子當著我的面吹牛概行,可吹牛的內(nèi)容都是我干的蠢挡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼业踏!你這毒婦竟也來了禽炬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤勤家,失蹤者是張志新(化名)和其女友劉穎腹尖,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伐脖,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡热幔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了晓殊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片断凶。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡伤提,死狀恐怖巫俺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肿男,我是刑警寧澤介汹,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站舶沛,受9級特大地震影響嘹承,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜如庭,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一叹卷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧坪它,春花似錦骤竹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至开瞭,卻和暖如春懒震,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嗤详。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工个扰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人葱色。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓递宅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子恐锣,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

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

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理茅主,服務發(fā)現(xiàn),斷路器土榴,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 本期介紹一個測序質(zhì)控的工具包:RSeQC包,它提供了一系列有用的小工具能夠評估高通量測序尤其是RNA-seq數(shù)據(jù)....
    生信雜談閱讀 20,611評論 4 46
  • 呂克.貝松說過:電影诀姚,不過是一片阿司匹林…… 你會發(fā)現(xiàn),到最后只有你一個人玷禽。 電影《碧海藍天》以不斷前進的波浪開篇...
    云淼淼閱讀 1,119評論 0 4
  • 1.做好充分準備赫段。凡事都應該做好準備工作,如果只是茫然的去實施矢赁,那么是基本上是要受挫的糯笙。不打無準備的戰(zhàn),凡事預則立...
    鴻運當頭168閱讀 211評論 0 0
  • 孤島種樹 聽雨看霧
    北畤閱讀 238評論 0 0