File tree Expand file tree Collapse file tree 4 files changed +27
-17
lines changed
Expand file tree Collapse file tree 4 files changed +27
-17
lines changed Original file line number Diff line number Diff line change @@ -54,14 +54,14 @@ -(void)dealloc{
5454- (float )calculatePairwiseDistanceBetween : (MFSequence*)sequence1 and : (MFSequence*)sequence2 {
5555 NSUInteger d = 0 ;
5656 NSUInteger n = 0 ;
57- const char *c1 = [[sequence1 sequence ]UTF8String];
58- const char *c2 = [[sequence2 sequence ]UTF8String];
5957 MFDataType *dataType = sequence1.dataType ;
6058 NSUInteger dimension = [sequence1 length ];
61-
59+ char c1,c2;
6260 for ( NSUInteger k = 0 ; k < dimension; k++ ) {
63- if ( [dataType isKnownChar: c1[k]] && [dataType isKnownChar: c2[k]] ){
64- if (c1[k] != c2[k] ){
61+ c1 = [[sequence1 sequence ]characterAtIndex:k];
62+ c2 = [[sequence2 sequence ]characterAtIndex:k];
63+ if ( [dataType isKnownChar: c1] && [dataType isKnownChar: c2] ){
64+ if (c1 != c2 ){
6565 d++;
6666 }
6767 n++;
Original file line number Diff line number Diff line change @@ -83,8 +83,18 @@ -(void)main{
8383// [self.delegate operation:self setDescription:self.description];
8484// });
8585// }
86-
87- [_matrix calculateDistances ];
86+ float **matrix = [_matrix floatMatrix ];
87+ NSUInteger dimension = [_sequences count ];
88+ for ( NSUInteger i = 0 ; i < dimension; i++ ) {
89+ MFSequence *seq1 = [_sequences objectAtIndex: i];
90+
91+ for ( NSUInteger j = i+1 ; j < dimension; j++ ) {
92+ MFSequence *seq2 = [_sequences objectAtIndex: j];
93+ matrix[i][j] = matrix[j][i] = [_matrix calculatePairwiseDistanceBetween: seq1 and: seq2];
94+ }
95+ if ( [self isCancelled ] )break ;
96+ }
97+ // [_matrix calculateDistances];
8898
8999// [(NSObject *)self.delegate performSelectorOnMainThread: @selector(distanceMatrixDidFinish:)
90100// withObject: self
Original file line number Diff line number Diff line change @@ -28,14 +28,14 @@ @implementation MFJukeCantorDistanceMatrix
2828- (float )calculatePairwiseDistanceBetween : (MFSequence*)sequence1 and : (MFSequence*)sequence2 {
2929 NSUInteger d = 0 ;
3030 NSUInteger n = 0 ;
31- const char *c1 = [[sequence1 sequence ]UTF8String];
32- const char *c2 = [[sequence2 sequence ]UTF8String];
3331 MFDataType *dataType = sequence1.dataType ;
3432 NSUInteger dimension = [sequence1 length ];
35-
33+ char c1,c2;
3634 for ( NSUInteger k = 0 ; k < dimension; k++ ) {
37- if ( [dataType isKnownChar: c1[k]] && [dataType isKnownChar: c2[k]] ){
38- if ( c1[k] != c2[k] ){
35+ c1 = [[sequence1 sequence ]characterAtIndex:k];
36+ c2 = [[sequence2 sequence ]characterAtIndex:k];
37+ if ( [dataType isKnownChar: c1] && [dataType isKnownChar: c2] ){
38+ if ( c1 != c2 ){
3939 d++;
4040 }
4141 n++;
Original file line number Diff line number Diff line change @@ -28,14 +28,14 @@ @implementation MFK83DistanceMatrix
2828- (float )calculatePairwiseDistanceBetween : (MFSequence*)sequence1 and : (MFSequence*)sequence2 {
2929 float d = 0 ;
3030 NSUInteger n = 0 ;
31- const char *c1 = [[sequence1 sequence ]UTF8String];
32- const char *c2 = [[sequence2 sequence ]UTF8String];
3331 MFDataType *dataType = sequence1.dataType ;
3432 NSUInteger dimension = [sequence1 length ];
35-
33+ char c1,c2;
3634 for ( NSUInteger k = 0 ; k < dimension; k++ ) {
37- if ( [dataType isKnownChar: c1[k]] && [dataType isKnownChar: c2[k]] ){
38- if ( c1[k] != c2[k] ){
35+ c1 = [[sequence1 sequence ]characterAtIndex:k];
36+ c2 = [[sequence2 sequence ]characterAtIndex:k];
37+ if ( [dataType isKnownChar: c1] && [dataType isKnownChar: c2] ){
38+ if ( c1 != c2 ){
3939 d++;
4040 }
4141 n++;
You can’t perform that action at this time.
0 commit comments