整合gdc-client批量下載的文件

在我前面寫過的如何批量下載TCGA里的數(shù)據(jù)(gdc-client方法)文章里,只涉及了如何批量下載TCGA數(shù)據(jù)膜廊,但是對于下載下來的那些文件沒有整理乏沸。為什么呢?因為我懶爪瓜。蹬跃。。凡是用gdc-client下載過文件的小伙伴們一定注意到铆铆,你下載的幾百個count文件蝶缀,或者是FPKM文件,都是一個文件在一個文件夾里薄货,而且還是壓縮文件翁都,就會很頭疼,那么如何把這幾百個文件整合到一個文件里呢谅猾?

下載完的數(shù)據(jù)長什么樣柄慰?

批量下載后的數(shù)據(jù),你會看到一長溜的税娜,并且每一個文件夾里是個壓縮的文件(這里我下載了546個文件):

怎么把這些文件夾里的壓縮文件都提取到一個文件夾里坐搔?并且整合到同一個txt文件里?

這里參考了手把手學(xué)會TCGA數(shù)據(jù)分析這篇文章的代碼敬矩,當(dāng)然你要根據(jù)自己的實際情況更改代碼概行,不要無腦的全盤copy。

#在你這些存儲的幾百個文件的文件夾里谤绳,新建一個文件夾
> dir.create('00000000000000000merge')
#計算當(dāng)前路徑里文件夾的數(shù)目占锯,這里理論上應(yīng)該是我546個文件夾+新建的1個
> i <- list.dirs()
#打印所有文件夾的名稱
> i

然而這里有個問題,打印出來的文件夾多出一個缩筛,這是你的當(dāng)前文件夾消略,這里的編號也涉及到后面的代碼需要修改(這一步你也需要注意,因為我參考的那篇文章里沒有出現(xiàn)這種情況瞎抛,所以這就是我說的艺演,為什么要具體情況具體分析):

  [1] "."                                           "./00000000000000000merge"                   
  [3] "./003a33f3-3658-4e60-967c-dc97b83c105c"      "./0097e580-5a77-4cc2-b43e-99df1eb9fad0"     
  [5] "./0133b9e4-884c-45f8-8bd0-e796d7058012"      "./031eaab8-67fc-484c-ac4c-2678758ced23"     
  [7] "./03f33c10-915f-4523-8871-1482aaff3549"      "./04303348-e957-474f-9667-0f36ee8cbbf6"     
  [9] "./04527ea0-e6b1-4bbc-8b30-983bb193779a"      "./0494838d-60cc-4bb8-8edd-f53f11238e51"     
 [11] "./069ded62-6c9d-462c-8ae7-dde7437e5d7d"      "./06a08433-a734-4fb6-b300-e4bb50209bca"     
 [13] "./06f89bc6-2e97-4bfa-989c-4934e7f28f05"      "./07458e60-4784-4ba5-963c-a9acb12444e0"     
..........

所以現(xiàn)在是546+1+1個文件夾。下面的代碼你需要注意修改了:

# 把下載的所有文件夾copy到你新建的那個里面,這里注意順序胎撤,上面那個"."文件夾編號是1晓殊,我新建的是2,其他下載的都是編號3以后的伤提,所以這里應(yīng)該是:
> m = i[3:548]
> for(n in m){
  x.path=paste(n,list.files(n),sep='/')
  file.copy(x.path,'./00000000000000000merge',recursive = T)}

復(fù)制后巫俺,進入你新建的文件夾里:

> setwd("/media/yanfang/FYWD/TCGA_data_analysis/TCGA_HNSCC/00000000000000000merge")
#再次查看有多少個文件在里面
> i <- list.files()
> i

現(xiàn)在所有的壓縮文件就都在你新建的文件夾里了:

然后要合并這些壓縮文件:

# merge 
> x_merge=NULL
> for(n in i){
  x=read.delim(n,col.names = c('ID',substr(n,1,9)))
  if(is.null(x_merge)){ x_merge=x  }  else{  x_merge=merge(x_merge,x,by='ID')  }
}
> rownames(x_merge) <- x_merge$ID

有人可能會疑惑,這不是還沒解壓縮么肿男?沒關(guān)系介汹,R可以直接讀取壓縮文件。運行后舶沛,View一下你的x_merge這個矩陣嘹承,這個矩陣就是合并了500多個壓縮文件的文件:

這是開頭幾行
這是最后幾行

這里注意!H缤ァ叹卷!在參考的文章里,她的代碼是前5行是測序信息坪它,而我的矩陣是前2行和后3行是測序信息骤竹!所以我需要刪除的是第1,2行哟楷,和最后3行:

> x_reduce =x_merge[-(1:2),]
> x_reduce_2 =x_reduce[-(60483:60485),]
#上面我們看到第一列和行名重復(fù)了瘤载,刪掉
> x_reduce_3 =x_reduce_2[,-1]#刪除第一列

拿到了count矩陣,覺得哪里不對頭卖擅。鸣奔。。發(fā)現(xiàn)列名很奇怪嗎惩阶?樣品名都很奇怪挎狸,現(xiàn)在讓我們復(fù)習(xí)一下TCGA數(shù)據(jù)庫的樣品名是什么樣的:

(參考:TCGA數(shù)據(jù)庫中臨床樣品編號詳解(Barcode)

TCGA下載的數(shù)據(jù)編號怎么看?

一張網(wǎng)上很火的圖片:


TCGA:Project 項目名稱
02:組織來源代碼断楷。完整的組織來源代碼查詢可看這里:here
0001:科研參與者
01C:樣本類型锨匆,前面的數(shù)字1-9為腫瘤,10-29為正扯玻或癌旁樣本恐锣。字母代表質(zhì)量,A為佳舞痰,B次之(比如福爾馬林固定石蠟包埋組織)土榴,C更次之。一般用A响牛。
01D:組織部位玷禽,同屬于一個患者組織的不同部分的順序編號赫段,同一組織會分割為100-120mg的部分,分別使用矢赁。D為分析的分子類型糯笙。D是DNA的意思。還有其他對應(yīng)關(guān)系撩银,可看這里:here
0182:制板的順序给涕,值大表示制板越晚。即為去除batch effect時的batch依據(jù)蜒蕾。
01:測序或鑒定中心編碼.

怎么把我的樣品名也改成TCGA標(biāo)準(zhǔn)的命名法呢稠炬?

這里你還需要下載一個東西焕阿,在你最開始下載的頁面里咪啡,你的count是點擊Download下載的,這時你還需要點擊它左邊的“Metadata”暮屡,那里面儲存了和你的count對應(yīng)的各種id撤摸,各種測序信息:

#讀取metadata的信息
> library(rjson)
> x = fromJSON(file='metadata.cart.2020-04-17.json')
> n = ncol(x_reduce_3)
> id=rep(0,n)
> sample_id = rep(0,n)
> for(i in 1:n){
  id[i]=x[[i]]$submitter_id
  sample_id[i]=x[[i]]$associated_entities[[1]]$entity_submitter_id
}
> sample_matrix = data.frame(id=id,sample_id=sample_id)
> sample_info = data.frame(id=substr(id,1,9),sample_id)
#把metadata里的TCGA標(biāo)準(zhǔn)的樣品名稱賦給count矩陣?yán)锏牧忻?> colnames(x_reduce_3)=sample_info$sample_id
> xb=rownames(x_reduce_3)
> xc <- gsub("\\.(\\.?\\d*)","",xb)
> rownames(x_reduce_3)= xc
#看一下count矩陣的行名是不是基因,列名是不是樣品名
> rownames(x_reduce_3)
> colnames(x_reduce_3)
#保存矩陣
> write.csv(x_reduce_3,file="TCGA_original_counts.csv")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載褒纲,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者准夷。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市莺掠,隨后出現(xiàn)的幾起案子衫嵌,更是在濱河造成了極大的恐慌,老刑警劉巖彻秆,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件楔绞,死亡現(xiàn)場離奇詭異,居然都是意外死亡唇兑,警方通過查閱死者的電腦和手機酒朵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扎附,“玉大人蔫耽,你說我怎么就攤上這事×粢梗” “怎么了匙铡?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長碍粥。 經(jīng)常有香客問我鳖眼,道長,這世上最難降的妖魔是什么即纲? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任具帮,我火速辦了婚禮博肋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蜂厅。我一直安慰自己匪凡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布掘猿。 她就那樣靜靜地躺著病游,像睡著了一般。 火紅的嫁衣襯著肌膚如雪稠通。 梳的紋絲不亂的頭發(fā)上衬衬,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音改橘,去河邊找鬼滋尉。 笑死,一個胖子當(dāng)著我的面吹牛飞主,可吹牛的內(nèi)容都是我干的狮惜。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼碌识,長吁一口氣:“原來是場噩夢啊……” “哼碾篡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起筏餐,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤开泽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后魁瞪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體穆律,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年佩番,在試婚紗的時候發(fā)現(xiàn)自己被綠了众旗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡趟畏,死狀恐怖贡歧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情赋秀,我是刑警寧澤利朵,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站猎莲,受9級特大地震影響绍弟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜著洼,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一樟遣、第九天 我趴在偏房一處隱蔽的房頂上張望而叼。 院中可真熱鬧,春花似錦豹悬、人聲如沸葵陵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脱篙。三九已至,卻和暖如春伤柄,著一層夾襖步出監(jiān)牢的瞬間绊困,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工适刀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留秤朗,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓蔗彤,卻偏偏與公主長得像川梅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子然遏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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