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 ; }
Separates motifs via clustering .