I have samples from 150 different genes containing the following information:

  • sequence of the gene
  • signal strength along the length of the gene (the signal can be negative or positive).

I have therefore many different 1D observations that look like the following:

enter image description here

I want sample 1 to cluster with sample 5, sample 2 to cluster with sample 4, and sample 3 to cluster with itself (or other samples that may have many positive and negative signals successively - but not with sample 6, which has both positive and negative signals but they are far away from each other).

The simplest approach would be to just count the number of positive and negative signals in each gene, but each gene has a different length. I cannot simply normalise by gene length either, because each positive/negative signals occupies an absolute number of nucleotides (an absolute amount of length along the gene).

My objective is to come up with a classification of sorts that can give me a set of genes that have a lot of information encoded within them (i.e. a lot of signals) vs genes that have little information (very few signals), but also tell me something about the nature of the signal (i.e. lots of positive signals would be different from many positives and some negatives).

Unfortunately I don't have the mathematical/statistical background to know what keywords to use when looking for a method that could help me solve this problem - so far I have tried "1D clustering" or "clustering of wave signals" but I am not finding anything relevant and much of the results I obtain are related to the splitting up of one wave-like signal into multiple parts.

I appreciate your guidance with this!


1 Answer 1


It seems, you can use e.g. kMeans for time series as well: https://tslearn.readthedocs.io/en/stable/user_guide/clustering.html for python. There is also a package for R: https://www.r-bloggers.com/2018/03/tsrepr-use-case-clustering-time-series-representations-in-r/

  • 1
    $\begingroup$ Thanks a lot for the (super quick) reply. It seems like some clustering algorithm combined with dynamic time warping (never would have guessed this term) is exactly what I want to do! Thanks a million, Ben. $\endgroup$
    – Ender
    Mar 17, 2022 at 8:55

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.