code: private ArrayList<SameLengthMotifs> SeparateMotifsByClustering(ArrayList<String[]> clusterTSIdx,
        SameLengthMotifs sameLenMotifs) {
      ArrayList<SameLengthMotifs> newResult = new ArrayList<SameLengthMotifs>();
      if (clusterTSIdx.size() > 1) {
        ArrayList<SAXMotif> subsequences = sameLenMotifs.getSameLenMotifs();
        for (String[] idxesInCluster : clusterTSIdx) {
          SameLengthMotifs newIthSLM = new SameLengthMotifs();
          ArrayList<SAXMotif> sameLenSS = new ArrayList<SAXMotif>();
          int minL = sameLenMotifs.getMinMotifLen();
          int maxL = sameLenMotifs.getMaxMotifLen();
  
          for (String i : idxesInCluster) {
            SAXMotif ssI = subsequences.get(Integer.parseInt(i));
            int len = ssI.getPos().getEnd() - ssI.getPos().getStart();
            if (len < minL) {
              minL = len;
            }
            else if (len > maxL) {
              maxL = len;
            }
            sameLenSS.add(ssI);
          }
  
          newIthSLM.setSameLenMotifs(sameLenSS);
          newIthSLM.setMaxMotifLen(maxL);
          newIthSLM.setMinMotifLen(minL);
          newResult.add(newIthSLM);
        }
      }
      else {
        newResult.add(sameLenMotifs);
      }
  
      return newResult;
    }
docs: Separates motifs via clustering.
  
  @param clusterTSIdx The index.
  @param sameLenMotifs the motif groups.
  @return same length motifs.