I am a newbie is DNA sequencing and BioInformatics. I am writing a school project that determines whether a DNA sequence is a gene or not using a Machine Learning Algorithm, Hidden Markov Model. After understanding the the algorithm, I now want to know when we can say this particular DNA sequence is a gene. Any help or pointers would be appreciated. Thanks

  • 1
    $\begingroup$ This question is too broad. From the help center: Your questions should be reasonably scoped. If you can imagine an entire book that answers your question, you’re asking too much. Entire books have been written on HMMs and other algorithms for finding genes, depending on the exact situation. Please edit your question and narrow it down to one particular circumstance. $\endgroup$ – MattDMo Sep 30 '16 at 12:10

We can devide algorithms for protein-coding genes in eukaryotes in two main categories:

  • Extrinsic, these algorithms rely on the comparison with external data sources, such as comparing genomes
  • Intrinsic, I suggest you are more interested in this one when you acctualy want to predict gene coding regions on your own (If I'm wrong I will further explain extrinsic methods). The intristic methods are based on ab into predictions.

I will continue on Intrinsic methods, so what can we use to identify coding genes in the sequence. Ofcourse we need to know the charasticts of those coding regions:

Most of the time we see CpG Islands(regions of a higher than expected occurrence of CpG dinucleotides over a patricular region).

About 70% of human promoters have a high CpG content (Wiki)

Those CpG islands are important for the regulation of gene expresion.
the basics of a coding sequence are the promotor, introns and exons.
you are probably familiar with the fact that a mRNA has to be spliced in order to cut the introns (non coding regions) out, this is done by the splicesome wich recognizes special sites where it can cut, So you can search for these sites in your DNA sequence. I will summarize some points about the coding regions here:

  • CpG Island near the promotor
  • splice sites for splicesomes
  • Start and stop codons (I hope you are familiar with these)

There are more things to consider but I would to suggest to look at the algorithms of these programs: GENSCAN, FgeneSH, GeneMark, Xpound and to read this atricle which is about identifying the protein-coding regions


This is in general not a totally solved problem. How difficult it is will depend a lot on the exact nature of your problem. For instance:

1) Are you working in a eukaryotic organism, or in a prokaryote? Most bacteria lack introns - this makes finding genes much easier, you can just look for start codons followed by regions with no stop codons - open reading frames or ORFs

2) Are you using other data sources as well? RNA data, e.g. mRNA sequences, make it much easier to find genes. Comparing to other organisms also helps a lot.

3)Do you only want coding genes, or are you interested in noncoding RNAs as well? Finding these is much more difficult. Finding very small coding genes is also very hard.

  • $\begingroup$ You are right his question is quite unclear $\endgroup$ – KingBoomie Sep 30 '16 at 12:04
  • $\begingroup$ Sorry if my question is not clear. I really have no idea about how wide the subject in question is. I am a student just trying to implement the HMM algorithm to find whether a DNA sequence is a gene or not. I have successfully been able to determine if its from a CpG island or not. So was confused whether if a DNA sequence is from CpG Island then its a gene. $\endgroup$ – Jeremiah Oct 21 '16 at 7:40

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