I would like to show that certain types of RBP motifs are enriched in RNA editing islands (i.e. clusters of RNA editing). However, I am unsure about how to think about sequence motifs with respect to their occurrence in other genomic features.

I understand how to find the probability of a motif at a location. i.e.

P(sequence is at position i) = P(A)^[A] * P(C)^[C] * P(G)^[G] * P(T)^[T]

where (.) is the base pair and [.] is the number of bps.

Instead what I would like to find is:

P(sequence S is contained in a feature type T) = ???

where feature type T is an gene, intron, editing island, etc. I think I should incorporate length since I will mainly be comparing genes or introns vs. editing islands. Also, I am not sure what to do about the editing islands being located within genes. How can I keep from counting the same motif twice?

Any ideas would be greatly appreciated. Thank you for your time.

  • $\begingroup$ It's a bit unclear if you really just want enrichment in editing islands (use Fisher's exact test) or instead want to argue that there's increased enrichment in editing islands versus other features. Please clarify that. $\endgroup$
    – Devon Ryan
    Jun 1, 2017 at 6:51
  • $\begingroup$ Mainly I just want to show enrichment in the islands. I am familiar with Fisher's Exact Test, however, I wasn't sure how applicable it woudl be in this case as it is difficult to define groups i.e. in/not in editing island. Also the lengths of editing islands vary. $\endgroup$
    – tweirick
    Jun 2, 2017 at 13:31

2 Answers 2


As far as I remember the exact probability computation is an open problem. The reason is that potential motifs can overlap, which makes probability computations for an arbitrary string non-trivial, and depends on the motif.

For example if he have a binary string of four digits, the probability of "01" will be 11/16, while the probability of "11" will be 8/16=1/2.

The simplest approximation is to assume that probability of the motif on every position of the sequence is equal and independent. In such case (this comes from this course):


(Probability of text of length N having at least t occurrences of a k-mer Pattern, A is the number of letters in the alphabet, n = N – t * k)

This approximation is very rough, there are better here.


As Iakov Davydov points out above mathematical calculation is very difficult. Particularly if you do not have uniform nucleotide, dinucleotide etc. frequencies. Thus I'd recommend using a method based on randomisation.

You'd want to randomise only within genes since the likelihood of getting an editing island is likely to be dependent on expression level of the RNA.

You might like to look at what people analysing CLIP data do for these sorts of analyses. See for example Wang et al. Or I have code for this sort of thing in my iCLIPlib. See the module kmer.py. (WARNING: this code is still in development, and is not "released" yet, so I offer no promises about bugs or how easy it would be for your to get working). However, these approaches generally only rank the significance of kmers rather than giving absolute significance values.

Genome Annotation Tester (GAT) might be of use here. You would define genes as your workspace, islands as your annotations, and motif matches as your segments of interest.


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.