一般来说,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的定量流程即可,代码我已经是多次分享了。参考:
- 10X单细胞转录组原始测序数据的Cell Ranger流程(仅需800元)
- 10X的单细胞转录组原始数据也可以在EBI下载
- 一个10x单细胞转录组项目从fastq到细胞亚群
- 一文打通单细胞上游:从软件部署到上游分析
- PRJNA713302这个10x单细胞fastq实战
- 一次曲折且昂贵的单细胞公共数据获取与上游处理
- 只能下载bam文件的10x单细胞转录组项目数据处理
- 不知道10x单细胞转录组样品和fastq文件的对应关系
- 10X单细胞转录组测序数据的 SRA转fastq踩坑那些事
- 10x的单细胞转录组fastq文件的R1和R2不能弄混哦
差不多几个小时就可以完成全部的样品的cellranger的定量流程。基础知识非常重要,我们在单细胞天地多次分享过cellranger流程的笔记(2019年5月),大家可以自行前往学习,如下:
- 单细胞实战(一)数据下载
- 单细胞实战(二) cell ranger使用前注意事项
- 单细胞实战(三) Cell Ranger使用初探
- 单细胞实战(四) Cell Ranger流程概览
- 单细胞实战(五) 理解cellranger count的结果