样本间相关性评估

上一步得到各个样本的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)")
correlationship

这种多个BAM文件之间相关性衡量,其实也可以用deepToolsplotCorrelation画出来,但是我觉得应该没有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基因

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)
Gviz

后续用AI修改下坐标轴,就几乎和原图差不多了。此外可能还要调整之前脚本的bin size, 使得整体更加平滑

看图说话: 由于WKKD在D210N的基础上继续突变了几个位点,使得原本只丧失了RNASEH1的催化活性的D210N进一步丧失了结合到RNA/DNA杂合体的能力,在实验中就可以作为 负对照。上图就是其中一个有代表性的区间。

R-loop数据分析之R-ChIP(样本间BAM比较和可视化)相关推荐

  1. R语言数据分析笔记——t检验(含正态性检验和方差齐性检验在SPSS和R语言中的操作t检验(单样本、双独立样本、配对样本)在Excel、SPSS、R语言中的操作)

    前言:本文为个人学习笔记,为各大网站上的教学内容之综合整理,综合整理了①假设分析的基础知识.②正态性检验和方差齐性检验在SPSS和R语言中的操作.③t检验(单样本.双独立样本.配对样本)在Excel. ...

  2. 《R语言数据分析》——导读

    前 言 自20多年前发源于学术界以来,R语言已经成为统计分析的通用语言,活跃于众多产业领域.目前,越来越多的商业项目开始使用R,兼之R用户开发了数以千计易于上手的开发包,都使得R成为数据分析工程师及科 ...

  3. 《R语言数据分析》作业答案

    <R语言数据分析>作业答案 数据赋人工系统以智能.北邮<R语言数据分析>课程从问道.执具.博术三个方面,阐述机器学习/数据挖掘的方法论(道).编程工具R语言(具)以及经典算法模 ...

  4. 因子分析,主成分分析,主因子分析,因子分析函数,极大似然法——数据分析与R语言 Lecture 12

    因子分析,主成分分析,主因子分析,因子分析函数,极大似然法--数据分析与R语言 Lecture 12 因子分析 因子分析的主要用途 与主成分分析的区别 因子分析使用了复杂的数学手段 统计意义 因子载荷 ...

  5. 《R语言数据分析》——3.2 聚集

    本节书摘来自华章出版社<R语言数据分析>一书中的第3章,第3.2节,作者盖尔盖伊·道罗齐(Gergely Daróczi),潘怡 译,更多章节内容可以访问云栖社区"华章计算机&q ...

  6. 送书|北大出版:R语言数据分析与可视化从入门到精通

    生物信息学习的正确姿势 NGS系列文章包括NGS基础.高颜值在线绘图和分析.转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这).ChIP-seq分析 (ChIP-seq基本分析流 ...

  7. 《R语言数据分析与挖掘实战》——3.2 数据特征分析

    本节书摘来自华章计算机<R语言数据分析与挖掘实战>一书中的第3章,第3.2节,作者 张良均,云伟标,王路,刘晓勇,更多章节内容可以访问云栖社区"华章计算机"公众号查看. ...

  8. 主成分分析,充分图,聚类,主成分回归——数据分析与R语言 Lecture 11

    主成分分析,充分图,聚类,主成分回归--数据分析与R语言 Lecture 11 主成分分析 例子:求相关矩阵特征值 例子:求主成分载荷 例子:画碎石图确定主成分 例子:主成分得分-相当于predict ...

  9. R语言数据分析系列之五

    R语言数据分析系列之五 -- by comaple.zhang 本节来讨论一下R语言的基本图形展示,先来看一张效果图吧. 这是一张用R语言生成的,虚拟的wordcloud云图,具体实现细节请参见我的g ...

最新文章

  1. 你离时间管理大师,就差这副眼镜了
  2. 差异表达基因富集结果可视化
  3. 巧用Linux 架设TFTP Server备份路由器的配置文件
  4. CVT1100 错误的修复 2009-10-12 11:38
  5. php丢弃,在IIS 7.5中,PHP吓坏了(连接丢失,连接被丢弃)
  6. Hyperledger Fabric 链码(0) 说明
  7. Qt Creator构建并运行示例
  8. ubuntu swift mysql_使用 Swift 3.0 操作 MySQL 数据库
  9. HDU - 6899 Xor(数位dp)
  10. JavaScript学习笔记:创建、添加与删除节点
  11. R包实践:lubridate 处理时间数据
  12. 如何实现LBS轨迹回放功能?含多平台实现代码
  13. 一些简单的git命令及操作
  14. 电脑黑屏系统没激活的几种解决方法,必看!
  15. 最新WannaRen勒索病毒解密工具
  16. 能够边下边看bt资源的工具:Tribler Mac中文免费版
  17. 关于用指针实现输入字符串以单词为元素反转输出思路
  18. chrome使用tab键切换搜索
  19. 北邮数电期末复习——第三章
  20. 用JS改变html样式

热门文章

  1. 浅谈最短路径O(n^3)万(蒟)能(蒻)算法——————Floyd《最短路径·O(n^3)Floyd篇》
  2. 狄拉克函数- dirac 分布
  3. AVR单片机网址推荐
  4. 《Java修炼指南:高频源码解析》阅读笔记一Java数据结构的实现集合类
  5. win10+Ubuntu双系统安装/卸载/扩容/同步时间
  6. Linux学习134 Unit 5
  7. 基于Vue3实现扫码枪扫码并生成二维码的代码解析
  8. Android 7.0 新特性
  9. 实验五 FBG团队亮相
  10. BootStrap4 文本颜色和背景颜色