前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何优雅的给单细胞转录组fastq文件改名

如何优雅的给单细胞转录组fastq文件改名

作者头像
生信技能树
发布2023-02-27 21:39:37
1.4K0
发布2023-02-27 21:39:37
举报
文章被收录于专栏:生信技能树

一般来说,10X技术的单细胞转录组每个样品最好是有3个fq文件,分别是I1,R1,R2,其中I1理论上也可以抛弃,但是呢,很多情况下,我们同一个样品会有多个R1,R2,因为测序的 时候的上机的安排:

就面临改名的问题。比如:

代码语言:javascript
复制
touch {A..X}_S1_L001_R1_001.fastq.gz {A..X}_S1_L001_R2_001.fastq.gz
ls *gz|cat |head

A_S1_L001_R1_001.fastq.gz
A_S1_L001_R2_001.fastq.gz
B_S1_L001_R1_001.fastq.gz
B_S1_L001_R2_001.fastq.gz
C_S1_L001_R1_001.fastq.gz
C_S1_L001_R2_001.fastq.gz
D_S1_L001_R1_001.fastq.gz
D_S1_L001_R2_001.fastq.gz

这个时候假设我们的 A,B,C,D四个fq文件其实是同一个病人的10x,就需要改名;

首先,我们使用如下所示的R代码来模拟的一个情况是:6个病人的样品,但是有24个fq文件:

代码语言:javascript
复制
df = data.frame(patients=paste0('p',rep(1:6,each=4)),
           samples=LETTERS[1:24])
df

每个fq文件都是独立的:

代码语言:javascript
复制
> df
   patients samples
1        p1       A
2        p1       B
3        p1       C
4        p1       D
5        p2       E
6        p2       F
7        p2       G
8        p2       H
9        p3       I
10       p3       J
11       p3       K
12       p3       L

我们其实是需要改名的, 代码如下所示:

代码语言:javascript
复制

s=0
p='p1'
apply(df,1,function(x){
  raw=paste0(x[2],'_S1_L001_R1_001.fastq.gz')
 # ifelse(x[1]==p,s=s+1,s=0)
  if(x[1]==p){
    s<<-s+1
  }else{
    s <<- 1
    p <<- x[1]
  }
  print(p)
  new=paste0(x[1],'_S',s,'_L001_R1_001.fastq.gz')
  paste0('mv ',raw," ", new)
})

可以看到,修改名字很成功:

代码语言:javascript
复制
[1] "mv X_S1_L001_R1_001.fastq.gz p6_S4_L001_R1_001.fastq.gz"
 [1] "mv A_S1_L001_R1_001.fastq.gz p1_S1_L001_R1_001.fastq.gz"
 [2] "mv B_S1_L001_R1_001.fastq.gz p1_S2_L001_R1_001.fastq.gz"
 [3] "mv C_S1_L001_R1_001.fastq.gz p1_S3_L001_R1_001.fastq.gz"
 [4] "mv D_S1_L001_R1_001.fastq.gz p1_S4_L001_R1_001.fastq.gz"
 [5] "mv E_S1_L001_R1_001.fastq.gz p2_S1_L001_R1_001.fastq.gz"
 [6] "mv F_S1_L001_R1_001.fastq.gz p2_S2_L001_R1_001.fastq.gz"
 [7] "mv G_S1_L001_R1_001.fastq.gz p2_S3_L001_R1_001.fastq.gz"
 [8] "mv H_S1_L001_R1_001.fastq.gz p2_S4_L001_R1_001.fastq.gz"
 [9] "mv I_S1_L001_R1_001.fastq.gz p3_S1_L001_R1_001.fastq.gz"
[10] "mv J_S1_L001_R1_001.fastq.gz p3_S2_L001_R1_001.fastq.gz"
[11] "mv K_S1_L001_R1_001.fastq.gz p3_S3_L001_R1_001.fastq.gz"
[12] "mv L_S1_L001_R1_001.fastq.gz p3_S4_L001_R1_001.fastq.gz"

把同一个样品会有多个R1,R2,修改为同样的规则,这样后续跑单细胞转录组定量流程就很容易啦。

学徒专业

使用纯shell脚本完成这个改名操作:

代码语言:javascript
复制
touch {A..X}_S1_L001_R1_001.fastq.gz {A..X}_S1_L001_R2_001.fastq.gz

26个fq文件的样品,对应的是6个病人,所以修改名字从S字符串开始递增即可。可以仔细观察fastq文件的名字,就会发现规律,如果以下划线为分隔符,那么

  • 第2列是S开头可以递增
  • 第3列是L开头,可以递增
  • 第五列是R1,R1,I1这样的3种情况

正常走cellranger的定量流程即可,代码我已经是多次分享了。参考:

差不多几个小时就可以完成全部的样品的cellranger的定量流程。基础知识非常重要,我们在单细胞天地多次分享过cellranger流程的笔记(2019年5月),大家可以自行前往学习,如下:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 学徒专业
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档