即使原
gff
文件中没有exon
的信息,可以用 脚本 | Shell | 提取每个转录本exon坐标 中的方法,比较取巧地得到。
然后,intron
的坐标可以根据exon
坐标得到。
- 获得
exon
坐标
awk 'BEGIN{OFS="\t"}$0 !~ /#/{if($3=="exon"){gsub(/.*Parent=/, "", $9);gsub(/;.*/, "", $9);print $1,$4,$5,$7,$3,$9}}' a.exon.gff | sort -k 6,6 -k 2,2n > a.exon.tsv
如:
Chr1 3631 3913 + exon AT1G01010.1.TAIR10
Chr1 3996 4276 + exon AT1G01010.1.TAIR10
Chr1 4486 4605 + exon AT1G01010.1.TAIR10
Chr1 4706 5095 + exon AT1G01010.1.TAIR10
Chr1 5174 5326 + exon AT1G01010.1.TAIR10
Chr1 5439 5899 + exon AT1G01010.1.TAIR10
- 提取
intron
坐标
awk 'BEGIN{OFS="\t"}{if(intron[$6]==""){intron[$6]=$6; start=$3+1; next;} else print $1,start,$2-1,$4,"intron",$6;start=$3+1}' a.exon.tsv
结果:
Chr1 3914 3995 + intron AT1G01010.1.TAIR10
Chr1 4277 4485 + intron AT1G01010.1.TAIR10
Chr1 4606 4705 + intron AT1G01010.1.TAIR10
Chr1 5096 5173 + intron AT1G01010.1.TAIR10
Chr1 5327 5438 + intron AT1G01010.1.TAIR10
请批评指正。