专栏首页生信技能树生物信息学技能面试题(第4题)-多个同样的行列式文件合并起来

生物信息学技能面试题(第4题)-多个同样的行列式文件合并起来

相信用过htseq-count的朋友都知道,它是分开对每个样本计算所有的基因表达量,所以会生成一个个独立的文件,我用perl脚本模仿它的结果如下:

$ head a.txt gene_1 178 gene_2 692 gene_3 486 gene_4 666 gene_5 395 gene_6 48 gene_7 926 gene_8 733 gene_9 660 gene_10 578

第一列是基因,第二列是该基因的counts值,共有a~z这26个样本的counts文件,需要合并成一个大的行列式,这样才能导入到R里面做差异分析,如果手工用excel表格做,当然是可以的,但是太麻烦,如果有500个样本,正常人都不会去手工做了,需要编程。 生成测试文件的代码如下:

#首先新建文件tmp.sh 输入这个代码:

perl -le '{print "gene_$_\t".int(rand(1000)) foreach 1..99}'

## 然后用perl脚本调用这个tmp.sh文件:

perl -e 'system(" bash tmp.sh >$_.txt") foreach a..z'

##这样就生成了a~z这26个样本的counts文件

用shell或者perl或者python,设置R语言都可以做,但是各有优缺点,而且如果每个样本的基因顺序并不一致,这时候你应该怎么做呢? 实际需求如下:https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE48213 里面有56个文件(ftp://ftp.ncbi.nlm.nih.gov/geo/s ... pl/GSE48213_RAW.tar),需要合并成一个表达矩阵,来根据cell-line的不同,分组做差异分析。 paper是:https://www.ncbi.nlm.nih.gov/pubmed/24176112 输出的表达矩阵,如下所示:

先给一下shell结合R语言的做法:

## 首先在GSE48213_RAW目录里面生成tmp.txt文件

awk '{print FILENAME"\t"$0}' * |grep -v EnsEMBL_Gene_ID >tmp.txt

## 然后把tmp.txt导入R语言里面用reshape2处理即可!

setwd('tmp/GSE48213_RAW/')

a=read.table('tmp.txt',sep = '\t',stringsAsFactors = F)

library(reshape2)

fpkm <- dcast(a,formula = V2~V1)

本文分享自微信公众号 - 生信技能树(biotrainee),作者:Jimmy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-02-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【资源分享】生物信息学编程实战

    生信技能树
  • 神技能-自动化批量从PDF里面提取表格

    很简单,就是参考文献的28个免疫基因集拿出来,对从GEO下载的表达矩阵进行ssGSEA分析的结果热图呈现即可,比较难的应该是理解那28个免疫基因集,并且拿到每个...

    生信技能树
  • fasterq快速转换sra文件到fastq测序数据

    这个软件用起来跟fastq区别不大,主要区别在于 -e 这个指令,可以指定线程数。

    生信技能树
  • tmp临时文件目录自动清理

    Linux操作系统的/tmp目录保存临时文件,那么这个目录下的临时文件究竟会保存多久,何时被清理,通过什么方式(哪个服务)来维护清理工作呢?

    Erwin
  • Oracle函数和存储过程

    提莫队长
  • 麻将算法

    麻将胡牌算法(不带赖子)(2天) 编码:(假设一副牌只有筒子 1表示1筒   2表示2筒。。。。 9表示9筒) 要求: 1)七对算法(判断14张牌是否是7对) ...

    Gxjun
  • Leetcode Golang 70. Climbing Stairs.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/arti...

    anakinsun
  • 1078 字符串压缩与解压 (20 分)

    压缩的情况,我们根据前一个字符与当前字符进行对比,将相同且连续的字符进行计数,当出现第一个不相同的时候结束,并且同时对前一个字符进行输出。

    可爱见见
  • Python实现水仙花数

    水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂...

    py3study
  • 1. C语言的第一个程序

    (。・∀・)ノ゙嗨!大家好,我是呆博~很开心可以在这里给大家分享我的 C 语言学习笔记~

    谭庆波

扫码关注云+社区

领取腾讯云代金券