R-loop数据分析之R-ChIP(样本间BAM比较和可视化)
样本间相关性评估
上一步得到各个样本的BAM文件之后,就可以在全基因组范围上看看这几个样本之间是否有差异。也就是先将基因组分成N个区间,然后用统计每个区间上比对上的read数。
脚本scripts/07.genome_bin_read_coverage.sh
如下
#!/bin/bashset -e
set -u
set -o pipefailsamples=${1?missing sample file}
chromsize=${2:-index/hg19.chrom.sizes}
size=${3:-3000}
ALIGN_DIR="analysis/2-read-align"
COV_DIR="analysis/3-genome-coverage"mkdir -p ${COV_DIR}exec 0< $sampleswhile read sample
dobedtools makewindows -g $chromsize -w $size | \bedtools intersect -b ${ALIGN_DIR}/${sample}.flt.bam -a - -c -bed > ${COV_DIR}/${sample}.ReadsCoverage
done
准备一个输入文件存放待处理样本的前缀,然后运行脚本bash scripts/07.genome_bin_read_coverage.sh samples_rep.txt
HKE293-D210N-Input-Rep1
HKE293-D210N-Input-Rep2
HKE293-D210N-Input-Rep3
HKE293-D210N-V5ChIP-Rep1
HKE293-D210N-V5ChIP-Rep2
HKE293-D210N-V5ChIP-Rep3
最后将得到的文件导入到R语言中进行作图,使用的是基础绘图系统的光滑散点图(smoothScatter)。
files_list <- list.files("r-chip/analysis/3-genome-coverage","ReadsCoverage")
files_path <- file.path("r-chip/analysis/3-genome-coverage",files_list)input_rep1 <- read.table(files_path[1], sep='\t')
input_rep2 <- read.table(files_path[2], sep='\t')
input_rep3 <- read.table(files_path[3], sep='\t')
chip_rep1 <- read.table(files_path[4], sep='\t')
chip_rep2 <- read.table(files_path[5], sep='\t')
chip_rep3 <- read.table(files_path[6], sep='\t')pw_plot <- function(x, y, xlab="x",ylab="y", ...){log2x <- log2(x)log2y <- log2(y)smoothScatter(log2x,log2y,cex=1.2,xlim=c(0,12),ylim=c(0,12),xlab=xlab,ylab=ylab)text(3,10,paste("R = ",round(cor(x,y),2),sep=""))
}par(mfrow=c(2,3))
pw_plot(chip_rep1[,4], chip_rep2[,4],xlab = "Rep 1 (Log2 Tag Counts)",ylab = "Rep 2 (Log2 Tag Counts)")pw_plot(chip_rep1[,4], chip_rep3[,4],xlab = "Rep 1 (Log2 Tag Counts)",ylab = "Rep 2 (Log2 Tag Counts)")pw_plot(chip_rep2[,4], chip_rep3[,4],xlab = "Rep 1 (Log2 Tag Counts)",ylab = "Rep 2 (Log2 Tag Counts)")pw_plot(input_rep1[,4], input_rep2[,4],xlab = "Rep 1 (Log2 Tag Counts)",ylab = "Rep 2 (Log2 Tag Counts)")pw_plot(input_rep1[,4], input_rep3[,4],xlab = "Rep 1 (Log2 Tag Counts)",ylab = "Rep 3 (Log2 Tag Counts)")pw_plot(input_rep2[,4], input_rep3[,4],xlab = "Rep 2 (Log2 Tag Counts)",ylab = "Rep 3 (Log2 Tag Counts)")
这种多个BAM文件之间相关性衡量,其实也可以用
deepTools
的plotCorrelation
画出来,但是我觉得应该没有R语言画 的好看。
BigWig可视化
由于同一个样本间的BAM文件具有很强的相关性,因此可以将这些样本合并起来转换成bigwig格式,这样子在基因组浏览器(例如IGV, UCSC Browser, JBrowse)上方便展示。
如下的代码的目的就是先合并BAM,然后转换成BigWig,拆分成正链和反链进行保存
#!/bin/bashset -e
set -u
set -o pipefailsamples=${1?please provied sample file}
threads=${2-8}
bs=${3-50}ALIGN_DIR="analysis/2-read-align"
BW_DIR="analysis/4-normliazed-bw"mkdir -p $BW_DIRexec 0< $samples
cd $ALIGN_DIRwhile read sample
dobams=$(ls ${sample}*flt.bam | tr '\n' ' ')if [ ! -f ../$(basename ${BW_DIR})/${sample}.tmp.bam ]; thenecho "samtools merge -f -@ ${threads} ../$(basename ${BW_DIR})/${sample}.tmp.bam $bams &&samtools index ../$(basename ${BW_DIR})/${sample}.tmp.bam" | bashfi
donecd ../../
exec 0< $samplescd ${BW_DIR}
while read sample
dobamCoverage -b ${sample}.tmp.bam -o ${sample}_fwd.bw -of bigwig \--filterRNAstrand forward --binSize ${bs} --normalizeUsing CPM --effectiveGenomeSize 2864785220 \--extendReads 150 -p ${threads} 2> ../log/${sample}_fwd.logbamCoverage -b ${sample}.tmp.bam -o ${sample}_rvs.bw -of bigwig \--filterRNAstrand reverse --binSize ${bs} --normalizeUsing CPM --effectiveGenomeSize 2864785220 \--extendReads 150 -p ${threads} 2> ../log/${sample}_rvs.logrm -f ${sample}.tmp.bam ${sample}.tmp.bam.bai
done
得到的BW文件你可以在IGV上初步看看,比如说检查下文章Figure 1(E)提到的CIRH1A基因
发表文章时肯定不能用上图,我们可以用R的Gviz
进行展示下
library(Gviz)#下面将scale等track写入tracklist
tracklist<-list()
itrack <- IdeogramTrack(genome = "hg19", chromosome = 'chr16',outline=T)
tracklist[["itrack"]]<-itrack# 读取BigWig
bw_file_path <- "C:/Users/DELL/Desktop/FigureYa/R-ChIP/"
bw_file_names <- list.files(bw_file_path, "*.bw")
bw_files <- file.path("C:/Users/DELL/Desktop/FigureYa/R-ChIP/",bw_file_names)tracklist[['D210-fwd']] <- DataTrack(range = bw_files[3],genome="hg19",type="histogram",name='D210 + ',ylim=c(0,4),col.histogram="#2167a4",fill.histogram="#2167a4")
tracklist[['D210-rvs']] <- DataTrack(range = bw_files[4],genome="hg19",type="histogram",name='D210 - ',ylim=c(4,0),col.histogram="#eb1700",fill.histogram="#eb1700")tracklist[['WKDD-fwd']] <- DataTrack(range = bw_files[9],genome="hg19",type="histogram",name='WKDD + ',ylim=c(0,4),ylab=2,col.histogram="#2167a4",fill.histogram="#2167a4")
tracklist[['WKDD-rvs']] <- DataTrack(range = bw_files[10],genome="hg19",type="histogram",name=' WKDD -',ylim=c(4,0),col.histogram="#eb1700",fill.histogram="#eb1700",showAxis=TRUE)#写入比例尺
scalebar <- GenomeAxisTrack(scale=0.25,col="black",fontcolor="black",name="Scale",labelPos="above",showTitle=F)
tracklist[["scalebar"]]<-scalebar# 画图
plotTracks(trackList = tracklist,chromosome = "chr16",from = 69141913, to= 69205033,background.panel = "#f6f6f6",background.title = "white",col.title="black",col.axis="black",rot.title=0,cex.title=0.5,margin=10,title.width=1.75,cex.axis=1)
后续用AI修改下坐标轴,就几乎和原图差不多了。此外可能还要调整之前脚本的bin size, 使得整体更加平滑
看图说话: 由于WKKD在D210N的基础上继续突变了几个位点,使得原本只丧失了RNASEH1的催化活性的D210N进一步丧失了结合到RNA/DNA杂合体的能力,在实验中就可以作为 负对照。上图就是其中一个有代表性的区间。
R-loop数据分析之R-ChIP(样本间BAM比较和可视化)相关推荐
- R语言数据分析笔记——t检验(含正态性检验和方差齐性检验在SPSS和R语言中的操作t检验(单样本、双独立样本、配对样本)在Excel、SPSS、R语言中的操作)
前言:本文为个人学习笔记,为各大网站上的教学内容之综合整理,综合整理了①假设分析的基础知识.②正态性检验和方差齐性检验在SPSS和R语言中的操作.③t检验(单样本.双独立样本.配对样本)在Excel. ...
- 《R语言数据分析》——导读
前 言 自20多年前发源于学术界以来,R语言已经成为统计分析的通用语言,活跃于众多产业领域.目前,越来越多的商业项目开始使用R,兼之R用户开发了数以千计易于上手的开发包,都使得R成为数据分析工程师及科 ...
- 《R语言数据分析》作业答案
<R语言数据分析>作业答案 数据赋人工系统以智能.北邮<R语言数据分析>课程从问道.执具.博术三个方面,阐述机器学习/数据挖掘的方法论(道).编程工具R语言(具)以及经典算法模 ...
- 因子分析,主成分分析,主因子分析,因子分析函数,极大似然法——数据分析与R语言 Lecture 12
因子分析,主成分分析,主因子分析,因子分析函数,极大似然法--数据分析与R语言 Lecture 12 因子分析 因子分析的主要用途 与主成分分析的区别 因子分析使用了复杂的数学手段 统计意义 因子载荷 ...
- 《R语言数据分析》——3.2 聚集
本节书摘来自华章出版社<R语言数据分析>一书中的第3章,第3.2节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问云栖社区"华章计算机&q ...
- 送书|北大出版:R语言数据分析与可视化从入门到精通
生物信息学习的正确姿势 NGS系列文章包括NGS基础.高颜值在线绘图和分析.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流 ...
- 《R语言数据分析与挖掘实战》——3.2 数据特征分析
本节书摘来自华章计算机<R语言数据分析与挖掘实战>一书中的第3章,第3.2节,作者 张良均,云伟标,王路,刘晓勇,更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...
- 主成分分析,充分图,聚类,主成分回归——数据分析与R语言 Lecture 11
主成分分析,充分图,聚类,主成分回归--数据分析与R语言 Lecture 11 主成分分析 例子:求相关矩阵特征值 例子:求主成分载荷 例子:画碎石图确定主成分 例子:主成分得分-相当于predict ...
- R语言数据分析系列之五
R语言数据分析系列之五 -- by comaple.zhang 本节来讨论一下R语言的基本图形展示,先来看一张效果图吧. 这是一张用R语言生成的,虚拟的wordcloud云图,具体实现细节请参见我的g ...
最新文章
- 你离时间管理大师,就差这副眼镜了
- 差异表达基因富集结果可视化
- 巧用Linux 架设TFTP Server备份路由器的配置文件
- CVT1100 错误的修复 2009-10-12 11:38
- php丢弃,在IIS 7.5中,PHP吓坏了(连接丢失,连接被丢弃)
- Hyperledger Fabric 链码(0) 说明
- Qt Creator构建并运行示例
- ubuntu swift mysql_使用 Swift 3.0 操作 MySQL 数据库
- HDU - 6899 Xor(数位dp)
- JavaScript学习笔记:创建、添加与删除节点
- R包实践:lubridate 处理时间数据
- 如何实现LBS轨迹回放功能?含多平台实现代码
- 一些简单的git命令及操作
- 电脑黑屏系统没激活的几种解决方法,必看!
- 最新WannaRen勒索病毒解密工具
- 能够边下边看bt资源的工具:Tribler Mac中文免费版
- 关于用指针实现输入字符串以单词为元素反转输出思路
- chrome使用tab键切换搜索
- 北邮数电期末复习——第三章
- 用JS改变html样式