工具:
bedtools subtract
ref:Example usage — bedtools 2.27.0 documentation
注意:分隔符需要是\t
原理:
A减去B
注意:需要区分正负链信息;因为-s参数不能使用
图示:
另一个例子:
证明不需要提前对a和b文件进行去除overlap:
前面有错,最后决定还是需要先进行overlap的去除:
ref:Defining genomic regions - Dave Tang's blog
# gtf转为bed:
【1】去除“:
sed -i 's/"//g' exon.gtf
sed -i 's/"//g' transcript.gtf
【2】gtf转为bed:
awk 'BEGIN{FS="\t| |;";OFS="\t"}{print $1,$4,$5,$10,$22,$7}' exon.gtf > exon.bed
awk 'BEGIN{FS="\t| |;";OFS="\t"}{print $1,$4,$5,$10,$22,$7}' transcript.gtf > transcript.bed
# 对bed进行sort:
bedtools sort -i transcript.bed > transcript.sorted.bed
bedtools sort -i exon.bed > exon.sorted.bed
# 进行merge:
bedtools merge -i transcript.sorted.bed -s -c 4,5,6 -o distinct > transcript.sorted.merged.bed
bedtools merge -i exon.sorted.bed -s -c 4,5,6 -o distinct > exon.sorted.merged.bed
# 减去:
bedtools subtract -s -a transcript.sorted.merged.bed -b exon.sorted.merged.bed > intron.bed
网友评论