数据处理小技巧提取cellranger质控信息需仔细
最初的需求
运行完的cellranger,多个样本会输出多个结果文件。往往第一步我们需要查看下质控信息。一般是下载结果文件夹下的"web_summary.html" 在浏览器查看。但是样本多的时候一个一个点开查看难免觉得不方便,那么有更快的查看方法吗?
当然是有的,其实我们也可以在Linux上直接查看"metrics_summary.csv" 文件的信息。塔河"web_summary.html" 上的信息是对应的,只是文件格式不同。
了解了这一点,那么我们现在只需要实现才能从"metrics_summary.csv"批量提取我们需要的信息即可 通常提取我所用的代码
要提取的文件信息如下(这是6个样本数据的结果文件):
观察以上信息,我们只需提取前四列数据即可,一般来说还是比较好实现的,代码如下: ls Patient*/outs/metrics_summary.csv|while read id ;do echo ${id}|awk -F "/" "{print $1}" |paste - <(cat ${id} |awk -F """ "BEGIN{" "} NR>1{print $2,$4,$6,$8}") ;done |awk "BEGIN{print "filename"" ""Estimated_Number_of_Cells"" " "Mean_Reads_per_Cell"" ""Median_Genes_per_Cell"" ""Number_of_Reads"}{print $0}"
代码思路 ls */outs/metrics_summary.csv|while read id ;do ;done 匹配所有样本结果循环读入 echo ${id}|awk -F "/" "{print $1}" 根据自己的路径信息,匹配文件夹名作为第一列,方便对应查看样本信息 cat ${id} |awk -F """ "BEGIN{" "} NR>1{print $2,$4,$6,$8}" 已双引号为分割,提取我们所需要的信息,即2,4,6,8列 paste - <() 粘贴两部分的信息。- 占位符,输出管道前面的内容。< 反向输入,输出括号内代码的信息 awk "BEGIN{print "filename"" ""Estimated_Number_of_Cells"" " "Mean_Reads_per_Cell"" ""Median_Genes_per_Cell"" ""Number_of_Reads"}{print $0}" 添加我们需要信息的列名
这样就可以很方便的查看质控结果了。通常这样是没有问题的,但是也有例外情况,如果数值过小,这个就会出错。 遇到问题
比如下面这个数据的情况
第一个样本结果如下:
最开始只关注了一个样本,提取信息代码同上 ls HRR*/outs/metrics_summary.csv|while read id ;do echo ${id}|awk -F "/" "{print $1}" |paste - <(cat ${id} |awk -F """ "BEGIN{" "} NR>1{print $2,$4,$6,$8}")|awk "BEGIN{OFS=" "} {print $0}" - ;done |awk "BEGIN{print "filename"" ""Estimated_Number_of_Cells"" " "Mean_Reads_per_Cell"" ""Median_Genes_per_Cell"" ""Number_of_Reads"}{print $0}"
会发现,有些数值很不正常。对照"web_summary.html" ,会发现这些数值是错误的。那么问题出在哪里了呢。
打开查看原文件信息:
会发现,csv文件中有些数值因为没有超过位数,是没有引号的。
而提取信息的时候分割只采用了引号分割 ,所以,分割提取信息出错。 解决办法方法一
合并所有样本质控信息到一个csv文件,然后下载到本地用excel查看。如下操作 head -n1 HRR002909/outs/metrics_summary.csv |cat - <(cat HRR*/outs/metrics_summary.csv |awk "{if(NR%2==0){print $0}}") > ~/tmp.csv
方法二
尝试修改上面出差的代码,区分单双引号,如下: ls HRR*/outs/metrics_summary.csv|while read id ; do echo ${id} |awk -F "/" "{print $1}" | paste - <(cat ${id}| awk -F """ "/".*"/ {gsub(",","");print $0}"|sed "s/^"//"|sed "s/""/ /g ; s/"/ /g" |awk "BEGIN{OFS=" "} {print $1,$2,$3,$4}" );done |awk "BEGIN{print "filename"" ""Estimated_Number_of_Cells"" " "Mean_Reads_per_Cell"" ""Median_Genes_per_Cell"" ""Number_of_Reads"}{print $0}"
代码思路:
只需想办法,正确区分数值分割即可。 cat ${id}| awk -F """ "/".*"/ {gsub(",","");print $0}" 指定以双引号为分割awk -F""" ; /".*"/ 用正则表达式匹配有两个双引号的行 ; gsub(",","") 把两个引号中间的字符串中的逗号替换为空此时剩下的信息就只有无引号,一个双引号,或者两个双引号分割了 sed "s/^"//" 把每行开头的双引号替换为空,目的是使与无双引号的数值位置对齐。如图,剩下的就只剩下一个双引号分割或者两个双引号分割的情况了sed "s/""/ /g ; s/"/ /g" 把以引号分割的替换为以tap分割awk "BEGIN{OFS=" "} {print $1,$2,$3,$4}" 以tap分割提取我们所需的信息。即1,2,3,4列后续思路同上
最终输出结果如下: filename Estimated_Number_of_Cells Mean_Reads_per_Cell Median_Genes_per_Cell Number_of_Reads HRR002909 5845 104477 1063 610670836 HRR002910 3612 147165 970 531559371 HRR002911 2340 472190 863 1104925710 HRR002912 11872 48061 564 570580261 HRR002913 3965 135269 1032 536341442 HRR002914 571 1084502 888 619250370 HRR002915 5912 106701 896 630814298 HRR002916 8517 75243 907 640845538 HRR002917 7815 88231 1092 689528242 HRR002918 9639 60181 875 580085959 HRR002919 7531 81827 1038 616240084
春日限定紫叶李,一起云游春光里阳春三月,春色烂漫伴随着和煦的春风红叶李也悄然爬上了枝头花瓣洁白,花蕊浅粉紫红色的枝干和叶片衬托着星星瓣儿的小花别致又亮丽小编这就带你一起云赏花紫叶李红叶李又叫紫叶李是蔷薇科李属落
去看鄂霍次克海木南好多年前在北京没事就到日本玩的那段日子,总想着看看,从羽田机场到底能飞多少个日本国内的犄角旮旯?于是就在全日空的网站上看到了鄂霍次克,这么一个不日本的名字。但阴差阳错总是没成行
三分钟让你搞懂中俄陆路(满洲里)出入境心中有梦北京莫斯科我那超越了9288公里的国际列车之旅(6)终于登上k19了,哈哈。今天一定得说出入境了,有点担心从上车说起,叨叨叨又整一大篇还到不了出入境呢,提醒自己随时记住踩刹
注意!这些养胃误区别上当认清3个养胃误区喝小米粥养胃真不真?喝粥养胃法并不适合所有人。对于有呃逆呕吐反酸嗳气等症状胃气上逆人群来说,食用小米粥等粥类反而会促进胃酸分泌加重反流,可能导致严重反酸,对胃造成进
随着年龄增长如何保护心脏健康?50岁起,做好这5件事很重要年龄的增长会影响我们身体的每一部分,而心脏受到的影响首当其冲。研究数据表明,随着年龄的增长,患心血管疾病的几率就会越高,60岁以上的人群,大约有20的男性和10的女性有心血管疾病的
一口气可以吃3个的小包子,又白又胖馅料足,自己在家做的才叫香在传统的面点中,包子饺子具有举足轻重的地位。这不仅仅是历史悠久的问题,最主要的还是它们的口感非常符合中国人的胃口。今天就拿来推荐一款百吃不腻的小包子,大小刚刚好,可以满足不同人群的
保存香椿别用盐腌,教你农家土办法,从春吃到冬也没问题,特新鲜各位读者朋友们大家好,感谢阅读我分享的美食文章,经验和大家一起共享,今天我要和大家分享的内容是保存香椿别用盐腌,教你农家土办法,从春吃到冬也没问题,特新鲜!有种菜被称为春天第一鲜,
头发粗不代表更坚韧?图中展示了当人类毛发发生断裂时皮质层中的蛋白质纤维分层情况,表明其断裂模式为剪切断裂图片来源WenYang研究人员通过多种不同哺乳动物进行了关于毛发强度的研究,他们发现,尽管大象的
瓦兰2612,特雷杨2110,鹈鹕胜老鹰排名反超湖人升至第九岌岌可危,鹈鹕反超湖人升至西部第九,湖人掉到第十,仅领先排名第十一的马刺三个胜场,湖人近来状态不佳,恐遭掉出附加赛资格。今日鹈鹕在客场挑战亚特兰大老鹰队,最终依靠中锋瓦兰的出色发挥
入心的经典短句,简单干净,百看不厌一小时候词不达意,长大了,却总是言不由衷。二你得有足够的实力,你的原则和底线才会被人尊重。三你应该乐观起来,这世界有朝夕与四季,有理想与远方,还有火锅和啤酒。四人这种东西啊,不管外
说出来你都不信,安卓每年要给苹果交1200亿保护费你知道一个亿具体有多少吗?如果以现在的百元大钞计算,重量高达1。15吨,以极客君3000块的工资来算,得不吃不喝从春秋时期开始打工。说出来你可能不信,安卓老大哥谷歌每一年都要向苹果