I have two annotations of the same genome generated with different annotation pipelines. I want to identify overlapping gene models.

An important feature of this genome is that there are many 'genes within genes', i.e. a genemodel in the intron of another genemodel. Therefore, I only want to count two genemodels as overlapping when their coding sequence exon annotations overlap.

Using something like bedtools intersect it is straightforward to calculate overlap between the gene-level annotations.

However: I am not sure how to select genes as overlapping when only their coding sequence exons (CDS features) overlap.

  • 7
    $\begingroup$ Why not extract the coordinates of your CDS regions from your bed/gff files, then do the bedtools intersect? $\endgroup$ Commented May 17, 2017 at 11:58
  • $\begingroup$ That would still only leave me with the overlapping CDSs features. In the end I want to know the genes. Why not write your comment into an answer? $\endgroup$
    – holmrenser
    Commented May 17, 2017 at 13:50

1 Answer 1


Short Answer: In my opinion, my approach would be to pull out the CDS exons and run bedtools on those.

A Few More Details: When you pull out the exons, make sure that you assign them all IDs if the don't already have them assigned and record which IDs "belong" to which genes. Now when you get exons that overlap, you know that they are coding and you can tie them back to which genes they originate from.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.