intersect主要用于识别两个或多个BED/GFF/VCF文件之间相交的区域,找到两个或多个peaks中重叠的区域,并分析重叠与非重叠区域的特征差异,是后续进行peak位点基因注释分析的基础。
核心代码
bedtools intersect -a A.bed -b B1.bed B2.bed [-wa or -wb -v ] > A[B].bed

intersect 图解“A intersect B”展示了A和B之间的交集区域。“A intersect B (-wa)”只显示了数据集A中与B交集的部分。“A intersect B (-v)”则展示了数据集A中不与B重叠的部分。"A intersect B1,B2”显示了数据集A与两个数据集B1和B2的交集。通过使用额外的参数(如“-wa -wb”),可以展示两个数据集B1和B2中与A数据集重叠的所有区域。
bedtools intersect 命令参数:-wa:为每次重叠输出A文件中的原始条目。-wb:为每次重叠输出B文件中的原始条目,有助于了解A与什么重叠,受-f和-r参数限制。
-wo:输出原始的A和B条目,以及两个特征之间重叠的碱基对数,重叠受-f和-r参数限制,仅报告有重叠的A特征。-wao:输出原始的A和B条目,以及重叠碱基对数,但无重叠的A特征也会被报告,其对应的B特征为NULL,重叠值为0。-u:如果在 B 中找到了任何重叠,则输出原始的A条目一次。-c:对于A中的每个条目,报告其与B的重叠次数,对于没有重叠的A条目报告。-C:对于 A 中的每个条目,分别在不同的行上报告其与每个B文件的重叠次数。-v:仅报告A中那些与B没有重叠的条目,类似于"grep -v"。-ubam:输出未压缩的BAM文件,默认输出压缩的BAM。-bed:如果使用BAM输入,则将输出写入为BED格式。-sorted:对已排序的输入使用"chromsweep"算法。-nobuf:禁用缓冲输出,使每行输出在生成时立即打印。-f:要求的最小重叠比例(相对于A),默认值为 1E-9(即1个碱基对),浮点数(例如0.50)。-F:要求的最小重叠比例(相对于B),默认值为1E-9。-r:要求重叠比例对于A和B是相互的。-e:要求最小比例满足A或B之一即可。-s:要求相同的链方向性,即仅报告B中与A在相同链上重叠的匹配项。-S:要求不同的链方向性,即仅报告B中与A在相反链上重叠的匹配项。-split:将"拆分"的BAM或BED条目视为独立的BED区间。-g:提供一个基因组文件以在输入文件之间强制一致的染色体排序顺序,仅在同时使用-sorted选项时适用。-header:在结果之前打印A文件的头部信息。-iobuf:指定用于输入缓冲的内存量。-names:当使用多个数据库时,为每个数据库提供一个别名。-filenames:当使用多个数据库时,显示每个完整的文件名。-sortout:当使用多个数据库时,对每个输出记录的数据库匹配项进行排序。这些参数提供了丰富的功能选项,可以满足基因组区间重叠分析的各种需求
bedtools intersect 常用代码操作
#1输出A和B有交集的区域
bedtools intersect -a A.bed -b B.bed > ab.bed
#2在有重叠区域,输出文件A中的原始特征
bedtools intersect -a A.bed -b B.bed -wa > overlapA.bed
#3在有重叠区域,输出文件B中的原始特征
bedtools intersect -a A.bed -b B.bed -wb > overlapB.bed
#4在有重叠区域,输出文件A和文件B的原始特征
bedtools intersect -a A.bed -b B.bed -wa -wb > AoverlapB.bed
#5只输出文件A中不与文件B重叠的特征
bedtools intersect -a A.bed -b B.bed -v >uniqA.bed
#6只输出文件B中不与文件A重叠的特征
bedtools intersect -a B.bed -b A.bed -v >uniqB.bed
#7对文件A中的每个特征输出与文件B的重叠,如果没有重叠,则为B输出为NULL
bedtools intersect -a A.bed -b B.bed -loj >allA-overlapB.txt
#8对文件B中的每个特征输出与文件A的重叠,如果没有重叠,则为A输出为NULL
bedtools intersect -a B.bed -b A.bed -loj >allB-overlapA.txt上述代码中,如代码2,3,5,6可以获得A\B中重叠峰与非重叠峰的文件,直接进行peak基因注释分析。