Learning and exploiting hidden structures in genomic data with machine learning and statistical approaches