#TCGA系列#TCGA样本中的注释文件处理

前面几期已经完成了从TCGA表达谱/临床数据下载处理整合,本次对样本中的有annotations.txt的进行分析处理

在之前下载的表达文件中,可能已经有人注意到有些样本文件夹中还有个annotations.txt文件.

先看看这样的annotations文件有多少:

# 查看annotations.txt的文件的数量
ls ./*/annotations.txt|wc -l   # 结果是23

发现有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,所属范围,分类,创建时间,状态,注释信息.前几列都不重要,重要的是最后一列注释信息也就是notes,23个样本的注释信息如下:

23个annotations.txt的注释
这些notes大概包括以下几方面的注释:
  1. 属于肝胆混合样本,适合在胆管癌中研究,不适合在肝癌中研究.
  2. 在TCGA统计前已经经历过治疗.
  3. 先前有结肠癌 或肾细胞癌 或膀胱癌等癌症,接受或没有接受治疗,或者治疗史不明
  4. 其他...
通过上面的说明可以看出这23个样本都不是正常的肝癌样本,为了防止这23个特例在分析过程中产生不可控的因素,而且相对于整体样本数量425来说,去除这23个样本也不构成影响.所以我们去除表达谱中这23个样本.然后再合并为表达量矩阵.
之前的讲过的内容(TCGA基因/miRNA表达谱数据整合​)已经可以生成miRNA表达谱矩阵文件.通过对之前的那个脚本修改,得到的下面这个脚本会跳过有annotaions的样本然后合并为表达量矩阵.
将这个脚本存为merge_except_anno.sh.这个脚本需要三个参数, 第一个是manifest文件路径,第二个是'reads'或'rpm' ,第三个是输出文件路劲.
#! /bin/bash
#需要三个参数,$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后,使用数组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二维数组进行合并:
awk -v file_num=${#file_path[@]} -v exp_patten=$exp_patten ' 
    BEGIN{
        OFS="\t";
    }
    {
        # 每一个文件第一行是列名,而我们不需要合并列名,所以要NR>1
        # 然后以miRNA($1),文件ID(ARGIND),构建值为表达量($2)二位数组a[miRNA][exp].
        if(FNR>1 && exp_patten=="rpm"){a[$1][ARGIND]=$3;}
        if(FNR>1 && exp_patten=="reads"){a[$1][ARGIND]=$2;}
    }
    # 构建了425个数组后进行合并:
    END{
        for(i in a){    # 一维是miRNA,所以i就是miRNA
            printf "%s\t",i     #输出miRNA
            j=1;        # 为了不改变文件顺序所以使用渐加的方式循环
            while(j<file_num+1){        #循环输出每个样本中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的样本,并将剩余样本进行了整合,得到了最终的两个表达量矩阵文件,这为之后的差异表达分析及生存分析做好了准备.

更多原创精彩内容敬请关注生信杂谈

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 本期介绍一个测序质控的工具包:RSeQC包,它提供了一系列有用的小工具能够评估高通量测序尤其是RNA-seq数据....
    生信杂谈阅读 19,308评论 4 45
  • 吕克.贝松说过:电影,不过是一片阿司匹林…… 你会发现,到最后只有你一个人。 电影《碧海蓝天》以不断前进的波浪开篇...
    云淼淼阅读 1,089评论 0 4
  • 1.做好充分准备。凡事都应该做好准备工作,如果只是茫然的去实施,那么是基本上是要受挫的。不打无准备的战,凡事预则立...
    鸿运当头168阅读 200评论 0 0
  • 孤岛种树 听雨看雾
    北畤阅读 229评论 0 0