为了构建组内共识的SE区域,因此要将每一个样本的SE.bed文件进行重叠区域分析。
软件:bedtools
文件: HC1_SE.bed,HC2_SE.bed,HC3_SE.bed
基本原理:用bedtools intersect 方法以及bedtools multiiner。两者的不同在于:前者会输出原始bed位置。后者则输出切割后的断点位置信息。第一中方法的SE会是重叠peak的总区域。第二种方法的SE则是完全重叠区域。

#策略,非真实运行的代码
#1将所有组内样本peaks信息汇集到一个文件
cat *.bed >allHC.bed
#排序汇集的peaks文件
,去重并第四列peakID
sort -k1,1 -k2,2n allHC.bed | awk '!seen[$0]++' | awk 'BEGIN{OFS="\t"} {print $0, "peak" NR}' > allHCsorted.bed
#分析这个汇集组内所有样本的peaks与不同样本之间的交集情况
bedtools intersect -a allHC.bed -b HC1.bed HC2.bed HC3.bed -wa -wb > allHCacrossallsamples.bed
结果举例如下
chr1 100 200 peak1 chr1 90 190 HC1_peak1 HC1
chr1 100 200 peak1 chr1 110 210 HC2_peak1 HC2
chr1 100 200 peak1 chr1 105 205 HC3_peak1 HC3
chr1 300 400 peak2 chr1 300 400 HC2_peak2 HC2
chr1 300 400 peak2 chr1 310 410 HC3_peak2 HC3
chr1 500 600 peak3 chr1 490 590 HC1_peak2 HC1
chr1 900 1000 peak4 chr1 890 990 HC1_peak3 HC1
chr1 900 1000 peak4 chr1 895 995 HC3_peak3 HC3
# 统计每个 allHC peak 出现的次数(即支持样本数)
cut -f4 allHCacrossallsamples.bed | sort | uniq -c >peakoverlapumber.txt
输出结果如下
3 peak1
2 peak2
1 peak3
2 peak4最后选择数量等于3的peaksID,获得peaks的bed文件,如命名为HC3sample.bed
bedtools merge HC3sample.bed -i -d 12500 > HC_SEmerged_regions.bed# 1.排序:批量排序
for f in *.bed; do sort -k1,1 -k2,2n "$f" > "${f%.bed}.sorted.bed"; done
# 2.然后运行bedtools multiinner进行重叠区域分析
bedtools multiinter -header -names HC1 HC2 HC3 -i *_SE.sorted.bed > HCmulti_SE.txt 这个文件展示了多个样本在基因组区域上的重叠情况,记录了每个区域的位置、覆盖的样本数量及具体哪些样本存在覆盖。
chrom | start | end | num | list | HC1 | HC2 | HC3 |
|---|---|---|---|---|---|---|---|
chr1 | 1766671 | 1767570 | 1 | HC1 | 1 | 0 | 0 |
chr1 | 1767570 | 1767860 | 2 | HC1,HC2 | 1 | 1 | 0 |
chr1 | 1767860 | 1768000 | 3 | HC1,HC2,HC3 | 1 | 1 | 1 |
chr1 | 1768000 | 1775333 | 1 | HC2 | 0 | 1 | 0 |
chr1 | 1775333 | 1807231 | 1 | HC3 | 0 | 0 | 1 |
chr1 | 1807231 | 1817414 | 2 | HC2,HC3 | 0 | 1 | 1 |
我们可以根据num列进行重叠区域的筛选。然后形成bed文件,在进行临近12.5kb区域合并操作。如下代码中-d 设置为0结果也是一样的,因为在进行ROSE分析时候。临近peak就已经完成了合并。代码如下
awk '$4 > 1' HCmulti_SE.txt | cut -f1-3 | bedtools merge -i -d 12500 > HC_SEmerged_regions.bedbedtools intersect 方法获得的重叠peaks 的区域往往是最长的peaks。因为peaks在合并的时候,三个长短不同的peaks合并获得的更长的peaks区域。不符合保守peaks的特征,而bedtools multiiner 方法更直接明确的分析了不同样本之间重叠区域的数量,过程更简洁明亮。