bed文件的第一列(序列名称)、第四列(起始位置)、第五列(终止位置)。下面是在Linux系统中的操作步骤:
我用的是hg19的参考基因组,先下载对应的gtf文件:
wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_40/GRCh37_mapping/gencode.v40lift37.annotation.gtf.gz
然后用gtf文件处理
gunzip -c gencode.v40lift37.annotation.gtf.gz | awk '($3=="exon") {printf("%s\t%s\t%s\n",$1
,int($4)-1,$5);}' | sort -T . -t $'\t' -k1,1 -k2,2n | bedtools merge > hg19.bed
注:因为gtf的第一个碱基记为1,但是bed文件的第一个碱基记为0,所以从gtf转化为bed的碱基位置需要-1;而终止位置碱基没有-1是因为终止位置的碱基对不被包含在内,即bed文件的碱基位置是前闭后开的。后面是对最终的结果进行排序,先按照第一列进行排序(-k1,1)再按照第二列以数值的方式进行排序(-k2,2n)。最后,再用bedtools把可能有重叠的部分整合之后,就能得到我们想要的结果。
输出结果如下: