I have a bunch of RNA sequences (and their optimal secondary structures) and their corresponding energy values (measured by mean free energy) and I'm trying to find a way to identify features (patterns in their structures or sequences) common between samples of similar energy values. the overall goal is to try and identify sequence or structural elements in the RNA samples that tend to correlate with low mean free energy values. would be grateful if anyone could recommend me algorithms to look into using - I'm assuming this would be an unsupervised learning project and I only have experience with supervised stuff, but I'm looking into PCA right now and not sure if that'd be useful. should I be looking into something else?

Intuitively I'm imagining it as like a clustering + feature extraction problem where I have a bunch of dots, each representing an RNA sample, and then the axis represents energy so the dots could be clustered in energy value similarity and then within each energy value cluster patterns/relationships could be found between the sequences and structures of the samples. but not sure if an ML algo exists to handle this and PCA seems like not what I'm looking for because the axes would be principal components and not energy...


1 Answer 1


It depends what is meant by "features". Features can be a particular structure component in the RNA structure. In ML/DL these "features" are called instances (or observations). "Features" is also a technical word used in machine/deep learning, which can be completely different, it means the data or statistical variables associated with an instance.

Feature weight extraction (ML/DL definition) using unsupervised learning is complicated, but doable. This is where the features corresponding to each entry are weighted, i.e. quantified. Under traditional unsupervised learning this is not achievable, unless you want to include/exclude "features" and assess cluster integrity. I personally considered it a lot of work for no real interpretable results.

If the features are components of the RNA structure (what would be technically called 'instances' in ML/DL) then the general traditional unsupervised learning following PCA analysis is tSNE. However, tSNE is often used to get better resolution the PCA feature reduction output, i.e. tightens the clusters. PCA->tSNE is a cool technique and works well. PCA and tSNE can give different clusters by the way. As a rule of thumb I consider PCA > tSNE.

Multi-dimensional scaling etc ... needs a defined analytics aim.

Information on tSNE and PCA this online resource looks fine


The above is if you want to do tSNE and compare the results to PCA this link is good.

In terms of using tSNE to sharpen PCA clusters I always used O'Reilly's "Introduction to Machine Learning with Python". There is a very clear example of Python code of the technique there, towards the end of the book and why it works.

  • 1
    $\begingroup$ Thanks! Do you have any resources I could look into that would help me understand how to frame this as a PCA problem as someone new to it? If not no worries $\endgroup$
    – joshua213p
    Aug 9, 2023 at 14:45
  • 1
    $\begingroup$ Makes sense re: edit, thank you! $\endgroup$
    – joshua213p
    Aug 9, 2023 at 15:05
  • $\begingroup$ Dear @joshua213p I have answered below the -------- $\endgroup$
    – M__
    Aug 9, 2023 at 15:06
  • $\begingroup$ Thanks @joshua213p $\endgroup$
    – M__
    Aug 9, 2023 at 16:04
  • $\begingroup$ hey! reading through the t-sne blogpost and I'm a little unclear on how i'd use either of these algorithms here for my goals. i get it'd cluster my samples based on similarity in terms of first and second principal components/t-SNEs, but what could i then use identify structural or sequence patterns within each cluster? please let me know if I'm missing something - thanks! $\endgroup$
    – joshua213p
    Aug 9, 2023 at 21:35

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.