对于评估单细胞捕获率,通常需要结合群体细胞技术,在同一区域查看单细胞信号捕获情况,直接上图了解一下。
对于这种图如何来做的呢?接下来将一步一步复现图片生成的过程。
首先需要选取合适的选区,比如在管家基因区域,或者你研究的这类细胞比较高开放或者高信号富集的区域。
选择好对应的区域,按照选择区域的宽度,设定合适的窗口大小对出图的视觉效果很重要,对于200kb的区域可以选择600-800bp窗口较适宜。
1、简单粗暴生成固定窗口的区域:1
seq -w 600000 600 800000 |awk '{print "chr1""\t"$1"\t"$1+559"\t""bin_"NR"\t""600"}' > region_bin.bed
2、利用bedrolls 工具可以对区域窗口检索多少reads覆盖在这个区域。1
bedtools intersect -a region_bin.bed -b read1sample.bed -c -bed |awk '{print \$4\"\\\t\"\$5\"\\\t\"\$6}' > read1sample_count.bed
3、将每个cell对应的区域count情况合并成一个矩阵1
paste 工具或者perl 脚本可以轻松实现,针对相同列索引,多行合并
4、利用Rpheatmap包可以轻松产生信号图,但默认情况图片较差,需要进一步的调整,下边为个性化R代码实现1
2
3
4
5
6
7
8
9
10
11
12
13
14library(pheatmap)
region<- read.table(file = "count.xls",header = T)
region<- region[order(region[,1]),]
rownames(region)<- region[,1]
region<-region[,-1]
region<-region[,-1]
region<- t(region)
region[region>2]=2
bk <-seq(0,3,by=1)
pheatmap(region,cluster_cols = FALSE,cluster_rows = FALSE,
scale = "none",
color = colorRampPalette(colors = c("white","red"))(length(bk)),
legend_breaks=seq(0,3,1),
breaks=bk)
运行完这个就可以生成此类草图,这是真实的reads在信号区域的富集情况。
其次在IGV上调取个性化区域,并将该区域保存为svg格式,便于后序在AI上编辑合并。
AI编辑中:
两部分初步合并:
逐步规范化:
收尾完工:
AI对于后续的图片处理至关重要,图片规整美化是一个细致性的工作,没有最好,只有更好。